Simplify and unify the alias syntax using joinWith

From the docs http://www.yiiframework.com/doc-2.0/guide-output-data-widgets.html#working-with-model-relations

Info: In the above we use the same string for the relation name and the table alias; however, when your alias and relation name
differ, you have to pay attention to where you use the alias and where you use the relation name.
A simple rule for this is to use the alias in every place that is used to build the database query and the
relation name in all other definitions such as attributes() and rules() etc.
For example, if you use the alias au for the author relation table, the joinWith statement looks like the following:
$query->joinWith(['author' => function($query) { $query->from(['au' => 'users']); }]);

It is also possible to just call $query->joinWith(['author']); when the alias is defined in the relation definition.
The alias has to be used in the filter condition but the attribute name stays the same:
$query->andFilterWhere(['LIKE', 'au.name', $this->getAttribute('author.name')]);

The same is true for the sorting definition:
$dataProvider->sort->attributes['author.name'] = [
     'asc' => ['au.name' => SORT_ASC],
     'desc' => ['au.name' => SORT_DESC],
];

Also, when specifying the [[yii\data\Sort::defaultOrder|defaultOrder]] for sorting, you need to use the relation name
instead of the alias:
$dataProvider->sort->defaultOrder = ['author.name' => SORT_ASC];

I propose to simplify the alias sintax like the one used for the ActiveQuery's and unify the way the alias are handled since ATM its hard to understand and more complicated than it should.
I think this syntax is much simpler to understand
$query->joinWith(['au' => 'author']);

Where 'au' is the alias and 'author' is the relation name. And let the alias work on the ActiveRecord on the query and the attributes alike.
To handle callback, eager loading and join types the syntax would be
$query->joinWith([
    'au' => [
        'relation' => 'author',
        'eagerLoading' => true,
        'joinType' => 'LEFT JOIN',
        'callback' => function ($query) {
            $query->orderBy('au.name');
        },
    ],
]);

Which is much more easier to understand than the current syntax and will mean a lower learning curve.
This change won't be backwards compatible and the docs will need to point the differences on how it works between versions. A way to avoid this problem is to make a different method to have this syntax, like joinRelation and deprecate the joinWith method
This is related to #2377 but not a copy of it because i am proposing a syntax on how to handle it

I think I found a backwards compatible way to achieve this.
The 'full' syntax, with all the customization options would be like this
$query->joinWith([
    'alias' => [
        'relationName' => 'relation',
        'eagerLoading' => false,
        'joinType' => 'LEFT JOIN',
        'callback' => function ($query) {
            $query->where(['like, 'name', 'hawkins']);
        }
    ]
]);

By default alias and relationName are the same, so if one is provided the other defaults to that value. Meaning if I provide an string, an item in an array with the key being an string or a value for 'relationName' the alias and the relationName can be deduced easily.
So for the joinWith method we can use something like this.
public function joinWith($with, $eagerLoading = true, $joinType = 'LEFT JOIN')
{
    if (is_string($relations)) {
        $this->joinWith[$with] = [
            'relationName' => $with,
            'eagerLoading' => $eagerLoading,
            'joinType' => $joinType
        ];
    } elseif (is_array($with)) {
        foreach ($with as $alias => $data) {
            if (is_string($data)) {
                $alias = is_string($alias) ? $alias : $data;
                $this->joinWith[$alias] = [
                    'relationName' => $data,
                    'eagerLoading' => $eagerLoading,
                    'joinType' => $joinType,
                ];
            } elseif (is_callable($data) && is_string($alias)) {
                $this->joinWith[$alias] = [
                    'relationName' => $alias,
                    'eagerLoading' => $eagerLoading,
                    'joinType' => $joinType,
                    'callback' => $data,
                ];
            } elseif (is_array($data)) {
                if (!empty($data['relationName']) {
                    $relationName = $data['relationName'];
                    $alias = is_string($alias) ? $alias : $relationName;
                } elseif (is_string($alias)) {
                    $relationName = $alias;
                } else {
                    throw new InvalidParamException('Impossible to determine relation');
                }

                // $data has priority over default values
                $this->joinWith[$alias] = arrray_merge([
                    'relationName' => $relationName,
                    'eagerLoading' => $eagerLoading,
                    'joinType' => $joinType,
                ], $data);
            } else {
                throw new InvalidParamException('Impossible to determine relation');
            }
        }
    } else {
        throw new InvalidParamException('string or array expected for the $with value');
    }

    return $this;
}

If someone can do it with less if statements or with a easier to understand code it would be better.
The real hard work will come from editing the private method buildJoinWith on the ActiveQuery class but since its a private method, i think it won't cause backwards compatibility issues.
For the testing.
First I was thinking on how to make a unit testing about this issue, since all this cases should produce the same result, then they should all be unit tested.

$order->joinWith('author');

$order->joinWith(['author']);

$order->joinWith([
    'author' => 'author'
]);

$order->joinWith([
    [
        'relationName' => 'author',
    ]
]);

$order->joinWith([
    'author' => [
        'relationName' => 'author',
    ]
]);

$order->joinWith([
    [
        'relationName' => 'author',
        'eagerLoading' => true,
        'joinType' => 'LEFT JOIN',
    ]
]);

$order->joinWith([
    'author' => [
        'relationName' => 'author',
        'eagerLoading' => true,
        'joinType' => 'LEFT JOIN',
    ]
]);

// now with callback

$order->joinWith([
    'author' => function ($query) {
         // empty callback
    }
]);

$order->joinWith([
    [
        'relationName' => 'author',
        'eagerLoading' => true,
        'joinType' => 'LEFT JOIN',
        'callback' =>  => function ($query) {
            // empty callback
        },
    ]
]);

$order->joinWith([
    [
        'relationName' => 'author',
        'callback' =>  => function ($query) {
            // empty callback
       },
    ]
]);

$order->joinWith([
    'author' => [
        'eagerLoading' => true,
        'joinType' => 'LEFT JOIN',
        'callback' =>  => function ($query) {
            // empty callback
       },
    ]
]);

$order->joinWith([
    'author' => [
        'relationName' => 'author'
        'eagerLoading' => true,
        'joinType' => 'LEFT JOIN',
        'callback' =>  => function ($query) {
            // empty callback
       },
    ]
]);

@cebe i would like to help on this issue, but i would require you to explain me how buildJoinWith works so i can refactor it

@Faryshta thanks for offering help. This topic however is quite complex so I have to dig into the functionality myself too. Not easy to explain.

help me with the big picture :art: how does buildJoinWith takes the $ths->joinWith array and turn it into ActiveQuery's and how are they 'attached' to the ActiveRecord?

Can use the relation name as table alias,  I think i will be simple. (The  relation name is unqiue~)

@Faryshta thanks for your work on this. However, the proposed syntax here provides a ton of different ways to achive the same thing which is not good for an API.
I would prefer if we introduce a simple syntax which uses a string for simply specifying an alias.

@cebe ok no prob. I think it would be easier to learn the 'alias' => 'relation' syntax because on the ActiveRecord::select() method already has something like that 'alias' => 'attribute'

closed in favor of https://github.com/yiisoft/yii2/pull/10253

reopening as it seems I misunderstood the idea behind this. See https://github.com/yiisoft/yii2/pull/10253#issuecomment-161028634

for this change I don't think it would be too difficult, we just need to store the value of the aliased relation in ActiveRecord::$_relations private property. The only "difficult" part is to agree with the syntax

Closing due to inactivity. If this should be reopen please write here.


v3 release

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 92.47312% with 14 lines in your changes missing coverage. Please review.

Project coverage is 90.90%. Comparing base (621be3f) to head (63ed831).

Files with missing lines
Patch %
Lines

src/utils.ts
92.30%
10 Missing :warning:

src/trie.ts
92.00%
4 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #35      +/-   ##
==========================================
- Coverage   91.71%   90.90%   -0.81%
==========================================
  Files           4        5       +1
  Lines         169      275     +106
  Branches       60       92      +32
==========================================
+ Hits          155      250      +95
- Misses         12       23      +11
  Partials        2        2

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


Add http://www.yibainetwork.com/ to powered-by page

Please answer these questions before submitting pull request

Why submit this pull request?

[ ] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues

Bug fix

Bug description.

How to fix?

New feature or improvement

Describe the details and related test reports.

Ref #443


Can't get the same interfaceID for ERC721

Sorry - my mistake

Thanks for following up quickly on this.
Can you please add your notes on how you were able to confirm this. I will be helpful to others searching this issue.
And, of course, thank you for your interest in this project!


[Feature Request] Top DSA Interview Questions Topic

🚀 Feature Request
Description:
I propose adding a curated list of top Data Structures and Algorithms (DSA) interview questions to  platform. This feature will help users prepare for technical interviews, enhancing their coding skills and increasing their chances of success.
Would you like to work on this feature?

[ yes ] Yes
[ no ] No

@ajay-dhangar please assign me point under girlscript summe of code.. according to my effort..


Docstring for param.Parameter.__init__ doesn't have bolded param names

Environment data

Language Server version: 2024.6.100
OS and version: Windows 11
Python version: 3.12.1

Code Snippet
import param

param.Parameter()

Repro Steps

Paste text above.
Mouse over Parameter

Expected behavior
Parameter names are in bold. Something like this:

Actual behavior

Rich said that the problem was missing indentation. Here's their __init__:
    def __init__(self, default=Undefined, *, doc=Undefined, # pylint: disable-msg=R0913
                 label=Undefined, precedence=Undefined,
                 instantiate=Undefined, constant=Undefined, readonly=Undefined,
                 pickle_default_value=Undefined, allow_None=Undefined,
                 per_instance=Undefined, allow_refs=Undefined, nested_refs=Undefined):

        """Initialize a new Parameter object and store the supplied attributes:

        default: the owning class's value for the attribute represented
        by this Parameter, which can be overridden in an instance.

        doc: docstring explaining what this parameter represents.

        label: optional text label to be used when this Parameter is
        shown in a listing. If no label is supplied, the attribute name
        for this parameter in the owning Parameterized object is used.

        precedence: a numeric value, usually in the range 0.0 to 1.0,
        which allows the order of Parameters in a class to be defined in
        a listing or e.g. in GUI menus. A negative precedence indicates
        a parameter that should be hidden in such listings.

        instantiate: controls whether the value of this Parameter will
        be deepcopied when a Parameterized object is instantiated (if
        True), or if the single default value will be shared by all
        Parameterized instances (if False). For an immutable Parameter
        value, it is best to leave instantiate at the default of
        False, so that a user can choose to change the value at the
        Parameterized instance level (affecting only that instance) or
        at the Parameterized class or superclass level (affecting all
        existing and future instances of that class or superclass). For
        a mutable Parameter value, the default of False is also appropriate
        if you want all instances to share the same value state, e.g. if
        they are each simply referring to a single global object like
        a singleton. If instead each Parameterized should have its own
        independently mutable value, instantiate should be set to
        True, but note that there is then no simple way to change the
        value of this Parameter at the class or superclass level,
        because each instance, once created, will then have an
        independently instantiated value.

        constant: if true, the Parameter value can be changed only at
        the class level or in a Parameterized constructor call. The
        value is otherwise constant on the Parameterized instance,
        once it has been constructed.

        readonly: if true, the Parameter value cannot ordinarily be
        changed by setting the attribute at the class or instance
        levels at all. The value can still be changed in code by
        temporarily overriding the value of this slot and then
        restoring it, which is useful for reporting values that the
        _user_ should never change but which do change during code
        execution.

        pickle_default_value: whether the default value should be
        pickled. Usually, you would want the default value to be pickled,
        but there are rare cases where that would not be the case (e.g.
        for file search paths that are specific to a certain system).

        per_instance: whether a separate Parameter instance will be
        created for every Parameterized instance. True by default.
        If False, all instances of a Parameterized class will share
        the same Parameter object, including all validation
        attributes (bounds, etc.). See also instantiate, which is
        conceptually similar but affects the Parameter value rather
        than the Parameter object.

        allow_None: if True, None is accepted as a valid value for
        this Parameter, in addition to any other values that are
        allowed. If the default value is defined as None, allow_None
        is set to True automatically.

        allow_refs: if True allows automatically linking parameter
        references to this Parameter, i.e. the parameter value will
        automatically reflect the current value of the reference that
        is passed in.

        nested_refs: if True and allow_refs=True then even nested objects
        such as dictionaries, lists, slices, tuples and sets will be
        inspected for references and will be automatically resolved.

        default, doc, and precedence all default to None, which allows
        inheritance of Parameter slots (attributes) from the owning-class'
        class hierarchy (see ParameterizedMetaclass).
        """

        self.name = None
        self.owner = None
        self.allow_refs = allow_refs
        self.nested_refs = nested_refs
        self.precedence = precedence
        self.default = default
        self.doc = doc
        self.constant = constant is True or readonly is True # readonly => constant
        self.readonly = readonly
        self._label = label
        self._set_instantiate(instantiate)
        self.pickle_default_value = pickle_default_value
        self._set_allow_None(allow_None)
        self.watchers = {}
        self.per_instance = per_instance

The hard part here will be fixing the indentation without breaking other stuff.
Example:
        readonly: if true, the Parameter value cannot ordinarily be
        changed by setting the attribute at the class or instance
        levels at all. The value can still be changed in code by
        temporarily overriding the value of this slot and then
        restoring it, which is useful for reporting values that the
        _user_ should never change but which do change during code
        execution.

For this to parse correctly, it should look like this:
        readonly: if true, the Parameter value cannot ordinarily be
            changed by setting the attribute at the class or instance
            levels at all. The value can still be changed in code by
            temporarily overriding the value of this slot and then
            restoring it, which is useful for reporting values that the
            _user_ should never change but which do change during code
            execution.

Otherwise our parser just considers that block a paragraph and not a definition list which is what we assume parameter lists are.

Actually I don't think that will fix it either. There's nothing indicating anything is a parameter. So even with the change, this still wouldn't format correctly. I don't think we can handle this without the docstring changing. It'd be super hard to turn all name : text text text into parameter lists and not break other stuff.


vgChangeSource callback triggers when the video player begins a new file

Hello Videogular!
I had difficulties when trying to use the Videogular API callback: vgChangeSource().
The API  lists this callback as vgChangeSource($source): Called when __volume__ has been changed. Returns the new media source.
And the docs list the callback as: Function name in controller's scope to change current video source. Receives a param with the new video.
With this edit, my wrapper directive controller can now bind to vgChangeSource and be notified whenever the video element begins playing a new source.
Use case

server has a video file stored at several resolutions and bitrate qualities
users must be able to select a higher or lower quality video file from the player.
If video was in progress, resume new quality video at same 'currentTime' location.

Approach

store video time index and playback state when user selects a different video quality
when new file is loaded, seekTime to stored location and resume previous playback state

Problem

ambiguous detection for: 'when new file is loaded...'.

Workaround
It seems onUpdateTime() is called with either (0,NaN) or (0,metadata.duration) when the source file is changed, and logic can trigger off that, but from the API descriptions, using vgChangeSource($source) sounded like the correct way to be notified when the video file changed.

Please let me know If I am misunderstanding the API callback intention, or if I can provide any more feedback to make this pull request more clear.
Thank you for the work you have done in making this library; it is truly a fantastic video player framework.

Hi,
Obviously, both API and Docs have typos, I will fix this ASAP. Thanks for noticing this.
About your fix, I want to try it first to be sure that there are no problems with other platforms and all the tests run. The problem you mention should not be something handled by Videogular so the developer should take care when he/she changes the video or when quality has been changed.
Anyway, thanks for the PR, I will try to merge it soon :)

I want to try it first to be sure that there are no problems with other platforms and all the tests run.

I wouldn't expect anything less.

the problem you mention should not be something handled by Videogular so the developer should take care when he/she changes the video or when quality has been changed.

I absolutely agree that my problem is not videogular's responsibility.
My primary question and concern that spawned this PR was: When/why is videogular supposed to trigger the vgChangeSource callback function? In all of my testing, vgChangeSource was never called at all.  I admit that this PR may have been misguided if I misunderstood the intent behind this callback. My understanding was to treat it as: The media element changed it's src property; inform any listeners that a new file is loading.
<videogular vg-change-source="myCtrl.myCallbackListener($source)>...</videogular>
Please close/delete the PR if I did misunderstand the intended use.
Again, this is a terrific video player. Thanks for your time

In fact, I think you're right and that your fix should work as intended.
Probably I screwed this method on a past refactor and nobody noticed it (even me), so thank you :)
I'm going to create a new branch RC-1.2.0 with some new changes and this fix included in case you want to have a branch to test.

You have the branch here in case you want to test:
https://github.com/2fdevs/videogular/tree/RC-1.2.0


Implement CORS middleware

This starts to address issue #218
@rossabaker please help me clean this up a bit.

First things first: thanks for the PR. Second thing: I know little about CORS. All that said, the code looks great to me. I can take a deeper look this weekend after doing a bit of CORS reading unless someone more knowledgeable beats me to it.

(It seems the failure is unrelated...)

@kryptt , I remember you saying there was a problem, but I can't remember if that happened before or after the latest round of commits?  Is this good to review now?

Yes, its good for review now.
I am using it without issue on my dev and staging environments right now...

:+1:


feat: Add ssgRoute api

I added ssgRoute API.
Example:
import { toSsg, ssgRoute }  from '...'

app.get('/api', c => c.json({})) // It is not SSG.
app.get('/', ssgRoute(), c => c.text(''))
app.get('/posts/:id', ssgRoute(() => [{ id: '1' }]), c => c.text(''))

features:

Users be able to use generateStaticPaths like API.
Users be able to switch SSG/SSR easy.

Author should do the followings, if applicable

[x] Add tests
[x] Run tests
[x] yarn denoify to generate files for Deno

Sorry, I made a mistake.
I should send ssg branch this PR.


[CS2103-T16-04] ScheDar

A calendar and scheduling application that assists students in the planning of their lecture and tutorial schedules, as well as keep track of assignments and deadlines.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@6389d85). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #72   +/-   ##
=========================================
  Coverage          ?   72.31%
  Complexity        ?      400
=========================================
  Files             ?       70
  Lines             ?     1228
  Branches          ?      124
=========================================
  Hits              ?      888
  Misses            ?      308
  Partials          ?       32

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 6389d85...07df8db. Read the comment docs.


add headers to options

I know it's possible to overwrite the entire restClient promise as stated in documentation, but this PR hopes to make customizing the rest client simpler: allow to pass in headers as part of the options. It happens that in my rest client uses other headers for authorization, and others might find it useful to send other headers without overwriting the entire fetch.js.

How about that: instead, put fetchJson as a second parameter of the function, using the current fetchJson as default value. That way, you'll just need to pass a custom fetchJson function (or to compose it) to add your own headers.

Sorry which function do you mean? Is that inside the restClient file? By the way I do it this way as a new user(and fairly new to the entire Node programming environment) to get things up and working with the least configuration as possible, at least I thought restClient is the only configuration I need to hook up the Rest API.

I proposed an alternative implementation in #130


Pixiv Support

Sorry, just getting to this. I'm not finding any way to embed pixiv links. I found a blog post that makes it seem like they may have removed embedding support? Tried using an old script, but doesn't seem to work anymore. Not sure if you know anything more.


Appimages for ALVR nightly broken (for me) as of July 3rd

Not sure if this is the appropriate place to put this, but alvr-nightly doesn't have an issue tracker so:
Every appimage of alvr nightly fails to work for me as of the July 3rd release
(ALVR v21.0.0-dev00+nightly.2023.07.03)
The last confirmed working appimage is July 1st (I cannot test July 2nd, as there is no appimage for it for some reason)
(ALVR v21.0.0-dev00+nightly.2023.07.01)
The original error I got upon running them was that it could not find libthai (libs missing from the appimage perhaps?) I managed to install libthai and it's dependencies - now when I launch it (depending on the version, anywhere from July 3rd to today) it either hangs, or I get "segmentation fault".
I'm not sure if this is a problem with ALVR, or the appimage-making process going wrong somewhere.

A fix was pushed, and reports say this has been fixed.

Yep confirmed - as of my testing (version August 25th) it now works! Will mark as closed then

The latest stable release (v20.4.3) segfaults for me on POP!_OS.


Add James Byrne as a contributor

@all-contributors please add @JimCircadian for ideas, projectManagement, maintenance

@all-contributors please add @JimCircadian for ideas, projectManagement, maintenance


Layout type starts different than header setting

The map starts with the image inset on the right (per the layout: "integrated" settings in the index.html); however the header settings (in builder) thinks it should be on the left (layout: "three-panel").  If you change anything in the header (and don't check/change the layout), it will switch to three-panel.

change the index.html to match the header expectations
change the header expectations to match what is set in index.html

Fixed with 6d60c25
key is to ignore the config settings in index.html like is done on AGOL/Portal. We are providing a custom template (as is AGOL/Portal), not a custom app, each with it's own index.html to modify.


[Feature] Trackpad above Touch Bar on iPad

It will be great if you add virtual trackpad on free space in app for iPad.

As much as we would like to do this, there is no way on macOS to simulate trackpad input at the moment.

could this be of any help? Sorry if it's useless but I found this and thought maybe it would be useful.

@par5ul1 Just did a little research, seems its main propose is help you inject multi-touch event if you already got a OSX-supported multi-touch device, like magic mouse/trackpad. For those who don't have either, the multitouch framework cannot even start working ( cannot get a valid MTDeviceRef - and all later works depends it ). To make it work, we'll need first emulate such a device, from driver level, to makes this framework thinks it exist to work; and then, all gestures still need be recognize by  coding by hand - currently only 2 finger swipe/pan/rotate implemented - since seems the magic mouse/trackpad hardware recognize them internally. And the framework seems being rewritten by mavericks, possible more reverse engine needed. Seems its would be a much bigger task than the whole project currently.

Not to beat a dead horse, but could a subset "non-pointer" gestures be possible?
My (probably very personal) scenario: I use a mouse but still reach to the trackpad for two-finger scroll and three-finger swipe-between-spaces.
Even if that's going too far, thanks for publishing this! I hope it will drive TouchBar emulation across other "use my iPad as a peripheral" apps.


Collapse state lost after revert

change a notebook & save
revert from SCM view
collapse something in the notebook
make another change and attempt to save
select revert from the "changed on disk" warning
:bug: the collapsed cell expands again

This is a more general issue that happens when the notebook fires certain content change events


Inj unification

Reviewer checklist

[ ] Test coverage: stack test --coverage
[ ] Public API documentation: stack haddock
[ ] Style conformance: stylish-haskell

Should be reviewed after #195
Implements most cases of unification modulo injections.  Notable exception:
inj{s1,s3}(a{}()) vs. inj{s2,s3}(x)
This should succeed if s1 < s2 < s3 but fail otherwise.

A more general situation is
inj{s1,s3}(y) vs. inj{s2,s3}(x)
when there is s0 such that s0 < s1 < s3 and s0 < s2 < s3.
I guess that for such cases the retracts should be used as well.

I was able to get this working (now that I really have the latest K). I did have to do mv src/main/k/in-progress/lib src/main/k/.


Can XDF XML have custom fields?

My question goes towards whether or not we should just keep the whole XML header and footer as a string in the stream dictionary. This would only be helpful in case the file contains custom fields.

Yes, the XML can contain custom fields, so we should make headers and footers available somehow. In addition, the standardized part could of course be transformed into a more accessible data structure.

This issue was closed with pr #4.


Error in check_run_inputs: Must provide 'iterations' in robyn_run()

Project Robyn
Describe issue
Shiny app shuts down after the 'Initiate ROBYN Model' step, provides the error in the subject:
Warning: Error in check_run_inputs: Must provide 'iterations' in robyn_run()
Provide dummy data & model configuration
Using the data set provided
[holidays.csv](https://github.com/facebookexperime
de_simulated_data.csv

Environment & Robyn version
Windows 10 x86_64-w64-mingw32/x64 (64-bit)
R version 4.2.1
Python 3.10
Codeless Robyn downloaded from Github on 7.20.22
Any advice is appreciated, let me know if you need other information from me.

Hi @sab26699
This is an old version of the UI that used an older version of Robyn. We are currently working on an educational and interactive UI (shiny app) that is quite similar to that one, built from the ground up. We will share it in the following days!
CC: @kyletgoldberg

Hi, @laresbernardo and @sab26699
I am also creating shiny app on robyn for my research purpose. I stuck in accessing InputCollect. following is the code I tried  ui and server part for InputCollect.
ui
tabPanel("Modelling",                           sidebarLayout(                             sidebarPanel(dateRangeInput("date","Date range"),                                          selectInput(inputId = "var1"                                          ,label = "Choose Paid media spends","Names",multiple = TRUE),                                          selectInput(inputId = "var2"                                          ,label = "Choose Paid media variables","Names",multiple = TRUE),                                          selectInput(inputId = "var3"                                          ,label = "Choose Organic variables","Names",multiple = TRUE),                                          selectInput(inputId = "var4"                                          ,label = "Choose Context variables","Names",multiple = TRUE),                                          selectInput(inputId = "var5"                                          ,label = "Choose Factor variables","Names",multiple = TRUE),                                          selectInput(inputId = "var6"                                          ,label = "Choose Dependent variable","Names")),                             mainPanel(uiOutput("InputCollect"))                           ))
server
robyn <- renderUI({         InputCollect <- robyn_inputs(           dt_input <<- data           ,dt_holidays <- data(dt_prophet_holidays)           ,date_var <- dt_input$Date # date format must be "2020-01-01"           ,dep_var <<- input$var6 # there should be only one dependent variable           ,dep_var_type <- "revenue" # "revenue" (ROI) or "conversion" (CPA)           ,prophet_vars <- c("trend", "season", "holiday") # "trend","season", "weekday" & "holiday"           ,prophet_country <- "UK"# input one country. dt_prophet_holidays includes 59 countries by default           ,context_vars <- input$var4 # e.g. competitors, discount, unemployment etc           ,paid_media_spends <<- input$var1 # mandatory input           ,paid_media_vars <<- input$var2 # mandatory.           # paid_media_vars must have same order as paid_media_spends. Use media exposure metrics like           # impressions, GRP etc. If not applicable, use spend instead.           ,organic_vars <<- input$var3 # marketing activity without media spend           ,factor_vars <- input$var5 # specify which variables in context_vars or organic_vars are factorial           ,window_start <- 2020-01-01            ,window_end <- 2020-12-30           ,adstock <- "geometric" # geometric, weibull_cdf or weibull_pdf.         )         print(InputCollect)       })
Did I made any mistake in rendering part?
Thanks in advance.

@sab26699 try using the dev version in the branch kg_pkg_test and see if that solves your problem.

@Harshitha-HM1999 could you please create a reproducible example?

Hi @kyletgoldberg
Following is the code
library(shiny)
library(Robyn)
library(reticulate)

ui <- navbarPage(title = "MMX analysis",
                 #  INPUT DATA --------------------------------------------------------------------
                 #  side panel --------------------------------------
                 tabPanel("Input data",
                          sidebarLayout(
                            sidebarPanel(style = "overflow-y:scroll; max-height: 600px",
                                         fileInput("file1", "Choose CSV File"
                                                   ,accept = c("text/csv","text/comma-separated-values,text/plain",".csv"))
                                         ,tags$hr()
                                         ,checkboxInput("header", "Header", value = TRUE)
                                         ,radioButtons("disp","Display",choices = c(Head="head",All="all")
                                                       ,selected = "head")
                                         ),
                            #  main panel --------------------------------------
                            mainPanel(fluidPage(fluidRow(
                              column(12,tableOutput("contents")
                                     ,style = "overflow-x:scroll; max-height: 600px")
                             )
                          )
                      )
                  )
              ),

                 #  MODELLING OUTPUT ---------------------------------------------------------------
                 tabPanel("Modelling",
                          sidebarLayout(
                            sidebarPanel(dateRangeInput("date","Date range"),
                                         selectInput(inputId = "var1"
                                                     ,label = "Choose Paid media spends","Names",multiple = TRUE),
                                         selectInput(inputId = "var2"
                                                     ,label = "Choose Paid media variables","Names",multiple = TRUE),
                                         selectInput(inputId = "var3"
                                                     ,label = "Choose Organic variables","Names",multiple = TRUE),
                                         selectInput(inputId = "var4"
                                                     ,label = "Choose Context variables","Names",multiple = TRUE),
                                         selectInput(inputId = "var5"
                                                     ,label = "Choose Factor variables","Names",multiple = TRUE),
                                         selectInput(inputId = "var6"
                                                     ,label = "Choose Dependent variable","Names")),
                            mainPanel(uiOutput("InputCollect"))
                          ))
)

server <- function(input,output,session) {
  #  INPUT DATASET --------------------------------------------------------------------
  output$contents <- renderTable({
    file <- input$file1
    ext <- tools::file_ext(file$datapath)
    req(file)
    validate(need(ext=="csv","please upload a csv file"))
    data <<- read.csv(file$datapath, header = input$header)

    #  UPDATING VARIABLES ---------------------------------------------------------------
    observe({
      updateSelectInput(session,"var1",choices = c("None",names(data)))
      updateSelectInput(session,"var2",choices = c("None",names(data)))
      updateSelectInput(session,"var3",choices = c("None",names(data)))
      updateSelectInput(session,"var4",choices = c("None",names(data)))
      updateSelectInput(session,"var5",choices = c("None",names(data)))
      updateSelectInput(session,"var6",choices = c("None",names(data)))
      updateSelectInput(session,"var7",choices = c("None",names(data)))
      updateSelectInput(session,"var8",choices = c("None",names(data)))

    #  ROBYN INPUTCOLLECT ----------------------------------------------------------------
    output$InputCollect <- renderUI({
        InputCollect <- robyn_inputs(
          dt_input <<- data
          ,dt_holidays <- data(dt_prophet_holidays)
          ,date_var <- dt_input$Date # date format must be "2020-01-01"
          ,dep_var <<- input$var6 # there should be only one dependent variable
          ,dep_var_type <- "revenue" # "revenue" (ROI) or "conversion" (CPA)
          ,prophet_vars <- c("trend", "season", "holiday") # "trend","season", "weekday" & "holiday"
          ,prophet_country <- "UK"# input one country. dt_prophet_holidays includes 59 countries by default
          ,context_vars <- c() # e.g. competitors, discount, unemployment etc
          ,paid_media_spends <<- input$var1 # mandatory input
          ,paid_media_vars <<- input$var2 # mandatory.
          # paid_media_vars must have same order as paid_media_spends. Use media exposure metrics like
          # impressions, GRP etc. If not applicable, use spend instead.
          ,organic_vars <<- input$var3 # marketing activity without media spend
          ,factor_vars <- c() # specify which variables in context_vars or organic_vars are factorial
          ,window_start <- 2020-01-01
          ,window_end <- 2020-12-30
          ,adstock <- "geometric" # geometric, weibull_cdf or weibull_pdf.
        )
        print(InputCollect)
      })

    })
    #  HEADER OF THE DATASET -------------------------------------------------
    if(input$disp == "head"){
      return(head(data))
    }
    else{
      return(data)

    }

  })

}

shinyApp(ui, server)

@Harshitha-HM1999 can you share more about the error you are experiencing? for what it's worth, we do have a shiny app that runs the whole Robyn process coming out very soon.

Hi @kyletgoldberg,
Nice to here this, great work.
As given above, inside the renderUI function I have taken the robyn_input, in that it is not accessing the dynamic variables (for e.g. paid_media_var, paid_media_spends).
The error I am getting as in the following screenshot

I am not sure about input$var is assigning variables to the robyn_input. I am not getting InputCollect in the modelling tab.
Please let me know, if some more details required.
Thanks in advance.

I'm getting an error on the first tab trying to load a CSV, i can't get to the error you are referencing.

Thanks for the reply @kyletgoldberg
library(shiny)
library(Robyn)
library(reticulate)

ui <- navbarPage(
  title = "MMX analysis",
  #  INPUT DATA --------------------------------------------------------------------
  #  side panel --------------------------------------
  tabPanel("Input data",
    sidebarLayout(
      sidebarPanel(
        style = "overflow-y:scroll; max-height: 600px",
        fileInput("file1", "Choose CSV File",accept = c("text/csv","text/comma-separated-values,text/plain",".csv")),
        tags$hr(),
        checkboxInput("header", "Header", value = TRUE),
        radioButtons("disp","Display",choices = c(Head="head",All="all"),selected = "head")
                                         ),
  #  main panel --------------------------------------
      mainPanel(
        fluidPage(
          fluidRow(
            column(12,tableOutput("contents"),style = "overflow-x:scroll; max-height: 600px")
                  )
                )
             )
          )
       ),

  #  MODELLING OUTPUT ---------------------------------------------------------------
  tabPanel("Modelling",
    sidebarLayout(
      sidebarPanel(
        dateRangeInput("date","Date range"),
        selectInput(inputId = "var1",label = "Choose Paid media spends","Names",multiple = TRUE),
        selectInput(inputId = "var2",label = "Choose Paid media variables","Names",multiple = TRUE),
        selectInput(inputId = "var3",label = "Choose Organic variables","Names",multiple = TRUE),
        selectInput(inputId = "var4",label = "Choose Context variables","Names",multiple = TRUE),
        selectInput(inputId = "var5",label = "Choose Factor variables","Names",multiple = TRUE),
        selectInput(inputId = "var6",label = "Choose Dependent variable","Names")),
      mainPanel(
        uiOutput("InputCollect")
      )
    )
  )
)

server <- function(input,output,session) {
  #  INPUT DATASET --------------------------------------------------------------------
  output$contents <- renderTable({
    file <- input$file1
    ext <- tools::file_ext(file$datapath)
    req(file)
    validate(need(ext=="csv","please upload a csv file"))
    data <<- read.csv(file$datapath, header = input$header)

    #  UPDATING VARIABLES ---------------------------------------------------------------
    observe({
      updateSelectInput(session,"var1",choices = c("None",names(data)))
      updateSelectInput(session,"var2",choices = c("None",names(data)))
      updateSelectInput(session,"var3",choices = c("None",names(data)))
      updateSelectInput(session,"var4",choices = c("None",names(data)))
      updateSelectInput(session,"var5",choices = c("None",names(data)))
      updateSelectInput(session,"var6",choices = c("None",names(data)))
      updateSelectInput(session,"var7",choices = c("None",names(data)))
      updateSelectInput(session,"var8",choices = c("None",names(data)))

    #  ROBYN INPUTCOLLECT ----------------------------------------------------------------
    output$InputCollect <- renderUI({
        InputCollect <- robyn_inputs(
          dt_input <<- data
          ,dt_holidays <- data(dt_prophet_holidays)
          ,date_var <- dt_input$Date # date format must be "2020-01-01"
          ,dep_var <<- input$var6 # there should be only one dependent variable
          ,dep_var_type <- "revenue" # "revenue" (ROI) or "conversion" (CPA)
          ,prophet_vars <- c("trend", "season", "holiday") # "trend","season", "weekday" & "holiday"
          ,prophet_country <- "UK"# input one country. dt_prophet_holidays includes 59 countries by default
          ,context_vars <- c() # e.g. competitors, discount, unemployment etc
          ,paid_media_spends <<- input$var1 # mandatory input
          ,paid_media_vars <<- input$var2 # mandatory.
          # paid_media_vars must have same order as paid_media_spends. Use media exposure metrics like
          # impressions, GRP etc. If not applicable, use spend instead.
          ,organic_vars <<- input$var3 # marketing activity without media spend
          ,factor_vars <- c() # specify which variables in context_vars or organic_vars are factorial
          ,window_start <- 2020-01-01
          ,window_end <- 2020-12-30
          ,adstock <- "geometric" # geometric, weibull_cdf or weibull_pdf.
        )
        print(InputCollect)
      })

    })
    #  HEADER OF THE DATASET -------------------------------------------------
    if(input$disp == "head"){
      return(head(data))
    }
    else{
      return(data)

    }

  })

}

shinyApp(ui, server)

For the above code I am getting this

Please let me know if any other details required.
Thanks.

i still get this error whenever i upload the sample data

Can you please try the below code?
library(shiny)
library(Robyn)
library(reticulate)

ui <- navbarPage(
  title = "MMX analysis",
  #  INPUT DATA --------------------------------------------------------------------
  #  side panel --------------------------------------
  tabPanel("Input data",
    sidebarLayout(
      sidebarPanel(
        style = "overflow-y:scroll; max-height: 600px",
        fileInput("file1", "Choose CSV File",accept = c("text/csv","text/comma-separated-values,text/plain",".csv")),
        tags$hr(),
        checkboxInput("header", "Header", value = TRUE),
        radioButtons("disp","Display",choices = c(Head="head",All="all"),selected = "head")
                                         ),
  #  main panel --------------------------------------
      mainPanel(
        fluidPage(
          fluidRow(
            column(12,tableOutput("contents"),style = "overflow-x:scroll; max-height: 600px")
                  )
                )
             )
          )
       ),

  #  MODELLING OUTPUT ---------------------------------------------------------------
  tabPanel("Modelling",
    sidebarLayout(
      sidebarPanel(
        dateRangeInput("date","Date range"),
        selectInput(inputId = "var1",label = "Choose Paid media spends","Names",multiple = TRUE),
        selectInput(inputId = "var2",label = "Choose Paid media variables","Names",multiple = TRUE),
        selectInput(inputId = "var3",label = "Choose Organic variables","Names",multiple = TRUE),
        selectInput(inputId = "var4",label = "Choose Context variables","Names",multiple = TRUE),
        selectInput(inputId = "var5",label = "Choose Factor variables","Names",multiple = TRUE),
        selectInput(inputId = "var6",label = "Choose Dependent variable","Names")),
      mainPanel(
        uiOutput("InputCollect")
      )
    )
  )
)

server <- function(input,output,session) {
  #  INPUT DATASET --------------------------------------------------------------------
  output$contents <- renderTable({
    file <- input$file1
    ext <- tools::file_ext(file$datapath)
    req(file)
    validate(need(ext=="csv","please upload a csv file"))
    data <- read.csv(file$datapath, header = input$header)

    #  UPDATING VARIABLES ---------------------------------------------------------------
    observe({
      updateSelectInput(session,"var1",choices = c("None",names(data)))
      updateSelectInput(session,"var2",choices = c("None",names(data)))
      updateSelectInput(session,"var3",choices = c("None",names(data)))
      updateSelectInput(session,"var4",choices = c("None",names(data)))
      updateSelectInput(session,"var5",choices = c("None",names(data)))
      updateSelectInput(session,"var6",choices = c("None",names(data)))

    #  ROBYN INPUTCOLLECT ----------------------------------------------------------------
    output$InputCollect <- renderUI({
        InputCollect <- robyn_inputs(
          dt_input <<- data
          ,dt_holidays <- data(dt_prophet_holidays)
          ,date_var <- dt_input$Date # date format must be "2020-01-01"
          ,dep_var <- input$var6 # there should be only one dependent variable
          ,dep_var_type <- "revenue" # "revenue" (ROI) or "conversion" (CPA)
          ,prophet_vars <- c("trend", "season", "holiday") # "trend","season", "weekday" & "holiday"
          ,prophet_country <- "UK"# input one country. dt_prophet_holidays includes 59 countries by default
          ,context_vars <- input$var4 # e.g. competitors, discount, unemployment etc
          ,paid_media_spends <- input$var1 # mandatory input
          ,paid_media_vars <- input$var2 # mandatory.
          # paid_media_vars must have same order as paid_media_spends. Use media exposure metrics like
          # impressions, GRP etc. If not applicable, use spend instead.
          ,organic_vars <- input$var3 # marketing activity without media spend
          ,factor_vars <- input$var5 # specify which variables in context_vars or organic_vars are factorial
          ,window_start <- 2020-01-01
          ,window_end <- 2020-12-30
          ,adstock <- "geometric" # geometric, weibull_cdf or weibull_pdf.
        )
        print(InputCollect)
      })

    })
    #  HEADER OF THE DATASET -------------------------------------------------
    if(input$disp == "head"){
      return(head(data))
    }
    else{
      return(data)

    }

  })

}

shinyApp(ui, server)

ah - its because your date_var selection is dt_input$Date, it should just be 'DATE'. their are a few issues like this where we are looking for the column name, not the entire column of data.
i would check this tutorial for debugging shiny apps as it will be very helpful in finding these bugs. https://shiny.rstudio.com/articles/debugging.html

Ok, Thanks @kyletgoldberg, I will check that.

Hi @kyletgoldberg,
If I change the date_var to 'DATE', I am getting error as  Error: 'DATE' not found
and I am not able to access other variables also.

hi @Harshitha-HM1999 i would keep looking to that debugging guide to work through this issue. it's a bit beyond the scope of what we are able to help with in this repo's issues since it's more of a shiny debugging issue than a robyn issue.

@sab26699 try using the dev version in the branch kg_pkg_test and see if that solves your problem.

I got the same error when using this version.  A few times in this thread someone has referenced a new version of codeless Robyn coming out - when will I know when that's ready to try?

@sab26699 it should be available in the coming weeks

hi @Harshitha-HM1999 i would keep looking to that debugging guide to work through this issue. it's a bit beyond the scope of what we are able to help with in this repo's issues since it's more of a shiny debugging issue than a robyn issue.

Hi @kyletgoldberg input$var is working outside the robyn_input function. I am getting bug in robyn_input function in server.

Hi @kyletgoldberg,
If I create a custom function inside the render function, I can able to print multiple dynamic variables. code and output are in the following screenshot.

I am not getting that, is it a shiny issue or I failed in assigning variables to robyn_input.
Can you please help in this.
Thanks in advance,

try seeing if it prints to the console if you don't render it. using the breakpoints to debug this should give you a clear idea whether you have issues with robyn_inputs or whether its a shiny issue.


SDKs hosted documentations

Following a lot of conversations and efforts in the integrations team to implement documentation in our SDKs, the idea of this issue is to be the central issue tracking of the work.
To start the project, we will include only a few SDKs so the community can get involved in the decision and implementation, and it should be easier to handle. More SDKs can be included in the following months.
The chosen SDKs are:

[ ]  JavaScript
[ ]  PHP
[ ]  Python

Each SDK will have its issues tracking the progress, which are:

Decision regarding which module will be used
Implement the module with a couple of requirements

Needs to generate the doc automatically through the CI
Needs to generate the docs from the comments in the source code
Needs to be well known by the community of that package.
Needs to be published automatically in a remote environment or the package manager like meilisearch-rust.

PS: No need to actually add the documentation after the setup, this will be done incrementally afterward.

One option was to keep the documentation on the same README, like javascript now. Is this still a possibility or do we prefer going for the external documentation trial first?

But this option does not address this requirement Needs to generate the docs from the comments in the source code correct? Or there is a library that could generate a docs automatically?

Just one update on this topic, we already have some of our SDKs that have this documentation already hosted automatically.
Rust and Dart

It is not in our plans to add new documentations in the SDKs right now, so I'll close this :)


Add Geonames Tools toolbox to repo

Expected Behavior
The Geonames template contains a toolbox: Geonames Tools.tbx - this template's toolbox should be added to this repo.

This toolbox is in the repo: https://github.com/Esri/solutions-geoprocessing-toolbox/tree/dev/geonames - though the name does not exactly match what's in the template - should the name be changed in the template/doc?

We've discussed this in meetings that the toolbox MAY be renamed when 'added' to the output template, be it Pro or Desktop, or it may stay the same (with _arcmap or _pro). Either way the toolbox already exists in the repo so we should be good to go. Closing.


StackOverflowError while running get_trajectory in examples

When I tried to run the examples, when it went to the "Reference Trajectory" part, like:
ref_traj = deepcopy(get_trajectory(s.model, s.env,
    joinpath(module_dir(), "src/dynamics/flamingo/gaits/gait_forward_36_4.jld2"),
    load_type = :split_traj_alt));

I always got this error:
StackOverflowError:

Stacktrace:
 [1] StaticArrays.SizedVector{9, Int64, Vector{Int64}}(a::UnitRange{Int64}) (repeats 79984 times)
   @ StaticArrays ~/.julia/packages/StaticArrays/6D1fn/src/SizedArray.jl:48

My Julia version is 1.6.6.

We reverted StaticArrays to v1.4.3 as a temporary fix.You can delete the manifest.toml and instantiate the package to get the right versions of all dependencies.


Minor fixes

List of fixed issues (if they exist):

#705
#706 : note that this PR allows bidirectional connections between two NV instances. But to fully resolve this issue I would allow syncWith() and sync() to allow otherNV to either be one NiiVue instance or an array of NiiVue instances that would allow more than a pair of yoked images.

added broadcastTo(object | array) and bumped version


update dependencies

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes https://github.com/karmada-io/website/issues/392
Special notes for your reviewer:

/lgtm
Great! I didn't encounter any problems during the testing process.


[e2e]: go schedule main config-ldflags-main-dir slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/4753108975
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.schedule.main.config-ldflags-main-dir.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.schedule.main.config-ldflags-main-dir.slsa3.yml
Trigger: schedule
Branch: main
Date: Thu Apr 20 10:20:12 UTC 2023

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/4763829032
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.schedule.main.config-ldflags-main-dir.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.schedule.main.config-ldflags-main-dir.slsa3.yml
Trigger: schedule
Branch: main
Date: Fri Apr 21 10:24:11 UTC 2023
Tests are passing now. Closing this issue.


Use project_title instead of project_short_name to display Project Name

On the main landing page for the Browser (currently the Project view), I believe the project_short_name is what is being displayed under the Project Name column. The project_short_name is a short code or label for the project, while the project_title is the official title or name of the project (project schema descriptions). The project_title can be thought of as what someone might title a publication relating to the project. In the screenshot below, one of the Project Names is "BM_PC", which is not informative at all.
I think it's best to display the project_title for Project Name, as this is more descriptive, more user-friendly, and more informative than the project_short_name.
If the project_title text is longer than the column, it should wrap to the next line instead of end with an ellipse.

@malloryfreeberg What's the purpose of the project_short_name field?
I asked the @NoopDog to switch from title to project_short_name because the integration tests all share the same title and were impossible to distinguish. Should we display the title on hover?

Note my edits above.

What's the purpose of the project_short_name field?

The purpose of the project_short_name field is to allow contributors a quick way to reference different projects rather than to encapsulate the essence of a project. The short name helps users reference projects in casual conversation if a single lab is contributing multiple projects (e.g. "How's it going with the submission of the Tissue Sensitivity project?"), and also is specifically used to reference a project within the metadata itself. This field is used as a linking field across multiple spreadsheet tabs and help the ingest importer make correct links. The project_short_name could also be an institutional code that doesn't have any meaning to an outsider.

One thing to consider is that titles are very long and don't lend themselves to being displayed in table columns or the facet chooser popup

I understand that it's difficult to display a longer value in the facet chooser or the table, but (1) I don't think the project_title or project_short_name should actually be a facet. When we have hundreds or thousands of projects in the HCA, what's the point of having this field be in the facet list?  (2) When a user is viewing a table of projects, it seems that one of the most basic pieces of information they'd want to see is the title of the project. The title usually contains relevant information about the data and the motivation or reason for the study, key things that can help a user decide if they want to keep looking at the project or move on.

I asked the @NoopDog to switch from title to project_short_name because the integration tests all share the same title and were impossible to distinguish

I don't think the Browser should be optimized for displaying the integration tests, since they will ultimately not end up in the HCA/DCP/Browser. If we can switch to displaying project_title, what we can do in the meantime is ask the maintainer of the integration test metadata (I think it's @parthshahva?) to generate a unique project_title alongside the project_short_name to help developers when looking at the Browser.

Should we display the short name on hover?

I don't think we need to display the project_short_name field at all. It contains no extra information not in the project_title.

Wrap the title and display the short name on tool tip.

@malloryfreeberg these updates have been promoted to staging. Would love to have your feedback.
https://staging.data.humancellatlas.org/explore/projects
Thanks,
D

What is the short name used for besides to differentiate duped titles of test projects?

The project_short_name is used by ingest to create links between metadata in bundles. It contains no extra information not in the project_title.

I think we should keep displaying short name somewhere. You say that it contains no extra information but that depends on the audience. Technically, string A adds no extra information in relation to string B only if A is a sub string of B. This is not the case for short name and title. The short name is sometimes completely different to the project title. The relation may be obvious to the wranglers. In fact, it's been mind boggling to me in how many different ways we refer to projects: UUID, code name ("treutlein"), short name and title. I'm advocating for some sanity here by displaying all available human-readable project references in the UI.

Fair points.
As I said above, the pop-up covering other text is a usability issue and not high priority right now.

@malloryfreeberg, tool tips are always going to obscure some other part of the UI. The team feels that this is not an issue.
Independently, I feel that we haven't yet hit the sweet spot on this one. The short name is too cryptic for external users but the titles are too long. We could fix this by
a) shortening titles in the metadata
b) introduce project_short_title or similar
c) fix 'project_short_name' in the metadata to make it less cryptic


Store flash card state on site change

When changes routes, the state of learned and unlearned flash cards should be stored in localStorage

won't fix as is more or less already works


[WIP] Plugable Currencies WCG

WCG Installation https://github.com/skyach/peatio-wcg/tree/feature/v2

hi
what is wcg?

WCG will be added via plugin once we finish #2032


the visualize results is correct ?

Thanks for your great work!
I visualize image with your anns, the results as follow, is it correct or not?

This is my visualize code:
import cv2
import json
from PIL import Image
from utils.utils import json_loader_part, json_loader, draw_skeleton

data_dir = '/data/dataset/whole-body/human3.6m/annotations'
keypoints_2d, keypoints_3d = json_loader_part(data_dir)
input_list, target_list, bbox_list = json_loader(data_dir, task=3, type='train')

i = 100
img = Image.open('/data/dataset/whole-body/human3.6m/' + input_list[i])
save_path = '1.jpg'

draw_skeleton(keypoints_2d[i], save_path=save_path, background=img)

They are not correct, because they are not the matching image and annotation.
The samples being recorded are sorted by a '4 corner average error score' in the complete json file, the order of these samples from subjects are mixed, like first sample is from S5, second one is from S7, etc. However, the samples in each part json file are not, they are respectively only from S1, S5, S6 and S7 for part 1,2,3 and 4 under the same '4 corner average error score' order. Thus using json_load_part will make first 20k samples all from S1, then all from S5, etc. These two loading function don't match each other at same index position. (But somehow, if you pick every S1 samples from complete json file by order, they should match part1 json file, same for S5, S6 and S7)
While this is not a problem when you use part json train file for task 1 or 2 alone because both the complete file and part files consist of same 80k samples, just different order, we admit that it causes problem when you want to add 2D annotations to train task 3 with json_load_part loading.
I propose 3 different solutions for that:
1: Only use json_loader when you want image-2D matching
'''
keypoints_2d, keypoints_3d = json_loader(data_dir)
'''
2: create 4 lists and separate image lists into S1, S5, S6, S7 separately and concatenate them, then you can transform the complete file ordering into part file sample order. (do same thing for annotations and bounding boxes if you want simultaneously reorder them)
'''
list = [[], [], [], []]
for i in range(len(input_list)):
if 'S1' in input_list[i]:
list[0].append(input_list[i])
elif 'S5' in input_list[i]:
list[1].append(input_list[i])
elif 'S6' in input_list[i]:
list[2].append(input_list[i])
elif 'S7' in input_list[i]:
list[3].append(input_list[i])
input_list = list[0]+list[1]+list[2]+list[3]
'''
3: Wait for me to re-split complete json file into 4 part files (or more probably 5 part files to correspondent to the cross validation split in the paper, which is subject-mixed and have same order) I am pretty sure I will need to do this as more people will request cross-validation split to facilitate their work. But before it is released, please use former 2 solutions.
I hope this answer can help, and the final tips: put pointsize=1 to make the ploted point not that big.

I update the new split 5 parts with each of them correspondent to cross validation 1 to 5, as well as json_loader_part function(). Now it works as:
cv=0, it has the same return as json_loader(data_path, task=1, type='train')
cv=1 2 .. or 5, it returns correspondent file's data
I hope this can now solve the problem.

thanks, now the results is correct.


Adding additional fix info

Adding info for the Fall Creators Update patch
I copy-pasted the update Vivek wrote into this PR so treat this is as his PR, not mine. If you guys want to propose changes to the resolution text feel free to agree amongst yourselves and then either edit this PR or create/merge your own PR and close this one.
@vivmishra @rpetrusha

I've made two minor changes (as per following --> as follows; and added a period after the first list item)
Otherwise, this looks good. I'll merge it, @noahfalk and @vivmishra.


Add kaku shortcut in toolbar

As title, it would be cool that users can easily manipulate some simple things from the toolbar or to see the information of this song.
Worth to investigate this feature !

EJ, shortcut mean in main.js's shortcuts?
const shortcuts = [
  'MediaNextTrack',
  'MediaPreviousTrack',
  'MediaPlayPause',
  'Escape'
];

@neighborhood999 nono, this one is different thing ! it will be a small icon on the toolbar (check the demo image) and when you click it, it will show you what's the current playing song, and some handy buttons to let you go to next song / previous song ... etc.

OK, yesterday I try to add this feature, but playing song, pause song, next, previous not yet.

@neighborhood999 coool so what will happen when you click on the icon right now ?

Only have Help and Exit two options XD, Help option contain Docs and Issue.

cool ! exit = close Kaku is super useful too  !

fixed by #406


chore!: use URL-safe alphabet for base64 encoding (ENG-913)

Summary
This changes all base64-encoding to use the URL-safe alphabet.
Background
We want our base64-encoded data to be URL-safe, and this was not previously the case.
Changes

Provided a new crate astria-core-utils with a single public module base64.  This module provides a Display/Debug helper for formatting byte strings while avoiding allocations, and simple encode and decode functions.  Further functions can be provided in the future if required (e.g. encoding to a buffer).
All direct usages of the base64 crate and of telemetry::display::base64 have been replaced by using the new functions/type...
... except in astria-sequencer-utils, where the input to the blob-parser will be standard base64.  Hence, in that crate only, we still read the input data as standard base64, but all outputs are made using the URL-safe encoding from astria-core-utils
The pbjson dependency was changed to use a fork, which has the effect of making the generated serde impls of the protobuf types also use the URL-safe alphabet when encoding.  (pbjson already supports decoding from URL-safe-encoded data).

Testing
Unit tests were added.
Breaking Changelist

This affects the RollupIDs in the sequencer-relayer's config file, as they need to be URL-safe encoded now.

Related Issues
Closes #1649.

Closing pending discussion around the scope of changes for this update.


[rt.openssl.org #4092] Fwd: Memory Leak in X509_STORE_CTX_init

Migrated from rt.openssl.org#4092 (status was 'new')
Requestors:

<EMAIL_ADDRESS>
From<EMAIL_ADDRESS>on 2015-10-13 12:50:39:
Hi,

Valgrind Reported Leak

=====================================
==16773== 56 bytes in 1 blocks are definitely lost in loss record 806 of
1,182
==16773==    at 0x4A07F9E: malloc (vg_replace_malloc.c:291)
==16773==    by 0x3613672AE7: CRYPTO_malloc (in /lib64/libcrypto.so.1.0.0)
==16773==    by 0x361372B5F6: X509_VERIFY_PARAM_new (in
/lib64/libcrypto.so.1.0.0)
==16773==    by 0x3613725AAA: X509_STORE_CTX_init (in
/lib64/libcrypto.so.1.0.0)
....
=====================================

Code

========================================
void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
{
    if (ctx->cleanup)
        ctx->cleanup(ctx);
    if (ctx->param != NULL) {
        if (ctx->parent == NULL) // ONLY if parent is NULL param is free'd.
            X509_VERIFY_PARAM_free(ctx->param);
        ctx->param = NULL;
    }
...
}
=========================================

Code checks for ctx->parent and only then it is freeing ctx->param.

This has to be corrected to free ctx->param even if ctx->parent is NULL.

Please let me know if this is correct fix.

Thanks,

This doesn't look correct to me. Closing in the absence of a reproducing example.

$$$


Installation of deps

I'm guessing the binary needs a bunch of libraries seeing as i can't launch this from the commandline. Can we have a make install file so that it can be launched from anywhere?
Actually i moved the chia_plot binary and launching it alone is fine. It just can't be launched with a path. Then you get the following error:

mist@fp-plotty5:~/chia-plotter$ ./build/chia_plot 80ee566ed528d0909a3d6ff700d64360ee10408afaf032355fffa51af740cb7525e304ddd7749d5e61d1e01a1cd328db a9409b401b4ffcb066cc80d96d869593526d636cdcf22d970e242b3498ed02ca04a13b7e16d1e90f863bd1d917d70ea4 /drive1/ /tmp/ramdisk/ 8
Number of Threads: 8
Number of Sort Buckets: 2^7 (128)
Pool Public Key:   80ee566ed528d0909a3d6ff700d64360ee10408afaf032355fffa51af740cb7525e304ddd7749d5e61d1e01a1cd328db
Farmer Public Key: a9409b401b4ffcb066cc80d96d869593526d636cdcf22d970e242b3498ed02ca04a13b7e16d1e90f863bd1d917d70ea4
Working Directory:   /drive1/
Working Directory 2: /tmp/ramdisk/
Plot Name: plot-k32-2021-06-07-12-50-3a922a4e1416ea8b062c23b17315e72034714bbe8f429c1afe87bb362c4e859a
terminate called after throwing an instance of 'std::runtime_error'
what():  thread failed with: thread failed with: fwrite() failed
Aborted

yep.. it needs some llvm multi processing libraries

Solved


How to remove the "#" in URL

There is a project developed by Vue. It is necessary to apply the page shared by Da Vinci to the project. Because the URL of Da Vinci contains ා, it cannot be accessed normally

Change the route to BrowserRouter. Here is the documents.


Airtable update docs

Tell us what you do here

[ ] implementing verified source (please link a relevant issue labelled as verified source)
[ ] fixing a bug (please link a relevant bug report)
[x] improving, documenting, customizing existing source (please link an issue or describe below)
[ ] anything else (please link an issue or describe below)

More PR info

updates misleading documentation: Airtable source supports all write dispositions!
updates Airtable dlt dependecy to 0.3.17 to benefit from simplified apply_hints API for simpler example pipleines

this was based on old code


possible memory leak

Hi Sandy,
I am currently using ecstasy in an ongoing game project and while profiling it I found that ecstasy might leak memory when setting components. I enclose two profiling outputs:
tracer-game.hc.pdf
tracer-game.hy.pdf
Thanks for your time and effort

Hiya!
I noticed the same leak, and I think it's patched in <IP_ADDRESS>. There's some annoying renames from 0.1.* to 0.2.*, but only because I named them terribly to begin with. if you don't feel like dealing with breaking library changes, i can backport them to <IP_ADDRESS>.
If you are OK upgrading (you get virtual components!), it's mostly:

s/get/query/
s/newEntity/createEntity/
s/defEntity'/unchanaged/
s/defEntity/newEntity/
s/defWorld/defStorage/
s/emap/emap allEnts/
s/efor/efor allEnts/

Thanks for reaching out! Now that I know I'm not the only user, I'll be less insane with my maintenance strategy.

Just cut a <IP_ADDRESS> release; pretty sure it will get rid of the memory leak you're seeing! Closing this, but feel free to reopen!

thanks. updateing to >=0.2 did the charm.


myth: command not found

after doing steps for installing mythril, ubuntu shell will show error and cant find it:
hex0r@ubuntu:~$ myth
myth: command not found

Did you install Mythril using pip3?
In that case on Ubuntu your binary should be located in /home/<username>/.local/bin/myth. With echo $PATH you can output your current path variable to make sure that the path contains the local bin directory.

i install it using pip3. i run mythril from /.local/binmyth but get error

uuu@ubuntu:~/.local/bin$ myth
Traceback (most recent call last):
File "/usr/local/bin/myth", line 4, in
import('pkg_resources').run_script('mythril==0.18.11', 'myth')
File "/home/hex0r/.local/lib/python3.5/site-packages/pkg_resources/init.py", line 661, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/home/hex0r/.local/lib/python3.5/site-packages/pkg_resources/init.py", line 1441, in run_script
exec(code, namespace, namespace)
File "/usr/local/lib/python3.5/dist-packages/mythril-0.18.11-py3.5.egg/EGG-INFO/scripts/myth", line 6, in
import mythril.interfaces.cli
File "/usr/local/lib/python3.5/dist-packages/mythril-0.18.11-py3.5.egg/mythril/interfaces/cli.py", line 16, in
from mythril.mythril import Mythril
File "/usr/local/lib/python3.5/dist-packages/mythril-0.18.11-py3.5.egg/mythril/mythril.py", line 13, in
from ethereum import utils
File "/home/hex0r/.local/lib/python3.5/site-packages/ethereum/init.py", line 11, in
from . import slogging  # noqa
File "/home/hex0r/.local/lib/python3.5/site-packages/ethereum/slogging.py", line 6, in
from ethereum.utils import bcolors, is_numeric
File "/home/hex0r/.local/lib/python3.5/site-packages/ethereum/utils.py", line 11, in
import rlp
File "/home/hex0r/.local/lib/python3.5/site-packages/rlp/init.py", line 1, in
from . import sedes  # noqa: F401
File "/home/hex0r/.local/lib/python3.5/site-packages/rlp/sedes/init.py", line 4, in
from .big_endian_int import BigEndianInt, big_endian_int  # noqa: F401
File "/home/hex0r/.local/lib/python3.5/site-packages/rlp/sedes/big_endian_int.py", line 1, in
from eth_utils import (
File "/home/hex0r/.local/lib/python3.5/site-packages/eth_utils/init.py", line 24, in
from .applicators import (  # noqa: F401
File "/home/hex0r/.local/lib/python3.5/site-packages/eth_utils/applicators.py", line 29, in
def combine_argument_formatters(*formatters: List[Callable[..., Any]]) -> Formatters:
File "/usr/lib/python3.5/typing.py", line 1025, in getitem
tvars = _type_vars(params)
File "/usr/lib/python3.5/typing.py", line 284, in _type_vars
_get_type_vars(types, tvars)
File "/usr/lib/python3.5/typing.py", line 279, in _get_type_vars
t._get_type_vars(tvars)
File "/usr/lib/python3.5/typing.py", line 786, in _get_type_vars
_get_type_vars(self.args, tvars)
File "/usr/lib/python3.5/typing.py", line 277, in _get_type_vars
for t in types:
TypeError: 'ellipsis' object is not iterable

This seems to be an issue with the typing of Python 3.5. Can you provide the output of python3.5 -V? There might be typing issues with versions below Python 3.5.3.

@msayyad Any update on the issue?

@dmuhs i install python 3.5.5 from source and try with pip3 but this erorr
error: could not create '/usr/local/lib/python3.5/site-packages/pycparser': Permission denied

----------------------------------------

Command "/usr/local/bin/python3.5 -u -c "import setuptools, tokenize;file='/tmp/pip-build-e3wncqpq/pycparser/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-m15xzmef-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-e3wncqpq/pycparser/
You are using pip version 9.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

@msayyad This seems to be less of an issue connected to Mythril but rather a permission issue with your Python installation. Please check out other solutions for that problem.

This seems to be a stale issue -> closing 🙌

Have same issue, installed using pip3
illuschwo@MacBook-Pro-Dmytro dist % mytxs-cli
zsh: command not found: mytxs-cli
illuschwo@MacBook-Pro-Dmytro dist % mythx
zsh: command not found: mythx
illuschwo@MacBook-Pro-Dmytro dist %

illuschwo@MacBook-Pro-Dmytro site-packages % pip3 show mythx-cli
Name: mythx-cli
Version: 0.7.2
Summary: A command line interface for the MythX smart contract security analysis API
Home-page: https://github.com/dmuhs/mythx-cli
Author: Dominik Muhs
Author-email<EMAIL_ADDRESS>License: MIT license
Location: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
Requires: Click, htmlmin, Jinja2, MarkupSafe, py-solc-x, pythx, PyYAML, tabulate
Required-by:
illuschwo@MacBook-Pro-Dmytro site-packages %

You should add Mythril location to the PATH

Copy the location: pip3 show Mythril
open ~/.zshrc
Paste the location on zshrc file: export PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
Update the CLI: source ~/.zshrc
myth

Location:

Follower your guide, but still "command not found"... i've the same path as the previous guy /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages but in your guide you say to add another one... why?

Follower your guide, but still "command not found"... i've the same path as the previous guy /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages but in your guide you say to add another one... why?

For those wondering, here is the solution:
export PATH=$PATH:/Users/[USER]/Library/Python/3.9/bin
source ~/.zshrc

Replace 3.9 with your version.
I hope this helped 🥂


Add Fly Speed to Constant Levitation Feat

IDK what the thoughts of the team are on this one. Feat gives you the benefits of a constant Fly spell

It should be a reevaluated grant since it can be dispelled but then come back.


Fix hack/prepare-for-integration-tests.sh for MacOS Big Sur

Use LC_ALL=C instead of LC_CTYPE=C because it works on Big Sur. It also works on the slightly older MacOS Catalina. This script is only used on development laptops, so hopefully this will work for more laptop OS's now.
NONE

Codecov Report

Merging #478 (4bd68b1) into main (832bc27) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #478      +/-   ##
==========================================
+ Coverage   77.65%   77.68%   +0.03%
==========================================
  Files         111      111
  Lines        5598     5598
==========================================
+ Hits         4347     4349       +2
+ Misses       1083     1081       -2
  Partials      168      168

Impacted Files
Coverage Δ

cmd/local-user-authenticator/main.go
56.58% <0.00%> (+0.97%)
:arrow_up:

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 832bc27...4bd68b1. Read the comment docs.


Not working in IE browser

Issue: Unable to get property 'close' of undefined or null reference in this line
parent.document.getElementsByTagName('dialog')[0].close();

First of all, IE provides a native support for showModalDialog so there is no <dialog> element inserted by the polyfill. If it is not the case, could you provide a POC using jsFiddle/JSDoc?

Thanks its fixed.
but i am getting another if i try to use common function
demo.html:15 Uncaught RangeError: Maximum call stack size exceeded
at showModalDialog (demo.html:15)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
at showModalDialog (demo.html:16)
code:

showModalDialog

Have you tried renaming your showModalDialog function? It might
interfere with the polyfilled one.

Hi, Yes i tried even i am getting error. its throwing error when try to return.
function popupModal() {
var ret = window.showModalDialog("demo-modal.html", "some argument", "dialogWidth:500px;dialogHeight:200px");
return ret;
}
Error: Uncaught SyntaxError: Illegal return statement
at HTMLDialogElement. (showModalDialog.js:56)

This is because the eval() method inlines the result of the showModalDialog() function and encloses the remaining statements in brackets, so the evaled code looks like { var ret = 0; return ret; }. This is not a function so there cannot be return statement.
The easy fix is to use the JS Generators and spawn() method like this: https://repl.it/repls/CanineUglyIvorygull.
The browser compatibility is vary good and IE supports the native showModalDialog() method.

Hi @niutech thanks for the response, spawn() not working in IE even if I given browser specify condition also.

This is because IE does not support function*. You should put it in a separate <script>. I have modified the demo to use the native showModalDialog() in IE.

Thank you @niutech


Use multiprocessing.Pool in test_read_text

As this is being used with Dask's local scheduler, we can't make this change while the local scheduler relies on apply_async. So revert for now.

[ ] Closes https://github.com/dask/dask/issues/7471 , Also xref https://github.com/dask/dask/pull/7429#issuecomment-808432026
[ ] Tests added / passed
[ ] Passes black dask / flake8 dask

cc @jsignell @jrbourbeau

Do you mind pushing a commit with test-hdfs in it?

Ah thanks for pointing that out. Done :)

Ok the hdfs tests passed - thanks @jakirkham :)


no events for a naked pod

naked pod: a pod created without deployment etc

now after leaving the panel open for a while I can see one event - maybe there are so many events that the events just get discarded...?

Can confirm. Mine doesn't load at all in a very small cluster with just two events available on the naked pod. Certainly not a performance issue.


feat(airflow): implement parallel-isolated mode

Towards: https://github.com/dlt-hub/dlt/issues/931
Implements parallel-isolated decomposition mode.
Made in about the same way as the parallel mode, but the first source component is executed in parallel with others.

@rudolfix, I'm not 100% sure I understood what you mean by before execution pipeline will be forked under new name so state will be isolated. You mean that it'll be cloned with the drop() method here?
https://github.com/dlt-hub/dlt/blob/cf2e8864e1e29453b2daea69b2474e67e04cb8cb/dlt/helpers/airflow_helper.py#L202
It'll clone the pipeline, so seems to me it's what you mean by forking. Or maybe you mean that ForkPipe()?

@rudolfix, I'm not 100% sure I understood what you mean by before execution pipeline will be forked under new name so state will be isolated. You mean that it'll be cloned with the drop() method here?
https://github.com/dlt-hub/dlt/blob/cf2e8864e1e29453b2daea69b2474e67e04cb8cb/dlt/helpers/airflow_helper.py#L202
It'll clone the pipeline, so seems to me it's what you mean by forking. Or maybe you mean that ForkPipe()?

you are right! ticket was not clear. please take a look at updated requirements. also I added a requirement to add users if state is written in parallel mode


contractcourt handoff 2

alternative to #1678.
Fixes #1571.

Addressed comments and added more unit test coverage. PTAL.
Regarding saving the DBs of users that already have had their channels closed without resolutions: it doesn't look like ChannelClosSummary contain everything we need from the OpenChannel struct to directly recover the funds. But maybe some of it can be derived from what we store?

Regarding saving the DBs of users that already have had their channels closed without resolutions:

In this case, perhaps we can just wait for them to make an issue or bring this up on slack or w/e, and we can provide a patch to manually transition them? The closed summary in the database contains the key state of the last commit (well it only recently does for all closes...) so we can manually re-create the resolutions if needed. This allows us to not have a special case in the code that will only ever be executed once by a hand full of people.

Squashed, rebased and addressed comments.
Also added a check+test for the case where the channel is marked closed in the DB, but resolutions are not found. As this would previously cause the channelArbitrator to fail at startup, we now ignore the error to not prevent lnd startup. This case must be handled on an individual basis.
One question remains, whether to also thread coop closes through the state machine. For consistency I think we should.

we 💚


Model().Save() does not generate WHERE clause

GORM Playground Link
https://github.com/go-gorm/playground/pull/154
Description
value := &Test{Value: "foo"}
db.Model(Test{}).Create(&value)
value.Value = "bar"
db.Model(Test{}).Save(&value)
--> Save: WHERE condition required

Bug, or no longer supported to use Model?
db.Save(&value) --> OK

https://gorm.io/docs/v2_release_note.html#BlockGlobalUpdate

@jinzhu The condition is generated without the .Model(),but you don't require a .Where() before a .Save() so I don't understand how this isn't a bug.

@jinzhu
	db.Debug().Model(Test{}).Save(&test)
Outputs
[0.284ms] [rows:0] UPDATE `tests` SET `id`=1,`value`="test"

	db.Debug().Save(&test)
Outputs
[0.525ms] [rows:0] UPDATE `tests` SET `value`="test" WHERE `id` = 1

Having same problem, wonder if there is a way to do gorm v1-like Save


Fix wrong piped metrics prefix

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

👍
/approve


ValueError: some of the strides of a given numpy array are negative.

I have successfully run train_text_embedding_flowers.sh, but when I run train_flowers.sh there is an error like following:
Traceback (most recent call last):
File "/home/xin/PycharmProjects/newcolorchage/train.py", line 149, in
preprocess(img, desc, len_desc, txt_encoder)
File "/home/xin/PycharmProjects/newcolorchage/train.py", line 68, in preprocess
desc[sorted_indices, ...].transpose(0, 1),
ValueError: some of the strides of a given numpy array are negative. This is currently not supported, but will be added in future releases.
could you please tell me why this happened? Thank you very much!

I got an IndexError when I tried to run train_text_embedding_flowers.sh, as the raw_desc in read_lua_file.py is NoneType. It has bothered me for a long time.

@woozzu Thank you very much for your reply. Stack traces are as follows:
Traceback (most recent call last):
File "D:/code/code for Semantic Image Synthesis via Adversarial Learning/train_text_embedding.py", line 80, in
std=[0.229, 0.224, 0.225])
File "D:\code\code for Semantic Image Synthesis via Adversarial Learning\data.py", line 31, in init
self.data = self._load_dataset(img_root, caption_root, classes_fllename, word_embedding)
File "D:\code\code for Semantic Image Synthesis via Adversarial Learning\data.py", line 46, in _load_dataset
desc, len_desc = self._get_word_vectors(raw_desc, word_embedding)
File "D:\code\code for Semantic Image Synthesis via Adversarial Learning\data.py", line 57, in _get_word_vectors
for i in range(desc.shape[1]):
IndexError: tuple index out of range

@rookie-zzw I have no problem when running it on my machine. Can you describe about your environment? e.g. python/pytorch version. And, did you accurately follow the README?

@woozzu I use python 3.5.2 and pytorch 0.4.1 on my machine, and I do follow the README. surprising, I just read the paper you mentioned a few days ago! It is very meaningful and it is worth learning.

@woozzu I tried the solution you suggested, but every time I step through that line, I get the following error:
Unable to display children: Error resolving variables Trackback(most recent call last):
File "C:\Program Files\JetBrains\PyCharm       2017.3\helpers\pydev_pydevd_bundle\pydevd_comm.py", line 1029, in do_it
_typeName, val_dict = pydevd_vars.resolve_compound_variable(self.thread_i, self.frame_id, self.scope, self.attributes)
TypeError: 'NoneType' object is not iterable

@rookie-zzw I'm sorry but I can't reproduce your error. If you can use pdb or something for debugging,  printing any suspicious variables might be helpful to find the culprit.

I had the same error and and was able to fix it by copying the numpy array (the indices are thus turned positive) :
packed_desc = nn.utils.rnn.pack_padded_sequence(
        desc[sorted_indices.copy(), ...].transpose(0, 1),
        len_desc[sorted_indices]


Do not cd out of installation folder

Removed spaces which would cause errors

Install script needs a full review and test, closing this one and I'll retest the new version before release


If I whitelist a site and then later blacklist it, will all data be gone?

Hi there,
If I whitelist techcrunch.com but then later remove it from the list, will the past data for it be gone?
Thanks!
Priyanka

The data collected until the moment you remove it from the whitelist is retained on wakatime.
Pozdrav,
Mario Basic
http://basicit.company

From: Priyanka<EMAIL_ADDRESS>Sent: 19.7.2015. 13:06
To<EMAIL_ADDRESS>Subject: [chrome-wakatime] If I whitelist a site and then later blacklist it, will all data be gone? (#35)
Hi there,
If I whitelist techcrunch.com but then later remove it from the list, will the past data for it be gone?
Thanks!
Priyanka

Reply to this email directly or view it on GitHub:
https://github.com/wakatime/chrome-wakatime/issues/35

Thank you!


jsonnet: ship new jsonnetfmt binary

Motivation for this change
Per https://github.com/google/jsonnet/releases/tag/v0.13.0 jsonnet fmt functionality was moved to a separate jsonnetfmt binary
Things done

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

[ ] NixOS
[x] macOS
[x] other Linux distributions

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

@GrahamcOfBorg build jsonnet

Thanks, @alyssais!


Cannot choose game to patch

So I heard that you can use quest patcher for modding beat saber and I have the right version of beat saber and quest patcher but it won't allow me to press on any games and my developer mode on so I don't think it is that I tried plugging my quest into a different port and then using it still didn't work and when I go to side quest it shows that my quest is plugged in so I just don't know what to do anymore.

Please be more specific as to how it "won't allow me to press on any games".

I'll have to get a picture when I get home since I don't know how to explain it to much

Too long with no information, closing.


SDL2 sprite rendering a big bottleneck in Nu.

Over the life of Nu, I never recorded sprite rendering as a bottleneck in Nu. But now that I've done the most important CPU optimizations, it sticks out by a large factor!
Fix this, likely by replacing SDL2 with bgfx - https://github.com/bkaradzic/bgfx

:+1: Feel free to ask me any questions about bgfx.

Awesome you popped by!
Will do!


Move config variables to config package

Signed-off-by: disksing<EMAIL_ADDRESS>

why not passing the config var directly?

@siddontang  Plan to do it in a separated PR.


Cannot install with PEAR

I had previously installed phpDocumentor 2 in the past and came to use it again. However, I received an error with symphony and tags (can't get error dues to another).
What I did was to uninstall and install. But I can no longer install.
$ pear remote-list -c phpdoc
CHANNEL PHPDOC AVAILABLE PACKAGES:
==================================
PACKAGE                           VERSION
phpDocumentor                     2.1.0
phpDocumentor_Template_abstract   1.0.3
phpDocumentor_Template_checkstyle 1.0.0
phpDocumentor_Template_new_black  1.0.4
phpDocumentor_Template_old_ocean  1.0.2
phpDocumentor_Template_responsive 1.0.1
phpDocumentor_Template_zend       1.0.2

$ pear install phpDoc/phpDocumentor
No releases available for package "pear.phpdoc.org/phpDocumentor"
install failed

$ pear install phpDoc/phpDocumentor-2.1.0
No releases available for package "pear.phpdoc.org/phpDocumentor"
install failed

$ pear install phpDoc/phpDocumentor-beta
No releases available for package "pear.phpdoc.org/phpDocumentor"
install failed

I am not really sure what I should do.

Try using "pear clear-cache" and running the install again.


/v1/check: respond with array

Response to /v1/check changed from:
{
  "spendable": Array[bool],
  "pending": Array[bool]
}

to
{
  "states": [
    {
      "secret": str,
      "spendable": bool,
      "pending": bool,
      "witness": str
    },
    ...
  ]
}

secret now indicates which proof the returned data belongs to (provided by the client in the request), and witness is a new field that corresponds to the (potentially present) witness data when the proof was spent.

ACK 80750b2

@thesimplekid @thunderbiscuit I decided to rename the endpoint to /v1/checkstate instead of /v1/check because it expresses better what we are checking. Are you ok with that?

ACK. https://github.com/cashubtc/nuts/commit/094b5b5f68f0d6a9b3cc71820f6d748a9de040f6. Rename is good with me


migrate fixture into a separate module

resolves #9
And more

improves docs
segregate tests
make base operation classes private
add board.SPI1() for instantiating secondary SPI bus singleton

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (ce9d917) to head (69b541c).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #11   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        15    +4
  Lines          595       622   +27
  Branches         0        48   +48
=========================================
+ Hits           595       622   +27

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


Replace node-zookeeper-client with zookeeper

node-zookeeper-client package is unmaintained (alexguan/node-zookeeper-client#106), but depends on a version of underscore with vulnerability CVE-2021-23358.
zookeeper package is maintained (last published 15 days ago). While less popular (only 4.5k weekly downloads, compared to 29.5k for node-zookeeper-client), the amount of activity and maintenance in the repo is promising.

I am very happy that you have chosen the zookeeper client! 🎉
Currently, I am the main contributor and released a new version (4.9.0) to npm with support for dynamic reconfiguration (introduced in Apache ZooKeeper server v3.5.5).
Contributions to the library is much appreciated! 😄


Implement better data consistency for realtime subscriptions

Currently the realtime events work as follows:

When the page is loaded a realtime observer on the event is established
Immediately after that, the event is fetched and awaited
We check if the event has started
If it has, we try to fetch the current round and set the event_started flag to true
If there is a current round info (which includes information about a potential pair this round), we check if it has not ended not
If it has we set up all the required flags
When the event_started flag is changed to true, we establish realtime connections for user_pairs and rounds

This works, but it's not entirely consistent as it doesn't handle the realtime subscriptions interrupting and missing updates. There's also a gap between the data being fetched and the realtime subscription being established.
If a user reloads the page and fetches the data, then starts establishing the realtime subscription, but the organizer pushes a new round between the time the user fetched the data and the time the realtime subscription is established, then their fetched data won't include the new round, but the realtime subscription will have missed it as well, desyncing the user.
As detailed here we can listen to the state of the subscription and based on those we can then (re-)fetch data.

So apparently this is no longer as easy with the v2-client and requires using the "raw" realtime channel subscription instead of the ones that you get from .from(<table>).on(<stuff>).subscribe(). That solution requires the usage of raw string to detect the event of the subscription and the API seems to still be quite volatile in that regard, so there is no guarantee it won't just break with an update.
For now we may have to just accept that there times where we might miss data, sadly.


SCB-1244 Update the configuration of Pack 0.4.0 in the user guide

Saga 0.3.0 upgrade to 0.4.0 changes
Missing alpha.cluster.address configuration instructions
Spring cloud compatibility note

Coverage remained the same at 90.122% when pulling b63c8888bb476d24bd48c52364d2c8697138a2bb on coolbeevip:SCB-1244 into bce53301d5831a9d18bda0df825c8becb56ff6c9 on apache:master.

Coverage remained the same at 90.122% when pulling b63c8888bb476d24bd48c52364d2c8697138a2bb on coolbeevip:SCB-1244 into bce53301d5831a9d18bda0df825c8becb56ff6c9 on apache:master.