Figma to toddle

@Vakisr to create a contract. €80/hour. Max x hours.

Use 4 hours for research and give us an estimate.


Write Automated Test of Next Minor CPython Version

In https://github.com/grpc/grpc/issues/19243, a forward-looking user tested gRPC against CPython 3.8 months ahead of its final release. This revealed breakage against that version.
In https://github.com/grpc/grpc/pull/19294, I implemented a test intended to be run manually against CPython 3.8, but in the review, we hit upon a model that would allow us to indefinitely test against the next minor revision of CPython by utilizing the docker images available at https://hub.docker.com/_/python.
This will likely require reworking the tooling code somewhat to ensure we always check for a newer version.

Still wanted.


Ngrx store with Reactive Forms

I am trying to get my head around how to best setup reactive forms with NgRX store.  I have created a service (NoteLinkingSettingsService) which simply exposes an Observable called noteLinkingSettings$ which calls the store.select method as below:
this.noteLinkingSettings$ = store.select<INoteLinkingSettings>( state =>  state.notelinkingsettings);

My question is how do I best initialize a Reactive form with the values from my service.  My first attempt is below.  I was thinking of subscribing to the first event in the noteLinkingSettings$ observable build the reactive from there.
Then I was looking to subscribe to any valueChanges and pass these back to service where I would update them in the db.
The problem I am facing is  this.notelinkingForm is undefined at the point the code reaches
this.notelinkingForm.valuesChanges$

Would welcome any recommendations with the best way to setup a reactive form which gets it's values from ngRX store.
export class NotelinkingsettingsComponent implements OnInit {
 notelinkingForm: FormGroup;

  constructor(private formBuilder: FormBuilder, private notelinkingsettings: NoteLinkingSettingsService) { }

  ngOnInit() {

    this.notelinkingsettings.noteLinkingSettings$.first().subscribe(settings => {
       this.notelinkingForm = this.formBuilder.group({
        Enabled: [settings.Enabled, Validators.required],
        LinkToPreceeding: [settings.LinkToPreceeding.toString(), Validators.required],
        LinkingTolerance: [settings.LinkingTolerance, Validators.required]
     })

      this.notelinkingForm.valuesChanges$.subscribe(({value})=> {
          this.notelinkingsettings.updateNoteLinkingSettings(this.notelinkingForm.value);
      });
});

You might want to utilise the concept of smart and dumb components, where smart component injects services, gets data from the store etc and dumb just receives sync data and uses setter to fill in the form.
So in semi-pseudo code it might looks like this
@Component({
  template: `<dumb-component [form]="form" [data]="data$ | async"></dumb-component>`
})
class SmartComponent {
  public data$ = this._store.let(someSelector$());

  public form = new FormGroup({
   foo: new FormControl(''),
   bar: new FormControl('')
  });

  constructor(private _store: Store<IState>) {}
}

@Component({
  template: `
    <form [formGroup]="form">
      <input type="text" formControlName="foo" />
      <input type="text" formControlName="bar" />
    </form>
  `
})
class DumbComponent {
  @Input()
  public form: FormGroup;

  @Input()
  set data(v) {
    if (v) {
      this.form.patchValue(v);
    }
  };
}

Thank you for your suggestion.  Unfortunately I am using the router-outlet to init my component.  Did you have any thoughts on how to best do this in that scenario.

It doesn't matter if the smart component is the one you use for your route.. where is no such thing as router-outlet, it's always attached to some component / class.. so use that one as the smart component which injects store, creates form and passes it down to a dumb component to render and fill in.

Hi, Thank you for your response again.  Apologies but I must admit I am having some trouble understanding how this would hang together.
Taking your smart componet but modifying the template to use a router-outlet it would look like this:
@Component({
  template: `<router-outlet [form]="form" [data]="data$ | async"></router-outlet>`
})
class SmartComponent {
  public data$ = this._store.let(someSelector$());

  public form = new FormGroup({
   foo: new FormControl(''),
   bar: new FormControl('')
  });

  constructor(private _store: Store<IState>) {}
}

@Component({
  template: `
    <form [formGroup]="form">
      <input type="text" formControlName="foo" />
      <input type="text" formControlName="bar" />
    </form>
  `
})
class DumbComponent {
  @Input()
  public form: FormGroup;

  @Input()
  set data(v) {
    if (v) {
      this.form.patchValue(v);
    }
  };
}

I'm not sure this would work even it if does -  doesn't it make the assumption that any component would have the same inputs?
I am sure this is not what you mean but I am struggling to see how I would pass in the inputs.
Sorry to be a pain :)

Thinking out aloud I guess I could make this work if I had this structure:
Component Hosting a router-outlet
SmartComponent for getting values out of the store abd passing them into the Dumpcomponent
DumpComponent which represents the form

As far as I know, router-outlet itself is just a "slot" for a component. So say you have your root component, and it's template would be only router-outlet, you'd then perhaps have a router with path /login, which would activate component LoginComponent, so that one will be the one you'll use to inject store and select data, it would have a template containing the "dumb" component, <dumb-component [data]="data$ | async" [form]="form"></dumb-component>... what you are showing me is use the root component to get data, I'm saying use the one that will be inserted into the router slot.

Thanks for working this through with me I understand now.  Really appreciate the time you've taken to go through this.

I am working with a similar structure to the one proposed by @fxck. The setup has indeed a smart component in a router-outlet, which injects the store (it is the one selecting from the store and dispatching actions to the store (possibly triggering side effects using ngrx/effects).
The alternative approach is that the "dumb" component contains the form completely. In this setup, the form may receive initializing values through inputs.
These data would be observables from the store (selected and mapped as necessary) which are fed into the form component using the async pipe. In turn the dumb component emits output events (i.p. onSubmit) which are handled by the smart component, e.g. by dispatching events to the store.
<not-so-smart-form
   [initialValues]="initialValues$ | async"
   (onSubmit)="handleSubmit($event)">
</not-so-smart-form>

The reactive form control rests completely inside the not-so-smart-form Component.

I recently moved away from having form definition inside the "dumb" component, mostly because when you need to use async validation, you will need to inject services using async and stuff. And it's pretty much very-smart-kind-of-component when you do that. Also having the definition inside the smart component helps reusability, since you can easily use the same form structure for different validation rules.

@fxck very valid consideration re: async validation.
I guess the reason, I initially landed on the componentized form, is that the router-outlet had different states, only one of which would have the form displayed.
Might play your approach through, to see what it implies for my use case... Food for thought as always :smile:

I've avoided using Reactive Forms, because when using Reactive Forms, the source of truth for your data (and state) is within FormGroups. And since you cannot put a mutable FormGroup into Store, it means your data/state is being stored and mutated outside of Store, which defeats the purpose of using ngrx/store.
Because of this I've been using Template-Driven Forms, which allows you to store and reduce your data within Store, and add validation as a display-only concern.

Hmmm, that's interesting, thanks for your advice.  I was kind of going down the reactive forms route as I got the impression this is what the Angular 2 team were favoring.
If anyone else reads this it would be interesting to know whether you've gone down the template driven approach or reactive forms.

@jculverwell Initially I leaned towards ReactiveForms, because I thought it is the way for consuming .valueChanges and .statusChanges streams. I implement autosave forms, and I need to watch all changes on forms and if form is valid - store it with ngrx/store.
But then I have watched screencast from @johnlindquist on EggHead and realized that I can mix Template Forms and streams from Reactive Forms. https://egghead.io/lessons/angular-2-use-rxjs-streams-with-angular-2-forms
Here is final plunker https://embed.plnkr.co/9aNuw6DG9VM4X8vUtkAa?show=app%2Fapp.components.ts,preview
As you can see from this plunker - all inputs are defined as template forms, but then in ngAfterViewInit there is subscription to valueChanges stream.
Not sure if it is relevant to your case.

Thank you.  That is really helpful,  I'm also using an 'autosave' approach for some of my forms.  I think I am pretty much sorted now with the forms approach.  The latest issue I am tripping over is how best to handle errors from services as I describe here https://github.com/ngrx/store/issues/261  .  Welcome any thoughts on this.

Seems like this has been resolved. Please reopen and leave a comment if it is not.
@jculverwell, feel free to open another issue for handling errors from services if need be.

Hi guys,
I am just wondering what is now (Feb 2017) the recommenced way to connect a Form to an ngrx store stream, with least amount of code, is this.form.patchValue(v); the way?
regards
Sean

https://github.com/ngrx/core/issues/12

thanks checking and will reply on that post
Angular 2 Kitchen sink: http://ng2.javascriptninja.io
and source@ https://github.com/born2net/Angular-kitchen-sink
Regards,
Sean

found this great way to auto connect store to form reactively:
https://netbasal.com/connect-angular-forms-to-ngrx-store-c495d17e129
really cool!


skip PathManager stuff for NFS save

It seems to cause problems:
line 254, in <lambda>
    self._notify_manager(lambda: self._io.write(b))
OSError: [Errno 14] Bad address

But it isn't even needed for saving while also doing training. We can just use concurrent.futures.ThreadPoolExecutor to do the copies from another thread.
Note: how do I verify this doesn't upset the training process timings?

Note I just threw in a revert of #494 to get this to merge. If there are some changes in there we should keep, I can add them back.

Tested separately with a smol 4 node job, confirmed this works!  Testing with much larger jobs now.

Works on a 66b run!

Hm on main right now:
2022-11-08 10:34:17 | INFO | metaseq.checkpoint_utils | Saved checkpoint /scratch/slurm_tmpdir/163814/66b_v02_main.bm_none.tokBPE_v3.0_V65536_shard00.bf16.zero2.gelu.transformer_lm_megatron.nlay52.emb10240.lrnpos.0emb_scale.tps2048.adam.b2_0.95.cl1.0.lr0.0001.wu178.dr0.0.atdr0.0.0emb_dr.wd0.1.ms8.mu381469.s1.ngpu1024/checkpoint_250-model_part-0-shard0.pt (epoch 1 @ 250 updates, score 8.201) (writing took 1.222882273956202 seconds)
Submitted batch job 163823
2022-11-08 10:34:26 | INFO | train_inner | {"epoch": 1, "actv_norm": "3520.54", "pos_norm": "0.302", "tok_norm": "0.436", "emb_norm": "0.001", "docsperex": "2.8", "loss": "8.097", "ppl": "273.75", "wps": "1931.4", "ups": "0", "wpb": "2.09715e+06", "bsz": "1024", "num_updates": "251", "lr": "9.99904e-05", "gnorm": "1.31", "clip": "100", "train_wall": "9", "cuda_gb_allocated": "23.2", "cuda_gb_reserved": "53.3", "cuda_gb_free": "56.2", "wall": "3219"}

Our NFS write speed is ~25GB/s which seems to match up with needing ~30 seconds to write ~742GB.  This seems to suggest we are still blocking on copying to NFS, though maybe our logging isn't showing the full picture here?

New update with the latest try for this logic:

Use subprocess.run(["cp", ...) instead of shutil to make sure the copy runs in the background.
We write checkpoint_50/_checkpoint_50-shard0.pt to NFS, then rename removing the _ when done.
We check on load that the checkpoint has the appropriate number of non-_ files before considering it a valid checkpoint. This way we do not have to barrier in training process.

Nit on lint - and good to go!


train the baseline model without any pre-train weights

Hi,
I do not find the code for training the baseline model without any pre-train weights.
I think the code finetune.py can be modified to satisfy the need, but  I don't study the tensorflow2 thoroughly. Could you give me some suggestions about the code modification?
Thanks in advance.

Hi,
I kindly refer you to the readme documentation: https://github.com/HealthML/self-supervised-3d-tasks/blob/master/README.md
there is a flag in the finetuning config json file that is called load_weights, please try to set it to false.
Best,

Thanks, I will read the message in detail.


I24 ssx: get the beam centre from file

When setting the fiducials (i24ssx_moveonclick.py), beam X/Y hardcoded and needs to be changed every time. Instead of this, we should be grabbing the values from GDA so they are current

We should use OAVParameters for this (https://github.com/DiamondLightSource/dodal/blob/7058d115fccc599ad36274f5bc313c9765376d74/src/dodal/devices/oav/oav_parameters.py#L19)


Make 100% width search bar

This PR makes search bar 100% in column
And make full width on mobile (width < 768)
Current

After

Codecov Report

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

@@            Coverage Diff            @@
##             master    #8710   +/-   ##
=========================================
  Coverage          ?   41.69%
=========================================
  Files             ?      531
  Lines             ?    68723
  Branches          ?        0
=========================================
  Hits              ?    28657
  Misses            ?    36391
  Partials          ?     3675

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 70fa80d...0754c9d. Read the comment docs.

@jaqra if you like to restart drone add a empty commit ;)


Patch test-dbs for compara case insensitive stable_id schema alteration

Description
In e107 Metazoa compara revealed an issue in that the schema expected entirely UNIQUE stable_id across all genomes. This cannot be the case because divisions such as Metazoa have external annotations and UNIQUE stable_id is not enforced, not expected.
Use case
The compara schema and API is too tied in with a UNIQUE enforcement and may require a larger change later on. For now, changing the case sensitivity is a passable compromise to get compara through e107. (The conflicting stable-ids remain unique when case is taken into account).
Benefits
This small change allows the compara schema and API to remain largely unchanged, whilst allowing through the current e107 dataset.
Possible Drawbacks
There are no consequences, bar the fact that future conflicts may require a larger and more complex change. This is enough for now.
Testing
note to submitters and reviewers: documentation-only changes may reflect
changes in other repos that can result in new or different output from
REST endpoints. In turn, these may require new tests or changes to existing tests.
Have you added/modified unit tests to test the changes? NA
If so, do the tests pass/fail?  If so, please give a one line summary for the public facing changelog.
NA

Coverage remained the same at 44.32% when pulling f4fe9514c44ea4c70297eba2e5ac70ae2bd1b305 on CristiGuijarro:release/107 into 1e642c57685a1ba147ebd166e6ed166c7790a1cb on Ensembl:release/107.

Changes are limited to the Compara DB. meta contents look good. As per the use of 'latin1_bin', not sure why we want to compare stable_id's as per binary rules, instead of character ones?

This is so that the stable_id can be compared byte-by-byte rather than character-by-character - otherwise the Stable_id will be the same as stable_id when compared for UNIQUE -ness

@CristiGuijarro - I understand you are seeking for a case-sensitive comparison between strings (stable IDs), but my two points are

Why not using latin1_general_cs instead latin1_bin, as it's meant to work for strings, rather than binary info.
Also, the use of binary collation for strings might have some unexpected impact on sorting. Not sure it's important or applicable in your use case, though.
The collation is usually set and managed at DB level, and people are expecting this. It is true you may attach a collation at table level and column level, but this is uncommon. Also, this bit of information gets "hidden" in the DDL for table definition, hence not immediately visible. My concern here is about the maintainability of your DB in the future.

This said, it's Compara DB schema we are talking about, and Compara are the owners of this: if you are sure and want to go on, please just confirm so and I'll be happy to go ahead and merge your PR.

@CristiGuijarro - I understand you are seeking for a case-sensitive comparison between strings (stable IDs), but my two points are

Why not using latin1_general_cs instead latin1_bin, as it's meant to work for strings, rather than binary info.
Also, the use of binary collation for strings might have some unexpected impact on sorting. Not sure it's important or applicable in your use case, though.
The collation is usually set and managed at DB level, and people are expecting this. It is true you may attach a collation at table level and column level, but this is uncommon. Also, this bit of information gets "hidden" in the DDL for table definition, hence not immediately visible. My concern here is about the maintainability of your DB in the future.

This said, it's Compara DB schema we are talking about, and Compara are the owners of this: if you are sure and want to go on, please just confirm so and I'll be happy to go ahead and merge your PR.

Thanks @sgiorgetti - this is a stop-gap and not a long term solution, we have a ticket for a long-term solution, the schema change is already in the e107 compara release, so please go ahead and merge :+1:


Error occured

an error is occured when trying to use the addon
the problem occurs upon clicking AnkiCC in tool dropdown menu
Following is the debug info
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.6.1 PyQt 6.6.1
Platform: Windows-10-10.0.22621
Traceback (most recent call last):
File "C:\Users\USER\AppData\Roaming\Anki2\addons21\ankicc\main.py", line 234, in main
dialog = AnkiCCDialog(deck_names_and_ids)
File "C:\Users\USER\AppData\Roaming\Anki2\addons21\ankicc\main.py", line 84, in init
self.ignored_flds.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
AttributeError: type object 'QAbstractItemView' has no attribute 'MultiSelection'
===Add-ons (active)===
(add-on provided name [Add-on folder, installed at, version, is config changed])
AnkiCC ['ankicc', 0, 'None', '']
===IDs of active AnkiWeb add-ons===
===Add-ons (inactive)===
(add-on provided name [Add-on folder, installed at, version, is config changed])

Same

Fixed in v0.3.0 , the latest update has already been deployed to Anki Web.


Package / gem system?

Haven't worked on anything crystal in a while! Just wondering if you guys have any plans on doing a crystal package / gem system any time soon?

+1 for the name "geode"

Why "geode" ? I don't get it.

I thought it was because they have crystals inside :-). I like it.
There is also something called nodules that are geodes without the hollow cavity.
 Sadly as a medical term it is not so nice. But could work also.

@zamith suggested the name "shard", and he even built a website (in Crystal!!) that lists GitHub projects that use Crystal.
I think I like it :smile:
In this case shard would mean "a piece or fragment of a crystal", so the definition fits nicely with "a piece of functionality in crystal". It's also just one syllable, so it's faster to pronounce ("gem" has also one syllable).
Maybe "geode" would be something like rvm or rbenv, if a geode packages a bunch of crystals together (let's hope we never need a tool like that :wink:)

what about gem -> crem

I like shard too!

+1 to shard

@Exilor oh damn :( so close

+1 to shard

Hey, guys. Been a while since I piped up here.
So, I still love the idea of a decentralized approach for dependency management. But I have what I think may be a good idea, and eagerly await to hear what any one else thinks of them.
I was thinking it'd be very cool if we settled on some decentralized backend (e.g. GitHub). Users who want to distribute a "Crystal shard" (or whatever they will be called) can use some included binary, perhaps shard push or some command, to "push" their shard up. In reality, this binary and its associated commands would simply wrap git/git-core.
Alternatively, when a user wants to install a library, he or she could use something like shard pull [git-address]. Eventually, we could extend this to have some Shardfile syntax and what-have-you, and an entire package management system can be built around this architecture, which remains decentralized, yet still offers all the really important functionality.
So,
A. Is this a good idea?
B. Is this idea even really new, so to speak? In other words, is what I mentioned basically the eventual plan?
C. Surely this isn't so hard. I heard talk about some piece of current, internal code that handles some very basic dep management. Is this handled there? Where is that code, so I can check it out?
Those are my thoughts and questions as of today. Crystal seems to get cooler as each day passes. I really look forward to what it will have to offer.

Having worked on and seen the guts of some of the centralized dependency management systems (e.g. Ruby's): they're almost always a mess, no matter the size of the programming community, and never attract enough investment of effort to be good.  All of them wind up albatrosses.
Modulo lack of version pinning, "go" has the right idea here.  Even with some clear defects, the price is right.

Just use git tags for releases. It's easy enough to write a tool that can pull down these tags. (I think I have part of one lying around my computer written in Ruby actually.) Since Crystal is compiled we really only need a tool to vendor the dependencies. I don't think there is a reason to "install" them in a central location (though that would be an easy enough option to add too if need be). For binaries, i.e. end user applications use distro package managers (e.g. .deb) as God intended.

I think that Crystal could use the exact same approach as Rust's manager: cargo. I've played with Rust and can honestly say Cargo is like a miracle. That means Crystal's dependency manager can have both centralized and decentralized dependencies. That means efficient version matching (a key point for new languages). That also means Toml, which was specifically created for this type of thing and, of course, a ton of additional features like build scripts for C/C++ dependencies etc.

Please no Toml. It was not "created for this type of thing". It is actually pretty lame for this type of thing. It's just another superset of INI. I'd much rather see someone take the time to create a "RubyML".
As for everything else about Cargo, I haven't used it, but it sounds good.

@trans Trust me, it's just perfect and it's very simple, so writing a parser won't be hard. It's also very easy to read :)

IMO, one of the best package managers I've seen is Nimble (I also like Felix's Scoop, which has a very similar model, but that one is unmaintained). Basically, it uses Git (and Mercurial) to manage versions with a big JSON file. To add a package, it's simply added to the JSON file. To update the local package list, the Git repo containing the JSON file is updated. Packages all have a Git/Mercurial URL. To get a specific version of a package, Nimble just checks out the tag corresponding to the version (e.g. it'd get the tag v0.3 for version 0.3). The package list is on GitHub. Developers to hand-edit the JSON file and send a PR to the package repository.  This basically means that you get the benefits of centralized and distributed hosting.
A twist would be that the package list is not a file at all! Instead, the package repo has a directory named "packages". When someone submits a new package via the PR, they create a file in the "packages" folder, ".". That way, instead of parsing a huge JSON file, the package manager would just use the directory structure!
To me, this is sufficiently simple for developers (just submit a PR to add your package and create tags for the versions) while still being simple for the maintainers (you basically just merge PRs!).

One long-term issue with that approach is the blockchain issue: It'll grow indefinitely and there's no (sane) way to reduce the size of it ever again. And I can only get the whole copy of the index.

@jhass What do you mean?

Git doesn't support partial checkouts and shallow clones are only useful since 1.9.

@jhass Don't lots of other package systems make you download the whole package list every time, too? Take Haskell's Cabal.

@jhass Actually, not every time. Just whenever you run cabal update.

Yes, though that doesn't mean it's a good thing, in fact it's what made for example Bundler so unbearably slow that they added a custom API to rubygems.org for it. And that was using a gzipped YAML representation of the index, not a whole git repository.

@jhass Oh.
Well, the rest of the idea would still work...

Nimble or Cargo could work fine, I think. We just didn't have time to implement this yet...
One thing I'd really like to have is recursive dependencies and dependencies checks, like bundler. Do Cargo or Nimble do this?
By the way, I think the current Projectfile, although nice, is not very handy for this type of things because it's a Crystal file so it has to be compiled. Imagine doing that for every dependency (well, shouldn't be that slow, but parsing JSON or TOML should be faster). And also, we already have a TOML parser, but I'm not sure I'd use it. I'd prefer JSON (even it's a bit more verbose). I don't think TOML can be mapped as easily to a data structure as JSON (i.e, like json_mapping).

@asterite What do you mean by dependency checks? I know Nimble downloads any needed dependencies.

Also, I can toy with writing a package manager over the week, but I'm not giving any guarantees...

@kirbyfan64 I mean something like this
Of course, if anyone wants to slowly write a package manager we can later integrate it in the compiler if it's good enough. And right now almost anything is better than the current crystal deps :-)
One thing we do like is to have a project's dependencies in that project's directory, without a global directory where all dependencies go. That makes it easy to remove a project's dependencies when you delete a project (just delete the project's dir) and also to browse a project's dependencies source code (it's right in that directory).

Why do I need to trust you? I know all about Toml. It's not at all perfect.
Hipster is what it is -- all the new kids are doing it. Blah. It's junk.

I also do like TOML, its easy, its readable, and its hashes :)
Tough, I really don't care which parser ends up managing the packages TBH

Ryan + Ary gave me an idea. What if a crystal project had a directory
in it, call it dep or deps (or whatever), and in this directory
you added a file for each dependency. e.g.
dep/
    json.dep
    clik.dep

Then each file contains a single line with a git repo reference and a
tag or branch ref constraint. A command line tool can look at these
files and check each out right into the dep directory. It then
recursively checks the dep directory of each of those and does the
same.
There are two ways that recursive behavior can go down, and it depends
on what Crystal is capable of handling (or made to handle).
In the first case, if Crystal can only handle one version of a given
package, no exceptions, the tool has to look for version conflicts. It
might be able to do this by always checking out the repos to the top
level dep directory and checking out the most recent compatible
version (MRCV). If there is no possible MRCV, then of course a version
conflict error arises.
In the other case, perhaps Crystal can handle multiple versions of the
same package? If my package uses version 4 of some library, but
another dependency of mine use the same package but version 3, is
there any reason that they can't just use their own respective
versions and compile without conflict? (Of course it's a good idea for
the tool to tell me about the version difference, at least.)
One other thing this setup would allow: build and test dependencies,
or any other group for that matter could be in a subdirectory. e.g.
dep/
  json.dep
  test/
    cryunit.dep

I started designing something this morning. Let's see where it goes.

I chose YAML because JSON is too noisy and TOML's spec is unstable (sic). I apologise for trolling ;-)

I'll clone bare repositories into .shards and install dependencies into the libs folder (ie. just like crystal deps), because we don't need a global packages folder and I never know where Bower, NPM and alikes put their global caches, and I hate that.

I'm starting decentralised but with the long term goal of having metadata registries (name -> URL + versions + dependencies) to speed things up (no need to clone everything upfront), and simplify usage (I prefer to remember a package name, not a repository URL) and have a searchable list of packages.

I would really like if the dir will be an external dir, like in gem, where for each "require" crystal can link the needed deps from the global directory, this way I dont need download all the deps each time for each project, and It's easier to keep all the deps up to date.

On Wed, May 20, 2015 at 7:50 AM, Trans<EMAIL_ADDRESS>wrote:

Why do I need to trust you? I know all about Toml. It's not at all perfect.
Hipster is what it is -- all the new kids are doing it. Blah. It's junk.

Okay. That's a bit harsh. Toml is okay. I just think it is
overrated, and espoused for the wrong reasons, i.e. new and simple
--- new and simple does not necessarily equate to better.

If I were able to get this to compile to Crystal would it be helpful to you?
https://github.com/rubyworks/versus
Note it has a version resolver.

@asterite Do you mean like if package a depends on b, and b on a, then throw an error? Yes, Cargo does that. Also, here's an example of Servo's (in case you didn't know, Servo is like Gecko written in Rust) Cargo.toml. It's very readable by humans. One thing I wouldn't like is Github being compulsory, because there's Bitbucket, GitLab etc.

On Wed, May 20, 2015 at 8:24 AM, Trans<EMAIL_ADDRESS>wrote:

In the other case, perhaps Crystal can handle multiple versions of the
same package? If my package uses version 4 of some library, but
another dependency of mine use the same package but version 3, is
there any reason that they can't just use their own respective
versions and compile without conflict? (Of course it's a good idea for
the tool to tell me about the version difference, at least.)

So can anyone tell me if this is possible (or can be made possible) or not?

@trans Dependencies aren't compiled to separate binaries that are later linked. When you compile your program, all of the dependencies are load up and from them and the main program an executable is created. If version 3 defines a method foo that returns 1 and version 4 defined a method foo that returns 2, one of them will win: they can't coexist.

@asterite That's helpful. Thanks.
Theoretically, couldn't the two versions be "namespaced" so as not to be confused? So code using version 4 would call v4::foo and code using version 3 would call v3::foo.  I once developed such a system for Ruby. With the exception of global variables and core extensions it worked. In short, instead of require 'foo', one used a more javascript styled foo = require('foo', '>4'), so a namespace automatically wrapped the library, which was then reachable via foo variable.

@trans In theory for a simple code it can be done, but as @asterite said, right now the compiler loads all the required sources and compiles it as a single unit. Class/method lookups are run over the whole code.
If the lookups are changed in order to use some sort of scoped lookup based on project dependencies each shard would be able to use just the code it's advertised depends on. But then we need to see how to deal with blocks calls, inversion of control, delegation. Monkey patch will be left out (despite not being the something to encourage). Top level funs will definitely clash. I'm not sure if for something more than simple code that will end up working.
I don't see something like that coming. Yet, it seems an interesting problem.

I know most languages have their own package management solution and so the temptation is there to invent yet another one from whole cloth, but I'd like to propose adopting a slightly modified version of nix as a way to distribute code and dependencies. And if not that, at least base a new crystal-specific manager on it.
Why?
Most language package managers end up needing other things too. I'm thinking of having a local imagemagick install, or libxml, etc. and everyone always ends up rolling their own solutions to having these installed, usually half-assed and buggy for a decade or more.
Using a real package manager as the foundation means you can easily port these sorts of dependencies without having to reinvent the wheel.
The reason I suggest nix specifically is that it is really well thought out, and solves a lot of problems that a source-code package manager will also have to solve. Aforementioned binary dependencies is one. Also, it's really good at versioning. One project might depend on v3.1 of some library, whereas one of it's dependencies might depend on 2.0. Now the ideal way to deal with this is to allow both to have their own dependent versions used, without conflict. Nix makes that sort of stuff trivial.
Because of the way nix works, it becomes really easy to 'switch' projects. With ruby, RVM and other tools try to solve this problem (badly, imo). nix inspired tooling would allow the whole stack to be specified declaratively at the project level.
Also, because of the way nix lays out packages, it makes it really easy to build stuff. It puts literally everything into one tree (kind of like a mini chroot) and then builds it. So one need only set the appropriate LOAD_PATH environment variable and run the normal compiler without much cooperation from the package manager (the compiler could also be a dependency of the project btw)
So my proposal then is to:

Either fork be inspired by nix (at the very least the idea of immutable self-contained packages)
Create a crystal-specific front-end to the nix store
use the resulting tool to manage source of dependencies
use it to publish end-user binaries and compiled libraries as well, ideally with an easy way to port from elsewhere.

This is really a big opportunity to leap-frog gems and RVM. At least studying the design of nix will certainly produce a much stronger package manager that will solve some of the worst problems with the other systems out there, and save some work in the process.

coming from node and python, i personally prefer a centralized approach. I personally believe that npm was among the most important factors in node getting so big.
Also, if crystal does implements a package manager, i'd really want it to be part of crystal itself, rather than a separate project/product.
I'd love to use commands like `crystal install<EMAIL_ADDRESS>

@rishavs You may be interested in https://github.com/manastech/crystal/wiki/Roadmap#package-manager if you haven't already seen it.
@clord I agree, but I don't see the reason for using a fork of nix, why not just nix itself? And besides, unless I'm misunderstanding something, crystall install is not supposed to be a package manager, but just more like a build helper, ala rust's cargo install command, so really you should be able to use whatever you want.

@vyp the problems a 'build helper' solves and those that a 'package manager' solve overlap significantly, especially if crystal wants to have something resembling ruby gems.

Shall we close this in favour of #1357?

@jhass Good idea!


Syncing problems during order splitting creates duplicate items

I have Sync POS orders across multiple sessions and Sync restaurant orders installed. Here is an example:

Connect POS1 and POS2
On POS1 add an order with multiple items
On POS1 click on split and add a few items to be split, but then click "Back"

Result:
On both POSes the original order remains unmodified, however on POS2 a new order is created with the items before the "Back" button were pushed. The items are therefore duplicated. I would expect it to not create a new order until the order is actually split.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Fixed here https://github.com/it-projects-llc/pos-addons/pull/324


#134 - Workflow Backend

Closes #134
This PR implements the backend portion of "Workflows" (previously referred to as Task Sets).  A Workflow allows a series of functions to be executed sequentially, with the input of Tasks optionally being derived from either a shared set of parameters for the Workflow, or the results of Tasks from earlier in the Workflow.
The implementation of this is almost entirely in 4 new models that are introduced.  There is a tiny bit of code added to the record_tasking_results function that simply checks if a task is part of a workflow and fires off the next step as appropriate.
The 4 new models are:

Workflow - The top level record that defines things like name, description, creator, and parameters.
WorkflowStep - An individual step in a workflow.  When a workflow is run, each WorkflowStep will spawn a Task.
WorkflowRun - An actual execution of a Workflow
WorkflowRunStep - An execution of a Step within the WorkflowRun. Used for relationship tracking so that we can get from a Task all the way back to the Workflow it derived from.

Things not yet implemented:

User-facing creation / management (UI and/or API)
WorkflowRun.parameter validation against Workflow.schema. The relationship is similar to Function.schema --> Task.parmeters.
Helpers for adding steps to a workflow (to handle updating the "next" pointers appropriately).
As of now there are no unit tests.  There are some things that I want to build on (UI for instance) and get confidence that this design is going to hold up before I spend time writing the tests.

Test Instructions
There is no UI or API currently, so this has to be tested in a django shell.

Run the migrations and load fixtures
A decent usage example looks like this:

from core.models import *

admin = User.objects.get(username="admin")
ff_dev = Environment.objects.get(name="dev")
add_function = Function.objects.get(package__environment=ff_dev, name="add")
lrp_function = Function.objects.get(package__environment=ff_dev, name="long_running_process")

# A workflow that establishes some parameters
workflow = Workflow.objects.create(
    environment=ff_dev, name="DemoWorkflow", description="Show off workflows", creator=admin, schema={}
)

# Step that uses the Workflow's parameters
ws1 = WorkflowStep.objects.create(
    workflow=workflow,
    function=add_function,
    name="add_function_1",
    parameter_template='{"a": 1, "b": {{parameters.start_at}}}',
)

# Step that uses the result from previous step
ws2 = WorkflowStep.objects.create(
    workflow=workflow,
    function=add_function,
    name="add_function_2",
    parameter_template='{"a": 1, "b": {{add_function_1.result}}}',
)

ws1.next = ws2
ws1.save()

# Step that uses results from both previous steps
ws3 = WorkflowStep.objects.create(
    workflow=workflow,
    function=add_function,
    name="add_function_3",
    parameter_template='{"a": {{add_function_1.result}}, "b": {{add_function_2.result}}}',
)

ws2.next = ws3
ws2.save()

# Step that uses the results of the last add to do something that's not an add
ws4 = WorkflowStep.objects.create(
    workflow=workflow,
    function=lrp_function,
    name="lrp_function",
    parameter_template='{"duration": {{add_function_3.result}}}',
)

ws3.next = ws4
ws3.save()

run = WorkflowRun.objects.create(
    workflow=workflow,
    environment=workflow.environment,
    creator=admin,
    parameters={"start_at": 10}
)

# This will fire off the first task. Subsequent tasks should fire off as previous task results get processed.
run.execute()

You should see tasking get generated as the various steps resolve, with the parameters getting set appropriately.  Feel free to play around with building other types of workflows.

Is there a reason behind using a sequence number to identify what WorkflowStep comes next, versus just a nullable Foreign Key reference to the next WorkflowStep, kinda like a linked list? I figured this would simplify the logic in workflow_run.py:execute_next_step(), since you would just execute the next WorkflowStep if it's not null

Is there a reason behind using a sequence number to identify what WorkflowStep comes next, versus just a nullable Foreign Key reference to the next WorkflowStep, kinda like a linked list? I figured this would simplify the logic in workflow_run.py:execute_next_step(), since you would just execute the next WorkflowStep if it's not null

Yeah, I had started to mull this idea over too and it probably is the more straightforward approach in terms of figuring out what the next step is.
I think one of my concerns is that it becomes kind of ugly to order the steps for purposes of visualizing the workflow.  Having a sequence number makes that part of it trivial because you just order the steps by the sequence number.  And the logic for finding the next step is also trivial because it's just whatever the lowest remaining sequence number is.  The complication comes with when you want to reorder the steps or inject new ones.  The sequencing could potentially be messy there and I was already a little concerned with what that was going to look like.
I'll switch to the linked-list style and see how that feels.  The ordering bit will be a little messier, but shouldn't really be that bad.

LGTM


[FLINK-8623] ConnectionUtilsTest.testReturnLocalHostAddressUsingHeuri…

What is the purpose of the change
Try to fix ConnectionUtilsTest.testReturnLocalHostAddressUsingHeuristics unstable on Travis.
Brief change log
Use Assume.assumeFalse to verify both returned address and the InetAddress.getLocalHost() are not loopback addresses and use a socket to bind to the returned address to test whether we can bind to that address.
Verifying this change
This change is already covered by existing tests, is testReturnLocalHostAddressUsingHeuristics in ConnectionUtilsTest.java.

Sorry, @NicoK I tried the NULL situation. It seems wont work.

Thanks @NicoK . Use this patch pushed here at least two times and Travis CI verifies without error for this.

This breaks the expected behavior, unfortunately.
The logic is as follows:

try to connect to JM / RM / ZK and use an interface that you can connect from, if possible
if that does not work, fall back to your default interface (getLocalHost()) - the heuristic

If we change step 2 to use getByName("localhost") it gives us the loopback interface which no one external can connect to. That would basically mean that TM is isolated for any data communication.
The change to ConnectionUtils cannot be made like this. Instead, I would suggest to look at why the instability happens and fix the test instead (retry or a better test approach).

Thank you for your response, @StephanEwen You are very correct. We would not connect JM / RM / ZK if we use getByName("localhost") .
I will give an example based I have known about this issue.
We still can't believe getLocalHost() too much , as the file /etc/hosts once change the mapping of host name to an IP. That will cause a problem after that. And we will get different value( that you set the mapping including this value)
Below is my machine about this file, and I can always get a correct stuff of ricezhang-pjhzf.vclound.com/<IP_ADDRESS> that works for my network if I do not set that manually.
<IP_ADDRESS>   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Once I modify that file like below though, I will always get an incorrect value, because <IP_ADDRESS> is a a fake address. and will cause some issue.
<IP_ADDRESS>   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
<IP_ADDRESS> ricezhang-pjhzf.vclound.com

As refers to this instability test, I don't know if something dynamically modified that file on Travis ? Or something like that ? Even if not, we also CAN NOT rely on this method to get a IP that can connect to. Once the Zookeeper records the incorrect IP address, this will cause error. We can not get a correct IP to connect to what we want.
I agree with retry or a better test ( I do not know at this moment ) approach, I will study this issue in depth in these days.

I will verify whether retry can hack this issue. Not sure about it.

By the way, Although I have a Linux computer, I cannot access the Internet. :) I just use ifconfig check that.

Thanks @StephanEwen indeed - I also did not grasp the full intend of the change.
Looking at the code again, basically ConnectionUtils#findConnectingAddress() tries to connect with a set of strategies for a given time and if that passes, it will fall back to the heuristic. We could argue that if we do not find an interface to connect to the target address in a given time, we may not do too much about it rather than (a) failing now, (b) retrying forever, or (c) trying some heuristic that may work or fail later. The latter is implemented and seems sensible - we also print warnings to the log in that case.
For the unit test, however, I think, the actual check should be reduced to "does return something and does not block" since according to the code in ConnectionUtils we wouldn't verify the heuristic was successful anyway:
		// our attempts timed out. use the heuristic fallback
		LOG.warn("Could not connect to {}. Selecting a local address using heuristics.", targetAddress);
		InetAddress heuristic = findAddressUsingStrategy(AddressDetectionState.HEURISTIC, targetAddress, true);
		if (heuristic != null) {
			return heuristic;
		}
		else {
			LOG.warn("Could not find any IPv4 address that is not loopback or link-local. Using localhost address.");
			return InetAddress.getLocalHost();
		}

We could maybe cycle through InetAddress.getAllByName("localhost") and verify the returned value is in there - unless I read this wrong - but I don't know if that check is of any actual value, to be honest.
If we wanted to test for more, the only outside sign of the heuristic strategy being used is to look at the logs.

We cannot fully guard against incorrect network configurations.
Many systems (even HDFS,, AFAIK) simply use InetAddress.getLocalHost() and rely on correct network configs. Our current strategy already tries to be smarter by trying to fond a connecting address, and only fall back to getLocalHost().
My feeling is that the strategy is fine (I have not seen connectivity issues in a while) and focus on stabilizing the tests.

We could reducing the heuristic check to "returns something we can bind to"
We could add an assumption to the test that getLocalHost() is not a loopback address and something we can bind to, and then run the tests.

What do you think?

Thanks @StephanEwen and @NicoK for the response and that let me know more about details about this issue.
As refers to the first that return something we can bind to. Yes, As long as it is not the loopback address and I think it is okay for that. So, What do you think of if we add a check like the below, at this moment, I do not add a retry number here. Just give an example for hack this. But this might be cause an endless loop.
// our attempts timed out. use the heuristic fallback
		LOG.warn("Could not connect to {}. Selecting a local address using heuristics.", targetAddress);
		InetAddress heuristic = findAddressUsingStrategy(AddressDetectionState.HEURISTIC, targetAddress, true);
		if (heuristic != null) {
			while (heuristic.toString().contains("<IP_ADDRESS>") || heuristic.toString().contains("<IP_ADDRESS>")) {
				heuristic = findAddressUsingStrategy(AddressDetectionState.HEURISTIC, targetAddress, true);
			}
			return heuristic;
		}
		else {
			LOG.warn("Could not find any IPv4 address that is not loopback or link-local. Using localhost address.");
			InetAddress address = InetAddress.getLocalHost();
			while (address.toString().contains("<IP_ADDRESS>") || address.toString().contains("<IP_ADDRESS>")) {
				address = InetAddress.getLocalHost();
			}
			return address;
		}

@StephanEwen As refers the second , I think we can use the following code to find a stuff to bind to for the test. @NicoK  Could you also take a look of those ? Thanks  ~
 Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
    while (nifs.hasMoreElements()) {
      NetworkInterface nif = nifs.nextElement();
      Enumeration<InetAddress> addresses = nif.getInetAddresses();
      while (addresses.hasMoreElements()) {
        InetAddress addr = addresses.nextElement();
        if (!(addr.getHostAddress().contains("<IP_ADDRESS>") || addr.getHostAddress().contains("<IP_ADDRESS>"))) {
          return addr; // this is the stuff we bind to
        }
      }
    }
  }

Hi, @NicoK . I think InetAddress.getAllByName("localhost") wont work since we still give the specific hostname for that. And it will return a  loopback address.

@zhangminglei, I think Stephan's idea was to not change any parts of the ConnectionUtils. Instead we should harden the ConnectionUtilsTest#testReturnLocalHostAddressUsingHeuristics by adding a Assume.assumeFalse(InetAddress.getLocalHost().isLoopbackAddress) and checking that this is also false for the returned address. Moreover, we could check whether we can actually bind to this address.

Thanks @tillrohrmann . I agree with you. This will produce a smaller refactoring without affecting the system itself. I will try soon.

Hi, @tillrohrmann  I push a new version of code based on your suggestions. Could you please take a look when available ? Thanks.

I copied the Travis log here, and I think this is what we want. And the line of 63 verifies it is not a loopback address.
// make sure that the InetAddress.getLocalHost is not a loopback address
Assume.assumeFalse(InetAddress.getLocalHost().isLoopbackAddress());

Tests in error:
  ConnectionUtilsTest.testReturnLocalHostAddressUsingHeuristics:63 Â» AssumptionViolated

Tests run: 2553, Failures: 0, Errors: 1, Skipped: 8

17:38:48.959 [INFO] ------------------------------------------------------------------------
17:38:48.959 [INFO] Reactor Summary:
17:38:48.959 [INFO]
17:38:48.959 [INFO] flink-core ......................................... SUCCESS [ 55.118 s]
17:38:48.959 [INFO] flink-java ......................................... SUCCESS [ 26.140 s]
17:38:48.959 [INFO] flink-runtime ...................................... FAILURE [11:01 min]
17:38:48.959 [INFO] flink-optimizer .................................... SKIPPED
17:38:48.959 [INFO] flink-clients ...................................... SKIPPED
17:38:48.959 [INFO] flink-streaming-java ............................... SKIPPED
17:38:48.962 [INFO] flink-scala ........................................ SKIPPED
17:38:48.962 [INFO] flink-test-utils ................................... SKIPPED```

Subsumed in FLINK-4052.


Remove cookies on non-www domain too

There was a bug where on some sites, the GA cookies were being set on '.domainName' rather than 'www.domainName' - which meant that our JS to remove them wasn't working. This adds in some code that will remove both types of cookie.

Made that change @RobLoweMOJ  :)


Unexpected Error Occur

[Window Title]
devenv.exe
[Main Instruction]
An unexpected error occurred
[Content]
Please press Ctrl+C to copy the contents of this dialog and report this error to our issue tracker.
[V] Show details  [Close]
[Expanded Information]
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.PythonTools.Navigation.PythonFileChildren.GetChildren()
   at Microsoft.PythonTools.Navigation.ObjectBrowserChildren.EnsureChildren()
   at Microsoft.PythonTools.Navigation.ObjectBrowserChildren.GetEnumerator()
   at Microsoft.VisualStudioTools.Navigation.LibraryNode.Visit(ILibraryNodeVisitor visitor, CancellationToken ct)
   at Microsoft.VisualStudioTools.Navigation.LibraryNode.Visit(ILibraryNodeVisitor visitor, CancellationToken ct)
   at Microsoft.VisualStudioTools.Navigation.LibraryNode.Visit(ILibraryNodeVisitor visitor, CancellationToken ct)
   at Microsoft.VisualStudioTools.Navigation.Library.<>c__DisplayClass22_0.<VisitNodesAsync>b__0()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudioTools.Navigation.Library.<VisitNodesAsync>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.PythonTools.Navigation.NavigateTo.PythonNavigateToItemProvider.<StartSearch>d__8.MoveNext()

There are 2 places in PythonFileLibraryNode.cs where the result of GetAnalysisEntry is not checked for null.
Though I'm not sure if that code is active anymore.


No such file or directory: 'model. pt'.

Hello, when I run it, an error message appears: FileNotFoundError: [Errno 2] No such file or directory: 'model. pt'.

Can you provide more details about the problem? Which file are you running? What is the full printed stack trace of the error message?

When I run "./run. sh tasks robots", the error "Traceback (most recent call last):
File "private_test_scripts/perceivers/roboticstasks.py", line 199, in
train(model,100,[trains3, trains4],[valid3, valid4],[test3, test4],
File "/home/pod/shared-nvme/HighMMT-main/private_test_scripts/perceivers/train_structure_multitask_robotics.py", line 130, in train
model=torch.load(savedir,weights_only=True).to(device)
File "/home/pod/shared-nvme/miniconda3/envs/jtsaw/lib/python3.8/site-packages/torch/serialization.py", line 1065, in load
with _open_file_like(f, 'rb') as opened_file:
File "/home/pod/shared-nvme/miniconda3/envs/jtsaw/lib/python3.8/site-packages/torch/serialization.py", line 468, in _open_file_like
return _open_file(name_or_buffer, mode)
File "/home/pod/shared-nvme/miniconda3/envs/jtsaw/lib/python3.8/site-packages/torch/serialization.py", line 449, in init
super().init(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'model.pt'the file can be loaded successfully before this.

您能否提供有关此问题的更多详细信息？您正在运行的是哪个文件？错误消息的完整打印堆栈跟踪是什么？
When I run "./run. sh tasks robots", the error "Traceback (most recent call last):
File "private_test_scripts/perceivers/roboticstasks.py", line 199, in
train(model,100,[trains3, trains4],[valid3, valid4],[test3, test4],
File "/home/pod/shared-nvme/HighMMT-main/private_test_scripts/perceivers/train_structure_multitask_robotics.py", line 130, in train
model=torch.load(savedir,weights_only=True).to(device)
File "/home/pod/shared-nvme/miniconda3/envs/jtsaw/lib/python3.8/site-packages/torch/serialization.py", line 1065, in load
with _open_file_like(f, 'rb') as opened_file:
File "/home/pod/shared-nvme/miniconda3/envs/jtsaw/lib/python3.8/site-packages/torch/serialization.py", line 468, in _open_file_like
return _open_file(name_or_buffer, mode)
File "/home/pod/shared-nvme/miniconda3/envs/jtsaw/lib/python3.8/site-packages/torch/serialization.py", line 449, in init
super().init(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'model.pt'the file can be loaded successfully before this.

I apologize for the problem. It seems like somehow the main training loop within train_structure_multitask_robotics.py was commented out for some reason. I have fixed it. It should be fixed with the newest commit.


[🐞] Intermittent failure onShippingChange callback of the Android

@tdchow  @ChrisGuzman @mahmoud-turki  On the Android SDK side, when initiating the PayPal order creation, the intermittently onShippingChange callback was not triggering.
when the user opens the Paysheet we have already a default address set by PayPal SDK but the onShippingChange is not called. App side, in the onShippingChange callback, we are requesting our own APIs for tax calculation based on shipping address. Due to an onShippingChange callback failure, the tax amount is impacting our Android app.
Observation:- when we first launch the paysheet the onShippingChange is invoked and that address is cached, however, when the user finishes the first purchase and execute a second purchase the address is cached and the SDK is not invoking
Note: Testing here I see that if I close the app and open it again the onShippingChange callback is executed,

Hello, it sounds like the bug you're describing is the same as #100, is that correct? If so the fix will be in the next release of the SDK.

@chpypl Can you please provide an estimation on when the next release will be available? This will help us plan accordingly and ensure that we can take advantage of the fix as soon as possible.


Any way to run elevated python code?

I'm trying to use mraa on an intel edison through PyCall.  I need to run the equivalent python program as root in order to use the gpio.  Is there any way to run the python code elevated?

The Python code in PyCall is executing in the same process as the Julia code, so if you want to run the Python code as root then Julia needs to be running as root also.

Huh, I could have sworn that's what I tried, but I'll double-check tonight.


genpy: 0.5.6-0 in 'indigo/distribution.yaml' [bloom]

Increasing version of package(s) in repository genpy to 0.5.6-0:

upstream repository: git@github.com:ros/genpy.git
release repository: https://github.com/ros-gbp/genpy-release.git
distro file: indigo/distribution.yaml
bloom version: 0.5.20
previous version for package: 0.5.5-0

genpy
* fix handling of dynamic message classes with names containing other message classes as substrings (#40 <https://github.com/ros/genpy/pull/40>)

Do not merge yet. Waiting for other releases...


Waiter for AWS Transfer

There are no waiters for creating/deleting/etc servers using AWS Transfer for SFTP.

@tyler-e-marshall - Thank you for your post. I will mark this as feature request.

@swetashre Any progress on this issue?


SIM910 does not work

This doesn't trigger a violation even when using the example from the docs.
ages = {"Tom": 23, "Maria": 23, "Dog": 11}
age = ages.get("Cat", None)  # None

$ ruff --isolated --select SIM910 --preview --no-cache rufftest/ruff_sample.py
(no output)

(ruff 0.1.6)

It looks like it only applies to dictionary literals right now (like {}.get(...)). We can improve that.


Fixes #307. Move to the 6.0.10 image for CI

Description

Various CI updates to support MAPL 2.1

Update workflow.yml
Update config.yml
Add -DMPIEXEC_PREFLAGS='--oversubscribe'

Related Issue

#307
Motivation and Context

CI should support the code
Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Trivial change (affects only documentation or cleanup)

Adding a blocker until I see success from CI checks.


[Android] Expose the ANativeActivity to the user

At the moment it's impossible to get the ANativeActivity (except with a awful hack). But the user need it to load assets, call JNI function, access the savedstates...
Maybe the getSystemHandle() should return a struct containing a pointer to the ANativeActivity and the ANativeWindow.

Removed milestone due to missing progress.

Essentially got this ready, just missing updated documentation (waiting on #961) and some testing.

Added in 9f6f02f988e2378b13e969129fcf31825c8f190f


Support for any Linux process

With this PR , Trireme is not just for containers any more, but it can support any arbitrary
Linux processes. It will map processes to cgroups and use the net_cls facilities to
properly capture packets and enforce policy across any Linux process.

Let's try to increase the Code coverage before merge.

Current coverage is 53.49% (diff: 46.60%)

Merging #136 into master will decrease coverage by 5.08%

@@             master       #136   diff @@
==========================================
  Files            25         28     +3
  Lines          3035       3645   +610
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1778       1950   +172
- Misses         1151       1556   +405
- Partials        106        139    +33

Powered by Codecov. Last update a848012...54571bf


Resolve all dead links

Closes #81

This is a great PR. Thanks for fixing all of the dead links and making sure the repo is in good state. I appreciate this a lot. This has landed into master now. Thanks again.


Update sql-data-warehouse-overview-expectations.md

Minor grammar fix.

Hi @TwoUnder, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (mausher). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, or work for Microsoft Open Technologies, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@barbkess
FYI


Documentation missing for template redirect/export

If you define a package named foobar, it will look for template-foobar in NPM.
However, you might want to have your package be named foobar.  And not enforce people to do sao npm:foobar.
So you could basically publish a package named template-foobar, and the contents of its index.js would be something like:
module.exports = require('foobar');

Perhaps we make a simple utility with SAO or a template that does this for us automatically?

For further reference:
package.json:
{
  "name": "heh-template",
  "description": "sao template for heh",
  "version": "0.0.1",
  "author": "Nick Baugh<EMAIL_ADDRESS>  "bugs": {
    "url": "https://github.com/hehjs/heh-template/issues"
  },
  "homepage": "https://github.com/hehjs/heh-template#readme",
  "license": "MIT",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/hehjs/heh-template.git"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies": {
    "heh": "latest"
  }
}

Note that I set heh to latest version in dependencies.
And my index.js is simply:
module.exports = require('heh');

maybe export the path to your actual template?
const path = require('path')

module.exports = path.dirname(require.resolve('template-foo/package'))


Create man page

Feature description

I’ve come to expect that valuable tools have a good man page. Personally I get a bad feeling about a tool if it doesn’t have at least a small one. We should add one.
Target users

Just normal unix users, when looking up man pages for tools is a normal part of the workflow.
Compared to looking at --help output:

it lists everything, thus makes it possible to search for functionality
It can have more verbose descriptions of what a command does
It can have plain-text sections
Examples

The man page is (and should be) the first place to look to get a overview of what the tool does (and maybe links to tutorials, further reading, &c.)

We certainly don't have to use this, but this may be a useful pointer for whoever attacks this: https://github.com/rust-cli/man

Looks like this issue got resolved with this commit: 78f2913ca15855ddf12a5980a687cc7e3a805a1e
Should this be closed?

@tshaynik well spotted :)


[WebJobs/EventHubs] Address comments from the initial migration review

See https://github.com/Azure/azure-sdk-for-net/pull/16645

       MaxBatchSize = 10;

I'm not sure how I feel about specifying these values, but you'll probably also want to set the CacheEventCount >to the batch size, as that would mimic the behavior in T1 if these values were set. If not, then I'd recommend >using the default prefetch as well.

 public void AddSender(string eventHubName, string sendConnectionString)

We probably want to move to Producer to align with the new terminology. This was a big ask from the service team during T2 API reviews.

   public void AddReceiver(string eventHubName, string receiverConnectionString)

We probably want to move to Consumer to align with the new terminology. This was a big ask from the service team during T2 API reviews.

           EventHubsConnectionStringBuilder builder = new EventHubsConnectionStringBuilder(connection);

I'd recommend using the EventHubConnectionStringProperties type here; it'll be released with November's beta.

public static string GetBlobPrefix(string eventHubName, string serviceBusNamespace)
This isn't accurate for T2, assuming that we're using it to identify checkpoint/ownership. If not, ignore me

  if (messages.Any())

nit: This is potentially enumerating the sequence a second time. You've got an array of these in the triggerInput that you may want to just read the length of.

Closing as some of these are addressed and some(naming) is by design to avoid breaking changes.


RL Unplugged: Baseline implementations?

I was looking for the implementations of your baselines since the paper says that lack of baselines make algorithmic comparisons difficult but could not find anything neither in this repo nor in the ACME repo. Did I miss something or you did not publish the baselines?

I know what you mean. Now that the issue of graph generation has been easily implemented in this repo I think that I can integrate graph networks with reinforcement learning for the first time. (I am using rl-keras & gym)

Any update on this? I was also expecting complete implementations for reproducibility purposes, but that doesn't seem to be the case.

Any update on this? I was also expecting complete implementations for reproducibility purposes, but that doesn't seem to be the case.


Fix queries being lost on name conflict

We internally use a hashmap to store queries, this
meant that if a user made multiple queries the original
one would be orphaned.
Relates to pion/ice#75

Codecov Report

Merging #2 into master will increase coverage by 0.16%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
+ Coverage   71.51%   71.67%   +0.16%
==========================================
  Files           1        1
  Lines         172      173       +1
==========================================
+ Hits          123      124       +1
  Misses         29       29
  Partials       20       20

Impacted Files
Coverage Δ

conn.go
71.67% <100%> (+0.16%)
: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 5b697ae...56a4861. Read the comment docs.


Working Next/Previous and Search Error handling

added form for search movie bar
contains contents of https://github.com/FifthTry/movie-db/pull/33

contents moved to Error handling in add-review


Does Apollo Kotlin support multiple interfaces?

Question
GraphQL official spec says: "An object type may declare that it implements one or more unique interfaces."
Does Apollo Kotlin supports this?
reference

Yep, that works. Apollo Kotlin claims full compatibility with the latest version of the spec and most of the draft. If something doesn't work, please give some specifics.

Thank you!


parsing issue when there is no closing parenthesis or square bracket

Expected: Error no closing parenthesis
Actual: No Syntax Error
Sample code:
sheesh(){
	whole x = (10#
	whole n = (id(#
	whole i = id[ #
}

unenforced pala yung )


add Protocol Version to single condition field types

The Protocol Version is a single condition field type. Plans with rules using this condition will throw a warning when this ought to be a supported type.

Hi @dbtlabs-aaron - nice catch! Thanks for the contribution. Can you please run make docs as well to autogenerate the related documentation? Thanks!

docs updated @daniel-corbett

@dbtlabs-aaron - seems your latest commit removed one of our guides docs/guides/3.0.0.md. Please undo that and we'll be good to go.

 It looks like the make docs routine deleted it.

Looks good. Thanks @dbtlabs-aaron !


Lincense

@fredrikpersson92 : Another suggestion. Many projects on github have published the code under a specific license to use. For example Home Assistant published under Apache License 2.0 The button-card project on which your work is based on is publishing oder MIT, just to name two of them. What do you think? Do you want to include a license?
It is pretty easy to include on github. Just push the file LICENSE without anything further at the ending and paste the according license inside that file.
Button Card: https://github.com/custom-cards/button-card/blob/master/LICENSE
Home Assistant: https://github.com/home-assistant/core/blob/dev/LICENSE.md

Hey, I could not find any info on what to do here. Could you help me out?

Hi. Sure I try to help here. Github provided a very good explaination here: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository  and provided a side to easly choose a license. For example button card choosed the MIT license.

I would recommend the MIT license as it is a more permissive license than Apache 2.0. Basically, you can do whatever you want with MIT-licensed software, provided you add a copy of the original MIT license and copyright notice to it.
Apache is stricter because it requires you to list all the modifications you make to the original software. A copy of the license, with copyright and attribution notices, must be included in the source code and any modifications. A specific section on contributions outlines the conditions for accepting external contributions to the project. The MIT license requires a copyright notice, but it does not have explicit requirements for the license or attribution notices.
Apache covers patent rights. It requires contributors to grant a license to any patents they hold that are relevant to the software. The MIT license does not. Apache allows users to sublicense the software under the same license terms. The MIT license does not address sub-licensing.
Apache includes provisions related to trademarks, requiring explicit permission from the license holder to use any trademark associated with the software. The MIT license does not. Also, you can’t name your product in any way that hints at the product being endorsed by Apache.
While both licenses allow software to be combined with projects under different licenses, Apache has more restrictions in terms of license compatibility compared to the MIT license.
The MIT license is gaining popularity with developers due to its short and clear license agreement that makes it simple and flexible to use. The Apache license agreement provides more protection for patents, contributions, and trademarks, but is far longer.


Height Calculated Incorrectly

Error log:
dataserv-client version 2.1.4

C:\Users\super3\AppData\Roaming\DriveShare/dataserv-client/dataserv-client.exe --store_path=C:\Users\super3\Desktop\test --max_size=2 farm
INFO dataserv_client.messaging 43: Query: http://status.driveshare.org/api/address

I specified 2 GB, but max height was set to 2. 2G should be passed to max size instead.

GUI store size = 1.35 TB will end up with following error.
"View logs" says: C:\Users\xandry\AppData\Roaming\DriveShare/dataserv-client/dataserv-client.exe --store_path=D:\sjcx --max_size=1.35 farm
Traceback (most recent call last):
File "dataserv-client", line 10, in
File "E:\dataserv-client\dataserv_client\cli.py", line 188, in main
File "E:\dataserv-client\dataserv_client\api.py", line 46, in init
File "E:\dataserv-client\dataserv_client\deserialize.py", line 67, in byte_count
File "E:\dataserv-client\dataserv_client\deserialize.py", line 9, in positive_nonzero_integer
File "C:\Python34\lib\site-packages\btctxstore\deserialize.py", line 81, in positive_integer
ValueError: invalid literal for int() with base 10: '1.35'

This is what happens when you make a release at 1am in the morning. Sorry about that, a bug fix release has been made.

Works great for me now.


Add more npm scripts

Adds a bootstrap and build script.
I was getting tired of typing ./script/build.py -c D on the command line often.
/cc @jlord :eyes:

:tada: :100:


docs: add contribution guide and refactor docs

Resolves #114.
Adds a contribution guide with concise instructions on how to submit a PR, test a version, submit an issue, etc.
Also restructures the existing docs a bit. I moved the guide on how to install the web UI locally to the developer docs since the preferred way of installing for most people is through the node app stores. Running locally and connecting to a remote JoinMarket instance is something for more advanced users I would say.
📚 Preview: here

Thanks for the feedback guys!
What do you think, should we remove the install instructions for the Raspiblitz until the install is fixed so that it actually works?

The fix should be available with the next bugfix release, so I wouldn't mind and keep it in,


No CORS for 401 response

Hello,
Whenever i try to access to a "authorization required" area, i get an 405 error which is fine, but the CORS is not sent. That behavior happens on nginx too and is solved by adding a 3rd parameter to the "Access-Control-Allow-Origin", something like this:
"Access-Control-Allow-Origin * always"
Because by default, nginx only returns CORS header to 2xx and 3xx status code. Maybe there's something similar to fix this, i dont know.
So far i dont know how to bypass this, so any help would be really appreciated. Thank you :)

Sorry, my bad, seems like the problem is about the middleware execution time, which executes after the authentication middleware :) My bad...


refactor to remove utils modules wherever possible

because it's an anti-pattern
https://breadcrumbscollector.tech/stop-naming-your-python-modules-utils/
that's cluttering up namespaces for no good reason,
e.g. why have vak.util.labels when it could just be vak.labels

Fixed by #196


Error: failed linking references.

error: failed linking references.

/root/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.2.aar/0f74942fbe38b2fcc7212cf929c7e3d9/res/values/values.xml:246:5-69: AAPT: er
ror: resource android:attr/fontVariationSettings not found.

/root/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.2.aar/0f74942fbe38b2fcc7212cf929c7e3d9/res/values/values.xml:246:5-69: AAPT: er
ror: resource android:attr/ttcIndex not found.

React Native Environment Info:
System:
OS: Linux 4.9 Debian GNU/Linux 9 (stretch) 9 (stretch)
CPU: (6) x64 Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz
Memory: 256.10 MB / 7.60 GB
Shell: 4.4.12 - /bin/bash
Binaries:
Node: 8.16.0 - /usr/bin/node
Yarn: 1.16.0 - /usr/bin/yarn
npm: 6.9.0 - /usr/bin/npm
SDKs:
Android SDK:
API Levels: 23, 24, 25, 26, 27, 28
Build Tools: 23.0.1, 26.0.1, 26.0.2, 27.0.3, 28.0.0, 28.0.2, 28.0.3
System Images: android-25 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-Q | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6<IP_ADDRESS>22156
npmPackages:
react: 16.6.3 => 16.6.3
react-native: ^0.58.5 => 0.58.5
npmGlobalPackages:
react-native-cli: 2.0.1
react-native-git-upgrade: 0.2.7

Set your compileSdkVersion to at least 28.

is there a solution for fixing this problem ?

is there specific fix for this? :(

Please Provide Solution.
same issue.
Please check enclosed image.

above solution does not work^^

I'm also having this issue.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
  /path/to/project/android/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml:87: AAPT: error: resource xml/provider_paths (aka com.zoowho.android:xml/provider_paths) not found.

  error: failed processing manifest.

Any insight would be much appreciated.


Hands move away without camera in oculus quest

Hi, nice idea I would like to play, but sadly hands are in the air above the head and move away after triggerpress on oculus quest.

Experiencing the same thing with an Oculus Rift S.

Sadly experiencing the same issue with oculus quest

I see the same issue with Firefox Reality on Quest, while it seems to work correctly on Oculus Browser.
I tested also on Firefox and Chrome desktop using the WebXR emulator and I found random behaviour.
I believe it's some async issue when the default camera is initialized. The index.html doesn't have any camera so aframe is injecting initially a default one (and activating it), but then in player.js a new one is created and added to the player entity (https://github.com/talkol/spiderman/blob/master/player.js#L24-L34).
Some things I tried:

works If I force setting the player's camera.active = true on the player's tick it works as expected and everything moves as expected:

    this.camera.setAttribute("camera", "active", true);

doesn't work If instead of using the code on player.js to create the camera entity, I create on the HTML a <a-entity> camera:

<a-entity player="mass: 70" position="0 0 0">
  <a-entity id="camera" camera=""></a-entity>
</a-entity>

And then instead of creating a new node, I just grab that one:
    this.camera = document.getElementById('camera');
    this.camera.setAttribute("look-controls", "");
   ...

works If I create the camera node as the above example, but I don't grab that node when creating the camera, so I'm creating a new entity with a camera there, it works ? the only difference is that the default camera is not being injected.

I've submitted a PR (https://github.com/talkol/spiderman/pull/7) with the first change, just as a workaround that fixes the behaviour, but ideally that's should not be the final solution here.
Any hint of what can be going on here @dmarcos ?

actually I believe it should be enough to force the activation in the play instead of doing it on each tick, that was just a big of brute-force approach :)

I haven't investigated. Moving all those entities created programmatically to the HTML will clean things up and likely problems will go away:
<a-entity player="mass: 70" position="0 0 0">
  <a-entity camera look-controls raycaster="..." position="0 1.6 0" wasd-controls></a-entity>
  <a-entity hand="left" raycaster="..."></a-entity>
  <a-entity hand="right" raycaster="..."></a-entity>
</a-entity>


GitHub Discussions

I want to ask a question but the template suggests me to use Gitter.im. I opened it and see that it's not very active. I don't need an answer right away, and I feel that putting it in the chat will just burry it when the next person comes in and drops something.
Wouldn't it be an idea to enable GitHub Discussions? Example: https://github.com/laravel/framework/discussions

As you see, opening a thread at github repo doesn't guarantee prompt answer.
GH Discussion were not yet fully rolled-out to public, we got access to it only yesterday. Core team is discussing whether to use it, and how. Thanks for suggestion!


iOS example fails with error in emulator

After compiling and running the example application on the iOS 11.4 emulator, clicking the "Log In" button will fail with this error:

[TwitterKit] did encounter error with message "Unable to authenticate using the system account.": Error Domain=TWTRLogInErrorDomain Code=0 "User denied access to system accounts." UserInfo={NSLocalizedDescription=User denied access to system accounts., NSLocalizedRecoverySuggestion=Give this user access to the System Twitter account.}
[TwitterKit] No matching scheme found.
[TwitterKit] did encounter error with message "Error obtaining user auth token.": Error Domain=TWTRLogInErrorDomain Code=-1 "Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings" UserInfo={NSLocalizedDescription=Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings}

I've tried replacing the consumer key and secret with my own, and I receive the same error above.
Here's my flutter doctor -v
$ flutter doctor -v
[✓] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.5 17F77, locale en-US)
    • Flutter version 0.5.1 at /Volumes/New/flutter
    • Framework revision c7ea3ca377 (6 weeks ago), 2018-05-29 21:07:33 +0200
    • Engine revision 1ed25ca7b7
    • Dart version 2.0.0-dev.58.0.flutter-f981f09760

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/alex/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.4.1, Build version 9F2000
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 26.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[!] VS Code (version 1.25.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected devices (1 available)
    • iPhone X • 26335CBA-34C8-44E6-BF80-A75703FB2F8F • ios • iOS 11.4 (simulator)

! Doctor found issues in 1 category.

I have the same problem here on real device and simulator IOS 11.4.1

[SOLVED]
go to your app setting in: https://apps.twitter.com/app
In URLCallback just add the following urls:
Android - twittersdk://
iOS -CONSUMERKEY://
Works for me on IOS simulator and real device

i get this error

Running pre install hooks
[!] The 'Pods-Runner' target has transitive dependencies that include static binaries:

@mtellect I ran into the same issue.  They need to update this package to include s.static_framework = true inside their flutter_twitter_login.podspec file.
You can view the issue here:
issue
I was able to fork this repo, make the change, and confirmed it worked.

[SOLVED]
@thismachinechills
go to your app setting in: https://apps.twitter.com/app
In URLCallback just add the following urls:
Android - twittersdk://
iOS -CONSUMERKEY://
Works for me on IOS simulator and real device

Worked for me

go to your app setting in: https://apps.twitter.com/app
In URLCallback just add the following urls:
Android - twittersdk://
iOS -CONSUMERKEY://

iOS should be twitterkit-CONSUMERKEY://


(Instructors) New Assignment Setup

In the course org repo list view, I (an instructor) can enable Anacapa to periodically check my course organization for new assignments so that my configured Jenkins instance can have the proper jobs set up for grading to happen.

Note: https://devcenter.heroku.com/articles/scheduler
I am thinking that we can have a scheduled task in the rails application that runs every X period of time and checks some "enabled" switch setting to see if it needs to actually do anything. If the "enabled" setting is ON, then it will do the scan over the configured course GitHub organization. Otherwise, it's a no-op.

handled via web-hooks


Query Strings disappearing in subsequent requests

Hello,
I am currently trying to play hls video from a url with VideoPlayerController.network(url) with the video_player plugin. The url contains query string params. I am using AWS CloudFront signed urls that only allow you to access the requested resource if the query strings are there. I have noticed that the query strings are only there in the first request. In the subsequent requests, the query strings disappear. Is there a way to ensure that the query strings are always in the url.
Thank you in advance,
Kevin

Hi @kevysushi1224
This platform is not meant for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Login, logout, etc links should be in top-right corner of every page

Mine.

Implemented in https://github.com/Learn-by-doing/bitstarter/pull/86

Done by #97


Add exception handler code behind environment variable guard

export PYHELICS_ADD_EXCEPTION_HANDLER=True for old behavior.
Fixes https://github.com/GMLC-TDC/pyhelics/issues/47

It turns out this is not the issue for causing segfaults when using import helics; import matplotlib. The core issue is that the helics library loads a different version of stdc++, and loading the helics library first causes further calls that expect the older version of stdc++ to fail and segfault. This could be related to the fact that the helics library may export more functions than required.


New File in Sub Folder of Public Share cannot been created

Testing:
https://github.com/owncloud/ocis/issues/8691

Receive a Public Link of a folder
Create a (sub-)folder
Create a office file in that sub folder

Result: Failed to create file
Expected: File can been created
Workaround:

Create a file on the received link "root" folder level.
move the file into the created (sub-)folder

@micbar
\cc @wkloucek @d7oc @dragotin

Please provide more info about used ocis version and setup.

Severity is not possible because no blue ticket

@PrajwolAmatya @Salipa-Gurung
Please see if we have API test scenarios for this sort of thing - creating a sub-folder and uploading a file into it, for a read-write public link.

Note: create office file is not WebDAV, it it the app/new endpoint.

I am able to reproduce. Seems to be yet another issue with the publicshare token scope verification :sob:


Same name and Value label

Hey mdlayher,
I have just experienced an issue where I get this:
An error has occurred while serving metrics:

3 error(s) occurred:
* collected metric "wireguard_peer_receive_bytes_total" { label:<name:"public_key" value:"REDACTED" > counter:<value:526256 > } was collected before with the same name and label values
* collected metric "wireguard_peer_transmit_bytes_total" { label:<name:"public_key" value:"REDACTED" > counter:<value:51184 > } was collected before with the same name and label values
* collected metric "wireguard_peer_last_handshake_seconds" { label:<name:"public_key" value:"REDACTED" > gauge:<value:1.588091946e+09 > } was collected before with the same name and label values

Any idea on what this could be and how would I go about fixing it 👍 ?
Thank you!
Mark

Do you have multiple WireGuard interfaces with the same peer configured on multiple interfaces? Can you share the output of wg show?

We do have that, we use 6 interfaces as of the moment.
Would it be possible to exporting measurements for just one config?  (that case we could set up multiple exporters as needed / interface.)
Unfortunately I cannot share it due to company policy.

I don't understand why you would want to have one peer associated with multiple interfaces on the same machine. Can you explain? I would rather not write special case logic.

I discussed this with a couple of folks and they mentioned an interesting use case: perhaps you'd like to set up one peer on different devices with different IP stacks, for example IPv4 only, IPv6 only, or dual stack configuration. This could be useful for testing in various scenarios. I'll have a change committed today to fix this.

Fixed in https://github.com/mdlayher/wireguard_exporter/commit/deab2b8a5933fb9a3ae2a1bbf9ad509ebfe13a96.

@mdlayher
thanks for this, i will be trying this out too.
i use multiple separate wireguard networks in concert;  some hosts being part of several networks for routing to other networks.
so many of my hosts have multiple wireguard interfaces.


[BUG] permutations aren't work properly with some storysources

Describe the bug
If tags on storySource don't includes whitespace, perview shows default components though permuatation feature is enabled.
To Reproduce
Steps to reproduce the behavior:

Go to any stories.tsx
remove white space in your storySource.source

//example

  parameters: {
    storySource: {
      source: "<Button>hello</Button>", // or  <Button/>
   //....
    },

try to activate a permutation or toggle controls

Expected behavior
Permuation and Arg control works as ususal.
Screenshots
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.

found this issue on during testing other components. The cause is clear and we'll fix it soon


Revise Stores API, with tests and OAS

This does not yet cover the product sub-API, just Stores crud. Now that I've found a good path, patterns, and rhythm, Product should be easy to revise, but I ran out of oomph.

This also contains a trial balloon for a pattern we can apply for name conversions in and out.

GitHub API communication error. Please contact a human. (commit-ID: b47ef4d4b8080357a4134ef4a3313b8ed8206e8c).

I really like this a lot... just a few overarching comments I would wonder about.  If you say "do that yourself next" that is valid.
TL;DR:  Squash please then awesome and we can work from there.

Phplint HATES the splat operator, well phplint hate a lot of our code which is why i have not tried to be phplint clean. Or at least not really...    Quick web search seem to imply the splat operator is generally viewed as good and kosher so that rocks!  I had not heard of it before. Very cool!

Squash please?  I will admit I am old fashion and I am looking at things in the actually files and using git log and git show in my terminal and when something is "commit, fix commit, fix commit etc..." then it is REALLY hard to see the final proper code.  I would really prefer to have the fixes squashed into the original commit before the pull request is completed.

I am really loving the body/payload/mapping infrastructure you are building.  With columnsToParams and paramsToColumns and insertPayloadFromParams etc... I am already thinking about how to generalize it and be able to pull it out into the general architecture.

Only point is there are things like filterBodyParams, which is always used on a body?  Seems like the new code path is that it is being used by insertPayloadFromParams which is used on more than just body   Maybe we rename?  just filterParams sounds good.  or filterArray  Again I am thinking generalizing...

Phplint HATES the splat operator, well phplint hate a lot of our code which is why i have not tried to be phplint clean. Or at least not really...    Quick web search seem to imply the splat operator is generally viewed as good and kosher so that rocks!  I had not heard of it before. Very cool!

At some point, we may need to revisit phplint/phpcs rulesets to accommodate our actual preferred practices. They do not have to be prescriptive (let alone proscriptive)--every linter I know has a way to tell it, "No, we actually like that one."
The splat operator is also relatively new, and I'm guessing (but really don't know) that it was controversial when introduced, given how old PHP is and the likelihood of conservatism in its ranks. But it's EXTREMELY handy in a situation like this one, where we have a function that doesn't take an array, but a variadic list of parameters; but what we have to PASS it is an array. Every modern language has one, now. JavaScript also uses ...; Ruby uses * (which may be where "splat" came from for the function).

I am really loving the body/payload/mapping infrastructure you are building.  With columnsToParams and paramsToColumns and insertPayloadFromParams etc... I am already thinking about how to generalize it and be able to pull it out into the general architecture.

Yeah, I can see either pulling it out, or just making it a conventional pattern if it turns out there's not much actual logic to hoist safely, but I actually think both insertPayload and selectMapping could be hoisted, and wrote them as generically as possible to support the idea.

Only point is there are things like filterBodyParams, which is always used on a body?  Seems like the new code path is that it is being used by insertPayloadFromParams which is used on more than just body   Maybe we rename?  just filterParams sounds good.  or filterArray  Again I am thinking generalizing...

filterBodyParams was always used on a body, but that was an accident, honestly. The body in question was always an assoc-array generated from a JSON payload, which means any assoc-array will do. Name probably needs to change, because naming things is hard, but "body" was merely a question of how it was being used at the time.

There's still a part of me that thinks we should use middleware for all the renaming, but I also realized that our column names are simply too all-over-the-place. So I went with the next best thing: a single explicitly written map of columns to parameters; a second map that's just the inverse; and two easy functions for using them. There may be other use cases beyond those--I definitely didn't foreclose possibilities, there--but that seemed like a reasonable least-time-to-implement compromise that allows database column names to be whatever-the-fuck they are, and our protocol parameters to fit what we WISH they were :-D

phpcs is easy to configure:  phpcs.xml    feel free to make merge requests :)
Yeah, When I signed on I repeated up and down to not let me do database design because I suck at it... Well I have been doing all the database design, based on the original design by Thomas which never had an idea where we would end up.  So the Database has naming conventions I HATE and did not bring over into the API and such.
Explicitly written maps are likely our best way, I agree with you.


Allow updates to Data Elements to change the parent Data Class

Description
There is a requirement to be able to move a Data Element to a different Data Class within the same Data Model. At the moment, the PUT /api/dataModels/{modelId}/dataClasses/{classId}/dataElements/{elementId} will fail if a different dataClass parent UUID is included in the request body.
Steps to reproduce
Send this request:
PUT /api/dataModels/{modelId}/dataClasses/{classId}/dataElements/{elementId}

{
    "dataClass": "{anotherClassId}"
}

Note that the model property is not included in the body - this should still not be allowed, since moving a data element outside the model to a different model would cause links to the data type to break.
This is the exception currently thrown:
deleted object would be re-saved by cascade (remove deleted object from associations): [uk.ac.ox.softeng.maurodatamapper.core.facet.BreadcrumbTree#c665b724-fed0-4918-8197-d78286034371]

Expected behavior
A 200 OK should return in the response. Once complete, the data element should now appear in Mauro under it's new data class parent.
Related

NHSDigital/DataDictionaryPublication#468

Adding a new endpoint to adjust an existing DataElement and change the parent data class is being problematic. The issue is the breadcrumb tree won't update as expected, since it won't persist changes back to the database without causing constraint violations.
Going to put this on hold and see if I can just use the MDM UI and existing endpoints to copy a data element to the target data class, then delete the old one.

Change of plan. Instead, I will attempt to keep the move endpoint but that will internally handle a copy of the original data element and delete the original. This will then simulate the "move" of the element to a different class.
Keeping the move endpoint will be necessary so that the NHS Data Dictionary will be able to track and intercept changes in paths by tracking the action name.

Now going to put this on hold. Technically this work is not in the statement of work agreed with NHS England and building this feature is taking up time - there may not even be a need for it depending on discussions of re-organising the dictionary structure in Mauro.
Parking for now, we may revisit the work and complete later.


Documentation for optimizing performance

Hello
I am using the kit with you code and I see a lot of entities that should be optimized. Do you have tetorial or some other documentation to do so?

Since the folks at ESPHome haven't merged our commits yet, the documentation is currently only available in a preview version.
https://deploy-preview-3383--esphome.netlify.app/components/sensor/seeed_mr24hpc1


Add voting schema “ERC-20”, “ERC-721”, “Multisig” to the listed subdaos

https://www.notion.so/hulking-cosmos-3e8/Q4-2024-QA-Requirements-13e2ee9c5bc280a88458e7a935d17488?pvs=4#13f2ee9c5bc2801bbacad5d7e7fd659e
Probably means the hierarchy page's subdao nodes should indicate what type they are. Correct if wrong

Closed