Load Through Instead of Patch

CptMoore posted on ModTek's issues:

Create BattleTechLoader.exe as a substitute for starting BattleTech.exe and that automatically patches any un-patched assemblies before starting BattleTech.exe automatically. Bascially a nice wrapper around BTML for users. Thats why Skyrim is doing.

This is a straight improvement to the current patch-in-place behavior.

Do you actually want to do this?
I don't think you should make a BattleTech.exe substitute or loader, but you could merge in a module initializer and pre-empt and delay the Unity startup, display your own GUI, and ultimately do the same thing...
I think the patch-in-place behavior can be more flexible and simpler in some ways than pre-runtime patching. Having both facilities available would be great though. Similar to "core mods" that have to modify the jar vs regular "mods" that are loaded by the mod loader in Minecraft.

I think the patch-in-place behavior can be more flexible and simpler in some ways than pre-runtime patching.

What do you mean, what exactly would be simpler?

If the the launcher still patches the files on the hard disk, there is zero reason to change the fundamental nature of BTML. The only reason to change the fundamental nature of BTML is to change how the game is injected and I believe that injection through a launch-through process that doesn't touch the game files is basically the only way to improve the current behavior.
As to adding in wizbang features like checking versions -- straight no from me. Things that are complicated break and foundational parts of how mods work should not break, therefor BTML should not be complicated.
BTML also shouldn't be moved from the \managed\ folder because it uses the games libraries to perform the patch, excepting Mono.Cecil which is included in the injector assembly. Since the game is the only part a users setup that we can rely on, this makes sense to me. Using the same libraries as the game reduces friction and therefor reduces complication.
Ultimately, I very much like the core choices that I've made so far for both ModTek and BTML. I want this project to stay working for as long as people are still playing the game -- surely you can understand the thought process of keeping everything simple.

If the the launcher still patches the files on the hard disk, there is zero reason to change the fundamental nature of BTML.

That was not what had in mind for the launcher, the launcher is for automating patching after game updates, so improving the user experience by just clicking an exe called BTMLLauncher .
But you ask for additional features, like the ability to start the native experience without mods. That can be achieved by making the launcher communicate with BTMLoader and telling it to actually load mods. Patching is done regardless.
Making it patch only in memory would be another neat feature, but thats yet outside of my experiences with C#/C++ and unity.
Please tell me if you are still against a BTMLLauncher that just automates patches,  because that is what I was about to implement.

surely you can understand the thought process of keeping everything simple at the foundational level.

In what is simple I always have to defer to your judgement since you are obviously the one who has to maintain this and coordinate all effort. My suggestions are often from myself needing a feature and seeing features available in other modded projects. Sometimes its from the view of a modder and sometimes from a gamers point of view. I'm sorry if I overload you with questions and demand answers all the time, but from my point whats simple for you is hard for me to guess.

There is a difference between building a tool over BTML and changing how it works. If you want to build a tool that depends on BTML or a tool that installs it, that's fine by me. It'd just be it's own thing, not be part of BTML if that makes any sense.

An installer is also needed. Would you mind if I create separate projects within the BTML sln and add those to this repo for the launcher and installer?
The installer might take some time, my knowledge about this is kinda old (~10 years ago with NSIS).
Why put the launcher and installer in the same sln? Well release packaging, it should be one click to create the btml loader, btml launcher and the btml installer.
Or dont you want any code of such in this repo? You know my stance, if it is smaller than the linux kernel put everything related in the same repo. Different artifacts are managed using different projects under one single sln.

see https://github.com/Qwiso/QModManager , they dont have a loader but and installer, they ask just to reinstall the installer to setup everything again
they seem to have the loader and the dependency management (modtek) as the same app

Look, I'm going to be real with you -- I like the way that it is. Small and self-contained. And I feel that I have clearly stated this and tried to be clear about what improvements that I think would be valuable. The constant barrage of insinuations that I'm wrong about choices I made is starting to wear on me as well -- I understand that you would make different choices then me. Hell, I might have made different decisions three years ago and almost certainly will make different ones in the future.
I do not feel as if a launcher that still patches game files or an installer bring any real benefit to the project as it is now, in the very early days. Perhaps when BattleTech modding is significantly more mature and the codebase has been tested over some amount of time, then it might be good to have an installer/launcher. Perhaps when HBS is not patching the game every week.
Ultimately, I cannot prevent you from spending your time doing these things, even if I think that they are not well spent. I can tell you that I probably won't be accepting a pull request that adds them at least for some time.

The constant barrage of insinuations that I'm wrong about choices I made is starting to wear on me as well

Since you feel that way, then I will cease doing that.

You've made lots of suggestions that I've followed through on, and I don't think you've made any bad or incorrect suggestions. It's just that when it's the same suggestion made multiple times after I've tried to explain my reasoning behind making it.
I don't know, I could just be sensitive or hard to work with and just need to get over it. Or maybe I need to say 'no' or 'not right now' better, I don't know. I'm a work-in-progress just as much as the project is.


Set initial sequence number to one, as 0 is non-positive

When trying to get this repository working, at TNO we ran into the following issue with Pitch Federate Protocol Server 5.5.9:
Exception in thread "SessionServer Thread for /<IP_ADDRESS>:35610" java.lang.IllegalArgumentException: Sequence number argument must be positive
        at se.pitch.fedpro.common.session.SequenceNumber.validateArgument(SequenceNumber.java:152)
        at se.pitch.fedpro.common.session.SequenceNumber.<init>(SequenceNumber.java:36)
        at se.pitch.fedpro.common.session.AtomicSequenceNumber.<init>(AtomicSequenceNumber.java:14)
        at se.pitch.fedpro.server.session.ServerSessionImpl.<init>(FedProSession_b8021.map:59)
        at se.pitch.fedpro.server.session.SessionInitializer.ctrlNewSession(FedProSession_b8021.map:103)
        at se.pitch.fedpro.server.session.SessionInitializer.readMessage(FedProSession_b8021.map:59)
        at se.pitch.fedpro.server.session.SessionInitializer.initializeSession(FedProSession_b8021.map:42)
        at se.pitch.fedpro.server.session.SessionServerImpl.b(FedProSession_b8021.map:103)
        at se.pitch.fedpro.server.session.SessionServerImpl.a(FedProSession_b8021.map:88)
        at se.pitch.fedpro.server.transport.ServerTransportBase.a(FedProSession_b8021.map:133)
        at se.pitch.fedpro.server.transport.ServerTransportBase.c(FedProSession_b8021.map:58)
        at java.base/java.lang.Thread.run(Thread.java:829)

The solution seems to be to start at one.
I guess one can debate whether zero is a positive number or not, but it feels a bit strange that Pitch Federate Protocol Server 5.5.9 doesn't accept zero. But starting at one also doesn't hurt anyone, and at least this way the examples in this project work :)
PS: the protobuf in this repository in general is not compatible with Pitch Federate Protocol Server 5.5.9, but at least this gets the beginning running.

Hi @patricstout-tno
It is clear fromt the specification that the valid range for sequence numbers are from 0 to 2^31-1. If this is not accepted in any FedPro server then the server should be updated. I'm reluctant to work around this on the client side.
The Pitch Federate Protocol Server should accept 0 as a valid sequence numbers. Maybe the protobuf compatibility issue is at fault, or maybe the Federate Protocol spec has been updated since 5.5.9 was released.

The sequence number is in the header, and is unrelated to the protobuf itself. That is part of the payload. So those two things shouldn't influence each other.
Either way, I do agree with you that this feels more like an issue with the Pith Federate Protocol Server. We will raise a ticket via the normal support channels about this at Pitch.


Src folder

Moving all the source code in to the src folder.

You forgot about appveyor ... but let's say we can fix that later

@dangershony you rolled back NStratis to the 13th October with this change.

hmm, that is not necessarily a bad thing after all. it seems like the changes done after that introduced some problems in the Node that some people on slack reported, including for example #695

The above seems not entirely correct, at least #679 exists even with the current master. But I can see one race condition being reverted in the code by this.


Multiple Panadapter Support

Support multiple antennas within the Flex Source block that would create multiple outputs on the block. Similar to the following image of the USRP source block:

I'm going to take this on in the multiple-channel-source branch

I think that each output is going to have to be a different panadapter since each panadapter can only have one active antenna. So the number of outputs will max out at 8, and for each you'll be able to choose a center freq, bandwidth, dax_iq_ch, RX_Ant, etc.
This should be worked on after Issue #16

Actually it'll max out at 4 since that's where we run out of dax IQ channels. Maybe it is best to run through waterfall instead of panadapter.


Add a Ko-Fi, Patreon, Tidelift, or some other way for us to support this app!

I really want to help support this app. I use it EVERY day, and want to show my support. With Github now supporting sponsor buttons at the top of the repo, it may be a perfect time to add it :)

I have been seeing the sponsor button around and have added doing this to my to do list. I will look into it soon.


Redmine 4.x Compatibility

Dear Tobias,
we've recently upgraded to Redmine 4.x due to the ability to use updated versions of Ruby, Rails and their gems. Unfortunately, your plugin does not (yet) support this Redmine version.
Are there any plans to apply this compatibility ? Honestly I think that this maintenance mode should be a default function by Redmine ;-)
Sincerely,
Ruud

Hi Ruud,
I added support for Redmine 4 / Rails 5 and released version 2.2.0


Fix importing HARs from fiddler

I wrote this patch a year ago. It's not very good quality, but I think it worked.
Fiddler was missing the page entry.
I would not merge this PR directly, but if someone is trying to fix chromeHAR to make it great again... then this should probably fall into scope. :)

Hmm, I've been meaning to get back into this. I should honestly just re-write it :-| Lets see if I can find time. I think with the new stuff on the web now this can probably be a full on web app with some really nice features.
That being said I constantly go back and forth on whether I should re-write this or just incorporate it into chrome dev-tools. 😢  I can't pick.

I did some testing today and I might be able to create a much cleaner har-viewer piggy backing on all the work the DevTool team did. It's a much decouple/browser compatible tool now.
Also I was thinking more of a https://github.com/ChromeDevTools/timeline-viewer so har-viewer with the same kind of idea. This will resolve all the open issues and new features I wanted to add.
hmmm.


webidl: track stability of individual interface & namespace members

Fixes #2560
It's possible for some members of an interface (or namespace) to be stable and others not, if a partial interface is defined in an unstable webidl file which adds to an interface defined in a stable file. This wasn't properly kept track of for all interface members before, most notably for operations. This PR fixes that.
This did unfortunately root out some WebXR-related bits of WebGL that were marked stable when they shouldn't have been. So, currently, this is a slight breaking change. I'm not sure if I should special-case them to be left as stable or accept the slight risk of breakage, since it seems unlikely that people would be using these isolated bits of WebXR without enabling --cfg=web_sys_unstable_apis for the rest of WebXR.

Thanks for this! I agree it's probably best to land this and deal with breakage as a follow-up, if any.


Edit pokemon notes

We need to be able to edit pokemon notes

This is already possible from the pokemon settings modal.

Huh, so it is. My bad.


arm64 support

https://github.com/mjishnu/alt-app-installer/blob/3619afce0a348b3e197daa5cc667a59631fe7306/app/modules/url_gen.py#L27
I had to change this to return "arm64" to download successfully.
The arm version Python PyQt6 has some installation issues so I have to run the x64 Python version. Maybe adding an arm64 checkbox now can be fine.
And how to do the packaging to exe?

hey would you be willing to test this, i do not own an arm pc so was unable to test it
import platform

def os_arc():
    if platform.machine().endswith("64"):
        return "x64"
    if platform.machine().endswith("32") or platform.machine().endswith("86"):
        return "x86"
    if platform.machine().endswith("arm64"):
        return "arm64 endswith success"
    if platform.machine().endswith("arm"):
        return "arm endswith success"
    if platform.machine().startswith("arm64"):
        return "arch64 startswith success"
    if platform.machine().startswith("arm"):
        return "arch startswith success"

print(os_arc())

what does the output shows ?
if this works we dont need a toggle it will automatically figure it out, the packaging is done using pyinstaller

The problem for me is installing pyqt6 on arm64 python.

def os_arc():
    machine = platform.machine().lower()

    if machine.endswith("arm64"):
        return "arm64"
    if machine().endswith("64"):
        return "x64"
    if machine.endswith("32") or machine.endswith("86"):
        return "x86"
    else:
        return "arm"

print(os_arc())

can you try now,  i see that even if i do a logic like this it would be waste since you are not able to run it in arm64 python but still in future it might work so if you can please provide output of this test it would be great.

The problem for me is installing pyqt6 on arm64 python. Or provide a cli version could be fine.

try older version of pyqt, currently i am rewriting the program from scratch to c#, and not doing any major changes. let me see what i can do about cli if it aint too complicated i would implement it.

This is fine.
>>> print(os_arc())
arm64

here is a cli version of alt app installer: https://github.com/mjishnu/alt-app-installer-cli

Guess this is because arm python cannot load the dll?

did you install python net

 Guess this is because arm python cannot load the dll?

this new release should fix it, no longer using python net using subprocess module instead
https://github.com/mjishnu/alt-app-installer-cli/releases/tag/v1.0.1

Great. It works.


ssl_certificate_by_lua_block and set_by_lua_block directives not supported

Describe the bug
ssl_certificate_by_lua_block and set_by_lua_block directives are not supported
To Reproduce
Steps to reproduce the behavior:

Use either of ssl_certificate_by_lua_block or set_by_lua_block and write lua.

Expected behavior
Lua injection should be supported for these directives as well.
Screenshots

IDE (please complete the following information. See Main Menu -> Help -> About):

OS: Darwin 20.6.0
Product: GoLand
Version: 2021.2.3
JRE Version: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Plugin (please complete the following information. See Main Menu -> File -> Settings -> Plugins):

Version: 2022.1.1

@aavshr Support for these directives was added in version 2024.2


Some tbs I got running nbdev_conda_package

If I run outside of a nbdev repo I got

Traceback (most recent call last):
  File "/home/miniconda3/envs/fastai2/bin/nbdev_conda_package", line 10, in <module>
    sys.exit(nbdev_conda_package())
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/fastscript/core.py", line 76, in _f
    func(**args.__dict__)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/cli.py", line 299, in nbdev_conda_package
    write_conda_meta(path)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/conda.py", line 51, in write_conda_meta
    name,d1,d2 = _get_conda_meta()
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/conda.py", line 15, in _get_conda_meta
    cfg = Config()
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/imports.py", line 42, in __init__
    assert self.config_file.exists(), "Use `create_config` to create settings.ini for the first time"
AssertionError: Use `create_config` to create settings.ini for the first time

If I run in a previous nbdev repo I got

nbdev_conda_package
Traceback (most recent call last):
  File "/home/miniconda3/envs/fastai2/bin/nbdev_conda_package", line 10, in <module>
    sys.exit(nbdev_conda_package())
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/fastscript/core.py", line 76, in _f
    func(**args.__dict__)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/cli.py", line 299, in nbdev_conda_package
    write_conda_meta(path)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/conda.py", line 51, in write_conda_meta
    name,d1,d2 = _get_conda_meta()
  File "/home/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/conda.py", line 25, in _get_conda_meta
    pypi_t = urllib.request.urlopen(f'https://pypi.org/pypi/{name}/{ver}/json').read()
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 563, in error
    result = self._call_chain(*args)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 755, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/home/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

ANd on a newly created nbdev_new I got

$ nbdev_conda_package
Traceback (most recent call last):
  File "/home/tyoc213/miniconda3/envs/fastai2/bin/nbdev_conda_package", line 10, in <module>
    sys.exit(nbdev_conda_package())
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/site-packages/fastscript/core.py", line 76, in _f
    func(**args.__dict__)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/cli.py", line 299, in nbdev_conda_package
    write_conda_meta(path)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/conda.py", line 51, in write_conda_meta
    name,d1,d2 = _get_conda_meta()
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/site-packages/nbdev/conda.py", line 25, in _get_conda_meta
    pypi_t = urllib.request.urlopen(f'https://pypi.org/pypi/{name}/{ver}/json').read()
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 563, in error
    result = self._call_chain(*args)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 755, in http_error_302
    return self.parent.open(new, timeout=req.timeout)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 641, in http_response
    'http', request, response, code, msg, hdrs)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/home/tyoc213/miniconda3/envs/fastai2/lib/python3.7/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

Probably all is because I havent logged or downloaded conda things related to packages?

It relies on a pip module already being available on pypi. We should document that! :)


Side-effects of a "follow" activity

If user A follows user B, there should be about 4 changes to the state of the world:

User "A" should be added to user B's "followers" collection.
User "B" should be added to user A's "following" collection.
A "follow" activity should be added to user A's recent activities stream.
The same "follow" activity should be added to user B's inbox.

Whose responsibility is it to handle these additions in SoLiD?

This reference may help to understand "followers" and "following" collection and proposed properties (link relations) relating them to agent (owner)

http://w3c-social.github.io/activitypump/#collections
http://w3c-social.github.io/activitypump/#actor-objects

They're also referenced in many of the use cases.
Evan Prodromou

On May 3, 2015, at 10:42 AM, ☮ elf Pavlik ☮<EMAIL_ADDRESS>wrote:
This reference may help to understand "followers" and "following" collection and proposed properties (link relations) relating them to agent (owner)
http://w3c-social.github.io/activitypump/#collections
http://w3c-social.github.io/activitypump/#actor-objects
—
Reply to this email directly or view it on GitHub.

It will be the client's responsibility -- i.e. whichever app the user goes through to browse and manage their social graph.

I can imagine following someone and not wanting to notify them I am doing that. So I don't think point 1 user A being added to user B's following collection is immediately necessitated by A following B. A can follow B by just adding a link to one of his groups. Of course that will mean he'll have to do pulls to find out about changes on B's public feed.
What is required if A wants to be notified of changes to B, is then for A to subscribe to some changes on some resources. That would require a generic notification protocol on some resource to be developed. Say A wants to be notified about changes to B's blogs entries on a certain topic, then he could send such a request to the relevant resource. Perhaps to receive all public changes that would require subscribing to the activity stream. The server there would be an agent that would then notify A's chosen notification inbox, which would just an LDPC that took certain types of notification messages - perhaps activity stream items.
We have an example of client based sharing where it made sense in a one to one scenario for Ian's client who made the resource to also notify Jan. The client could of course go through a third party that would have a responsibility to notify someone else.
Wether that third party is a server or a client should not matter. What needs to be clear is when one is doing it directly, and when another agent is doing it for one.
The advantage of @deiu 's thin server approach is that it is allows one to create very standardised and non domain specific servers. It would be good to be able to stay as generic as possible on the server, so that the social web can grow without new APIs needing to be invented for every type of communication activity.

So, there won't be a way to keep a list of followers in SoLiD? This is a pretty core feature, and it's pretty important for doing distribution.
I'm realizing that when you do a "follow" action with SoLiD, since you're using FoaF, that's just updating the main FoaF document with a "knows" property or something similar.
So you don't plan to keep a separate collection or other resource for the lists of followers, following, and friends?

On May 9, 2015 3:36:05 PM EDT, Evan Prodromou<EMAIL_ADDRESS>wrote:

So, there won't be a way to keep a list of followers in SoLiD?

I'm not sure I understood Henry's post, but I think he's talking about hypothetical designs and concerns and possibilities.
Cimba does have a list (container) of followings.   Alice is responsible for storing that Alice followers Bob.   She can decide whether to make that fact public, or just show Bob, or keep it to herself as she likes.   (It's just a data page on her site.)
This is

a pretty core feature, and it's pretty important for doing
distribution.

In this design, following is used to (1) tell the world a sort of endorsement, and (2) tell your reader software which feeds you want to see.
An actual data-subscription mechanism affecting data flow, e.g. PuSH, is seen as independent and private, and not yet implemented to my knowledge.
This is probably the point to apologize for SoLiD not being as fully defined ("solid") as one would like for this conversation.

I'm realizing that when you do a "follow" action with SoLiD, since
you're using FoaF, that's just updating the main FoaF document with a
"knows" property or something similar.
So you don't plan to keep a separate collection or other resource for
the lists of followers, following, and friends?

No, we do.

Reply to this email directly or view it on GitHub:
https://github.com/linkeddata/SoLiD/issues/16#issuecomment-100535209

@evanp foaf also has a notion of groups. So you can have a number of different groups, such as those people you follow, those people who follow you, the members of the Social Web WG, your family, etc... Some of these groups can be maintained by you others by other organisations ( eg the Social Web WG members ) All of those are really useful for building access control rules on resources. So it is really important.

I don't see using container excluding using direct relations e.g. follows
I also try to look for a way to avoid creating 4 properties/predicates for each type of relation
following, follower, followings, followers and instead use reverse + ldp:DirectContainer / ldp:IndirectContainer or hydra:Collection this way managing everything with single property / predicate follows


BIGTOP-3618. Bump Solr to 8.11.1.

https://issues.apache.org/jira/browse/BIGTOP-3618

Bump Solr 8.11.1 addressing CVE-2021-44228 was released.
SOLR-14981 removed contrib/clustering. We need to fix do-component-build for this.

tested this on CentOS 8 container (x86_64):
$ ./docker-hadoop.sh \
   --create 1 \[
   --image bigtop/puppet:trunk-centos-8 \
   --memory 16g \
   --repo file:///bigtop-home/output \
   --disable-gpg-check \
   --stack zookeeper,hdfs,solrcloud \
   --smoke-tests solr
...(snip)
Now testing...
:bigtop-tests:smoke-tests:solr:test (Thread[Execution worker for ':' Thread 4,5,main]) completed. Took 9.254 secs.

BUILD SUCCESSFUL in 43s
34 actionable tasks: 7 executed, 27 up-to-date
Stopped 1 worker daemon(s).
+ rm -rf buildSrc/build/test-results/binary
+ rm -rf /bigtop-home/.gradle

+1 to merge!

Built package on Debian-11 X86
Checked log4j jars (2.16.0 in this version)
Smoke tests succeeded


mraa_helper_functions and Banana Pi

Changes some functions to use const char * to make them more flexible to use.
Some functions that were introduced for Beaglebone also show up in this request.
Signed-off-by: Michael Ring<EMAIL_ADDRESS>

Dammit, the combination of git, open pull requests and CLion killed the cat. It seems I am in bad need of some more reading on git and pull requests. The whole changeset for BananaPi and a small fix for atoi made it into this pull request.

I've tried to rebase as best as possible in this branch: https://github.com/intel-iot-devkit/mraa/tree/banana. Can you retest and tell me if everything is good? There was a function prototype _extract() with no implementation?
For the next PRs please delete your fork and re-fork, your current fork is a huge mess, it took me way too long to rebase this and I'm not 100% of the result tbh. I really recommend you stop using your GUI and read a little on git rebase. I'm happy to walk you through it if you need help (irc/email/gh issue), but essentially never use 'merge' and never commit anything to your 'master'.

As #186 this is all merged in master


Overlay not showing

Currently whenever I first load into Foundry or anytime I refresh / reload (F5), the overlays on the tokens won't show. I can't explain why, but if I simply change over to another scene it will start showing correctly, including if I change back to the original scene in question. I disabled all other mods with the exception of Token Mold and I can reproduce it 100% reliably.
Windows 10
Foundry 0.6.0
Token Mold Ver 2.6.1
Pathfinder 2nd Edition ruleset

interesting
can't reproduce it at all
what are the exact settings you've set up for the overlay?
and which browser are you  using?
does the regular hover from FVTT show? (the rectangle)?

It's from the Foundry program, not the browser. When I hover over the tokens the regular box appears.
Showing AC, HP, Speed and Perception on overlay. Applying other settings to unlinked tokens (numeric suffix)

I first noticed it in Foundry ver 0.5.6 but hadn't gotten around to posting about it

could you test one thing please:
try to reproduce it, go into console.

First check for errors. (if there are some, post them here please)
then type Hooks.on('hoverToken', (...args) => console.log('Hover', args)); hover over a few tokens, observe the output and paste a screenshot here, please

No errors at baseline.
After pasting Hooks.on('hoverToken', (...args) => console.log('Hover', args)); I get

Hovering over several tokens

For me the problem appears when tabbing out of the browser window, or just pressing alt and hovering over tokens (happens in FF and chrome).

No errors at baseline.
After pasting Hooks.on('hoverToken', (...args) => console.log('Hover', args)); I get

And still no overlay appearing?
hmpf
unsure what causes this, need some digging around...

I've just noticed the same bug. Oddly, when I log in as a player (via browser), they can see the overlay for the tokens they own - but I can't see any overlays at all as GM!

if i see it correctly this error persists already for longer than Token Mold v2.6?
Since i can't replicate it on my end, i need you people to help me find the bug! (propably)
i'm rather busy for this week, but could you contact me on discord (  Moerill#7205 ) so i could come back to you for some further testing, when i get around to take a deeper look here?

For me the problem appears when tabbing out of the browser window, or just pressing alt and hovering over tokens (happens in FF and chrome).
@Khybersghost
Are you using EasyTarget? Deactivating that fixed it (for now at least).
Edit #2:
Holding Alt and hovering over tokens broke it again, but at least now I can reset it with a refresh.

Not using easy target. I do have a good number of mods but the issue persisted with all other mods disabled. My issue sounds identical to Shandyan. I'll keep looking to see if I catch any errors in the F12 console or notice any other curious interaction.

Reinstalled the module after upgrading Foundry to 0.6.1. What I have to do to make the overlay appear is reloading the scene (switching to another and back).
Other than that, the overlay seems to be working flawless now (also no more bugging out when holding Alt and hovering over tokens).

I am going to try to redesign the overlay a bit for the next update and hopefully fix this issue here. (thus closing this issue. If it arises again next patch, please create a new issue or comment on this one and i'll reopen it)
If you have any ideas/wishes for the overlay rewrite, please post them here:
https://github.com/Moerill/token-mold/issues/18

Just wanted to note that I'm setting this same behavior two years later.
As mentioned above, changing scenes fixes it.


Delete files during watch

When running watch task if I rename a file, it doesn't delete the old version from /dist. I haven't tested what happens if I straight up delete the file. Either way, when deleting or renaming a file the old version should be deleted from the /dist folder. This works fine when running the build command so it's not an issue for normal deployments. It's just a watch issue.

Not a big deal. I'll circle back to this if it becomes an issue.


Ploomber Convert feedback

The next stop would be to able to select more than one pdf file.
We should also be able to merge the pdf files.
There should also be a means to compress the size of the combined pdfs just in case it becomes huge.
Also, we could have automatically generated page numbers.
And we should have a page-break detector so that pages do not break in-between code.

excellent, thanks for your feedback!


Prod: When changing contacts, submit button doesn't work.

Description:
Complaint from Gary Wong.
If User tries to change contacts, the Submit button doesn't work at all (even after relogin and in the Incognito mode).
I reproduced it, screenshot below.
Server answers with status code 500 and Consolw shows Axios error.
May be connected to the change of SSL certificate in the morning.

We troubleshooted it on call with Gary Wong.
We both tried to substitute ourselves in the Contact list. We have a task to add a UI error for this case.


Add a ShelleyBlock query for which upcoming slots the node will lead

The Node Team, under our recommendation, has so far used a Debug* query in order to build a CLI query that computes the node's upcoming leadership schedule. This is a non-trivial calculation with various pitfalls, and so it should instead be implemented as a proper ShelleyBlock query in the ouroboros-consensus code base.
The design of such a query is unfortunately related to Issue #389. In Slack discussion with architecture stakeholders, we have already decided that the ideal behavior would be for the node to only predict slots for which the answer could not change under ordinary circumstances (ie a rollback of at most k blocks). Thus...
This Issue is to design and implement a new ShelleyBlock query that returns the list of slot numbers with their corresponding UTC times such that BOTH this node's configured leadership credentials will be elected in those slots AND ALSO the slots' UTC times and those election predicates will be correct for any extension of the node's current immutable tip---ie the query's result must not be subject to a rollback of at most k blocks.
This is the first query with that constraint, other than the HFC queries which already involve a non-trivial mechanism to ensure it.

Esgen and I just now realized this, in general, may need to be a "cross-era query", which will need to be added to CanHardFork etc. Therefore this query should be a hard fork query, not a ShelleyBlock query---otherwise the ShelleyBlock query would have to somehow know how to compute the leader schedule of the next era, which violates the HFC prinicpal that era's are not responsible for other eras.

Also see #600 for some additional remarks


Is it possible to get higher precision then 9 when using mod_dtoa/mod_dtoa2?

Nick,

I see in the code the following restriction:

    if (prec < 0) {
        prec = 0;
    } else if (prec > 9) {
        /* precision of >= 10 can lead to overflow errors */
        prec = 9;
    }

and

    /* if input is larger than thres_max, revert to exponential */
    const double thres_max = (double)(0x7FFFFFFF);

Could max prec and thres_max be raised? Do I understand correctly that the
problem is caused by the fact that the code is not using int64_t/uint64_t here:

    int whole = (int) value;
    ...
    uint32_t frac = (uint32_t)(tmp);

Is there any good reason not to switch to 64 bit integers here and allow higher
prec and thres_max? I'm willing to write a patch but I was just wondering if
I'm missing something.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 10 Jun 2010 at 9:00

pull requests welcome.


Optimized and clean looking changes

Thanks a lot for the help, but I like doing my codes on my own.

Thanks a lot for the help, but I like doing my codes on my own.

Suit yourself, your not going to be able to manage keep your code optimized and looking user friendly either for yourself or the end user. There are some parts of your code that are even redundant and should be removed. Also, if your not going to accept any pull requests then simply disable that feature for this project or clearly state in your readme that the project is not open source and no contributions are allowed.


Design Changes

I find this design a little noisy
I love the leaf Icon
Light mode also has issues mostly both seem to have issues with the nav bar glow or shadow that is under it
the icon also needs a border or some way of to pop above the navbar

I like the blue wave footer but not sure how it helps of affects the theme, maybe a pile of leaves would be better

I think it looks good. The only thing I'd change is to make the heading solid instead of transparent, and add a more noticeable shadow to the bottom of it so it looks like the heading is always floating above the page. 🪙🪙


fastly: 7.0.0 -> 7.0.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/fastly/cli/releases.
meta.description for fastly is: Command line tool for interacting with the Fastly API
meta.homepage for fastly is: https://github.com/fastly/cli
meta.changelog for fastly is: https://github.com/fastly/cli/blob/v7.0.1/CHANGELOG.md
Updates performed

Golang update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 7.0.1 with grep in /nix/store/72xp3dzsqk6q3vmkczw9dx7nfakrrk93-fastly-7.0.1
found 7.0.1 in filename of file in /nix/store/72xp3dzsqk6q3vmkczw9dx7nfakrrk93-fastly-7.0.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
fastly

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/72xp3dzsqk6q3vmkczw9dx7nfakrrk93-fastly-7.0.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A fastly https://github.com/r-ryantm/nixpkgs/archive/bd73d9f9bd16955835a8f01f4fa67cb76fc701ca.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/72xp3dzsqk6q3vmkczw9dx7nfakrrk93-fastly-7.0.1
ls -la /nix/store/72xp3dzsqk6q3vmkczw9dx7nfakrrk93-fastly-7.0.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

fastly

Maintainer pings
cc @ereslibre @shyim for testing.


[BUG] - Select Component defaultSelectedKeys props doesn't react to a state change in nextui

NextUI Version
2.2.9
Describe the bug
When the component first initial, I set useState like this:
const [category, setCategory] = useState('')
Then I import the NextUI Select component
<Select
             items={productCategory}
             name='product_category'
             label='Danh mục sản phẩm'
             selectionMode='single'
             selectedKeys={categorySelectedValue}
             onSelectionChange={setCategorySelectedValue}
             defaultSelectedKeys={[{product.category}]}
>
	{(category) => <SelectItem key={category.key}>{category.title}</SelectItem>}
</Select>

Despite that I have some logic for setCategory to a specific value from my database (fetch API), the NextUI Select still warns me that the '' (the initial value) is not presented in the collection. It seems like the defaultSelectedKeys still takes my initial value and I do not know why. It should be re-rendered to another specific value, did I miss something in my code?
Your Example Website or App
No response
Steps to Reproduce the Bug or Issue

const [category, setCategory] = useState('')
setCategory('VALUE FROM DATABASE')
defaultSelectedKeys={[product.category]} // default value should be changed too

Expected behavior
I expect the result should be like this:

DefaultSelectedKey is initial value based on useState()
The useState() rerender then the defaultSelectedKey should be changed too
Finally, Display the label of the new defaultSelectedKey in Select Component

Screenshots or Videos
No response
Operating System Version
Windows
Browser
Edge

defaultSelectedKeys is uncontrolled and won't be updated by setCategory. You can just use selectedKeys which is a controlled. You may also need isLoading for your async loading (example).

I have some logic for setCategory to a specific value from my database (fetch API), the NextUI Select still warns me that the '' (the initial value) is not presented in the collection

I've made the fix in here

defaultSelectedKeys is uncontrolled and won't be updated by setCategory. You can just use selectedKeys which is a controlled. You may also need isLoading for your async loading (example).

I have some logic for setCategory to a specific value from my database (fetch API), the NextUI Select still warns me that the '' (the initial value) is not presented in the collection

I've made the fix in here

Yeah, you're right I have done it using selectedKey. Thank you so much, bro.


got problem in IE9

I've tried this in my project, but unfortunately, it will throw "invalid arguments" error in IE9.
I do some analysis and want to confirm my guess:

I use jquery 1.11.3
I use angularjs 1.4.7
I use angular-ui-router v0.2.15

I config the css like this:
 $stateProvider.state('home', {
      url: '/home',
      template: require('./views/home.html'),
      css: 'assets/home.css'
    })

the error occurred when jquery try to set href for the link dom element. I guess it happens when the template is compiled.(below code is from $set method in angularjs)
this.$$element.attr(attrName, value);

at this moment, attrName is 'href', value is 'assets/home.css'. then I debug into jquery, then the error will throw at this line in jquery:
elem.setAttribute( name, value + "" );

then I found this: http://stackoverflow.com/questions/1184950/dynamically-loading-css-stylesheet-doesnt-work-on-ie
it seems this link explain why the error happen in IE9. I guess it's because in angular-css, the template is compile first and then append to head, but it seems IE9 doesn't support this.
But angular-css's doc says it support IE9, So I'm doubt my analysis and just want to confirm it. and figure out why I get the error here.
Hope get some help from your guys :), thanks in advance.

In my own opinion: consider drop support for IE9, if you can

Thanks @glaggia-larus


Option to build docs from directory

When it comes to testing the documentation on local machine it's very inconvenient to do because all changes to project docstrings requires to be commited first to be then used by documentation makefile. Documentation makefile currently supports only build from branch mode without any other options.
There should be an option to use local directory as project source for documentation makefile, available with something like from_dir env. variable. This will allow to use the main project files from another directory, placed somewhere near the documentation immediately after their modification.
Start point for this feature is already created in make.sh, yet no implementation
https://github.com/maximilionus/serialix/blob/b62deeef8cf591667e69791f9823c740c3a47777/make.sh#L45-L49

Feature implemented in 4fff36cb2ba708fc4791676aef07a8d74717c419. Switched from make.sh back to Makefile and ported all new features to it.
https://github.com/maximilionus/serialix/blob/4fff36cb2ba708fc4791676aef07a8d74717c419/Makefile#L27-L31


case casting invalid in arm template

While deploying Azure databricks using ARM template, I used location as "CentralUS". Deployment was succeeded but it lunch URL was formed as "https://Central US.azuredatabricks.net". It took the value of location item as it is. This camel cased url crashed and does not work. It must cast it to lower case before deployment or it must not deploy if lower case is not used in 'location' argument.
It is quite awful that it accepts invalid arguments.
Please update in upcoming releases.

@usama-masood Could you provide us with the link to the document you are referring to ?

@usama-masood We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.

@SaurabhSharma-MSFT I used this link to deploy azure db workspace.
https://azure.microsoft.com/en-in/resources/templates/101-databricks-workspace/
Inside the parameters to this ARM template parameter file, when i give location in camel case, wrong deployment occurs. i.e workspace is deployed but launch url is not correct.

@usama-masood
That template you linked is community authored as stated at the top of the page:
" This Azure Resource Manager (ARM) template was created by a member of the community and not by Microsoft. Each ARM template is licensed to you under a licence agreement by its owner, not Microsoft. Microsoft is not responsible for ARM templates provided and licensed by community members and does not screen for security, compatibility or performance. Community ARM templates are not supported under any Microsoft support programme or service and are made available AS IS without warranty of any kind."
You can open an issue directly in that GitHub repository here:
https://github.com/Azure/azure-quickstart-templates/issues


How to get the executable?

The default planner on http://editor.planning.domains/ doesn't support numerical fluents or durative actions and I want to configure and set a new planner but I can't find the executable you showed in your Configuring the PDDL planner post in that gif.  I have downloaded both LPG and POPF2 planners but I can't find any executable

That is indeed a usual problem. I understand the executables are usually shared within universities. There is also a great effort around http://solver.planning.domains/ to support multitude of hosted planners, including planners with temporal capabilities. Best to find out about it would be on the Slack channel advertised here: https://planning.wiki/
Even better is the other initiative Christian Muise initiated: to have planner binaries available as Singularity images. That way you could run them on your computer (on Linux, Mac, or on the Windows Subsystem for Linux).

That is indeed a usual problem. I understand the executables are usually shared within universities. There is also a great effort around http://solver.planning.domains/ to support multitude of hosted planners, including planners with temporal capabilities. Best to find out about it would be on the Slack channel advertised here: https://planning.wiki/
Even better is the other initiative Christian Muise initiated: to have planner binaries available as Singularity images. That way you could run them on your computer (on Linux, Mac, or on the Windows Subsystem for Linux).

Aye, once the project takes off, we should be able to hot-swap the planner used on the remote side. The relevant projects are...

https://github.com/AI-Planning/planutils
https://github.com/AI-Planning/planning-as-a-service

Project has stalled a bit, but hopefully we'll have a cohort of students hopping on board soon to get it across the finish line.

Aye, once the project takes off, we should be able to hot-swap the planner used on the remote side. The relevant projects are...

https://github.com/AI-Planning/planutils
https://github.com/AI-Planning/planning-as-a-service

Project has stalled a bit, but hopefully we'll have a cohort of students hopping on board soon to get it across the finish line.

@Radu-Sebastian
I have installed a Linux vm and added the POPF2
No excecutable or jar for popf, and to be honest, even POPF is limited, no negative conditions, no numerical conditions.....

Sounds like we can close this. Let us know otherwise, or use the slack channel.


How to deal with multiple await blocks?

  async mounted () {
    try {
      this.users = await getUsers()
      this.countries = await getCounties()
    } catch (error) {
      this.erro = error
    }

I would need more context to tell what you're doing. How are you using this in a test?

Just noticed it only fails on Gitlab CI (pipeline). Local works fine. I can’t find anything related.
Thanks for your time.


check for installability

E.g. if setup.py is present, invoke pip install
Simplest solution here might be to just assume it is installable and attempt to install? If install is successful, probably want to move it out of the napm dir since napm will be on the pythonpath.

https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'my_package'])

I suspect there are probably cases where the package isn't actually installable, but still has a requirements.txt that we should run. Could separately detect that.
for packages that are installable, maybe throw an error and tell the user how to install from pip using the git+ syntax?

you know what, nah. not even. don't even touch requirements.txt. If the user needs anything from their, they can install that stuff with pip. This is unstable enough without it making decisions on behalf of the user about additional dependencies to install.
so let's do this: keep this open and call this a low priority feature to add WARNINGS if any of the following are found in the project root: setup.py, setup.cfg, pyproject.toml, poetry.lock, requirements.txt, envrionment.yaml, environment.yml, Dockerfile,... whatever that ML-specific docker-esque tool is, etc.


treewide: with stdenv.lib; in meta -> with lib;

Part of: https://github.com/NixOS/nixpkgs/issues/108938
meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the stdenv.lib indirection and encourage people
to use lib directly. Thus let’s start with the meta
field.
This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
lib argument to the package header if it doesn’t
exist yet.
The script in its current form is available at
<EMAIL_ADDRESS>
Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Strategies used to sanity check the changes involve using a script to randomly evaluate packages, so all important packages should still evaluate.
nix eval --raw '(let pkgs = import ./. {}; in builtins.toJSON (builtins.attrNames pkgs))' \
   | jq -r '.[]' \
   | shuf \
    | head -n 1000 \
     | xargs -n1 nix-instantiate -A

Some leaf packages might have problems if they don’t follow the callPackage standard but pass arguments manually. Hopefully ofborg finds them.

Strategies used to sanity check the changes involve using a script to randomly evaluate packages, so all important packages should still evaluate.
nix eval --raw '(let pkgs = import ./. {}; in builtins.toJSON (builtins.attrNames pkgs))' \
   | jq -r '.[]' \
   | shuf \
    | head -n 1000 \
     | xargs -n1 nix-instantiate -A

Some leaf packages might have problems if they don’t follow the callPackage standard but pass arguments manually. Hopefully ofborg finds them.

The output of
$ git diff --numstat HEAD^ | sort -n | tail -n30
2	2	pkgs/tools/X11/xvkbd/default.nix
2	2	pkgs/tools/X11/xwallpaper/default.nix
2	2	pkgs/tools/X11/xwinwrap/default.nix
3	3	pkgs/applications/audio/clementine/default.nix
3	3	pkgs/applications/misc/ape/default.nix
3	3	pkgs/applications/misc/plover/default.nix
3	3	pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
3	3	pkgs/applications/science/logic/coq/default.nix
3	3	pkgs/applications/video/kodi/plugins.nix
3	3	pkgs/development/tools/parsing/antlr/4.8.nix
3	3	pkgs/games/openxray/default.nix
3	3	pkgs/games/riko4/default.nix
3	3	pkgs/misc/vim-plugins/overrides.nix
3	3	pkgs/os-specific/linux/guvcview/default.nix
3	3	pkgs/servers/kippo/default.nix
3	3	pkgs/tools/package-management/nix-prefetch-scripts/default.nix
3	3	pkgs/tools/typesetting/tex/texlive/bin.nix
4	4	pkgs/applications/audio/dfasma/default.nix
4	4	pkgs/applications/misc/dockbarx/default.nix
4	4	pkgs/applications/misc/subsurface/default.nix
4	4	pkgs/applications/virtualization/qemu/default.nix
4	4	pkgs/misc/tmux-plugins/default.nix
5	5	pkgs/tools/text/gawk/default.nix
7	7	pkgs/applications/networking/znc/modules.nix
8	8	pkgs/applications/video/vdr/plugins.nix
9	9	pkgs/misc/vscode-extensions/default.nix
10	10	pkgs/applications/editors/jetbrains/default.nix
16	16	pkgs/applications/misc/octoprint/plugins.nix
26	26	pkgs/applications/editors/eclipse/plugins.nix

shows that there are only a few files which got more than two lines of changes.

The output of
$ git diff --numstat HEAD^ | sort -n | tail -n30
2	2	pkgs/tools/X11/xvkbd/default.nix
2	2	pkgs/tools/X11/xwallpaper/default.nix
2	2	pkgs/tools/X11/xwinwrap/default.nix
3	3	pkgs/applications/audio/clementine/default.nix
3	3	pkgs/applications/misc/ape/default.nix
3	3	pkgs/applications/misc/plover/default.nix
3	3	pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
3	3	pkgs/applications/science/logic/coq/default.nix
3	3	pkgs/applications/video/kodi/plugins.nix
3	3	pkgs/development/tools/parsing/antlr/4.8.nix
3	3	pkgs/games/openxray/default.nix
3	3	pkgs/games/riko4/default.nix
3	3	pkgs/misc/vim-plugins/overrides.nix
3	3	pkgs/os-specific/linux/guvcview/default.nix
3	3	pkgs/servers/kippo/default.nix
3	3	pkgs/tools/package-management/nix-prefetch-scripts/default.nix
3	3	pkgs/tools/typesetting/tex/texlive/bin.nix
4	4	pkgs/applications/audio/dfasma/default.nix
4	4	pkgs/applications/misc/dockbarx/default.nix
4	4	pkgs/applications/misc/subsurface/default.nix
4	4	pkgs/applications/virtualization/qemu/default.nix
4	4	pkgs/misc/tmux-plugins/default.nix
5	5	pkgs/tools/text/gawk/default.nix
7	7	pkgs/applications/networking/znc/modules.nix
8	8	pkgs/applications/video/vdr/plugins.nix
9	9	pkgs/misc/vscode-extensions/default.nix
10	10	pkgs/applications/editors/jetbrains/default.nix
16	16	pkgs/applications/misc/octoprint/plugins.nix
26	26	pkgs/applications/editors/eclipse/plugins.nix

shows that there are only a few files which got more than two lines of changes.

Good to know. Following.

Good to know. Following.

EditorCheck fails with Error: Argument list too long. I think it is save to ignore it for this PR.

EditorCheck fails with Error: Argument list too long. I think it is save to ignore it for this PR.

Couldn't you test it by generating all the drvs and making sure they're invariant?

Couldn't you test it by generating all the drvs and making sure they're invariant?

pkgs/misc/emulators/cdemu/base.nix was changed, but lib was not introduced in the deps list (leading to the eval error above).

pkgs/misc/emulators/cdemu/base.nix was changed, but lib was not introduced in the deps list (leading to the eval error above).

On Sun, Jan 10, 2021 at 01:43:49PM -0800, deliciouslytyped wrote:

Couldn't you test it by generating all the drvs and making sure they're invariant?

OfBorg does that. ;)
I've been approving all the PRs for this so far provisionally, on the
condition that OfBorg finds them to be rebuild-0.

On Sun, Jan 10, 2021 at 01:43:49PM -0800, deliciouslytyped wrote:

Couldn't you test it by generating all the drvs and making sure they're invariant?

OfBorg does that. ;)
I've been approving all the PRs for this so far provisionally, on the
condition that OfBorg finds them to be rebuild-0.

@Profpatsch I've found a bug:

  stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1

  stdenvisCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1

My strategy for reviewing this sort of change is focused on identifying bad
changes rather than ensuring exhaustiveness.  To that end, I ran the
following:
git fetch nixpkgs # your remote may be called "origin"
git fetch nixpkgs pull/108978/head
git diff nixpkgs/master...FETCH_HEAD --word-diff=porcelain --word-diff-regex="[a-zA-Z_][a-zA-Z0-9_'-]*" |
    grep -e '^[+-]' |
    grep -ve '^\(+++\|---\)' |
    sort -u

(Thanks @puckipedia for the Nix identifier regex.)
Which will show me every unique word addition and deletion.  This PR
will only be correct when the output of that pipeline is:
+lib
-stdenv

(The +lib comes from having to add lib as an argument)
Currently it outputs:
+lib
-stdenv
+stdenvisCygwin
-stdenv.isCygwin
+stdenvisFreeBSD
-stdenv.isFreeBSD
+stdenvisSunOS
-stdenv.isSunOS

And thus the problem is identified.
This check is not exhaustive for correctness, but passing this check
is a necessary part of correctness.

@Profpatsch I've found a bug:

  stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1

  stdenvisCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1

My strategy for reviewing this sort of change is focused on identifying bad
changes rather than ensuring exhaustiveness.  To that end, I ran the
following:
git fetch nixpkgs # your remote may be called "origin"
git fetch nixpkgs pull/108978/head
git diff nixpkgs/master...FETCH_HEAD --word-diff=porcelain --word-diff-regex="[a-zA-Z_][a-zA-Z0-9_'-]*" |
    grep -e '^[+-]' |
    grep -ve '^\(+++\|---\)' |
    sort -u

(Thanks @puckipedia for the Nix identifier regex.)
Which will show me every unique word addition and deletion.  This PR
will only be correct when the output of that pipeline is:
+lib
-stdenv

(The +lib comes from having to add lib as an argument)
Currently it outputs:
+lib
-stdenv
+stdenvisCygwin
-stdenv.isCygwin
+stdenvisFreeBSD
-stdenv.isFreeBSD
+stdenvisSunOS
-stdenv.isSunOS

And thus the problem is identified.
This check is not exhaustive for correctness, but passing this check
is a necessary part of correctness.

Ah yes, I made a mistake when correcting some incorrect replacements that were missing a dot. I thought I had caught them all, but apparently not.

Ah yes, I made a mistake when correcting some incorrect replacements that were missing a dot. I thought I had caught them all, but apparently not.

OfBorg does that. ;) I've been approving all the PRs for this so far provisionally, on the condition that OfBorg finds them to be rebuild-0.

ofborg chickened out because “doesn’t list changes cleanly”, not sure what we can do about that.

OfBorg does that. ;) I've been approving all the PRs for this so far provisionally, on the condition that OfBorg finds them to be rebuild-0.

ofborg chickened out because “doesn’t list changes cleanly”, not sure what we can do about that.

Ah, it does seem to stumble into eval errors, it just displays a confusing error message in the check status.
Oh, and now the merge conflicts begin, this is gonna be fun …

Ah, it does seem to stumble into eval errors, it just displays a confusing error message in the check status.
Oh, and now the merge conflicts begin, this is gonna be fun …

This check is not exhaustive for correctness, but passing this check is a necessary part of correctness.

Ah, it was right, there were some of these erroneous replacements missing in a commented out piece of code, which my editor’s static nix analyzer did not find of course. Fixed.

This check is not exhaustive for correctness, but passing this check is a necessary part of correctness.

Ah, it was right, there were some of these erroneous replacements missing in a commented out piece of code, which my editor’s static nix analyzer did not find of course. Fixed.

Rebased on master.

Rebased on master.

I did a dudu while rebasing, I think it’s fixed now.

I did a dudu while rebasing, I think it’s fixed now.

Thanks to @cole-h running the ofborg check locally, full evaluation should now work again.

Thanks to @cole-h running the ofborg check locally, full evaluation should now work again.

Waiting for ofborg eval to be green, then rebasing & merging (otherwise there will be new merge conflicts before ofborg evals)

Waiting for ofborg eval to be green, then rebasing & merging (otherwise there will be new merge conflicts before ofborg evals)

ofborg takes a while to reach this eval in its queue, and then chickens out immediately if there is a merge conflict … we are running the https://github.com/nixos/ofborg#running-meta-checks-locally check on a big machine and will merge once that succeeds.

ofborg takes a while to reach this eval in its queue, and then chickens out immediately if there is a merge conflict … we are running the https://github.com/nixos/ofborg#running-meta-checks-locally check on a big machine and will merge once that succeeds.

Okay, ran the eval and made sure the check from above
    git diff nixpkgs/master...FETCH_HEAD --word-diff=porcelain --word-diff-regex="[a-zA-Z_][a-zA-Z0-9_'-]*" |
        grep -e '^[+-]' |
        grep -ve '^\(+++\|---\)' |
        sort -u

proudces
+lib
-stdenv

Okay, ran the eval and made sure the check from above
    git diff nixpkgs/master...FETCH_HEAD --word-diff=porcelain --word-diff-regex="[a-zA-Z_][a-zA-Z0-9_'-]*" |
        grep -e '^[+-]' |
        grep -ve '^\(+++\|---\)' |
        sort -u

proudces
+lib
-stdenv

I think a pass with a secondary tool over files changed by this addressing left over stdenv.lib.versionAtLeast etc. usages could be worthwhile.

I think a pass with a secondary tool over files changed by this addressing left over stdenv.lib.versionAtLeast etc. usages could be worthwhile.

This broke eval in pkgs/os-specific/linux/nvidia-x11/persistenced.nix

This broke eval in pkgs/os-specific/linux/nvidia-x11/persistenced.nix

Please test treewide changes with hydra-eval-jobs.

Sounds like a good idea -- but how (what is the incantation)?

Please test treewide changes with hydra-eval-jobs.

Sounds like a good idea -- but how (what is the incantation)?

There's probably a better way, but:
nix-shell -p hydra-unstable --run "hydra-eval-jobs -I nixpkgs=$PWD nixos/release.nix"

There's probably a better way, but:
nix-shell -p hydra-unstable --run "hydra-eval-jobs -I nixpkgs=$PWD nixos/release.nix"

And how do we know that there's an issue, given that loads of packages fail to evaluate (e.g. unfree and broken)? Is there some pattern that's easily greppable for? Running hydra-eval-jobs -I . pkgs/top-level/release.nix gave me more than 1.6 million lines of output, after filtering out all the broken and unfree packages.

And how do we know that there's an issue, given that loads of packages fail to evaluate (e.g. unfree and broken)? Is there some pattern that's easily greppable for? Running hydra-eval-jobs -I . pkgs/top-level/release.nix gave me more than 1.6 million lines of output, after filtering out all the broken and unfree packages.

that's an excellent question :)

that's an excellent question :)

And how do we know that there's an issue, given that loads of packages fail to evaluate (e.g. unfree and broken)? Is there some pattern that's easily greppable for? Running hydra-eval-jobs -I . pkgs/top-level/release.nix gave me more than 1.6 million lines of output, after filtering out all the broken and unfree packages.

 Note one should test pkgs/top-level/release.nix but also those under nixos/. Probably should write a section on this in the Nixpkgs manual.

And how do we know that there's an issue, given that loads of packages fail to evaluate (e.g. unfree and broken)? Is there some pattern that's easily greppable for? Running hydra-eval-jobs -I . pkgs/top-level/release.nix gave me more than 1.6 million lines of output, after filtering out all the broken and unfree packages.

 Note one should test pkgs/top-level/release.nix but also those under nixos/. Probably should write a section on this in the Nixpkgs manual.

I see. So as long as hydra-eval-jobs exits zero, all is fine, and one should test both pkgs/top-level/release.nix and nixos/release.nix. Thanks for the help, I'll keep this in mind for the next time. Since I didn't say so earlier: thanks for catching and fixing the issue.

I see. So as long as hydra-eval-jobs exits zero, all is fine, and one should test both pkgs/top-level/release.nix and nixos/release.nix. Thanks for the help, I'll keep this in mind for the next time. Since I didn't say so earlier: thanks for catching and fixing the issue.

 Note one should test pkgs/top-level/release.nix but also those under nixos/. Probably should write a section on this in the Nixpkgs manual.

hydra-eval-jobs exits 0 sometimes even when ofborg still finds evaluation errors.

 Note one should test pkgs/top-level/release.nix but also those under nixos/. Probably should write a section on this in the Nixpkgs manual.

hydra-eval-jobs exits 0 sometimes even when ofborg still finds evaluation errors.

This is a best-effort refactor as long as we don’t have well-documented ways of making sure the whole tree still evaluates. We used the ofborg check for that, running it locally.

This is a best-effort refactor as long as we don’t have well-documented ways of making sure the whole tree still evaluates. We used the ofborg check for that, running it locally.


Compliance Center on GCC High?

Is Compliance Center available in GCC High environments?
I am getting internal error when trying to access it.
If not, are there any plans for it? It would be nice to see the compliance score.

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

ID: 7ed7ade2-b6c8-83db-2d20-e87ee7a3cb5d
Version Independent ID: d0591610-bebd-22c9-aaae-d4c1c3ef2ff7
Content: Microsoft 365 compliance center - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/microsoft-365-compliance-center.md
Service: o365-seccomp
GitHub Login: @robmazz
Microsoft Alias: robmazz

@MKansagra - Thank you for submitting feedback.
I will get this issue over to the Microsoft 365 writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

@robmazz - Can you please share your insights on this issue?
Thank you.
cc: @kenwith

Hello, following up to see if there is an update!

@MKansagra - thanks for the feedback, I'm working with the MCC Team to get an answer. I'll respond here shortly, thanks for your patience!

Hello!
I was able to get an answer from GCC High team. You may want to update the docs reflecting that Microsoft Compliance Center and Secure Score is not available in GCC High or DoD environment!
It’ll save a lot of research times for admins!


Allow use of private model hub models

Calls to the from_pretrained method have a parameter, use_auth_token which defaults to None. Setting this to a string passes a token or API key to HF, and setting it to True instructs transformers to look in ~/.huggingface/token for an authentication token.
This PR explicitly sets that argument to None by default, but adds a new method, fastT5.set_auth_token, which allows users to pass an auth token, API key, or True if credentials are stored locally.
It adds documentation as well.

Hi @Ki6an , any thoughts on this? I am using it in prod, and it works.
If you are using a public model, like t5-small, or a user- or org-scoped public model, there's nothing different a user needs to do. However, if a user wants to use a private model, this makes it possible

Hi @sam-qordoba thank you for the PR.
just wanted to make sure that use_auth_token  was included in transformers==4.6.1 and it was added since v4.6.0. The repo has issues with the latest versions of transformers.


Fix error link in markdoc.mdx

What kind of changes does this PR include?

Minor content fixes (broken links, typos, etc.)

Description

Fix error link in markdoc.mdx

Related translation: https://github.com/withastro/docs/pull/4127


SASL EXTERNAL bind returns SASL bind in progress in 0.10, worked fine in 0.9

Presumably there is some interaction with the new GSSAPI feature introduced in 0.10.
I am using this feature with SSL client certificates and CA certificate with a custom TLS connector to connect to
an OpenLDAP server
use native_tls::{Certificate, Identity, TlsConnector};
use openssl::pkcs12::Pkcs12;
use openssl::pkey::PKey;
use openssl::x509::X509;

     let mut client_cert_contents = Vec::new();
      {
          let mut file = File::open(client_cert_path)?;
          file.read_to_end(&mut client_cert_contents)?;
      }
      let client_cert = X509::from_pem(&client_cert_contents)?;
      let mut client_key_contents = Vec::new();
      {
          let mut file = File::open(client_key_path)?;
          file.read_to_end(&mut client_key_contents)?;
      }
      let client_key = PKey::private_key_from_pem(&client_key_contents)?;
      let p12_password = "client";
      let p12 = Pkcs12::builder().build(p12_password, "client", &client_key, &client_cert)?;
      let p12_contents = p12.to_der()?;
      let mut ca_cert_contents = Vec::new();
      {
          let mut file = File::open(ca_cert_path)?;
          file.read_to_end(&mut ca_cert_contents)?;
      }
     let identity = Identity::from_pkcs12(&p12_contents, p12_password)?;
      let ca_certificate = Certificate::from_pem(&ca_cert_contents)?;
      let connector = TlsConnector::builder()
          .identity(identity)
          .add_root_certificate(ca_certificate)
          .build()?;
      let ldap_settings = LdapConnSettings::new().set_connector(connector);
      let (ldap_conn_async, mut ldap) =
          LdapConnAsync::with_settings(ldap_settings, &connect_parameters.url.clone()).await?;
      ldap3::drive!(ldap_conn_async);
      ldap.sasl_external_bind().await?;

Does it work with 0.10.2 (exactly, set the version to =0.10.2 in Cargo.toml and check the lock file)?

It works with 0.10.2 but is broken with 0.10.3.

Try the ext-empty branch.

That branch seems to work.

OK, I've pushed the fix to master and I'll publish 0.10.5 when the CI tests finish.


Updating FromScratch to 1.4.0 results in broken icon and error on first start

Error thrown on first start - after a force quit the application will start normally:

Icon seems broken. Screenshot shows broken icon in Alfred, but Spotlight has the same behaviour:

Strange. Which version of macos are you using? I'm still on sierra and it works as expected there. Did you overwrite the existing fromscratch,app?

I'm getting this on 10.13.6, but have a colleague who experienced the same on her 10.13.4 version of macos.
We both chose to overwrite the existing FromScratch app.

I'm seeing the same thing on 10.13.6, but the app will not start after the error dialog is shown (must force quit)

I am seeing this on 10.13.6 as well. If there's any information or testing you need @Kilian, let me know.

I’m seeing very similar behavior on MacOS 10.11.6 (El Capitan), except the JS error is thrown every time I launch, not just on the first.  Same or similar icon corruption problem (see top of attached)

I just tested and it ran as expected for me through the manual installation and build process. 👍
To clarify too, I was getting the same issues as @meyerweb (Hi Eric, thank you for your many contributions to the industry over the years), where the error was happening every time.

@beaudesigns  it running with the incorrect icon is as expected, since the development process is actually Electron so that's as expected. Not getting an error is too bad, I hoped that would be consistent.
Regardless, could you check https://github.com/Kilian/fromscratch/releases/download/v1.4.1/FromScratch-1.4.1.dmg ? (@nilicule this is new version 1.4.1 from the one in #64, though it has that fix too). For me this fixes the icon, and I hope that it fixes the JS error on load as well, since in this version the only thing vaguely using Path is not executed on mac (because it doesn't have to)

I had found and tested 1.4.1 earlier today, and I was hitting the same issue that I was with 1.4.0. But, I just downloaded 1.4.1 and tested it again after doing the manual build and it's working now.
Is it possible that something is available on systems that have done the manual build process, that isn't making it into the final build? Just grasping at straws with that.

Maybe, though I don't really know what! Someone that still has the error, could they send me a screenshot of the /Users/NAME/.fromscratch/ folder? I did some more tracking down and it might be that there is something 'wrong' with that folder.

Here is a new version of 1.4.1 that outputs the location of the contents file (I now think the error happens when writing the content.txt file).
https://github.com/Kilian/fromscratch/releases/download/v1.4.1/FromScratch-1.4.1-debug.dmg
If someone could install the DMG, and start FromScratch from a terminal using
open /Applications/FromScratch.app/Contents/MacOS/FromScratch
This opens a new terminal window with a printed line
This is what the filepath is:  /Users/kilian/.fromscratch/content.txt
I think the last part is wrong for people getting that error, but I need to know how wrong.
It could also be that this version works, since I attempt to resolve the path first.

This is what the filepath is:  /Users/beauwest/.fromscratch/content.txt

This version works for me as well. But the old 1.4.1 was working too.

Running the 1.4.1 debug version under macOS 10.12.6 (Sierra) and still see the intro JS error. The icon is fixed.  Cut / Copy  / Paste keyboard is working, however the text entry into the app is extremely slow for the text to preview.  I tried toggling the theme - same slow.  Not sure if this needs an new issue submitted specific to the slowness.

@badcat what is the output if you run it like I describe in https://github.com/Kilian/fromscratch/issues/65#issuecomment-407191721 ?

@Kilian Seems OK, no?
This is what the filepath is:  /Users/imacd/.fromscratch/content.txt

Output is:
➜  ~ /Applications/FromScratch.app/Contents/MacOS/FromScratch ; exit;
This is what the filepath is:  /Users/remco/.fromscratch/content.txt
2018-07-24 08:48:05.126 FromScratch[10102:9527555] *** WARNING: Textured window <AtomNSWindow: 0x7fe423f43640> is getting an implicitly transparent titlebar. This will break when linking against newer SDKs. Use NSWindow's -titlebarAppearsTransparent=YES instead.

Just adding that I'm also receiving a similar error. Subscribing for a resolution.

Hi everyone,
I have a new debug version available: https://github.com/Kilian/fromscratch/releases/download/v1.4.1/FromScratch-1.4.1-debug2.dmg
If you test this, please back up your .fromscratch folder first
Things to test:

you don't get the error
changes you make are still getting saved

This one is kind of 'the nuclear option' since when the error in the above occurs, the code ignores it. I think this will work because I suspect that this error only happens during the application startup due to async weirdness specifically in packaged .app files, but it could mean none of your changes get saved.

I just updated to 1.4.0 and saw the above errors on start. I've updated to the 1.4.1-debug2 version, and am seeing the same issue. If I backup and rename my $HOME/.fromscratch, then FromScratch will start, and it does save new text.

So Fromscratch now starts without any errors for you?
Could you do a ls -la in both folders (old and new .fromscratch folders) and copy the output?

On 31 Jul 2018, at 18:38, Travis Cole<EMAIL_ADDRESS>wrote:
I just updated to 1.4.0 and saw the above errors on start. I've updated to the 1.4.1-debug2 version, and am seeing the same issue. If I backup and rename my $HOME/.fromscratch, then FromScratch will start, and it does save new text.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah, it now starts without any error. However, if I reinstall it, it will error on first start.
Here is the output you asked for:

...I figured it out. 🤕 One of the new command line options we have is --portable, with the alias -p. For some reason, only on first start of an app from /applications, ,-psn_0_1814971 or similar is appended to the launch command, triggering portable mode, which tries to store files adjacent to the application, which it's not allowed to do, causing the error.
I'm removing the -p alias for now and getting 1.4.1 out for all of you!

Available here: https://github.com/Kilian/fromscratch/releases/tag/v1.4.1

Yes! That fixes the issue on my Mac. Thought you might like to know that there was this minor issue whilst installing:

and is the new UI supposed to look like this:

Closing this ticket. If anyone else sees the same weirdness as @husainfazel let me know and i'll open a new ticket :)


[ReadMe Suggestion] Add appDB to the list of sideloaders for iOS

I personally use appDB for sideloading apps since you do not have to go out of your way to install anything on your computer and manually refresh the apps every week. Sometimes though you'll have to reinstall the apps once the free certificate runs out but it takes a while and is much less of a hassle compared to Sideloadly and AltStore (imo). It also has File Sharing enabled by default, I didn't have to go out of my way to enable that and the file containing my saves appeared in my Files, meaning I was able to manually import my save.

Hi, thanks for your suggestion. I don't feel like recommending appdb after the backlash it has received recently, but if you know other sideloaders, I'll be happy to add them to the readme.

I wasn't aware about any of the backlash they received, I apologize then.


Send SMS

Description
Script to send SMS to a given number taken as input from the user.
Technologies and Languages

Python
Javascript

Any other language and technology are also fine.
Aditional Work
Make a GUI for this application

I can add a quick script for that using Twilio, should i do that?

sure. Go ahead 👍


Enhance DICOM Series Selection Operator

User Story
As an application developer I would like to be able to select a subset of DICOM Series given one or more DICOM Studies. My selection criteria are based on conditions imposed on DICOM attributes embedded in the SOP instances that belong to one or more series
Background
Often an app developer needs to do some work to identify what type of medical images are applicable given an AI model. As data flows in from sources such as modality or PACS, it becomes challenging to automatically select what data needs to be provided so that an AI model can ingest to produce correct result. As of v0.1.0, this operator always returns the first series given a Study
Success Criteria

A way to specify selection criteria using key value pairs of DICOM Attributes
A way to parse through DICOM datasets and identify the right study --> series --> sop instance sets given the criteria
An example application that showcases such series selection using this operator
Updated API documentation for the operator
Unit Test cases that exercise multiple scenarios for this Operator

Leaving some thoughts here on series selection capabilities that will be required or highly desirable:

Ability to allow ranges of numerical tags as well as specific value. E.g. Slice Thickness BETWEEN 2.5mm and 5.0mm, Magnetic Field Strength GREATER THAN OR EQUAL TO 1.5T
A special rule/operator to select axial/coronal/sagittal series based on the value of the ImageOrientationPatient tag. I can supply the logic needed here. Otherwise this task is a little fiddly for users (requiring some vector manipulation) despite being extremely common.
Capability to rank series as well apply hard criteria. E.g. choose the image with the lowest value of Slice Thickness from the available series
Filter out series whose geometry is inconsistent. If a series of images does not have consistent spacing between consecutive slices, it is certain to mess up any downstream volumetric analysis. This is an unfortunately common  occurrence in my experience. Checking that the spacing between consecutive slices in the distance perpendicular to the imaging plane (ImageOrientationPatient) is consistent to within some small tolerance (0.05mm) can save a lot of headaches downstream. I'm happy to supply the logic here also.
Capability to remove individual instances of series where the value of some attribute(s) do not match the rest of the series. For example, there are often series where one or two instances have a different ImageOrientationPatient to the rest of the instances in the series. Typically these are localizer images that should be discarded before analysis

Feel free to assign specific tasks from this to me once the way rules should be specified are sorted out.
Overall, the complexity of series selection is absolutely not to be underestimated. I would suggest that we have classes implementing individual series selection steps that can be composed by the user to form a series selection pipeline in the DICOMSeriesSelector, much like transforms are composed in MONAI Core. The ability to extend via subclassing would be extremely helpful for the trickier situations that may need custom logic.

@MMelQin @rahul-imaging how are we planning to act upon @CPBridge 's requests? Should we create an issue per request? If so, then @CPBridge could create a PR for #2 and #4 as he seems to have the logic clear? Thoughts?

The series selection operator, as describes in the doc and release note, provides a default implementation and can be used as a base class for derived classes for supporting custom and more advanced processing engines.
The Domain classes were introduced partly for this reason and partly for supporting chaining of the series selection operators.
The App SDK provides the framework and bases, anticipating more advanced and derived implementations/contributions.
Hope this answers your question, @dbericat.

It does. @CPBridge do you feel you know what to do to add your RFEs based on @MMelQin's comments?

Marking this one as closed as it has satisfied the original requests, after having created a new issue recording the RFE's from @CPBridge, as well as other the planned traditional computer vision based algorithms to aid the advanced series selection development.

It does. @CPBridge do you feel you know what to do to add your RFEs based on @MMelQin's comments?

I think so. For special cases such as view selection (axial/sagittal/coronal) I think this approach of subclassing and overriding filter makes sense. However I still feel that ranges (e.g. Slice Thickness between 1 and 5mm) would be better handled in this base class. Could we somehow add in this functionality in how the conditions are specified. E.g.:
{
    "selections": [
        {
            "name": "CT Series 1",
            "conditions": {
                "StudyDescription": "(?i)^Spleen",
                "Modality": "(?i)CT",
                "SeriesDescription": "(?i)^No series description|(.*?)",
                "SliceThickness": {"range_minimum": 1, "range_maximum": 5}
            }
        }
    ]
}

Thoughts @MMelQin ?

@CPBridge It is a good suggestion , and needed in practice. I considered it, but decided delaying the implementation till later releases, for the few reasons below,

This current implementation is supports the DICOM General Series Attributes only, and not even all of them but limited to the attributes exposed in the DICOMSeries domain class. The DICOMSeries does have reference to all SOP instances, so later we can expand the support.
The Slice Thickness is an attribute in the Image Plane Module, Type 2 attribute, and may not be set or present. In the App SDK, the Slice Thickness attribute is actually recalculated in the downstream SeriesToVolume operator, and set as metadata on the converted image object.
Need to introduce a range evaluator, which should work for this attribute as well as in general, e.g. date range. I did not have sufficient time to gather all the scenarios to create a solution.

Great discussion. This looks to me like a nice issue @CPBridge could also work on a PR for 0.3 release? :D


Add convenience constructors to generated go code

Is your feature request related to a problem? Please describe.
Our generated golang code, based on protos and built via buf tooling, lacks convenient constructors present in the generated rust code. For example, we can call ViewProtocolServiceClient::new in rust:
https://github.com/penumbra-zone/penumbra/blob/125c5a1a34f14e32a6965649331f113048d0a289/crates/view/src/service.rs#L432
But there's no comparable method in the generated go code:
rg -il ViewProtocolServiceClient crates/proto/src/gen/ proto/go/gen/
crates/proto/src/gen/penumbra.view.v1alpha1.rs

Describe the solution you'd like
Other downstream consumers of our protos, notably Strangelove, use a different buf build module, protoc-gen-gocosmos, to generate these convenience methods. If we switch our CI to use that tooling, we can have access to the same methods in the generated golang we build automatically.
Describe alternatives you've considered
We can simply ignore this discrepancy. Depending on the upstream gocosmos tooling (which itself is a fork of the deprecated gogoprotobuf project) might cause problems down the road if it's no longer maintained.
Additional context

An example of using the convenient method in go

// This code adapted from the ongoing integration work in github.com/strangelove-ventures/interchaintest
pclientd_addr := "localhost:8081"
channel, err := grpc.Dial(
        pclientd_addr,
        grpc.WithTransportCredentials(insecure.NewCredentials()),
)
if err != nil {
        return false, err
}
defer channel.Close()

// Note the `NewViewProtocolServiceClient` convenience constructor.
viewClient := penumbraview.NewViewProtocolServiceClient(channel)
addressReq := &penumbraview.AddressByIndexRequest{
        AddressIndex: &penumbracrypto.AddressIndex{
                Account: 0,
        }}

ctx := context.TODO()
fmt.Println("Requesting address via pclientd...")
resp, err := viewClient.AddressByIndex(ctx, addressReq)
if err != nil {
        fmt.Println("Encountered error looking up address via pclientd", err)
        return false, err
}

One downside of this proposal is that it would require folks to download the protoc-gen-gocosmos tool locally in order to regenerate the protos as part of our tooling. That's suboptimal, but in my view, not a showstopper. Thoughts from others?

We're on the fence about utility here. Practically speaking, I'd like to let the dust settle on the golang integration with Penumbra that Strangelove has been working on. See some related challenges here: https://github.com/strangelove-ventures/interchaintest/issues/658


Mobile view redirecting to desktop

When I try forcing the mobile version with /material/mobile (as per documentation) it constantly redirects itself to /material/desktop.  This occurs in Firefox and Chrome.  Skin is v0.9.5.
Ordinarily this wouldn't be an issue on a desktop however I am trying to embed the player into a frame so I specifically want the mobile version as the desktop version gets collapsed too much and does not render properly.

Material should automatically choose mobile or desktop layouts, but you may also force one or the other.
http://<yourserver>:9000/material/mobile will force mobile layout
http://<yourserver>:9000/material/desktop will force desktop layout

Material also has two other views; a mini-player and now-playing screen. The mini-player can be launched via the desktop view (and this is how it is intended to be used), or via the URL below. Now-playing can only be accessed via the URL below (it is in fact a trimmed down desktop view, that only shows now-playing).
http://<yourserver>:9000/material/mini
http://<yourserver>:9000/material/now-playing

Use material's settings and set to desktop layout. If this setting is left at auto, then any resize will cause material to check whether to use desktop or mobile.
I'll update the documentation to mention this. Will leave this report open until I do.
Sorry for the confusion.

I did look at material's setting but when saving it says "NOTE: 'Application layout' is not saved, as this is a per-device setting." which doesn't help me when I want it to appear automatically as a mobile view in the frame for any browser or device that uses it.
It's also not just the UI rearranging itself due to the size, it physically redirects the URL:
-I type http://<IP_ADDRESS>:9000/material/mobile and hit enter
-Page loads momentarily and then redirects and reloads to http://<IP_ADDRESS>:9000/material/desktop
As the application layout setting is a cookie based setting, this causes it to appear deformed in an iframe.  I think the option of /desktop /mobile needs to override any CSS or script checking that it does.

It is the size checking, but it happens at start-up too. There is no option of /desktop /mobile - these are the URLs that are used. The code would not know if the user entered these, or if the code changed the URL.
Anyhow, I'll add a "?auto=false" (or something like this) to disable the size checking and auto switching.

Based on the documentation I would have expected that /material would have used an auto selection but /material/desktop or /material/mobile would have used the path explicit.
Obviously that's not the case but anything to force it one way or the other would be appreciated :)

Fixed for next release - note README.md will also be updated then.


Add superscripts , subscripts, symbols, more nukta text for Hindi etc

@theraysmith
Please add superscripts (0-9) and subscripts (0-9) in training text for Hindi, Sanskrit and other Indic languages.
Please also include symbols that looks similar to the following:

You could also include svastika as part of Devanagari unicharset and Hindi and Sanskrit training text. Please note that in India it is considered a sign of auspiciousness.
In langdata repo it is included as part of Han.unicharset.  It could also be included in Tibetan unicharset.
Wikipedia info regarding the unicode points for the same.
"The sauwastika is included in the Unicode character sets of two languages. In the Chinese block it is U+534D 卍 (left-facing) and U+5350 for the swastika 卐 (right-facing);[14] The latter has a mapping in the original Big5 character set,[15] but the former does not (although it is in Big5+[16]). In Unicode 5.2, two swastika symbols and two sauwastikas were added to the Tibetan block: swastika U+0FD5 ࿕ RIGHT-FACING, U+0FD7 ࿗ SWASTIKA (right-facing with dots), and sauwastikas U+0FD6 ࿖ LEFT-FACING, U+0FD8 ࿘ left-facing with dots).[17]"

Attaching a text sample with some of the above.
symbols-etc.txt

Sample text with characters with nukta included -
nukta.txt

Sample image showing use of superscripts with Hindi text

Sample showing use of symbols - Sanskrit text

Sample pdf with superscripts, symbols, Hindi and Sanskrit text - combined.
http://download.vedpuran.net/Files/sample 4 pages Mahabhart-Gorkhpur.pdf

Same as a new issue. Closing this.
Please see https://github.com/tesseract-ocr/langdata/issues/62


[blocked] It should be possible to do arithmetic with two channels with the same units

Adds arithmetic operations to slice object (/, *, +, -, rdiv, rmul, radd, rsub).

Adds tests for various combinations of arithmetic on slices.

Can you add unit tests specifically for determine_unit? And document exactly the meaning of None and dimensionless. I'm a bit confused now. I'm not entirely sure about the rules are here. Is ti that a Slice without an explicit unit set is None and also np.ndarray is None? I would actually expect those to be dimensionless.
I feel like it would be best to simplify to just dimensionless (represented by None) and a specific unit. Adding arbitrary units into the mix seems to complicate things a bit too much. Do we then consider AU like NaNs, i.e. they never compare equal?

Can you add unit tests specifically for determine_unit? And document exactly the meaning of None and dimensionless. I'm a bit confused now. I'm not entirely sure about the rules are here. Is ti that a Slice without an explicit unit set is None and also np.ndarray is None? I would actually expect those to be dimensionless.
I feel like it would be best to simplify to just dimensionless (represented by None) and a specific unit. Adding arbitrary units into the mix seems to complicate things a bit too much. Do we then consider AUs to be like NaNs, i.e. they never compare equal?

I have added a description of the reasoning in the determine_unit function and added a test which covers all the cases.
I was reasoning along the lines of what can be inferred about a unit when the datatype does not specify one. We know for instance that 5 + ? is valid iff both units are the same. Hence the unit of the unknown quantity can be inferred as being the same. For division and multiplication this is not the case. In this case units cannot be inferred and therefore the return "unit" is None (unknown). I was debating whether to raise an exception instead, but I'm afraid that this would be obnoxious and prohibitive in any sort of analysis where normalization is involved, and would likely result in users just extracting the raw data from the objects early on.
The special case of the dimensionless unit is only to allow some additional operations to be performed. If we ever switch to a proper unit library, this special case would become superfluous as the libraries I have looked at all support dimensionless quantities natively. In this case, the units can just be forwarded to that library to deal with.
Maybe it would make sense to have a short meeting with everyone about this topic, since it is a fairly early API decision on whether to err on the side of safety or on the side of trusting the user.
In terms of comparison, I would say that yes, any operation where two quantities that do not have units associated with them should return a quantity without a unit.

rip


Release alpha version

After we have initial documentation,  please make an alpha release which can installed in the test environments.

Code is now in a good state so I am freezing the code for the first stable version. Will only update the docs until first release.


suggestion: Make recent IP splitting more efficient using a BTreeSet to compare once

This is a suggestion for @arya2 for PR #7041:

Use a BTreeSet to compare times once, rather than a binary search

Even during an attack, a binary search would only be comparing at most log2(12_000) = 14 times per connection, which is a trivial amount compared to all the other connection operation. So I'm not sure if this change is worth it.
It has an increased risk of bugs due to duplicate Instants from the OS. (Which can happen due to low resolution timers or OS bugs.)
It's totally up to you, please close it if you are unsure about the duplicate time risk.

@arya2 I thought you might want to see how this could work, even if we don't merge it.

I learned that BTreeMap::split_off() will return the index of the first element that is Ordering::Less than the key, thank you!