Introduce "Congestion Control" for MACCommands

Is this a bug or a feature request?
Feature
What did you expect?
Technically, the LoRaWAN specification makes no assumptions on how to handle non-conforming devices. However, we have seen LoRaWAN sensors, that do not reply to e.g. RXParamSetupReq MAC Commands, which leads to a non stopping flood of downlink MAC Commands. Even though, this is not the "fault" of the LNS, maybe their should be something mitigating the spamming of the downlink.
What version are your using?
all
How can your issue be reproduced?
yes

I understand your issue, but I think it is also a good idea (if you haven't already done) to report this to the device vendors to make sure they are aware of these issues in their firmware.

I totally agree and this is of cause the strategy that we are currently using. However, to get a production ready setup, some kind of fault tolerance might be a good feature, anyway.


iib just stoped working today on Forge

Hi there.
iib just stoped working today on Forge.
Here is the error :
*** Error loading script: iib_setup.py
    Traceback (most recent call last):
      File "/whatever/stable-diffusion-webui-forge/modules/scripts.py", line 525, in load_scripts
        script_module = script_loading.load_module(scriptfile.path)
      File "/whatever/stable-diffusion-webui-forge/modules/script_loading.py", line 13, in load_module
        module_spec.loader.exec_module(module)
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "/whatever/stable-diffusion-webui-forge/extensions/sd-webui-infinite-image-browsing/scripts/iib_setup.py", line 1, in <module>
        from scripts.iib.api import infinite_image_browsing_api, send_img_path
    ModuleNotFoundError: No module named 'scripts.iib'

Since I have the same issue, feel like I should weigh in. There was another extension that had similar problem, the tag autocompletion. That one got fixed by just putting empty __init__.py in the folder that was refusing to load.
For this extension though, that doesn't seem to help, and it still refuses to load the iib folder here.

Turns out it is fixed by uninstalling the gguf package, if it was installed in Forge, as mentioned in lllyasviel/stable-diffusion-webui-forge#1134.

That said, after removing gguf, this extension stubbornly refuses to load it still. Which is weird in general.

You can temporarily use the standalone version and the desktop version instead. I will look into how to address this issue later.

As it's a Forge related issue that is now fixed i think we can clode this one.

Been waiting to see if this'd get fixed on Forge's side of things, but while everything else got fixed, this extension still seems to have this issue. And I don't want to open up another issue, so felt like commenting about it here. @zanllp

I had to git pull Forge and delete venv to get everything work again.

Nah, it is in fact still broken. I double checked and reinstalling the whole venv did not help. So the missing library error is still there for this extension.

is the gguf python package still in your requirements_versions.txt file in Forge root folder?

Nah, it is in fact still broken. I double checked and reinstalling the whole venv did not help. So the missing library error is still there for this extension.

I have no issues using it in the latest version of the Forge environment. Try updating it.

I have no issues using IIB in the latest version of the Forge environment. Try updating it.

That's the thing, I did, Forge is latest and I deleted venv to get it to reinstall, for some reason it keeps throwing me that error.

I have no issues using IIB in the latest version of the Forge environment. Try updating it.

That's the thing, I did, Forge is latest and I deleted venv to get it to reinstall, for some reason it keeps throwing me that error.

You can first make sure there is no guff under your [venv]
ls -R venv | grep 'guff'


Add cypress based workflow that tests the production deployment of the calculator

Not sure what should trigger this test, if anything after pushing a new page deployment we should run this test.

not gonna do this


Use proxy from git config if available

This may be a possible solution to https://github.com/github/git-lfs/issues/1125 but we are Go and git-lfs newbs so we could use some guidance.

Is this approach even close to how y'all would do this?
Should we create a new test file for lfs/http.go so that we can test this method specifically or should we add an integration test, or something else entirely?

/cc @LizzHale

This looks great :) My main question is whether this should prefer the git config or the environment first? I'd lean towards using the git config as a last resort. A couple use cases:

Someone has a global http_proxy set in their bashrc because of their local network setup.
Someone runs http_proxy=.... git clone ...

I'd like to see how git handles this.
A go test for proxyFromGitConfigOrEnvironment() could go in lfs/proxy_test.go. Seems like that'd be enough to test the various use cases.
An integration test would be lovely. It'd require setting up a fake proxy server for testing purposes. I can look into this separately, since it should've existed for the current env proxy support.

+1 to @technoweenie's comments. Environment vars should always override gitconfig settings, it's how you typically change things temporarily rather than persistently.

@LizzHale and I paired on this again today and we think we've got the logic right but haven't figured out how to correctly test all of them. One of our tests works and two don't, we left them there but commented out with the error. Any *pointers are appreciated :grin:

Hi @jonmagic and @LizzHale! This looks awesome 👍 I definitely agree with @technoweenie and @sinbad's comment about the environment vs. .gitconfig debate, and your patch looks sweet.
Tests look like they're off to a good start, too. If you post more of the stacktrace, I'd be more than happy to take a look at it with you and try and figure out the cause of the failure 😄

Closing in favor of #1358


Minor consistency fix: checkpoint_path -> checkpoint_dir

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

the API has been using checkpoint_path and checkpoint_dir in different places. E.g. FitCheckpointer.save_checkpoint_dir but FitCheckpointer.restore_checkpoint_path, etc.

What is the new behavior?

checkpoint_dir is used everywhere.

Hey Oleg, I currently differentiate between path path and dir to indicate that path can be either a directory or a path-to-file, while dir should be a directory.
The use of this is that, while we can only allow to save in certain directory, we can restore any checkpoint in a directory.
Given this info (that I may need to document better), do you still think it is better to have a uniform terminology, i.e. dir everywhere?


GPL licence or at least indication?

I don't know if the wrapped package is GPL, it would still be allowed to have the wrapper MIT. But it would be nice to know and document GPL software is used.
If not for the package itself, then RCall.jl used R of course and it is GPL, so whoever uses your wrapper is bound by the GPL (unless possibly if preinstalled R, because of system library loophole, that wouldn't apply if you were to distribute all including R to users).
RCall.jl should likely document too. What do you think? But should all wrappers for R code, i.e. using it too?

Thanks for bringing this up. My opinion is that the best thing is to as far as possible prevent license proliferation in the Julia ecosystem, while making sure to be fair that users are aware of possible legal implications.
I'm a bit unclear on this to be honest. People tend to tie themselves in knots a bit interpreting the GPL, and the way software is distributed and linked has moved on a bit since the early versions were written. The purpose of this package is not so much to have users integrate these libraries into a final Julia project, but rather mainly to make comparisons and demos easier, i.e. it should usually be an optional dependency. It should be flagged up here, but also definitely in RCall.jl. It is linking to R one way or another, and it's not like there is a non-GPL, so it should also be flagged up there.
I'm a bit confused by the system library loophole, but this seems to be more about allowing GPL software to call propriety code e.g. WIN32 APIs. In terms of loophole, it's always temping to go a bit zen and make odd arguments like "I didn't distribute a bundle, but Pkg() did all the fetching and the Julia runtime did the linking on the user's private machine -- nothing to do with me gov'ner" as a loophole. Not sure how that would stand up though -- perhaps not so well.
I think, since only source code is being distributed here, continuing with the current license, but putting a warning should be sufficient. Would you like to make an issue with RCall.jl too or should I? Ideally I would like to have a harmonized approach.

I'm satisfied that I've addressed that problem as well as possible. To avoid legal problem, nobody should create any composite works with this library without stripping one or the other R dependency if they want to avoid possible technical legal issues. I am of the position that since I am distributing only this source code, I am not creating a composite work. However, I do not see anything like this going to court.
I'm closing this issue now. Do please either go ahead and create an issue on RCall.jl, or let me know if you would prefer that I do it.


Removal of init_myservice initContainer

Issue link
Jira Issue
Closes #297
What changes have been made
Removal of the init_myservice initContainer for the ray workgroupspec because the operator also injects a wait-gcs-ready initContainer which does similar thing.
Verification steps
Install codeflare sdk on a cluster - test notebooks and ensure that they work correctly.
Run unit tests and ensure that they work correctly.
Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[X] Manual tests
[ ] Testing is not required for this change

After speaking to @Bobbins228 I tried out the local interactive demo notebook and unfortunately am seeing this error. Not sure what it means yet but looking into it. @tedhtchang would you have any insight here? Thanks
2023-11-28 06:59:10,622 INFO usage_lib.py:416 -- Usage stats collection is enabled by default without user confirmation because this terminal is detected to be non-interactive. To disable this, add `--disable-usage-stats` to the command that starts the cluster, or run the following command: `ray disable-usage-stats` before starting the cluster. See https://docs.ray.io/en/master/cluster/usage-stats.html for more details.
2023-11-28 06:59:10,622 INFO scripts.py:744 -- Local node IP: <IP_ADDRESS>
Traceback (most recent call last):
File "/home/ray/anaconda3/bin/ray", line 8, in <module>
sys.exit(main())
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/scripts/scripts.py", line 2498, in main
return cli()
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/autoscaler/_private/cli_logger.py", line 856, in wrapper
return f(*args, **kwargs)
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/scripts/scripts.py", line 771, in start
node = ray._private.node.Node(
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 307, in __init__
self.start_head_processes()
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 1404, in start_head_processes
assert self.get_gcs_client() is not None
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 676, in get_gcs_client
self._init_gcs_client()
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 721, in _init_gcs_client
raise RuntimeError(
RuntimeError: Failed to start GCS. Last 1 lines of error files:
[2023-11-28 06:59:10,701 C 13 13] (gcs_server) grpc_server.cc:119: Check failed: server_ Failed to start the grpc server. The specified port is 6379. This means that Ray's core components will not be able to function correctly. If the server startup error message is `Address already in use`, it indicates the server fails to start because the port is already used by other processes (such as --node-manager-port, --object-manager-port, --gcs-server-port, and ports between --min-worker-port, --max-worker-port). Try running sudo lsof -i :6379 to check if there are other processes listening to the port.
.Please check /tmp/ray/session_2023-11-28_06-59-10_623863_8/logs/gcs_server.out for details

After speaking to @Bobbins228 I tried out the local interactive demo notebook and unfortunately am seeing this error. Not sure what it means yet but looking into it. @tedhtchang would you have any insight here? Thanks
2023-11-28 06:59:10,622 INFO usage_lib.py:416 -- Usage stats collection is enabled by default without user confirmation because this terminal is detected to be non-interactive. To disable this, add `--disable-usage-stats` to the command that starts the cluster, or run the following command: `ray disable-usage-stats` before starting the cluster. See https://docs.ray.io/en/master/cluster/usage-stats.html for more details.
2023-11-28 06:59:10,622 INFO scripts.py:744 -- Local node IP: <IP_ADDRESS>
Traceback (most recent call last):
File "/home/ray/anaconda3/bin/ray", line 8, in <module>
sys.exit(main())
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/scripts/scripts.py", line 2498, in main
return cli()
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ray/anaconda3/lib/python3.9/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/autoscaler/_private/cli_logger.py", line 856, in wrapper
return f(*args, **kwargs)
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/scripts/scripts.py", line 771, in start
node = ray._private.node.Node(
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 307, in __init__
self.start_head_processes()
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 1404, in start_head_processes
assert self.get_gcs_client() is not None
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 676, in get_gcs_client
self._init_gcs_client()
File "/home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/node.py", line 721, in _init_gcs_client
raise RuntimeError(
RuntimeError: Failed to start GCS. Last 1 lines of error files:
[2023-11-28 06:59:10,701 C 13 13] (gcs_server) grpc_server.cc:119: Check failed: server_ Failed to start the grpc server. The specified port is 6379. This means that Ray's core components will not be able to function correctly. If the server startup error message is `Address already in use`, it indicates the server fails to start because the port is already used by other processes (such as --node-manager-port, --object-manager-port, --gcs-server-port, and ports between --min-worker-port, --max-worker-port). Try running sudo lsof -i :6379 to check if there are other processes listening to the port.
.Please check /tmp/ray/session_2023-11-28_06-59-10_623863_8/logs/gcs_server.out for details

When the the local_interactive is true the SSL communication is enabled between the worker and head node. This requires proper SSL certificates which is what the create-cert initContainer does. I suspect this was the reason for this error.

Just a few pieces on this.
We should reintroduce the init containers necessary for that local interactive use case and also add the old deletion logic back and update it to delete just those init containers.
If they are added back to the base template there we shouldn't need to have the extra local interactive template.

Thanks @Bobbins228 I have made changes as discussed. Please review again when you have time.


Support 30 GPU and bug of random seed

Hi, @xinzhuma
Q1: It seems that code can't run on 30x0 GPU.  I guess your code can't support cuda11 now.

Q2:It can't set random seed to do further experiment.
Since you have set fixed random seed now, but it is not really work as expected. Each time you train one model, the final  results are different. Do you have any suggestions about it? thanks very much! (This is strange, because we always use this method to make model reproducted)

I used cuda 11 and its works

I used cuda 11 and its works

Thanks for replying, which type of GPU do you use for traing now?

Q1:
The training processing is stucked in https://github.com/xinzhuma/monodle/blob/e426aa65fdc7ceedcaab0d637acf3d3425d0736c/lib/helpers/trainer_helper.py#L54

@Senwang98

the information is limited, maybe you need to check the device_id in the config file is coincident with your machine
it works well in my local environment, please ensure you use the same environments when you try different seeds.

@xinzhuma
Hi,
Q1: It's my fault!!! The codes is work well now, sorry. I make a mistake, 30 GPU can't support pytorch version < 1.7. pytorch>=1.7 work well except some warning.
Q2: I didn't change my random seed, I keep seed=444,but two training results are different (I use the orginal code of your repo).
I will try again, thanks for your reply.

okay, please tell me if Q2 is confirmed.

@xinzhuma
I further test three times training without any change of config file.
Now, the training is stable and the results are reproducted. The best results is 14.16 now.
I will close this issue and sorry for disturb.


syncthing profile

I looked at SyncTrayzor (cf. https://forum.syncthing.net/t/url-to-open-sync-folder-from-gui/2718/6) and find it a great work. When starting it the first time, it created a new syncthing profile (I think in \data\syncthing). Since I already played a bit with syncthing berfore there's already a profile in the App folder of the user profile. My would thus suggest to use this default folder of syncthing.

If you downloaded the portable version, then yes, it tells Syncthing to use a profile in data\syncthing. If you go to File -> Settings -> Syncthing -> Advanced, and uncheck 'Use custom home for Syncthing', then it will use Syncthing's default profile location.
If you had downloaded the installer instead of the portable version (the installer is recommended: auto-upgrades are much smoother), then it would have used Syncthing's default profile location by default.

(This is all in the README, albeit at the bottom...)

I see, thanks for the explanation.

The people who use the portable version are typically either:

Putting Syncthing onto a USB stick and using it across multiple computers
Want to put Syncthing and its index into an encrypted filesystem / container

Both of these groups want Syncthing to put its profile info data\, so the current defaults make the most sense. I may, however, move that 'Use custom home for Syncthing' out of the 'Advanced' section, to make it a bit more obvious.


small pactch repatched

Changelog(copied from #366, with a single addition):
QOL: Gem Cannon now also Exhausts Gems from cards in Stasis, and gems in sockets now actually do go to the Exhaust pile.
QOL: Character Boss' Cards' beta art is now independantly togglable(Should cover most cards, report if any isn't functional).
QOL: Branch no longer consumes your Vigor if you choose to get block from it.
QOL: Miscellaneous text and visual fix.
BALANCE: Unupgraded Prismatic Spray damage buffed: 2→3 for more initial pickability.
BALANCE: Upgraded Prismatic Barrier Block nerfed: 4→3 to counter the goodness of multi-dexterirty utilizability a bit.
BALANCE: Chrono-Boost buffed: (1 Strength) , 1 Strength per 12 cards played → (2 Strength) , 2 Strength per 12 cards played.
BUGFIX: Deflecting Bracer no longer functions when you're in Defensive Mode.
BUGFIX: Bottled Anomaly & Bottled Black Hole & Blank Card now functions like how the players would expect for Unknown cards.
BUGFIX Split: Specialist is now seeded.
BUGFIX: Fixes taking damage from the second tackle duplicated by Duplicated Form when you have Protective Gear.
BUGFIX: Fixed a rare bug where the game crashes if you play a Strike&Defend from characters other than the Bronze Automaton, which gained Encode in a previous Back to Basics event. (Fixing by only allowing adding Encoding to Automaton's Strikes and Defends)
BUGFIX: Fear No Evil now functions against Character Bosses.
BUGFIX: Ghost Lash & Specters Wail's Afterlife damage effect is now modified correctly by modifiers (like Vulnerable, Weak, Strength, Vigor).
BUGFIX: Fixed Character Bosses' energy panel popping up during an event before the fight starts (captive hero colosseum event).
BUGFIX: Fixed Act 3 Defect generating a Lightning Orb by Storm+Defragment with extra damage than it's supposed to.
BUGFIX: Fixed Woman in Blue's Intangible potion not functional to Non-attack damage.
OPTIMIZATION: Replaced an outdated image loading method to avoid potential memory issue.

It would be nice if you provided a full list of changes, so it is easier to understand what is being changed.
That said I checked all of what you did and some of the things you are trying to do need to be reversed:
-Branch and Vigor, current interaction is correct, changing would just create inconsistencies.
-Leave Hermit alone, we already have a lot of problems with updating him, and additional differences between standalone and Downfall will only complicate things further.
-Never solve anything by adding connections to mechanics into card abstracts, one of the things I want to do is to remove need for having an Abstract Card for each character, and what you did would just make that harder.
Btw AbstractBossCard now extends AbstractDownfallCard, so you can just use DM (or DM2) if you need additional magic numbers.

It's not correct, vanilla doesn't have any Attack that does not deal damage,  we made one ourself which just happens to be an exception of how vigor nomally does. Nobody would be happy if you have 10 vigor, playing a card to get Block and the vigor is gone, the true correct way for Branch is this: make the option gives you a card, and make Branch an exhaust SKill, my current method is just a lazy way to achieve that.
As for the hermit name change, it's a result I talked with Alex so you don't need to worry about that.
The new Abscard is used for enabling beta art on the bosses' cards, some of them are not vanilla cards, so I needed an extra way to deal with their IDs to make them work(Hermit cards and Downfall exclusive cards), if you could achieve that without the need of my added abs classes feel free to do your changes in the future.

It's not correct, vanilla doesn't have any Attack that does not deal damage,  we made one ourself which just happens to be an exception of how vigor nomally does. Nobody would be happy if you have 10 vigor, playing a card to get Block and the vigor is gone.

You say that, but there are multiple Attacks that don't deal damage if you don't fulfill the conditions: Flechettes, Finisher, Barrage, or just playing an X-Cost with no energy, to name a few, and they all consume Vigor when played.

It's not correct, vanilla doesn't have any Attack that does not deal damage,  we made one ourself which just happens to be an exception of how vigor nomally does. Nobody would be happy if you have 10 vigor, playing a card to get Block and the vigor is gone.

You say that, but there are multiple Attacks that don't deal damage if you don't fulfill the conditions: Flechettes, Finisher, Barrage, or just playing an X-Cost with no energy, to name a few, and they all consume Vigor when played, the fact that an Attack didn't deal damage doesn't mean that it shouldn't consume Vigor.

Even so that's just a bug not fixed yet, there's no reason you add a mechanic which is supposed to increase Attack damage, but got consumed without achieving what it's supposed to achieve, it could be avoided by my method if you aren't happy with my lazy way I'll code the new way.

It's not correct, vanilla doesn't have any Attack that does not deal damage,  we made one ourself which just happens to be an exception of how vigor nomally does. Nobody would be happy if you have 10 vigor, playing a card to get Block and the vigor is gone.

You say that, but there are multiple Attacks that don't deal damage if you don't fulfill the conditions: Flechettes, Finisher, Barrage, or just playing an X-Cost with no energy, to name a few, and they all consume Vigor when played, the fact that an Attack didn't deal damage doesn't mean that it shouldn't consume Vigor.

...the true correct way for Branch is this: make the option gives you a card and encodes the other, and make Branch an exhaust SKill...

Yeah, that would be ideal way to make the effect work, but description space doesn't allow for effect like that.

not really, make the options 2 preview cards, desc reads:" Chooses to gain a card from 2, encode the other card NL Exhaust."

Are you seriously trying to say that the description that you are suggesting explains anything? I could rework the card to make it work, but it doesn't fit my plans, and I don't want to rework a card, as well as have to then revert said rework in the next Auto update. Sorry but that amount of work just isn't worth the effort to remove a slight inconvenience that would require a specific relic to even have a chance to happen.

Are you seriously trying to say that the description that you are suggesting explains anything? I could rework the card to make it work, but it doesn't fit my plans, and I don't want to rework a card, as well as have to then revert said rework in the next Auto update. Sorry but that amount of work just isn't worth the effort to remove a slight inconvenience that would require a specific relic to even have a chance to happen.

fine I'll delete it.


Automate adding issues and PRs to project board

This introduces automation for adding issues and PRs to an org-wide project board. The goal is to have a clear view into incoming issues/PRs so that we know none can fall through the cracks.
This was first tested in examples-go: https://github.com/connectrpc/examples-go/pull/145

Doesn't this file need to go in the workflows subdirectory?

ugh, yes it should. I was robot approving PRs based on the prototype one. Chris we really do need batch changes :)

Yes, my mistake! Once Akshay is done with his repo audit, I will go through and fix all of these.


m3u8 with extension code

hello developers,
i try to play m3u8 url on clappr, but this url has an extension code after .m3u8
like:
http://<IP_ADDRESS>:8081/live/bein11-hq/chunks.m3u8?nimblesessionid=54038635&wmsAuthSign=c2VydmVyX3RpbWU9Ny8xNS8yMDE3IDc6MTQ6MDcgQU0maGFzaF92YWx1ZT14YjhLWEhUQ3BNUGpNaWhhYVpZY1ZRPT0mdmFsaWRtaW51dGVzPTYwJmlkPTE4OC4xMTQuMTEwLjE4JnN0cm1fbGVuPTE0
But it work on PotPlayer.exe & VLC
What is this code for? and i can play it on Clappr?
thank you

@Abdel-ilah your stream url is returning a "403 Forbidden" http error code. (well at least from my location).
Just go to Clappr demo page : open browser dev. tools (should be F12 key) and click on "network tab". Then enter the following javascript code in page and click on "run" button.
var playerElement = document.getElementById("player-wrapper");

var player = new Clappr.Player({
  source: 'http://<IP_ADDRESS>:8081/live/bein11-hq/chunks.m3u8?nimblesessionid=54038635&wmsAuthSign=c2VydmVyX3RpbWU9Ny8xNS8yMDE3IDc6MTQ6MDcgQU0maGFzaF92YWx1ZT14YjhLWEhUQ3BNUGpNaWhhYVpZY1ZRPT0mdmFsaWRtaW51dGVzPTYwJmlkPTE4OC4xMTQuMTEwLjE4JnN0cm1fbGVuPTE0',
  height: 360,
  width: 640
});

player.attachTo(playerElement);

Do you get also a 403 network error ?

Thank you kaslimani
yes, it's work fine
can you try with this please?
https://7dkwdw.mycloud.to/1/ZEWphKzr2joqPWgt132ihg/0/d/m/o/dqo4mw/hls/360/360.m3u8?e=1500116400

The server for https://7dkwdw.mycloud.to/1/ZEWphKzr2joqPWgt132ihg/0/d/m/o/dqo4mw/hls/360/360.m3u8?e=1500116400 does not send "CORS" headers in response. This is why it does not work.
Just try your URL on Clappr demo page while having browser dev. tools console open (you will see the error messages).

Thank you

http://oasisiptv.com:6969/live/skype/QvfhlC9dxz/4699.m3u8
I run it with clapper player.  The issue is I can play the m3u8 URL, but when i will play it multiple it stops. Only this URL play form one device. I want to play multiple.

for play it on multi devices you should ask the IPTV provider for activate re-streaming option, you need more $$

@Abdel-ilah  can we close this issue?

Yes boss

I have same issue when i play this link on ip at which i capture it from an app it open successfully but when i try to access it from another ip it says Forbbiden.
Please tell me the solution.Thanks in advance.
http://cdn.jazztv.pk:8087/app/SaudiSunnah-141/live/141M/chunks.m3u8?nimblesessionid=38413230&wmsAuthSign=c2VydmVyX3RpbWU9Mi81LzIwMTkgOToxOTowMCBBTSZoYXNoX3ZhbHVlPUVmZWROdy9JQ2hSdkxoSkpMVFJnd0E9PSZ2YWxpZG1pbnV0ZXM9MQ==


Update packit propose-downstream to support monorepos

The command should receive a new optional argument, [PACKAGE...], to define zero or more packages for which updates should be proposed downstream.
If no such argument is present, an update for all packages defined in .packit.yaml should be proposed. When one or more such arguments are present, updates should be proposed only for the packages specified.
The command should fail if any of the PACKAGE argument has no corresponding downstream_package_name in .packit.yaml.
When a PACKAGE argument is used PATH_OR_URL is expected to be explicitly provided. Example:
$ packit propose-downstream . backend

This work also includes updating packit.api.sync_release() to support specifying and optional list of package names.

Part of #1543
(I am removing the plan-for-Q1 state to plan/prioritise this as a whole epic.)

We decided to implement this through a decorator so that very few changes should be needed.
The changes will be linked to #1849.
Ideally we could have just one PR which adds support to the monorepo packages in Packit CLI.


.encode always throws 'int' is not a subtype of String

When I try to encode an Excel object back to an file I always get this error. Even when i try to run the provided example. Everything else is just working fine for me.

You are trying to run from pub.dev/packages/excel or directly from the github ?

I have copied the example directly in one of my flutter projects and also tried it as an command line tool writtewn with dart

Can you show me the error log ?

As you have not replied for long,
I thinks the issue might be resolved on your side
I am closing this issue.
If you have any issue don't hesitate to open up the issue.
~Thank You
LONG LIVE OPEN S🔥URCE


should pass --noEmitHelpers to tsc when compiling

Currently the generated js code contains lot of duplicate __extends which can be seen here https://npmcdn.com/<EMAIL_ADDRESS>var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};

This should be avoided by using tsc --noEmitHelpers.

In case of babel, it also has similar option and requires to import common helper module on runtime. While typescript compiler option does not specifies detail (https://github.com/Microsoft/TypeScript/wiki/Compiler Options) it seems like works similar way - is that correct? At least by local tryout, giving noEmitHelper option makes cjs build throws
    __extends(Subscriber, _super);
    ^

ReferenceError: __extends is not defined
    at D:\github\RxJS\dist\cjs\Subscriber.js:7:5

that helper function is not imported.

Supporting external helpers library is part of TS v2.0 roadmap. https://github.com/Microsoft/TypeScript/wiki/Roadmap
Here are some of the issues discussing about it https://github.com/Microsoft/TypeScript/pull/2901, https://github.com/systemjs/builder/issues/178, https://github.com/Microsoft/TypeScript/issues/3364
If using webpack you can use the imports-loader to fix the __extends issue. https://webpack.github.io/docs/shimming-modules.html#importing
Not sure about browserify. There could be something here https://github.com/thlorenz/browserify-shim.
Don't think it would be good to tell the user to define __extends as global var.

First, I don't think bundler can be considered as option since library should work out of box. For example, as noted above CJS module should work without any additional import, or bundling before any consumer start to use it.
Given aspect typescript compiler has plan to support it, I'd like to suggest to close issue this for now until those logistics are landed in compiler support. RxJS5 is living on leading-edge version of typescript (latest dev mostly) so once typescript dev branch adopt it as experimental, can try out quickly enough. What do you think @prabirshrestha ?
Also cc @blesh before make decision to close out to have second opinion if there is.
disclaimer : personally I strongly prefer to remove duplication as original issue states, and appreciate to find out this is occurring on current codebase. My opinion is let's wait bit more to have environment / logistics to be more ready.

I'm ok for closing this issue and revisiting the issue when typescript official supports runtime libs.
I havent tried it with rx but when I tested with one of my internal libs, I noticed that when gzipping the size is almost the same whether there are multiple __extends or a single __extends.

Thanks for confirmation. I'll close this for now, and reopen once typescript is ready to track further details of how to deliver this into RxJS. Appreciate once again, @prabirshrestha


[fix][ci] fix typo in publish metric workflow

Description
fix typo in called workflow condition

Codecov Report
Attention: 1339 lines in your changes are missing coverage. Please review.

Comparison is base (bb5073f) 72.08% compared to head (5d624e0) 72.22%.
Report is 981 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2976      +/-   ##
============================================
+ Coverage     72.08%   72.22%   +0.14%
- Complexity     5126     7285    +2159
============================================
  Files           473      722     +249
  Lines         21970    32513   +10543
  Branches       2351     3392    +1041
============================================
+ Hits          15838    23484    +7646
- Misses         4925     7410    +2485
- Partials       1207     1619     +412

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Your proposal has been selected email template

Value: $500.00Closes: 23:00 PST, Monday, September 11, 2017Location: Victoria In-person work NOT requiredOpportunity DescriptionTesting the "your proposal has been selected!" email templateAcceptance CriteriaTest that it works
Get paidHow to ApplyGo to the Opportunity Page, click the Apply button above and submit your proposal by 16:00 PST on 23:00 PST, Monday, September 11, 2017.We plan to assign this opportunity by Wednesday, September 13, 2017 with work to start on Wednesday, September 13, 2017.If your proposal is accepted and you are assigned to the opportunity, you will be notified by email and asked to confirm your agreement to the Code With Us terms and contract.Proposal Evaluation Criteriadetail

This opportunity has been assigned


Is there a way to link have a custom colorscheme in a different directory?

It would be awesome to be able to put a custom colorscheme in a file outside of the repo (/.vim/bundle/etc...). Is it possible to do something like this?
let g:lightline = {
\ 'colorscheme': '~/dotfiles/vimrc/frankelColorScheme.vim'
}

Yes.
source ~/dotfiles/vimrc/frankelColorScheme.vim
let g:lightline = {
\ 'colorscheme': 'frankelColorScheme'
}

Awesome.  That worked for me.

Did as recommended, ended up with the following error when opening vim:
lightline.vim: Could not load colorscheme lumiere-lightline.
Error detected while processing function lightline#update[5]..lightline#colorscheme[18]..ligh
tline#highlight:
line    2:
E716: Key not present in Dictionary: normal.left), len(c.normal.right)]
E116: Invalid arguments for function len(c.normal.left), len(c.normal.right)]
Error detected while processing function lightline#update:
line    5:
E171: Missing :endif
Press ENTER or type command to continue


Change inline archival error log to info log

Coverage increased (+0.009%) to 66.531% when pulling 88dfd08c0b310b2127d228acf78a668c87e4d47d on andrewjdawson2016:InlineLogging into 125b77d7230b6e3d7100649ce784aba35ef4af95 on uber:master.


Change log message to Warning

Description
Change log message to Warning

Codecov Report

Merging #35 (ad6a839) into main (5a0f17b) will increase coverage by 1.49%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #35      +/-   ##
==========================================
+ Coverage   81.81%   83.31%   +1.49%
==========================================
  Files         320      417      +97
  Lines        5900     9359    +3459
  Branches      565        0     -565
==========================================
+ Hits         4827     7797    +2970
- Misses        887     1285     +398
- Partials      186      277      +91

Impacted Files
Coverage Δ

...ce/Domain/OutgoingMessages/Peek/EnqueuedMessage.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

...ying.Contracts/BusinessRequests/MoveIn/Response.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

...sages/Queues/RequestChangeOfSupplierTransaction.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

...irmRequestChangeOfSupplier/MarketActivityRecord.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

...untingPointCharacteristics/MarketActivityRecord.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

...ccountPointCharacteristics/MarketActivityRecord.cs
6.66% <0.00%> (-93.34%)
:arrow_down:

source/Application/MasterData/Address.cs
7.14% <0.00%> (-92.86%)
:arrow_down:

...teristicsOfACustomerAtAnAp/MarketActivityRecord.cs
7.40% <0.00%> (-92.60%)
:arrow_down:

source/Domain/OutgoingMessages/MessageHeader.cs
12.50% <0.00%> (-87.50%)
:arrow_down:

...ngeCustomerCharacteristics/MarketActivityRecord.cs
16.12% <0.00%> (-83.88%)
:arrow_down:

... and 187 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Detect NuGet version and adjust behavior by per-version quirks

Be aware we forked for 105 which is RC2 and RTM.  So port if you need in Dev15

@bryanmacfarlane will do.

I will do a tslint pass immediately after this PR

@zarenner @phil-hodgson
I've added the following commits with PR feedback
https://github.com/Microsoft/vsts-tasks/pull/2336/commits/3aef40497935c2a0836d89eecbd4ae80aab47857
https://github.com/Microsoft/vsts-tasks/pull/2336/commits/8750d9e481b3ec58371741c0feb7d4e56538ab39?w=1
(the ?w=1 makes it ignore whitespace in the diff)

:shipit: (with comments)


Add --verbose flag

Resolved issue https://github.com/sindresorhus/speed-test/issues/6 by adding the --verbose flag.
I also added extra tests for testing the json outputs. It seems that t does not work inside cp.stdout.on('data', .... Is this in issue in AVA or not? I fixed it by calling kill if the json is not correct which will throw an error which will fail the test.
@sindresorhus I know I have access to the repo, but want your consent on this ;).

Nice! I'm surprised though that the data event is fired after all the speed stuff. I would have assumed it already knows which server it picked when the speed testing has started. Maybe something useful in the config or testserver event?

I also added extra tests for testing the json outputs. It seems that t does not work inside cp.stdout.on('data', .... Is this in issue in AVA or not?

Probably just an issue since it's using an old AVA version. Just bump it to latest and try again.

Nice! I'm surprised, though, that the data event is fired after all the speed stuff. I would have assumed it already knows which server it picked when the speed testing has started. Maybe something useful in the config or testserver event?

I looked in the testserver event and all the data is in it but the names of the properties are not the same then in the data event. (Should we open a ticket for this one?) I resolved it by mapping the property names of the testserver event to the names of the data event.
I also fixed the tests with the latest AVA version.
Let me know if I can improve more code.

Should we open a ticket for this one?

:+1:

Awesome! :D


Robot Settings Error Handling

At the moment if a robot-settings.toml file is invalid, we silently regenerate it without any notice to the user.
This PR adds a robot-settings-error.txt that is generated when an error occurs. This file contains a message to tell the user that their settings has been regenerated, a detailed error for why the settings were invalid and in most cases a copy of the old settings file (as long as the file is valid unicode).
An error file is not generated if the file is missing, as this is the expected behaviour for a new USB drive.
This PR also adds better validation of the WiFi PSK.
Example error file:
There was an error loading your robot-settings.toml
Your robot-settings.toml has been overwritten.

robot-settings.toml did not match schema: 1 validation error for ParsingModel[RobotSettings]
__root__ -> team_tla
  Team name did not match format: ABC, ABC1 etc. (type=value_error)

Invalid settings file:

team_tla = "MYROBOT"
usercode_entrypoint = "robot.py"
wifi_psk = "64ea-33fc-c10b"
wifi_region = "GB"
wifi_enabled = true

Also fixes #175

How important is is that the system carry on in the face of errors? Would rejecting the file (or invalid settings) and then stopping be a valid option?
For example: is there an error LED somewhere we can use to indicate failure?
The current approach here does improve things, as there's now some diagnostic information, however it still feels relatively easy to miss that an error file has been created. Additionally, it looks like the error file will persist even when the settings read was successful which could complicate things on subsequent runs.
It may be worth thinking through what sorts of scenarios can cause errors here. For example: could it be that someone has customised their WiFi config, had it working, then tweaked some other aspect of the config and now finds they can't connect to the WiFi due to the settings having all been regenerated? That sort of thing feels like it could end up in blind alleys around "why has my WiFi stopped working (but the robot still ran)" which miss the fact that the WiFi is actually working just with different credentials.
Having the old config output as part of the error file feels like a good aspect here, however I'm not really convinced that the "regenerate and replace" approach is a good one to start with.
I would encourage only modifying what's on the USB stick if the file (or perhaps individual settings) are completely missing and preferring not to modify something the user has provided (even if what they've provided is garbage). Following from that I'd encourage gracefully degrading or loudly complaining about the errors (or both) rather than quietly making things work implicitly.
While perhaps less convenient I would expect doing so to lead to much more "obvious" behaviours both for competitors and implementers.
(Am I missing something which makes that sort of approach unfeasible?)

Thanks for the good questions, much appreciated :)

How important is is that the system carry on in the face of errors? Would rejecting the file (or invalid settings) and then stopping be a valid option? For example: is there an error LED somewhere we can use to indicate failure?

We don't have a separate LED we could use to indicate to failure. We could use the OK LED on the KCH to indicate this, perhaps a reuse of the red colour.

The current approach here does improve things, as there's now some diagnostic information, however it still feels relatively easy to miss that an error file has been created. Additionally, it looks like the error file will persist even when the settings read was successful which could complicate things on subsequent runs.

Excellent point. Would you suggest deleting the error file (if it exists) where the settings file has been successfully parsed?

It may be worth thinking through what sorts of scenarios can cause errors here. For example: could it be that someone has customised their WiFi config, had it working, then tweaked some other aspect of the config and now finds they can't connect to the WiFi due to the settings having all been regenerated? That sort of thing feels like it could end up in blind alleys around "why has my WiFi stopped working (but the robot still ran)" which miss the fact that the WiFi is actually working just with different credentials.

There is an indicator on the robot to show that the WiFi is working. I'm not sure that's applicable to all potential settings though.

Having the old config output as part of the error file feels like a good aspect here, however I'm not really convinced that the "regenerate and replace" approach is a good one to start with. I would encourage only modifying what's on the USB stick if the file (or perhaps individual settings) are completely missing and preferring not to modify something the user has provided (even if what they've provided is garbage). Following from that I'd encourage gracefully degrading or loudly complaining about the errors (or both) rather than quietly making things work implicitly. While perhaps less convenient I would expect doing so to lead to much more "obvious" behaviours both for competitors and implementers.
(Am I missing something which makes that sort of approach unfeasible?)

From an implementation perspective, this is potentially difficult as the settings file is parsed in a different process from where the code is executed. We would have to think carefully how to avoid the code starting when the settings file is invalid, the current service architecture just doesn't work well for that scnenario.
I'd also be concerned about a robot failing to run in a competition match because the settings file became corrupted.
Regenerating the file is the current behaviour for an error, but just completely silently.
I think in the future there is an aim to have the settings editable from the web ui instead anyway, which would mitigate most of these issues. That is very much not in scope until SR2024 though.

The current approach here does improve things, as there's now some diagnostic information, however it still feels relatively easy to miss that an error file has been created. Additionally, it looks like the error file will persist even when the settings read was successful which could complicate things on subsequent runs.

Excellent point. Would you suggest deleting the error file (if it exists) where the settings file has been successfully parsed?

I wondered about this, however it feels like this could lead to undesirable things too. One example is that running the robot twice after breaking the settings file leaves no trace of the error and completely erases the original (broken) settings file.

From an implementation perspective, this is potentially difficult as the settings file is parsed in a different process from where the code is executed. We would have to think carefully how to avoid the code starting when the settings file is invalid, the current service architecture just doesn't work well for that scnenario.

Given the presence of the usercode entry point in the settings file I assume there's already a strict ordering to things though? What would happen if we just never provided the usercode entry point from the service that's parsing the settings? (It feels like that should have a similar effect -- the code never runs)
For clarity: I also think it would be reasonable to only degrade the parts of the settings which aren't valid -- for example if the WiFi details aren't valid but the usercode entry point is, then running the code but disabling the WiFi might be a better solution than fully regenerating the file.

I'd also be concerned about a robot failing to run in a competition match because the settings file became corrupted.

Good point.
As the settings file includes the usercode entry point this already seems possible with the regeneration route?
Bear in mind that the regeneration path could also lead to running the wrong code as an alternative outcome to not running any code. This (wrong code) feels like it would be quite hard to diagnose and competitors would probably feel it was our fault if it happened.
I hadn't spotted this (wrong code) scenario before, though this is the sort of thing I mean by the behaviour not being "obvious". It also feels a pretty compelling reason to me to avoid the regeneration route and focus on improving the feedback to the user that something is wrong.

The current approach here does improve things, as there's now some diagnostic information, however it still feels relatively easy to miss that an error file has been created. Additionally, it looks like the error file will persist even when the settings read was successful which could complicate things on subsequent runs.

Excellent point. Would you suggest deleting the error file (if it exists) where the settings file has been successfully parsed?

I wondered about this, however it feels like this could lead to undesirable things too. One example is that running the robot twice after breaking the settings file leaves no trace of the error and completely erases the original (broken) settings file.

Good point. I think we should continue to leave it there, in the same manner as log.txt

From an implementation perspective, this is potentially difficult as the settings file is parsed in a different process from where the code is executed. We would have to think carefully how to avoid the code starting when the settings file is invalid, the current service architecture just doesn't work well for that scnenario.

Given the presence of the usercode entry point in the settings file I assume there's already a strict ordering to things though? What would happen if we just never provided the usercode entry point from the service that's parsing the settings? (It feels like that should have a similar effect -- the code never runs)

Oh I wish. The settings file is actually read twice, both in astmetad (this PR) and astprocd. I've created #186 to document this tech debt. We should definitely sort this out and introduce a strict ordering, although I'm very uneasy about doing that mid-cycle.
@PeterJCLaw: Would you be okay with us leaving this as is for this year, documenting the changes we need and then introducing strict ordering for next competition year?

As the settings file includes the usercode entry point this already seems possible with the regeneration route? Bear in mind that the regeneration path could also lead to running the wrong code as an alternative outcome to not running any code. This (wrong code) feels like it would be quite hard to diagnose and competitors would probably feel it was our fault if it happened.
I hadn't spotted this (wrong code) scenario before, though this is the sort of thing I mean by the behaviour not being "obvious". It also feels a pretty compelling reason to me to avoid the regeneration route and focus on improving the feedback to the user that something is wrong.

I'm somewhat regretting adding the usercode_entrypoint setting now to be honest. I can think of three choices here:

Leaving it as is. It wasn't an issue last year, although we also didn't tell them about the settings file.
Attempting to mitigate the diagnosis issues. My best idea is to add a line at the top of the log file stating what the entrypoint was.
Removing the usercode_entrypoint setting outright. I think we could get away with this mid-year.

@raccube I'd be interested to hear your thoughts here please

Is there an option to remove the regeneration of the file in cases where it already exists? If it's read twice then it sounds like the regeneration already has race conditions associated with it.
Following from that updated behaviour, disabling features that depended on unavailable settings seems reasonable to me. Having this error file would then help identify issues. If we're able to also have an LED (or something) show an error at boot in such cases that's a bonus.

@PeterJCLaw: Would you be okay with us leaving this as is for this year, documenting the changes we need and then introducing strict ordering for next competition year?

I'm not completely clear on what you mean by the "this" here. If you mean the case of running the user code even when the WiFi settings are broken, I think that's fine (perhaps even in the long term as long) as the feedback to the user is clear.
If you mean something else could you clarify?

For my understanding/posterity -- could you expand on what the failure mode is if we didn't regenerate the file? i.e: just left the "bad" one in place?

With our current architecture, exceptions would be thrown in all Astoria daemons and no metadata would be processed. This would result in code never running because the mqtt messages get thrown away. It's a really bad idea.
It's not even really possible either. Pydantic is used to parse and validate the file and then that struct is used everywhere. There can't really be invalid data.
We will fix this, just not now.

Ah, ok. I had thought I'd seen some checks for things like the WiFi name being the right shape (having a TLA) -- i.e: validation of the content of the data rather than parsing errors. Does that case behave differently?


Install: Don't install buoyantio/kubectl into the prometheus pod.

In the initial review for this code (preceding the creation of the
runconduit/conduit repository), it was noted that this container is not
actually used, so this is actually dead code.
Further, this container actualy causes a minor problem, as it doesn't
implement any retry logic, thus it will sometimes often cause errors to
be logged. See
https://github.com/runconduit/conduit/issues/496#issuecomment-370105328.
Further, this is a "buoyantio/" branded container. IF we actually need
such a container then it should be a Conduit-branded branded container.
See https://github.com/runconduit/conduit/issues/478 for additional
context.
Signed-off-by: Brian Smith<EMAIL_ADDRESS>

I added @adleong as a reviewer because he added this originally. I added @olix0r as a reviewer since he was the original reviewer who said we should remove this during the original review. I added @klingerf as a reviewer because he's the one that seems most able to test if this works.
Note that I didn't test this at all.

/cc @dadjeibaah

Another possibility here is that we intended to have the prometheus container proxy its requests through the kubectl container, but never actually configured it to do so.

"ok, this may have just been cargo cult.  siggy might know better" -> Adding @siggy as a reviewer.

One thing we should figure out: Looking at https://prometheus.io/docs/prometheus/latest/configuration/configuration/ I can see that Prometheus can access the Kubernetes API to discover services and pods to scrape (IIUC). However, does the way we configure Prometheus actually result in it using the Kubernetes API? If Prometheus is using the Kubernetes API, then we need to review whether its use of the Kubernetes API is secure (e.g. over HTTPS, properly authenticated, etc.).

https://prometheus.io/docs/prometheus/latest/configuration/configuration/#<kubernetes_sd_config>
# The API server addresses. If left empty, Prometheus is assumed to run inside
# of the cluster and will discover API servers automatically and use the pod's
# CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
[ api_server: <host> ]

Further TLS and authentication options are configurable as well, but I think this default behavior is what we want?

https://prometheus.io/docs/prometheus/latest/configuration/configuration/#<kubernetes_sd_config>

Yes, I agree that seems to be the TLS configuration we want. So I think this is good to go. @siggy, do you know of any reason to not do this?


Fixes Type name to delete project/screen

[ ] My code follows the:

[x] Google Java style guide (for .java files)

[x] ant tests passes on my machine

For all other changes:

[x] I branched from master
[x] My pull request has master as the base

What does this PR accomplish?
I have added Type name to delete screen feature, where user have to type accurate screen name to delete screen to avoid accidental deletion. Also this PR automatically allows user to save current checkpoint while deleting screen.
Fixes #2071  .

Can one of the admins verify this patch?

@AppInventorWorkerBee ok to test

From testing:
The Remove Screen probably shouldn't prepopulate with any screen name, even Screen1.

When you click OK with a screen name that doesn't match, there is no response at all.

@SusanRatiLane @beinganonymous I would suggest having a KeyUp handler that validates by coloring the textbox red or not (this is what GitHub does to delete a repo).  This operation cannot be undone. Please type the name of the screen ({0}) into the box below to confirm you really want to do this."

Possibly also change the checkbox text to "Create checkpoint before deleting"

@SusanRatiLane @beinganonymous I would suggest having a KeyUp handler that validates by coloring the textbox red or not (this is what GitHub does to delete a repo).  This operation cannot be undone. Please type the name of the screen ({0}) into the box below to confirm you really want to do this."

This warning currently appears when OK is clicked with a match as a final "Are you sure?" confirmation.

@SusanRatiLane @beinganonymous I would suggest having a KeyUp handler that validates by coloring the textbox red or not (this is what GitHub does to delete a repo).  This operation cannot be undone. Please type the name of the screen ({0}) into the box below to confirm you really want to do this."

This warning currently appears when OK is clicked with a match as a final "Are you sure?" confirmation.

The text I wrote included instructions for how to use the form. I'm not sure that it is obvious to most why you would need to type a screen name in. "After all, the app already knows what screen I am on." And "why do I have to type the current screen name versus the one I want to delete" (which may not be the current one).
Also, why does the textbox prepopulate with Screen1? Screen1 can never be removed. The text should be blank.
The error message that appears after you click OK is the one that appears in prod to confirm deletion. It might be worth keeping as one last failsafe, but otherwise it could probably go after this feature is merged as it is meant to be more of a confirmation than just clicking OK.

@SusanRatiLane @beinganonymous I would suggest having a KeyUp handler that validates by coloring the textbox red or not (this is what GitHub does to delete a repo).  This operation cannot be undone. Please type the name of the screen ({0}) into the box below to confirm you really want to do this."

@ewpatton Should i add feature like if user types wrong screen name then textbox should be red or if user types right screen name then textbox should be green ?

@beinganonymous I think red versus normal is sufficient for this. Because the operation is destructive, I don't think we want to use green at all if possible. Like I've previously said, I think how GitHub does this for repo deletion is a good model of how it should look/behave.

@ewpatton @SusanRatiLane I have implemented requested changes in above commits.

[x] The Remove Screen won't prepopulate with any screen name.
[x] If screen name doesn't match then notification to the user will be given.
[x] Added KeyUp handler where TextBox Border turns into red color if text matches with Screen Name.
[x] Added Warning Message to the Dialog Box.
[x] Removed Commented Code.
[x] Changed the checkbox text to "Create checkpoint before deleting"

Resolved all Merge Conflicts

This is what I see when I type a form name that doesn't match. The top-screen message asks the user to "select" a valid screen name, and nothing turns red.
You did show the error at the top in your video demo, but I didn't even notice it. It's not really where you think to look. If we're going to have an error message, it should say, "Please type a valid screen name," but I'm not sure we need the error message at all. The field border turning red should be enough.

@SusanRatiLane Updated following changes

[x] TextBox border will turn red if screen name is wrong.
[x] Classname NewFormDialog changed to DeleteFormDialog.


React-scripts v4 upgrade

Now that react-scripts v4 is released, do you plan to upgrade your awesome tool ?
Thank you !

I wanted to ask the same question :) npm is warning for some vulnerabilities in the current version (2 low, 2 high), so I'm not sure this would be fit for production.


Ensure parity between C/C++ and Zig projects with regards to unwind tables

Zig doesn't emit the .eh_frame and .eh_frame_hdr sections by default. However, C/C++ compilers (including zig cc/zig c++) do. We should align the behavior as much as possible by default.

See: https://github.com/ziglang/zig/pull/9067

I don't think we actually need to do anything here after all. We could consider a property to disable unwind tables for size optimization purposes, but that's a separate feature request.


Support stopping early when resuming a workflow

I have workflow that contains multiple long running compute steps interspersed with various short running steps.  In the process of debugging one of the short running steps, I found it very cumbersome to have all downstream tasks automatically run for every iteration.  On many occasions, I find myself wanting to just modify and/or retry a single step from a successful/failed run and observe the new intermediate results.
Would it be possible for the resume command to support an option like the following to specify not just which run to use but also where to resume from?
python debug.py resume --origin-run-id 3 --steps a..b

Another particularly nice thing about this is if an error resulted from a bug in an upstream step, we would be able address it without needing to rerun the entire workflow again.

+1 to this request. I recently had a long-running flow fail because of an upstream logical bug and wished I could have resumed the flow with greater control.


As the Designer, I want to separate installations so that bootstrap is loosely coupled.

[x] Create app directory for the following:

[x] dotfiles
[x] ssh
[x] tmux
[x] vim

[x] Create os directory for the following:

[x] darwin
[x] linux

[x] test

Git-commit 8305591 completes Sprint v1.1.0.


🐛 Bug Report: Zip files get zipped again

👟 Reproduction steps

upload a zip file
after upload the same file get zipped again

👍 Expected behavior
detected if the file is a compressed format (zip, 7z, gz) and keep the file untouched.
👎 Actual Behavior
zip the same file again
🌐 Browser
Chrome

The only case that would be useful is when there is only one file in the .zip format (because the app must send it always in zip to be consistent). It may be interesting if someone wants to share one big zip file. This would save a bit of disk usage.
Would you be interested in trying to make this feature ?

The only case that would be useful is when there is only one file in the .zip format (because the app must send it always in zip to be consistent). It may be interesting if someone wants to share one big zip file. This would save a bit of disk usage. Would you be interested in trying to make this feature ?

Yeap, I will look further, just need to finish the homelab setup first

i think this become a minor since zip compression level is available.


RegisterAttributeExtractor doesn't seem to work

I copied the example from here: https://silverbullet.md/Space Script#Custom attribute extractors
I changed it to filter to be custom task for this MVP:
\```space-script
silverbullet.registerAttributeExtractor({tags: ["testtask"]}, (text) => {
  // This is an MVP after all
    return {
      name: "I'm not here...",
      completed: "oops",
      noshadows: "nothing here either"
    };
  }
});
\```

I then create a task:

[ ] #testtask this should have extra attributes

reindex using the Space: Reindex command, wait for it to complete, reload the page, and refresh the query for:
testtask

Which returns:

ref
tag
name
done
page
pos
state
tags
itags

misc/todolist@217
task
this should have extra attributes
false
misc/todolist
217

testtask
task, testtask

I expected 2 new attributes, 'completed' and 'noshadow'. I also expected the 'name' attribute to have changed into "I'm not here..."
What am I missing?

@montarion Were you able to get this to work? I'm seeing the same issue.
@zefhemel Tried the steps you suggested - but the attribute extractor does not seem to be getting invoked. I can see it being picked up when spacescript.ts runs but post that, it does not seem to be getting invoked. Tried adding a console.log() inside the function body and tried both online mode and sync mode, but it does not show up in either side. I could very well be missing something obvious - but any more ideas I can try? I don't see any errors in server side logs as well as in JS console. PS: I'm running edge.


Make update more permissive

The plan is to allow dot notation keys, but with current typescript, it is impossible to type check them. There is a question as to whether this should be locked behind an opt in parameter since having these keys allowed means that misspelled and nonexistent keys won't be caught. And if it is switchable behavior, which should be the default?

https://discord.com/channels/732325252788387980/793933527065690184/803610397315039272

Closing as obsolete


[BUG]: custoimize.yaml missing from includes folder

Summary
Customisations not loading. The YAML file is missing from includes folder.
Issue Type
Bug Report
Configuration File Name
customize.yaml
Home Assistant Version
2023.3.6
Configuration code
n/a

OS / Environment
All
Steps to Reproduce
N/a
Expected Results
Customisation showing against the entities
Actual Results
Entertainment entities are missing

Code of Conduct

[X] I agree to follow the Code of Conduct

Turns out, the following line does not work if it is included in the homeassistant.yaml file: -
customize: !include ../entities/customize.yaml
The line needs to be in the configuration.yaml file as follows: -
customize: !include entities/customize.yaml
Customisations via the customize integration are now load properly!
Resolved by 60eb894


Domains with EP routing

I came across this question while waiting for a flight - https://www.reddit.com/r/dotnet/comments/9jn69g/question_not_having_much_luck_on_stack_overflow/
What can we do to make multiple domains with asp.net core easy? Am I right that a policy could work? Should come up with a sample.

It depends what you want. This is a really open ended question. I think the start for this would be to define what the scenarios and requirements are.

I can think of three scenarios:

One endpoint but the domain is a route value.

public IActionResult GetBlogPosts(string domain) { }

Probably not valuable because you can get the host off the HttpRequest in the controller anyway.

Different controllers (maybe grouped into an area) depending on the domain

[Route("/")]
[Domain("contoso.com")]
public class HomeController {
    public IActionResult GetBlogPosts() { }
}

[Route("/")]
[Domain("adventureworks.com")]
public class HomeController {
    public IActionResult GetBlogPosts() { }
}

Different razor pages (with the domain in the path) depending on the domain

Pages/adventureworks/AboutUs
Pages/contoso/AboutUs

One endpoint but the domain is a route value.

What would you use that route value for? I'm not sure this is a thing, because route values -> selecting an endpoint OR route values -> URL generation - if you're not using it to change how either of these behave, then it's not really a routing feature.
If the whole ask is just to be able to tokenize a hostname with routing, that's kinda weak. I've seen people ask for {sub}.mydomain/com/.... where all that we do is populate a route value from that so they can model bind it.

Different controllers (maybe grouped into an area) depending on the domain

I've seen people ask for restricting access to parts of an app by domain or by port, or other various criteria. It seems like a good fit for policies.


Tidelift

I'm going through the process of updating packages I have authored on https://tidelift.com/ ;
This package should have any tidelift income shared between myself and @mk-pmb , for that both of us would have to sign up to tidelift, also happy to discuss over email or twitter.

If you see a way to make money off of this project (in compliance with the license). feel free to do so and donate some of it to me. :-) You can reach me via email at mk (plus) copyleft (guess a symbol) pimpmybyte.de. We can postpone discussion of donation methods until you have a stack that's worth pondering the transaction fees.

Also sorry for the wording of the license reminder. I should have checked the commit history first. Obviously my one actial patch pales in comparison to your work. :D

To anyone interested, I agreed with @Raynos to let him take all the money, as it's mostly his work still and Tidelift currently isn't worth the effort for me. (Most of the effort being German tax and regulations stuff.)


Support volumes and disks

Some other cleanup needed for the deploy:

Render linode label in list
Add linode attach to item in volume create modal
Accept volumes and disks in linode config
Handle only disks in rescue mode for now

Coverage increased (+0.06%) to 71.593% when pulling 9e0693ecb968a2ddbe15c6f84104141ea5e4b672 on support-volumes-and-disks into 244743de36f7ce614d0de66c26867576f2f67cab on develop.

State isn't updating on the Advanced page when adding a Volume.

Coverage increased (+0.08%) to 71.605% when pulling b1cd0424480cc196f13095c20bfc076754c69ba7 on support-volumes-and-disks into 244743de36f7ce614d0de66c26867576f2f67cab on develop.


feat: Format fails build in most sensible configurations

Status
READY
Description
Dart Format fails build in most sensible configurations
Type of Change

[x] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[ ] 🗑 Chore

Hi @romanr, thanks for opening this PR.
After talking with the team on this we are running short on why this would be a useful change. Overall we want all code being submitted to follow a similar format for consistency and best practices. The Dart formatter can be updated to ignore certain rules if your looking for a way to get around errors being thrown which feels like the better usage pattern here.
Do you have a specific use case that your trying to achieve here that you can describe?

It fails the whole build if there is a single character formatting issue in any of the files. Why can't we have warning configurable.
Yes, it should work ideally when every single team member has synchronised formatter settings that work, and I congratulate you on having such a team. No sarcasm.
But you may commit text resource files, and it fail due to a non-code file. You have to spend time learning about the formatter, what to change, and where. What if developers use different IDEs and settings? There will be differences.
Formatting is not critical to performance; it is about code readability and maintainability. Not everyone works in a high-security facility with strict code reviews. Different teams have different work styles, and I sometimes have projects where I work alone, which makes formatting even less relevant.
Also, the question arises if you need to fix something urgently by editing in GitHub web; that would be akin to the movie Man on Wire with the formatting.
After we renamed a module, spelling check now fails the whole build! I crawled over that workflow file and couldn't find a solution, so I just turn that file off.  It's the definition of a spelling police.
What if you have an international team and people make spelling mistakes almost every day? It would be quite costly to run around and fix them one by one instead of reviewing all the spelling warnings once in a while.
I suppose you can keep it as rigid as you like if this is just for yourself and for those who remember how to configure the formatter and spell exceptions, in a beautiful world, I wish I was special.
I just want to ask how to get workflow to work in a fork, because after I pointed our CI to the fork, I am getting "no such parameter" for parameter that I added. Looks like commit is not part of "@v1"; there's a tagging script, but can I just add some tag to make it work?

It fails the whole build if there is a single character formatting issue in any of the files. Why can't we have warning configurable. Yes, it should work ideally when every single team member has synchronised formatter settings that work, and I congratulate you on having such a team. No sarcasm.
But you may commit text resource files, and it fail due to a non-code file. You have to spend time learning about the formatter, what to change, and where. What if developers use different IDEs and settings? There will be differences.
Formatting is not critical to performance; it is about code readability and maintainability. Not everyone works in a high-security facility with strict code reviews. Different teams have different work styles, and I sometimes have projects where I work alone, which makes formatting even less relevant. Also, the question arises if you need to fix something urgently by editing in GitHub web; that would be akin to the movie Man on Wire with the formatting.
After we renamed a module, spelling check now fails the whole build! I crawled over that workflow file and couldn't find a solution, so I just turn that file off.  It's the definition of a spelling police. What if you have an international team and people make spelling mistakes almost every day? It would be quite costly to run around and fix them one by one instead of reviewing all the spelling warnings once in a while.
I suppose you can keep it as rigid as you like if this is just for yourself and for those who remember how to configure the formatter and spell exceptions, in a beautiful world, I wish I was special.
I just want to ask how to get workflow to work in a fork, because after I pointed our CI to the fork, I am getting "no such parameter" for parameter that I added. Looks like commit is not part of "@v1"; there's a tagging script, but can I just add some tag to make it work?

The workflows are how we, VGV, apply our standards to code both internally and externally, they might not fit everyone’s workflow. We prefer our workflows to have flags that control formatting, so a "disabling formatting" flag would not fit with our own standards and imho is a disaster to happen.
You can as of course fork and change it locally, as you mentioned already. You can easily refer to forked workflows by their  GitHub path and commit/branch or tag:
uses: <YourOrgOrUser>/very_good_workflows/.github/workflows/dart_package.yml@<tag|branch|commit_sha>

See the GitHub Workflow syntax for more information.
PS: the Dart team is working on new ways to change Dart formatting (https://github.com/dart-lang/sdk/issues/56863) which imho would be the preferred way for controlling dart formatting, in theory one could then disable things in the config so the CI would just follow that instead of having to pass them as flags to the CI.

It fails the whole build if there is a single character formatting issue in any of the files. Why can't we have warning configurable. Yes, it should work ideally when every single team member has synchronised formatter settings that work, and I congratulate you on having such a team. No sarcasm.
But you may commit text resource files, and it fail due to a non-code file. You have to spend time learning about the formatter, what to change, and where. What if developers use different IDEs and settings? There will be differences.
Formatting is not critical to performance; it is about code readability and maintainability. Not everyone works in a high-security facility with strict code reviews. Different teams have different work styles, and I sometimes have projects where I work alone, which makes formatting even less relevant. Also, the question arises if you need to fix something urgently by editing in GitHub web; that would be akin to the movie Man on Wire with the formatting.
After we renamed a module, spelling check now fails the whole build! I crawled over that workflow file and couldn't find a solution, so I just turn that file off.  It's the definition of a spelling police. What if you have an international team and people make spelling mistakes almost every day? It would be quite costly to run around and fix them one by one instead of reviewing all the spelling warnings once in a while.
I suppose you can keep it as rigid as you like if this is just for yourself and for those who remember how to configure the formatter and spell exceptions, in a beautiful world, I wish I was special.
I just want to ask how to get workflow to work in a fork, because after I pointed our CI to the fork, I am getting "no such parameter" for parameter that I added. Looks like commit is not part of "@v1"; there's a tagging script, but can I just add some tag to make it work?

The workflows are how we, VGV, apply our standards to code both internally and externally, they might not fit everyone’s workflow. We prefer our workflows to have flags that control formatting, so a "disabling formatting" flag would not fit with our own standards and imho is a disaster to happen.
You can as of course fork and change it locally, as you mentioned already. You can easily refer to forked workflows by their GitHub path and commit/branch or tag:
uses: <YourOrgOrUser>/very_good_workflows/.github/workflows/dart_package.yml@<tag|branch|commit_sha>

See the GitHub Workflow syntax for more information.
PS: the Dart team is working on new ways to change Dart formatting (dart-lang/sdk#56863) which imho would be the preferred way for controlling dart formatting, in theory one could then disable things in the config so the CI would just follow that instead of having to pass them as flags to the CI.

I made it off by default as suggested. still no?

I made it off by default as suggested. still no?

Hi @romanr. After talking more with the team I'm going to close this PR out. This isn't something that we plan on supporting as it doesn't hold to our standards & practices. Like stated by @wolfenrain you can easily make this change in your fork and point your projects to use that workflow if you need this change. I also suggest adding in some comments on the linked Dart issue (https://github.com/dart-lang/sdk/issues/56863) as really that refactor would be the best outcome for everyone in making the formatter a bit more config driven.


load_collections will fail if  ~/.ansible/collections cannot be created

It is not guaranteed that ~/.ansible/collections is the correct place to store collections and load_collections will fail if that directory cannot be created.
load_collections should probably use $ANSIBLE_HOME/collections as the directory to store collections in.

And/or respect ANSIBLE_LOCAL_TEMP?

I run in this issue as well. In my case the HOME directory in my Gitlab CI is not writeable. Of course I could simply change that, but it was intended to test, that everything works without writing to ~.
Since ansible 2.14 and the introduction of ANSIBLE_HOME ansible does not require it anymore.
As it is fixed here already, when I can expect that it will be reflected in ansible-lint as well?


[api-docs] fix typo in Threads.md

A new commit was made into the api-docs repo. This issue was created automatically. Need to review if we made any change to the library for this commit.
https://github.com/discord/discord-api-docs/commit/5faed00c0312e15cf31bf7690b45ee19d0bef1ea

This commit will not effect our lib's code. No changes required.


Tweak message list design (2)

Make sure there's space between subject and date
Add en dash to separate sender name and preview text
Use different text colors for read and unread messages
Display date in same style as subject

Before
After

Closes #4110
Closes #6692

Looking at the demo emails from this screenshot, I wonder if there shouldn't be an ellipsis in the subject.
"Verification Engineering: A Future ..."
instead of "Verification Engineering: A Future.."

That's because android:ellipsize="marquee" was used. I believe this only worked (long subjects were scrolling when the list item was focused) with hardware keyboards. I couldn't get the old behavior to work with the new layout. So I switched to android:ellipsize="end".

So I switched to android:ellipsize="end".

Are there any functional limitations associated with this change?
And I still ask myself: Isn't there always a space before an ellipsis?


document interfaces

The spec package can profit from some documentation.

Some interfaces are now already documented.

Only https://godoc.org/github.com/xh3b4sd/anna/spec#Ctx is left.


'The token supplied to the function is invalid' in ClientContext Update()

The ClientContext Update() method accepts some 'token'. I presume it should be the one that's returned from NewClientContext() method as 'outputToken'.
However, when I do pass the 'outputToken' to the Update() method it throws the 'The token supplied to the function is invalid' error.
What would be the correct input 'token' for the Update() method, how should the user prepare such a correct 'token'?

The ClientContext Update() method accepts some 'token'. I presume it should be the one that's returned from NewClientContext() method as 'outputToken'.
However, when I do pass the 'outputToken' to the Update() method it throws the 'The token supplied to the function is invalid' error.
What would be the correct input 'token' for the Update() method,

Your description matches how this code was supposed to be used.

how should the user prepare such a correct 'token'?

I would use this https://github.com/alexbrainman/sspi/blob/1a75b4708caa219fd8d8261cd37c923ff6710a32/negotiate/negotiate_test.go as an example. Make sure you check for errors in your code, and match the semantics of SSPI API.
Alex


Capture JS logs in Chrome

We've been using Wallaby at Hashrocket on our tilex project since 0.16 and love it.  We've been using it on client projects as well and its been called at our office "The best integration testing experience so far" by grizzled Rails veterans!  When switching from PhantomJS to Chromedriver --headless the experience was definitely missing the JS errors output and so Brian Dunn did the coding to add it and I packaged it up into a PR.
Issue #278
This commit captures js logs for chromedriver in the same way that logs
were captured for phantom.  That is, after each action the driver checks
for logs, appends to the LogStore and parses the logs to be output to
the terminal.
The LogStore and LogChecker have been abstracted for use by all drivers.
Each driver implements its own Logger module.
The chrome driver was delegating to the selenium driver
in many cases, making it hard to wrap the function with a check_logs!
call in the same way that the phantom driver did it.  To accomodate
that, we created a private delegate function that calls check_logs
and the calls Kernel.apply to call the appropriate driver function.

Wow, thank you a ton for this and for all the nice words :tada: :rocket: :green_heart:
Not sure when I'll get to review this one (Although Chris & Aaron might be better suited for this PR either way) but thanks for taking all the time and also for taking the time to put some nice words in there, means a lot :green_heart:
Enjoy a complimentary picture of cute bunnies!

Thanks so much for this PR! 🎉 It looks great at first glance and I'm looking forward to trying it out. I should be able to leave you some feedback in the next couple days.

Planning to get to this on Friday.

This particular Travis check is failing, WALLABY_DRIVER=selenium WALLABY_SELENIUM_VERSION=3, it fails locally for us too both on this branch and on master --> https://travis-ci.org/keathley/wallaby/jobs/278739707
-@chriserin + @briandunn

I just re-ran that job in the build and we're all green now. Sometimes we have to rerun the builds to make it pass.
I wonder if the reason this failed for you locally was because you were running Selenium 3.5 (see #305).

:dancer:


Support for merge join and ordered indexes

Some data sources can return statements in a particular order. Data stored in a B-tree has a natural order due to the natur of a B-tree.
The current join strategy for RDF4J is the iterate over the left data source and for each row create a new iterator from the right data source. This takes advantage the fact that we can bind the result from the left iterator when we create the right iterator, which makes it very selective.
For larger datasets the above approach can cause a lot of IO requests. An example could be that we are joining all ?a a foaf:Person with ?a foaf:age ?age. If we have 100 000 000 people, then that ends up being 1 000 000 000 new iterators for retrieving the age.
Instead we can take advantage of the ordering of the indexes and retrieve:

?a a foaf:Person from the OPSC index (O and P are constant)
?a foaf:age ?age from the PSOC index (P is constant)

These two iterators would both be ordered on the subject (S) variable (?a). We can then do a merge join, which is very efficient both IO wise and memory wise.
This issue aims to:

support inner join using merge join
allow for specifying the order when retrieving statements
inform the query join optimizer about which statement orderings that are available
pick merge join when possible (and appropriate)
support ordered indexes in the ExtensibleStore

This would be really cool.

@hmottestad How will this compare to the existing hash joins?

The hash joins are used for negation, so it's a bit of a different use case. Merge join is meant to be an alternative to regular join, but faster for large joins.
Our current approach is akin to indexed nested loop join, we loop through the left side and do indexed lookups on the right side. With smart read ahead and caching it would be possible to reduce the IO, but worst case we end up with O(N log(N) ) reads from disk with a B+ tree index.
With merge join we would do two range queries against the index, so basically O(2) reads. It's not quite true to call it O(2) because the range query reads one block at a time from the B+ tree, so we could call it O(N/K) where K is the size of each block.
So it's basically a more optimal way of joining large amounts of data when the underlying store has ordered indexes.
Does LMDB have ordered indexes?

(The hash joins are sometimes used for joins where there are scoping issues, so it's not only for negation.)

Yes, LmdbStore uses the same indexing scheme as the NativeStore.
We also experiment with hash-joins to optimize fetching of time-series data where each property of an item has multiple time-tagged values:
https://github.com/linkedfactory/linkedfactory-pod/blob/3948b866f227749576428ed72c58cc0cf12cf28a/bundles/io.github.linkedfactory.service/src/main/scala/io/github/linkedfactory/service/rdf4j/KvinEvaluationStrategy.java#L192

We should think about how we can pass this about information about sorted iterators on to GROUP BY and ORDER BY operators.
e.g.
SELECT ?o
WHERE {?s ?p ?o}
ORDER BY ?o

If the statementpattern evaluation step/iterarator provides information to order step/iterator we can avoid redoing a lot of work.
Same for the GROUP BY, if encounter order is fixed or partially fixed we might avoid building the large hash table.
Knowing the order can also help filters. e.g.
SELECT ?o
WHERE {?s ?p ?o . FILTER (?o < 10)}

If we know that ?o is ordered we can stop iterating the first time we hit ?o < 10 = false. This kind of early termination can be a big win.

Group by is probably the most important one. In the short term it can probably be solved by adding a getOrder() to the CloseableIteration interface. Then the group by iterator can decide for itself if it can take advantage of ordered data. The more advanced approach would be for the join order optimizer to take into consideration the order of the underlying data to produce a better query plan.
The order of the index doesn't have to be using the same comparator as SPARQL uses for ORDER BY or <, etc. It's actually more likely that it will be incompatible because the common approach to indexes is to use a long number to represent an RDF Value and have a lookup table that can convert the long number to the RDF Value. Essentially this means that it's not very likely that we will be able to optimize ORDER BY or filters with comparison operators.

The order of the index doesn't have to be using the same comparator as SPARQL uses for ORDER BY or <, etc. It's actually more likely that it will be incompatible because the common approach to indexes is to use a long number to represent an RDF Value and have a lookup table that can convert the long number to the RDF Value. Essentially this means that it's not very likely that we will be able to optimize ORDER BY or filters with comparison operators.

FYI @hmottestad for the readonly sail I am still working on the comparison between the long index for the values is equivalent to the SPARQL values comparison. So for me it could work.

We could check if the comparator returned by SailDataset is a ValueComparator instance.


Sync to latest llvm/mlir to resolve RVV environment configuration problems

Currently the llvm version@8f966ce that buddy-mlir relies on has problems when cross-compiling MLIR to RISC-V, which makes it unable to build "build-cross-mlir" to verify the RVV-related cases(see this discourse created by YangSen @linuxlonelyeagle  for more details). After verification, using the most recent commit @55662b2 can fix this issue, so we may need to find a chance to sync to upstream in recent times. @zhanghb97

This problem I told @zhanghb97  before and after we will solve this problem, but it should take a while.

Nice catch @xlinsist @linuxlonelyeagle!
We will update this as soon as possible!


Merge language aliases

Many implementations have different language names for the same semantic language. For example:
'js', 'Javascript', 'JavaScript'
'c sharp|C#', 'C sharp', 'C#'
'Bash', 'bash'
Can we normalize this to some common name? At least fix javascript.

Could you restore dumps version 3.2 and see if it is fixed thoroughly?

/usr/local/lib/node_modules/elasticdump/node_modules/line-reader/lib/line_reader.js:108
        throw err;
        ^

Error: ENOENT: no such file or directory, open 'elasticsearch_algorithm_v3.0.json'
    at Error (native)
Mon, 14 Dec 2015 19:02:56 GMT | starting dump
/usr/local/lib/node_modules/elasticdump/node_modules/line-reader/lib/line_reader.js:108
        throw err;
        ^

Error: ENOENT: no such file or directory, open 'elasticsearch_category_v3.0.json'
    at Error (native)
Mon, 14 Dec 2015 19:02:56 GMT | starting dump
/usr/local/lib/node_modules/elasticdump/node_modules/line-reader/lib/line_reader.js:108
        throw err;
        ^

Error: ENOENT: no such file or directory, open 'elasticsearch_implementation_v3.0.json'
    at Error (native)

Did you test the restore script?

@MinjingZhu Doesn't seem to have an affect.

@grant I pushed again. It should work this time :) Could you pull and restore v3.2 again?
Also, I noticed that all the 'js' ones come from npm, and I don't have control on it,
so after you restore dumps, run a redis server in any folder, and then run AlgorithmNames/impl_languages_deduplication.py
It will do deduplication on your current elasticsearch database.

How do you start that python script?
granttimmerman:AlgorithmNames$ python impl_languages_deduplication.py
Traceback (most recent call last):
  File "impl_languages_deduplication.py", line 1, in <module>
    from elasticsearch import Elasticsearch
ImportError: No module named elasticsearch

Can you just check on your end?

Did you install the python driver of elasticsearch?

I don't know how to do that. Can you add instructions to the README or here?

I'll close assuming @xkxx is working on merging JavaScript and js.


Image with fixed width and height

From what i can see this library is meant for images with a width of 100% of the container. Using an image with a fixed width and height doesn't fully pan since its calculating for an image that is meant to be 100% of the container. I can fix this by setting limitToBounds to false so that i can pan it but then by doing this you can pan the content off the screen. Is there a way to use an image with a fixed width and height while sticking to the limit bounds?
Thanks.

Yes, you can try to put your image into div and style it inside as you want 👍

https://im3.ezgif.com/tmp/ezgif-3-bc00ea4c1fbd.gif
I think the question might of been confusing. The gif above illustrates my question. The image is larger than the viewport so when i zoom in a little i can pan but its not panning all of the image. If i resize the browser you can see that there is more of the image to the right that you're not able to pan.

You have to use some css styling for that - object-fit / width / height styling, image must be contained inside of the wrapper

That answers my question, It wont work as intended with an image larger than the wrapper. Thanks for the reply, i appreciate it!