text:
feat(sidebar): add menu sidebar updating

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

A new feature - sidebar menu entries updating.

What is the current behavior? (You can also link to an open issue here)

The sidebar menu is loaded at the beginning when baSidebar.component is instantiated and remains unchanged since. It is also very hard to update it afterward.

What is the new behavior (if this is a feature change)?

baMenu.service is exposed to the application and via updateMenuByRoutes, which takes in the object of the type similar to app.menu.ts(essentially how the menu is structured), allows easy sidebar menu updating.

Other information:

I believe this change does no harm and only provides benefits, as this feature was requested by a few people in issue #236.
If you have any questions, opinions or suggestions I would be happy to hear them.
To use this in a component/service of yours simply import baMenu.service from the theme directory, inject it into the constructor of your component/service and use the updateMenuByRoutes method when the menu needs to be modified. You don't have to clone your menu, it will remain unchanged, opposed to the default behavior or baMenu.service methods that mutate their inputs.
To test if this works you can modify the constructor of the baMenu.service:
  constructor(private _router:Router) {
    this.updateMenuByRoutes(<Routes>MENU);

    setInterval(() => {
      let menuPart = _.cloneDeep(MENU);
      menuPart[0].children = menuPart[0].children.filter(() => Math.random() > 0.5);
      console.log('Updating routes', menuPart);
      this.updateMenuByRoutes(<Routes>menuPart);
    }, 4000);
  }

Every 4 seconds the menu will be updated, items that should remain will be chosen randomly.

Hello Gelio, just curious, why did you remove lodash import? is it imported somewhere else?

@abedzantout I think it's imported as a vendor dependency. Removing it caused no errors and moreover less code to maintain is overall for the better.

@Gelio It caused an error from my side. The way i fixed it was adding declare var _: any; in custom_typings.d.ts

@abedzantout That's strange. I was able to successfully run that without any errors on the most recent master branch. Are you perhaps any commits behind master?

@Gelio yes i noticed that is way i asked. The only thing differing are the packages that i am using, i am using lodash 4.17.2 and lodash types 4.14.38. Maybe this could be the reason.

Hey @Gelio, this is great, many thanks!
While we are on it, probably it would make more sense to move the https://github.com/akveo/ng2-admin/pull/548/files#diff-49e9fb1e5d9b20de76e3c3e0cec8defeR15 part into the app component?
So that at the end the menu service becomes a global one and menu component won't depend on the app at all (will become an independent) and thus we will device the source of the menu items from the menu component.
What do you think?

@nnixaa 👍 Yes, definitely, that's a great suggestion! I knew it should be structured differently but I just didn't have any idea how to initialize the menu. I will change it later today and let you know when I'm finished

@nnixaa I've moved initializing the menu into app.component.ts. While doing so I found out that baMenuService was in component's providers instead of module's ones, so it was impossible to change the menu outside of baMenu.component. I fixed that as well.
I'm looking forward to seeing your opinion on this.

@Gelio probably let's move the menu service into the services folder https://github.com/akveo/ng2-admin/tree/master/src/app/theme/services? So that it becomes more of a global service, rather than a local component service.

Sure, I'll do it. Do you have any other suggestions?
19.12.2016 2:23 PM "Dmitry Nehaychik" notifications@github.com napisał(a):

@Gelio https://github.com/Gelio probably let's move the menu service
into the services folder https://github.com/akveo/ng2-
admin/tree/master/src/app/theme/services? So that it becomes more of a
global service, rather than a local component service.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/akveo/ng2-admin/pull/548#issuecomment-267962865, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA2SJ6J84dEM6Z-sHFdEV1hfO1HgB7_oks5rJoVXgaJpZM4LP44E
.

@nnixaa I've moved baMenu.service to a separate directory in the services directory, just as you asked. If there's anything more I can do just let me know

@Gelio just merged this, many thanks again!

Not a problem, I'm glad I could help!

It is worth noting that for those who are wondering how the test provided by @Gelio at first works after the additional changes he made. Modify the constructor in app.component.ts :
`
constructor(private _state: GlobalState,
private _imageLoader: BaImageLoaderService,
private _spinner: BaThemeSpinner,
private _config: BaThemeConfig,
private _menuService: BaMenuService,
private viewContainerRef: ViewContainerRef ) {
this._menuService.updateMenuByRoutes(<Routes>MENU);

 setInterval(() => {
		let menuPart           = _.cloneDeep(MENU);
		menuPart[ 0 ].children = menuPart[ 0 ].children.filter(() => Math.random() > 0.5);
		console.log('Updating routes', menuPart);
		this._menuService.updateMenuByRoutes(<Routes>menuPart);
}, 4000);`

Happy coding!

Could you review again this fix, i have tested the last changes but they are not working. The menu is not expanded when i write the URL and the component "baContentTop" is not loading the variable "activePageTitle".

@Gelio Thank you for the sidebar update feature.
I'm new to Angular2 and Typescript and I'm having trouble implementing the update feature. I'm trying to pull the navigation in via URL using a service but haven't been able to figure out how to use the updateMenuByRoutes to modify the navigation. Any advice on what to do next is greatly appreciated or if anyone has an example that I could learn from.
Modified app/pages/pages.menu.ts:
  {
    path: 'pages',
    children: [
      {
        path: 'summary',
        data: {
          menu: {
            title: 'Summary',
            icon: 'ion-android-home',
            selected: false,
            expanded: false,
            order: 100
          }
        }
      },
      {
        path: 'dashboard',
        data: {
          menu: {
            title: 'Project',
            icon: 'ion-android-radio-button-on',
            selected: false,
            expanded: true,
            order: 0
          }
        }

      }
    ]
  }
];```

**Navigation Service app/theme/services/nav/nav.service.ts:**
```import {Injectable} from '@angular/core';
import {Router, Routes} from '@angular/router';
import { Http, Response, Headers, RequestOptions } from '@angular/http';

import {Observable} from 'rxjs/Rx';

import {BaMenuService} from '../baMenu/baMenu.service';
import {BaMenu} from '../../components/baMenu/baMenu.component';
import { MENU } from '../../app.menu';

@Injectable()
export class NavService {

	constructor (
		private _http: Http,
		private _menuService: BaMenuService,
		private _router: Router
	)
		{
			this._menuService.updateMenuByRoutes(<Routes>MENU);
		}

	getNavs() {
		return this._http.get(this.navsUrl)
			.map((res:Response) => <Routes[]>res.json()
			.subscribe(onNext, error => console.log("An error occurred when requesting nav.json.", error));
	}
}```

**Navigation file nav.json:**
```[
  {
    "path": "pages",
    "children": [
      {
        "path": "dashboard",
        "data": {
          "menu": {
            "title": "Project1",
            "icon": "ion-android-radio-button-on",
            "selected": false,
            "expanded": true,
            "order": 0
          }
        }
      },
      {
        "path": "dashboard",
        "data": {
          "menu": {
            "title": "Project2",
            "icon": "ion-android-radio-button-on",
            "selected": false,
            "expanded": true,
            "order": 0
          }
        }
      }
    ]
  }
]```

@raposok Unfortunately, I haven't used this feature much. I recommend you to learn basics of Javascript and Typescript first before trying out Angular.
From what I can tell, your NavService contains the following mistakes:

getNavs returns a subscription, not an Observable, which I guess is the intended behavior. Consider replacing the subscribe function with the do operator.
In getNavs you're missing a closing bracket on the line with the map operator.
In getNavs the onNext function is not defined, which surely produces compilation and runtime errors. The navsUrl property of the service is not defined as well. You should consider setting it first.

Moreover your import of a lot of variables is redundant (namely Headers, RequestOptions, Observable, BaMenu).

authors: Gelio Lynx12 abedzantout nnixaa raposok


text:
how to input model to dialog. not only string to dialog

I want input a json to dialog templete, but it get wrong.
and also the ngOnChange founction not work.

hi @751811032! Could you please specify the issue? It would be nice to see an example on stackblitz or a screenshot of the console with errors

source: gharchive/issue

repo: akveo/ngx-admin

license: MIT

license_type: permissive

license_source: github-api


text:
Custom mapping of fonts not applying to heading category (h1-h6)

💬 Question
Custom mapping of fonts are not applying to only heading categories (h1-h6). I'm not sure whether this is a misconfiguration on my custom mapping. Could you help me out on this configuration? I'm having hard time trying to wrap my ahead round custom mappings documentation.
UI Kitten and Eva version

Package
Version

@eva-design/eva
2.1.0

@ui-kitten/components
5.1.2

This is what my mapping.json file looks like:
{
    "strict": {
        "text-font-family": "SFPro-Regular",
        "text-heading-1-font-size": 36,
        "text-heading-1-font-family": "ProductSans-Bold",
        "text-heading-2-font-family": "ProductSans-Bold",
        "text-heading-3-font-family": "ProductSans-Bold",
        "text-heading-4-font-family": "ProductSans-Bold",
        "text-heading-5-font-family": "ProductSans-Bold",
        "text-heading-6-font-family": "ProductSans-Bold",
        "text-subtitle-1-font-size": 15,
        "text-subtitle-1-font-weight": "600",
        "text-subtitle-1-font-family": "ProductSans-Medium",
        "text-subtitle-2-font-family": "ProductSans-Medium",
        "text-paragraph-1-font-size": 15,
        "text-paragraph-1-font-weight": "400",
        "text-paragraph-1-font-family": "SFPro-Regular",
        "text-caption-1-font-size": 12,
        "text-caption-1-font-weight": "400",
        "text-caption-1-font-family": "ProductSans-Medium",
        "text-label-font-size": 12,
        "text-label-font-weight": "800",
        "text-label-font-family": "ProductSans-Regular"
    },
    "components": {
        "Text": {
            "meta": {
                "scope": "all",
                "parameters": {
                    "fontFamily": {
                        "type": "string"
                    },
                    "fontSize": {
                        "type": "number"
                    },
                    "marginLeft": {
                        "type": "number"
                    }
                },
                "variantGroups": {
                    "category": {
                        "n1": {
                            "default": false
                        }
                    }
                }
            },
            "appearances": {
                "default": {
                    "variantGroups": {
                        "category": {
                            "h1": {
                                "fontFamily": "text-heading-1-font-family"
                            },
                            "h2": {
                                "fontFamily": "text-heading-2-font-family"
                            },
                            "h3": {
                                "fontFamily": "text-heading-3-font-family"
                            },
                            "h4": {
                                "fontFamily": "text-heading-4-font-family"
                            },
                            "h5": {
                                "fontFamily": "text-heading-5-font-family"
                            },
                            "h6": {
                                "fontFamily": "text-heading-6-font-family"
                            },
                            "s1": {
                                "fontFamily": "text-subtitle-1-font-family"
                            },
                            "s2": {
                                "fontFamily": "text-subtitle-2-font-family"
                            },
                            "p1": {
                                "fontFamily": "text-paragraph-1-font-family"
                            },
                            "p2": {
                                "fontFamily": "text-paragraph-2-font-family"
                            },
                            "c1": {
                                "fontFamily": "text-caption-1-font-family"
                            },
                            "c2": {
                                "fontFamily": "text-caption-2-font-family"
                            },
                            "label": {
                                "fontFamily": "text-label-font-family",
                                "marginLeft": 10
                            },
                            "n1": {
                                "fontFamily": "ProductSans-Regular",
                                "fontSize": 15
                            }
                        }
                    }
                }
            }
        }
    }
}

When I use the Text component and use certain category, only heading categories do not apply the custom font while other categories works.
<Text category='p1' style={{ fontSize: 30 }}>SFPro- The quick brown fox jumps over the lazy dog</Text>
    <Text category='n1' style={{ fontSize: 30 }}>ProductSans - The quick brown fox jumps over the lazy dog {'\n'}</Text>
    <Text category='h1'>Heading 1</Text>

To give you a snapshot of the issue, this is what is looks like when I run it on my device:

As you can see, all the heading categories are not using the custom font from the mapping and only uses the System font in this case which is SamsungOne font that is currently set on my device. I am using SFPro font and ProductSans font. I have tried different fonts but problem still exists.

@jgudo How did you discover the correct format for custom mapping? Are there TypeScript definitions, or a schema somewhere?

@isaachinman You can look up at the main mapping source file in  node_modules/@eva-design/eva/mapping.json
From there you can copy-paste the component mapping you would like to modify.

authors: isaachinman jgudo

repo: akveo/react-native-ui-kitten


text:
verify that static files are correctly collected and deployed on webserver

python manage.py collectstatic

works

repo: alainschaefer/KALanguageReport


text:
Using composer and phpunit

I use to install phpunit as a composer requirement. How can I use it on atom?

Just define the path of phpunit executable at the package settings. I did the same, works like a charm.

@rrd108 That's an option, but have to change that setting in every project. A project based setting could be a solution.

I know this is old, but the issue is still open. For future readers, another way to let the plugin find PHPUnit is to create a symbolic link to the phpunit executable in /usr/local/bin.
sudo ln -s $HOME/.composer/vendor/bin/phpunit /usr/local/bin/phpunit

repo: alairock/phpunit-atom

license: mit

license_source: bigquery


text:
Add pkg= in docstring_ext

Since we have ambiguous model names, we should have
message *= "\n→ do `@load $model_name pkg=\"$package_name\"` to use the model"

in metadata_utilities.jl (also there should be . at the end of each lines...)

It looks like this was done in the new MLJModelInterface package, so closing.

authors: ablaom tlienart


text:
Feature/252 sensitivity analysis

Closes #252

[x] Function that loops over a range of rolling window sizes and bandwidths and computes the EWS indicators using EWStools, returning a dataframe
[x] Function to plot a 2D heatmap with the kendal tau for a given indicator for different smoothing and window sizes.
[x] Plot 2D heatmap for each indicator in the main sensitivity function.

@samvanstroud I implemented the axis fix we talked about. I think we are ready to merge.

source: gharchive/pull-request


text:
Allow pixelflow to map pytorch (or other ML framework) models to image data

An example use case for pixelflow is to apply a DNN such as a convolutional classifier to a set of objects in the image.
It would be useful if we could extend pixelflow to do this. That is, given a mask/centroids/bounding boxes and an image, use pixelflow to map the CNN to each object in the image, returning the output of the model for each object.
One interesting caveat is that it may be good to collect the image patches so that they can be passed as batches to the DNN (for example, to utilise a GPU properly), before returning the PixelflowResult.

Very interesting thought. I think this can be good for Affinity-VAE. Especially in projects similar to the Astrophysics one where you are searching for unknown object in image data that has very many objects in. One reason this collaboration has not taken off yet, is the complexity of data prep. I think having this automated feature would certainly help in some cases.
@evangeline-corcoran if there are multiple seed pods in one scan, do you think this would be helpful?

One interesting caveat is that it may be good to collect the image patches so that they can be passed as batches to the DNN (for example, to utilise a GPU properly), before returning the PixelflowResult.

is somewhat related to #14

authors: marjanfamili quantumjot

repo: alan-turing-institute/pixelflow


text:
Add badge to track pypi downloads to README

Reference Issues/PRs

What does this implement/fix? Explain your changes.

This adds the PePy badge to track pypi downloads.
Does your contribution introduce a new dependency? If yes, which one?

No.
What should a reviewer concentrate their feedback on?

Are we fine indicating our downloads?
Do we want to show monthly (as opposed cumulative or weekly downloads)? Alternatively we could include each.
Are we okay with the coloring or would we prefer it to have the orange color instead of blue (it is semi-customizable)?

Any other comments?

When I was looking at the package referenced in #1502, I noticed that it included this badge in that package's README. These statistics are also useful in terms of the discussion about tracking metrics we had as part of the recent roadmap meeting.
PR checklist

For all contributions

[ ] I've added myself to the list of contributors.
[ ] Optionally, I've updated sktime's CODEOWNERS to receive notifications about future changes to these files.
[ ] I've added unit tests and made sure they pass locally.

For new estimators

[ ] I've added the estimator to the online documentation.
[ ] I've updated the existing example notebooks or provided a new one to showcase how my estimator works.

ca 800k, that's only pypi and not conda

Also, the concept of "inflated" only makes sense if you have an "actual target" in mind. Only people who are notebook users? Why would that be a more sensible target than one that also includes production pipelines?

I don't think we care about downloads per se, the target is users or usage. When I look at a new package, the number of downloads is not something I often look at, because I don't think it doesn't say much about how widely it is used (see blog post).
The comparison is also only useful if you have a point of reference. We have 116K monthly PyPI downloads. I have no idea what that means. How many monthly downloads does statsmodels have? Or scikit-learn? I have no idea, so the number doesn't tell me much.
I don't have a strong objection against including it in the README, I just think for most users and developers the number isn't very useful. Once we track it over time and compare it against other packages in something like a roadmap progress report, it may become more useful.

authors: RNKuhns fkiraly mloning

repo: alan-turing-institute/sktime


text:
Implementation of the catch22 transformer

Reference Issues/PRs

Resolves #129
Work towards #294
What does this implement/fix? Explain your changes.

Implements the catch22 set of features as a transformer. Additionally, ports over the catch22 forest classifier put together for sktime (https://github.com/chlubba/sktime-catch22).
Replaces the previous dictionary based example notebook dataset with ItalyPowerDemand (a better dataset for the problem anyway).
Does your contribution introduce a new dependency? If yes, which one?

Requires the catch22 project by the original authors containing C code wrapped for Python3 (https://github.com/chlubba/catch22).
Thanks to Carl Lubba for his work making the package Windows compatible so it could be included in sktime.
PR checklist for new estimators

[x] I have added unit tests and made sure they pass locally.
[x] I have updated the existing example notebooks or provided a new one to showcase how my algorithm works.
[x] I have updated sktime's estimator overview and I'm committed to maintain my contribution and provide bug fixes if necessary.

Thanks! Let me know when you're ready for a review! :)

Ready to go on my end, not sure how to deal with the dependency so will have to figure that out.

Adding catch22 here should do the trick: https://github.com/alan-turing-institute/sktime/blob/master/build_tools/requirements.txt

You also get a warning in the notebook:

Beginning in version 0.22, arrays of bytes/strings will be converted to decimal numbers if dtype='numeric'. It is recommended that you convert the array to a float dtype before using it in scikit-learn, for example by using your_array = your_array.astype(np.float64).
y = check_array(y, ensure_2d=False)

Is that easy to fix inside the encapsulated classifier?

ah please also add the requirement here: https://github.com/alan-turing-institute/sktime/blob/master/.binder/requirements.txt

So it only appears to be failing on the tests I created, passing all the generic estimator ones. The data being compared to was generated on my machine, and they all pass locally. What I am assuming is happening currently is that Windows and MacOS/Linux are generating different catch22 values.
I don't currently have a MacOS/Linux box the verify this on. @mloning if you don't mind (and have the facilities) could you find out the values being generated on these tests to verify this? There shouldn't be any major rush in merging this, so if you cant I will figure something out at a later date.

I'm not sure where the differences come from, perhaps the underlying c code? They all seem to be relatively close though, perhaps using assert_allclose would work?

Would be nice to figure out which features are different, may help the authors debugging if this is the issue. The tests packages don't seem to give all the transformed data though. From what has been given theres a few large differences, and it has an impact on the probabilities given by the forest classifier which is causing that to fail as well.

Update to the above, I have verified that there are differences between the transform from the catch22 package on Windows and Linux and the authors have been able to reproduce this.
They wont be able to put any work into the package for a while, as such i'm planning on leaving this PR idle. If there is an urgent need for the catch22 features, its probably best to isolate it to the OS which works correctly or re-implement each feature in Python.

@MatthewMiddlehurst is there an open issue on their repository where we can follow any updates? If so, please link it here!

@mloning Not currently, we have been corresponding through email. When i hear back from them i will bring this up to date with dev again so it can (hopefully) be merged.

authors: MatthewMiddlehurst mloning


text:
Multiplexer forecaster

Reference Issues/PRs

Fixes #651
What does this implement/fix? Explain your changes.

A Multiplexer class to provide a frame to ForecastingGridSearchCV for performing model selection over different sktime forecastors
Does your contribution introduce a new dependency? If yes, which one?

No
What should a reviewer concentrate their feedback on?

Any other comments?

PR checklist

For all contributions

[x] I've added myself to the list of contributors.
[x] Optionally, I've updated sktime's CODEOWNERS to receive notifications about future changes to these files.
[x] I've added unit tests and made sure they pass locally.

For new estimators

[x] I've added the estimator to the online documentation.
[x] I've updated the existing example notebooks or provided a new one to showcase how my estimator works.

Author and Legal Imprint:
Kutay Koralturk kutay.koralturk@daimler.com, Mercedes-Benz AG on behalf of Daimler TSS GmbH.
https://github.com/Daimler/daimler-foss/blob/master/LEGAL_IMPRINT.md

@aiwalter

@koralturkk, nice!
I had a quick look and noticed one thing:
you have component_fit_params to set the parameters of the wrapped estimators, but that's "wrong" in the sense of not interface compliant. Parameters of nested estimators should be initialized through their respective constructors (in the passed argument components), and support access via get_params and set_params.
Since Multiplexer inherits from sklearn's BaseEstimator - via _SktimeForecaster - it may already automatically support the nested indexing via get_params and set_params, though I'm not sure whether it looks in dictionaries. So you may have to implement get_params and set_params yourself (you may want to check first whether it works out-of-the-box). If it's needed, you could do this directly, or with a mixin that extends BaseEstimator to look in dicts.
@mloning, any opinions/comments on what I just said?

@fkiraly the reason for component_fit_params is that we are providing fit_params of each forecaster at fit function not in the estimator constructor. So far, it seems like a rare occasion where fit_params is given. I wanted to isolate it for the ease of use. Otherwise, if we want to provide that in components each component key will map to another dict which is consisted two keys, constructor and a fit params. Did I understand you correctly and do you have any comments on it?

Kutay Koralturk kutay.koralturk@daimler.com, Mercedes-Benz AG on behalf of Daimler TSS GmbH.
https://github.com/Daimler/daimler-foss/blob/master/LEGAL_IMPRINT.md

@koralturkk, ah, I see - it is not the construction params, but parameters passed in fitting.
Please ignore what I said, you are right.
Though, is there a plausible use case where not all fit_params are identical?

is there a plausible use case where not all component_fit_params are identical?
@fkiraly Although, I have never used before, the fit functions of estimators which we wrap are different among each other. I would assume that fit_params should be different as well.
could you explain your reason why you think it's better to pass it in the constructor than in fit?
I dont have a strong argument against this. I will change it so that it gets aligned with the overall design

Kutay Koralturk kutay.koralturk@daimler.com, Mercedes-Benz AG on behalf of Daimler TSS GmbH.
https://github.com/Daimler/daimler-foss/blob/master/LEGAL_IMPRINT.md

@koralturkk, I'm not sure whether this is the best solution - it seems to go against the "unified interface" pattern.
Why: typically, you would pass the parameters in fit. But for the composite (using Multiplexer), you have to pass them in the constructor. I.e., it is inconsistent between different forecasters where these would be passed.
Any thoughts, @mloning?

@fkiraly As I have shared previously, I don't have a strong argument against it. I have made the changes to fit function to include fit_params.

@koralturkk, sorry if I caused a misunderstanding - this was not a change request or criticism, but inviting you to a design discussion. I wanted to understand why you thought it would be better to put the argument in the constructor, rather than asking you to move it.
This is since I also see a potential issue with a nested structure passed to fit, because otherwise there is no nesting in the default interface.

@fkiraly No problem at all, we had the same discussion with @aiwalter as well. I was proposing to have component_fit_params in constructor because of the extra hurdle in it. But both of you have suggested the same approach (fit_params in fit function). I agree that, this is more aligned with the overall design.
The reason why I thought it would be a better idea is, when we provide fit_params in fit function, user has a higher chance to misinterpret it with other fit functions of forecasters. This may cause a confusion. To implicitly attract his/her extra attention, I wanted to move it to the constructor. Neither of the options are fully satisfactory to me. I would also wonder what @mloning and @aiwalter think about this as well.

I would say fit_params should be given in fit, thats why they are called like this 🙂

Martin Walter martin_friedrich.walter@daimler.com, Mercedes-Benz AG on behalf of Daimler TSS GmbH.
https://github.com/Daimler/daimler-foss/blob/master/LEGAL_IMPRINT.md

@mloning I believe its completed now, ready to be merged

(you need to re-request a review for this to appear on Markus' review list - click the
 top right)

@fkiraly fit_params is passed in fit function. The _forecaster_fit_params is just an attribute of the object that the user can access. The value is either none or the fit_params being passed in the fit function. That was my idea.
Regarding 1st sktime tutorial, can you please elaborate further. I am not sure if I understand fully what you mean by 1st sktime tutorial, I might be missing sth.

Regarding 1st sktime tutorial, I might be missing sth. Can you please elaborate further or share a link of the tutorial?

your changes to 01_forecasting.ipynb in this PR

The _forecaster_fit_params is just an attribute of the object that the user can access. The value is either none or the value associated with selected_estimator key of fit_params dict which is used during fitting the selected estimator. That was the idea.

But why is that necessary, and why do we want this to be an attribute of the estimator?
In my mind, the fit_params of fit and the update_params of update should just be the same (by convention/signature) as the same parameters for the selected estimator. Why would you pass parameters for estimators that are not selected, given that after construction they are never read?

Because every estimator contained in components_estimator has a different fit_params dict. When we are performing a grid search, I thought it is the only way to search over different estimators with different fit_params to find the best performing one. As we are switching between different estimators we have to switch between different fit params that are associated with selected estimator. @fkiraly

Because every estimator contained in components_estimator has a different fit_params dict. When we are performing a grid search, I thought it is the only way to search over different estimators with different fit_params to find the best performing one. As we are switching between different estimators we have to switch between different fit params that are associated with selected estimator.

Yes, I think you are right and this makes sense.
It should behave like sklearn's Pipeline.
But, given this:

why are we then not simply unpacking the fit_params in fit?
I.e., fit internal hands fit_params[estimator_key] to the wrapped fit. If the key does not exist, the wrapped fit_params default to None.
why is this not happening in update with update_params? I.e., why is update_params not a keyed dict but passed directly to the wrapped update?

I believe thats the way it is already. We unpack the fit_params with _update_forecaster_fit_params and fit_params[estimator_key] as _forecaster_fit_params

Yes, I see - that's a lot of edge case checks, but I guess "morally" it is fine, and probably safer to delegate to a designated private method as you do.

update_params is a boolean, so basically it is a paramater to allow changes to parameters not to hyperparameters as far as I understand. @fkiraly

Yes, but you could still have this differ for the individual estimators.
Though, I'm also fine with it being equal for all individual estiamtors.

This discussion resolves my questions around the fit_params leaves us with one major comment form my side:
better framing and presentation of autoML (via multiplexer) in the tutorial notebook

@fkiraly since you requested changes, do you want to take another look before we merge?

@mloning I don't understand why the tests are failing right now. I didn't make any changes related to pystan

@koralturkk yes failures seem unrelated to this PR, will have to look into this

@koralturkk now merged! 🎉

authors: aiwalter fkiraly koralturkk mloning


text:
[mrg] Pull readme & logo files

[20201021] Pull updated readme & new logo files

[20201021] Pull updated readme & new logo files


text:
Expose query object from getUsersInRole

Hi
I use your package a lot and it is great. I wonder if you could add possibility to get query object from getUsersInRole function, right before it calls Meteor.users.find.
Something like
_getUsersInRoleQuery(role, group) {
  // same logic as getUsersInRole but returns query object instead of calling Meteor.users.find
}

then getUsersInRole would be just
getUsersInRole(role, group) {
  return Meteor.users.find(_getUsersInRoleQuery(role, group));
}

It would be useful is scenarios:

extending query with additional fields
use as query in update, remove or findOne
use with different find options
i am not sure but i guess it can be used internally in userIsInRole function

I can do PR but i wonder if you think this is a good idea.
Thanks a lot :)

Done in v2.0 branch.

authors: czeslaaw mitar

repo: alanning/meteor-roles


text:
Build Docker-Images and publish them

Build docker images and publish them (to GitHub or DockerHub):

[ ] "Normal" Image
[ ] jlink-image (was not working; may be fixed first)
[ ] native-image (was not working; may be fixed first)

Will use DockerHub.
GitHub has way to less bandwidth, when an image is around ~250MB
https://docs.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-packages


text:
Thumbnails adjustment

Is there any way to resize thumbnails size?

You mean the height of the thumbnails collection view or the aspect of its cells?

I mean height of thumbnails collection, but its also good to know about aspect of cells


text:
False/Positive Dupes (again)

is there a way to get around  model hash dupes? deleted my supposed dupes but already have new ones after downloading a couple of models. if it doesn´t reliably show dupes, maybe one of those option are preferable:

hide popup automatically after a couple of seconds
hide the message popup all along (maybe optionally)
maybe you have a better solution for this problem

not sure what you have done, but i don't get the dupe message anymore.

repo: albertpb/sd-manager


text:
🛑 Continuous delivery is down

In ea3d8d0, Continuous delivery (https://compiler.albismart.dev/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Continuous delivery is back up in fbdbaf9.

repo: albismart/uptime


text:
ERROR: Invalid UserOp signature or paymaster signature

[REQUIRED] Environment
Details: Invalid UserOp signature or paymaster signature
Version: viem@0.3.17
at Object.http (/Users/user/eth/aa-account/node_modules/@alchemy/aa-core/node_modules/viem/src/utils/rpc.ts:110:13)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at async request (/Users/user/eth/aa-account/node_modules/@alchemy/aa-core/node_modules/viem/src/clients/transports/http.ts:56:30)
at async delay.count.count (/Users/user/eth/aa-account/node_modules/@alchemy/aa-core/node_modules/viem/src/utils/buildRequest.ts:68:18)
at async attemptRetry (/Users/user/eth/aa-account/node_modules/@alchemy/aa-core/node_modules/viem/src/utils/promise/withRetry.ts:34:22) {
details: 'Invalid UserOp signature or paymaster signature',
docsPath: undefined,
metaMessages: [
'URL: https://polygon-mumbai.g.alchemy.com/v2/DH4n-QvjWVu44OvUFRtIOAaOvzsu1U9B',
'Request body: {"method":"eth_sendUserOperation","params":[{"initCode":"0x","sender":"0xFAF9c42cd05063fe22A966a0886BD48e51Eef9F1","nonce":"0x3","callData":"0xb61d27f6000000000000000000000000490dd3ccc7ff94823d4f10bb6d97c7802957e6bf00000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","signature":"0x92569ae9ecab9058307e464a68edd1e79cc8f1a9fca10404a4f59ab4a5120e2a0d50e5ee4ac04d54b74885d47b87f822cb005d29ef42dd3cce122a9b47f6cc971b","paymasterAndData":"0x","callGasLimit":"0x3400","verificationGasLimit":"0xa1c4","preVerificationGas":"0xab90","maxFeePerGas":"0xdbd76b5e","maxPriorityFeePerGas":"0xdbd76b3e"},"0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"]}'
],
shortMessage: 'RPC Request failed.',
version: 'viem@0.3.17',
cause: {
code: -32507,
message: 'Invalid UserOp signature or paymaster signature'
},
code: -32507
}

Browser version: ts-node
AA SDK version: last
Package:

[REQUIRED] Describe the problem
How to reproduce:
Relevant code or sample repro:

We need more info to help out here, can you attach some code samples or a way to reproduce the bug? This issue may occur if something changes in the user operation after the signature is calculated.

import {
  SimpleSmartContractAccount,
  SmartAccountProvider,
  type SimpleSmartAccountOwner,
} from "@alchemy/aa-core";
import { privateKeyToAccount, mnemonicToAccount } from "viem/accounts";
import { polygonMumbai } from "viem/chains";
import { toHex } from "viem";
import { PRIVATE_KEY } from "./privateKey";

async function main() {
  const SIMPLE_ACCOUNT_FACTORY_ADDRESS =
    "0x9406Cc6185a346906296840746125a0E44976454";

  // 1. define the EOA owner of the Smart Account
  // This is just one exapmle of how to interact with EOAs, feel free to use any other interface
  const ownerAccount = privateKeyToAccount(
    PRIVATE_KEY
  );
  // All that is important for defining an owner is that it provides a `signMessage` and `getAddress` function
  const owner: SimpleSmartAccountOwner = {
    // this should sign a message according to ERC-191
    signMessage: async (msg) =>
      ownerAccount.signMessage({
        message: toHex(msg),
      }),
    getAddress: async () => ownerAccount.address,
  };

  // 2. initialize the provider and connect it to the account
  const provider = new SmartAccountProvider(
    // the demo key below is public and rate-limited, it's better to create a new one
    // you can get started with a free account @ https://www.alchemy.com/
    "https://polygon-mumbai.g.alchemy.com/v2/DH4n-QvjWVu44OvUFRtIOAaOvzsu1U9B", // rpcUrl
    "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", // entryPointAddress
    polygonMumbai // chain
  ).connect(
    (rpcClient) =>
      new SimpleSmartContractAccount({
        entryPointAddress: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
        chain: polygonMumbai,
        factoryAddress: SIMPLE_ACCOUNT_FACTORY_ADDRESS,
        rpcClient,
        owner,
        // optionally if you already know the account's address
        // accountAddress: "0xFAF9c42cd05063fe22A966a0886BD48e51Eef9F1",
      })
  );
  // 3. send a UserOperation
    const { hash } = await provider.sendUserOperation({
      target: "0x490Dd3cCc7ff94823d4F10bb6d97c7802957e6bf",
      data: "0x",
      value: 1000000000000000n, // value: bigint or undefined
    });

    console.log(hash);

}
main();

It worked when I used @alchemy/aa-core@v0.1.0-alpha.0. It got an error when I used other versions

The fix for now is to modify
message: toHex(msg),

to be:
message: { raw: toHex(msg) },

We're working on a longer term fix, and updates to our example code, in https://github.com/alchemyplatform/aa-sdk/pull/42

I've update the README and merged #42 . this should be working now. Make sure to update the latest version of viem as well (at least 1.1.7 is required)

repo: alchemyplatform/aa-sdk


text:
fix: alchemy package.json was incorrectly pointing to files

Pull Request Checklist

[ ] Did you add new tests and confirm existing tests pass? (yarn test)
[ ] Did you update relevant docs? (docs are found in the site folder, and guidelines for updating/adding docs can be found in the contribution guide)
[ ] Do your commits follow the Conventional Commits standard?
[ ] Does your PR title also follow the Conventional Commits standard?
[ ] If you have a breaking change, is it correctly reflected in your commit message? (e.g. feat!: breaking change)
[ ] Did you run lint (yarn lint:check) and fix any issues? (yarn lint:write)
[ ] Did you follow the contribution guidelines?

PR-Codex overview
This PR focuses on updating the import paths in the package.json files and removing the typesVersions configuration.
Detailed summary

Updated import paths in package.json files.
Removed typesVersions configuration.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Seems weird it's only alchemy. Maybe some conflict with alchemy-sdk pkg

ah @dphilipson figured it out. I added a reference to ../package.json at somepoint. I need to update that to use a version.ts file similar to how core does it


text:
Option label being saved instead of value

I have a fairly basic implementation of a select2 field, where I'm setting the options attribute using a helper function, to dynamically generate the list of select options. Until the most recent update this was working as expected, exactly the same as a regular select field but with autocomplete functionality. The labels would be displayed to the user and the selected value would be saved in the mongoDB record.
Now, instead of the value being saved the label is being saved. I've added the references to the the select2 .js and .css files in my page template, per the instructions for the 2.0.0 upgrade, but it's still saving the label, not the value. Here's an example of how I have it configured now, but reduced to just a static options list (mine is pulling from a collection).
{{>afQuickField name='fieldName' type='select2' options=selectOptions}}

My helper function looks something like this:
Template.myTemplateName.helpers({
    selectOptions: function() {
        return [
            {
                label: 'Item 1',
                value: '1'
            },
            {
                label: 'Item 2',
                value: '2'
            },
            {
                label: 'Item 3',
                value: '3'
            },
            {
                label: 'Item 4',
                value: '4'
            },
            {
                label: 'Item 5',
                value: '5'
            }
        ];
    }
})

If I select "Item 4" from the list and submit the form the value of fieldName is set to "Item 4", instead of "4", like a standard select field. Again, this worked correctly until the most recent update. Any help would be greatly appreciated. Thanks!

I´ve the same error. Ended up using a normal html select and adding data-schema-key="yourkey". Now it works.

Please make sure you're using the latest select2 (4.0.0-rc.2) and the latest of autoform and of this pkg (2.0.2). If you still have this problem, provide a link to a reproduction repo. I couldn't reproduce.

I have the same issue, updated to 2.0.2 but it still doesn't show the values. I use this in my schema:
type: {
    type: String,
    optional: true,
    autoform: {
      type: "select2",
      afFieldInput: {
        firstOption: "Select a Type"
      },
      options: function(){
        return [
          {label: "Available as a Freelancer", value: "freelancer"},
          {label: "Employee at a Partner Company", value: "partner"},
          {label: "Employee at a Client Company", value: "client"},
          {label: "Applicant for WILD Jobs", value: "applicant"},
          {label: "Miscellaneous", value: "misc"}
        ];
      }
    }
},

and it doesn't render the values in the select field
<select firstoption="Select a Type" name="type" data-schema-key="type" class="form-control select2-offscreen" tabindex="-1" title="">
    <option>Available as a Freelancer</option>
    <option>Employee at a Partner Company</option>
    <option>Employee at a Client Company</option>
    <option>Applicant for WILD Jobs</option>
    <option>Miscellaneous</option>
</select>

So when one saves it, it saves the option text as there is no specified value.

I had the same problem and I can confirm that updating everything fixes the issue. I first had the nauser-select2 package in there which has an old version of select2 and then I had several autoform plugins requiring an older version of autoform. Bringing Select2 on 4.0.0 and autoform on 5.0.0 fixed the issue for me.

I created a sample project with just one form, one field and it worked as expected. Going back to my other project I performed a meteor update thinking that would solve everything, but apparently one of the other form types that we're using yogiben:autoform-tags still requires auto form 4.0. So, I'm stuck for the moment, but not as a result of this issue. Thanks for your help.

@bshamblen, you can clone yogiben:autoform-tags repo into your /packages folder and change the use call in package.js to 'aldeed:autoform@4.2.2 || 5.0.0'. As a temporary workaround until @yogiben has time to publish a compatible release.

@aldeed Thanks, I'll give that a try.

This has been resolved with an upgrade to 5.0. Thanks!


text:
you can $push more than maxCount

I am unsure if this is a bug or expected behaviour, at least I find it surprising.
Scenario:

given you have a document with a schema attached which specifies that the document holds an array which should not have more than 2 elements (maxCount: 2)
and there is a document holding 0 elements in that array
when you $push one element to that array
and then push another element to that array
and then push another element to that array
then no validation error is thrown
and the count of the elements in that array is 3

I was just about to report the same thing.
Seems like the given limit with maxCount is applied to the number of elements being pushed, not the resulting array length.
Using your example with maxCount: 2 the following does not work:
MyCollection.update(id, { $push: { objects: { $each: [a, b, c] } } });
Error: You cannot specify more than 2 values

@aldeed is simple schema meant to validate the to be persisted document against its already persisted data or is this something one would need to do in a custom validation?

SS has no idea about what's in the database. This leaves several holes. Collection2 is database-aware and can fill these holes (though at the cost of extra DB lookups), but this issue is one of the ones that is still not added. See https://github.com/aldeed/meteor-collection2/issues/12

yeah, you are right. I mixed up simple schema and collection2 functionalities. btw. SS is kind of an overloaded abbreviation.

authors: JcBernack SierraGolf aldeed

repo: aldeed/meteor-simple-schema


text:
Release 3.3.0

Improvements & Adaptions

[x] Adding SCSS Linting #22
[x] Update docs regarding gulpfile commands
[x] Adding Jasmin Tests #59
[x] Update docs regarding testfile naming conventions

Bonus:

[x] Documentation revamp
[ ] Bower Component

usual QQ on quoted properties, but looks very good

lgtm

authors: FinalAngel darioalbanesi vxsx


text:
use new media download api endpoint

download media files form stage server instead of latest backup
nicer, more consistent output

DO NOT MERGE YET. NEEDS TO BE DEPLOYEN ON CONTROLPANEL FIRST.

LGTM

:+1:

authors: Chive jmelett stefanfoulis

repo: aldryn/aldryn-client


text:
Add Doxygen Documentation to Codebase

Request
We are currently using comment blocks to describe functionality above each function, method, class, etc. This is hard to maintain and makes it a pain to update comments. Implement Doxygen into the codebase to automatically generate some nice documentation we can generate and use. Replace comment blocks with Doxygen comment blocks.

Closed in #14

repo: alec-jackson/studious-engine


text:
🛑 PipedP is down

In 649327b, PipedP (https://pipedp.alefvanoon.xyz) was down:

HTTP code: 530
Response time: 71 ms

Resolved: PipedP is back up in 7209be5.

repo: alefvanoon/Status


text:
🛑 h23 is down

In 3cb99ab, h23 (https://h23.seohost.pl:2222/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: h23 is back up in 818a4c8 after 15 minutes.


text:
mdpTimePicker#updateTime called many times when up/down arrows clicked

This title is sort of confusing, but I'll try to talk it through here.
mdPickers uses a <input type="time"> field to display the currently selected time. In most browsers, this will display with the time and both up and down arrows to the right of the displayed time, as shown below. Clicking one of these arrows will cause the time to increment or decrement.

This appears to work, but when debugging other issues, I noticed that clicking one of these arrows causes the mdpTimePicker directive's onInputElementEvents method, and then the updateTime method, to fire many times, between 10-20 times.
I don't believe this noticeably affects performance, but it is definitely a bug.

I've confirmed that this is also an issue with the mdpDatePicker

repo: alenaksu/mdPickers


text:
if no paths are defined server allows any to publish / deny options?

Which version are you using?
v0.15.5
Which operating system are you using?

OS

[ ] Linux
[X] Windows
[ ] macOS

Describe the issue
If not paths are defined the server will allow any client to publish. We are trying to dynamically control the application and at some points there will be no paths. How can we deny clients when no paths are created? Is there a deny all mode?
Describe how to replicate the issue

start the server
publish with a path
remove the path
you can now publish with any path

how can we block this and ONLY allow publishing when a path is defined?

Hello, the problem is that when you remove a path, the server detects that there are no paths defined, and uses the default configuration, which is
paths:
  all:

Probably a better behavior is possible, in the meanwhile you can define an additional path to prevent the issue:
paths:
  unused:
    publishUser: myuser
    publishPass: mypass


text:
improve detection of "perfect" QR codes

Hey, thanks for this great library.
We found that it had some issues with "perfect" QR codes which are not captured by a camera but e.g. read from the clipboard. This PR adds some improvements and tests for those QR codes.
It's not 100% polished (there are some TODO's left) but it works well enough in real-life use-cases.

Great contribution! Thank you!

authors: alesdi swissbit-csteuer


text:
test on Windows 10 - Ubuntu Bash Fail

I try to test this lib under my bash for Windows 10, but I've an error at start...
root@MY-PC:/mnt/d/dev/glicky# glicky
/usr/lib/node_modules/glicky/bin/index.js:39
(async () => {
       ^

SyntaxError: Unexpected token (
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.runMain (module.js:611:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:160:9)

if anyone knows what's going on....
thx

Hi @devozanges , what version of node are you running?

npm@3.10.10

authors: alex-saunders devozanges

repo: alex-saunders/glicky


text:
Invailed or incompatible cached data (cachedDataRejected)

Describe the bug

import { defineConfig, externalizeDepsPlugin, bytecodePlugin } from "electron-vite"
main: {
plugins: [externalizeDepsPlugin(), bytecodePlugin()],
},
node 20.10.0
Electron-Vite Version
^2.3.0
Electron Version
^31.0.2",
Vite Version
^5.3.1
Validations

[X] Follow the Code of Conduct.
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

https://electron-vite.org/guide/troubleshooting#a-javascript-error-occurred-in-the-main-process-error-invaild-or-incompatible-cached-data-cacheddatarejected

I changed electron version, also changed node.js version and it got good compile.


text:
After playing an Alarm with Music, the device's volume is set to the Alerts volume (instead of whatever it was)

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:
Setup:
"Alexa set volume 3" (verify level with "Alexa what time is it")
"Alexa set alarm volume 8"
"Alexa set an alarm to music at [some time a minute or two from now]"
-- alarm goes off --
"Alexa cancel alarm"
"Alexa what time is it" (volume level is now 8 instead of 3)
"Alexa volume down" (volume level will drop to 7)
What is the expected behavior?
Alarm volume should not get conflated with system volume.
What behavior are you observing?
Alarm volume for music alarms is getting set onto the system volume.
Provide the steps to reproduce the issue, if applicable:
steps provided in the summary. This happens on current versions of AVS SDK as well as on several versions of the Echo.
Tell us about your environment:

What version of the AVS Device SDK are you using?
  <1.26.0>

Tell us what hardware you're using:

[x] Desktop / Laptop
[ ] Raspberry Pi
[ ] Other - tell us more:

Tell us about your OS (Type & version):

[x] Linux
[ ] MacOS
[ ] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hello @brett-lynnes,
Is this issue still experienced on the latest version of the SDK (3.0)?

Yes

authors: brett-lynnes sharmajs-amzn

repo: alexa/avs-device-sdk


text:
❓ [QUESTION] wger addon

Which addon?
Wger
name: Question
about: Wger addon get latest server
title: 'Cant seem to get latest wger server image'
labels: 'wger/server'

Which addon?
Wger addon
Addon or app?
Addon
Describe the solution you'd like
The wger addon to get the latest wger server addon docker image
Describe alternatives you've considered
N/A
Additional context
A few days ago I discovered there was an issue using the wger server addon with the wger android app. The wger team has since updated the server image to fix this change, however I've been unable to pull their latest docker changes.
Is there any reason as to why this would be?
Link to original wger flutter issue, https://github.com/wger-project/flutter/issues/437

Cc @rolandgeider

repo: alexbelgium/hassio-addons


text:
⚠ Secret Website 3 has degraded performance

In a01c722, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 5444 ms

Resolved: Secret Website 3 performance has improved in 35ae4b5.

repo: alexchapar/status-page


text:
error[E0628]: generators cannot have explicit arguments

Hi, I am trying to write a function that takes a stream and splits it into a few sinks.
It's my first code with futures-await so I might be doing something strange here.
This is what my function looks like:
#[async]
fn stream_split<S,T,E>(stream: S, sinks: Vec<mpsc::Sender<T>>) -> Result<(),()>
where
    S: Stream<Item=T, Error=E>,
    T: Clone,
{
    let mut sinks = sinks;

    #[async]
    for item in stream {
        sinks = sinks.into_iter().filter_map(|sink| {
            match await!(sink.send(item.clone())) {
                Ok(sink) => Some(sink),
                Err(_) => None,
            }
        });
    }
}

When trying to compile, I get this error message:
error[E0628]: generators cannot have explicit arguments
   --> src/frag_msg_receiver.rs:111:50
    |
111 |             sinks = sinks.into_iter().filter_map(|sink| {
    |                                                  ^^^^^^

error: aborting due to previous error

What is the meaning of this error message? What can I do to make my code compile?
The version of my compiler:
$ rustc --version
rustc 1.25.0-nightly (8ccab7eed 2018-01-31)

I have futures-await = "0.1.0" in my Cargo.toml.
Thank you for your extraordinary work on futures-await!

Ah it looks like this is a bad error message! The problem here is that await! is in a closure when it only works inside an #[async] function or an async! block

I see. @alexcrichton: What is the reasonable way to make the code from above work?
Can I put #[async] somehow above the closure, or do I have to turn it into a separate function?
Thank you for your help!

Inside the closure you may want to do --
.filter_map(|sink| {
    async_block! {
        // code using `await!`
    }
})

perhaps?

authors: alexcrichton realcr

repo: alexcrichton/futures-await


text:
Implement mutable extension to scoped_thread_local macro

Removes HKT from #12

Personally I don't think it's worth adding this to cover up the fact that it's still basically a Cell under the hood. I would personally say that usage of this macro, if mutability is needed, should use Cell and RefCell to acknowledge that interior mutability is required and recursive lookups can happen.

@alexcrichton I'm not quite sure what you mean - it's not possible to emulate this macro using Cell or RefCell.
Here's an example: https://github.com/Diggsey/actix-interop/blob/master/src/lib.rs#L15-L26

Er sorry, yes, that's true that Cell and RefCell won't literally work because they would need some form of lifetime (like Cell<Option<&'a mut T>>), and that's not possible. I'm not a huge fan though of how this hides the mutability internally and silently takes the item on with and puts it back at the end.
TBH though I don't really have much interest in keeping this crate going. I would prefer at this point if it's basically considered frozen and if extensions like this are needed they'd be added in a different crate with a new maintainer.

That is a shame 😦

In case anyone else comes across this with the same need, I published the crate scoped-tls-hkt.

authors: Diggsey alexcrichton

repo: alexcrichton/scoped-tls


text:
Add method to append entry from another tar

If you want to duplicate some entries from another tar, one may think about the following code:
for entry in archive.entries()? {
    let entry = entry?;
    builder.append(entry.header(), entry)?;
}

but it doesn't work, because you cannot borrow and move entry at the same time.
To make it work, one would need to clone the header, like
for entry in archive.entries()? {
    let entry = entry?;
    let header = entry.header().clone();
    builder.append(&header, entry)?;
}

but that's really some redundant work.
If Builder provides an append_entry method directly, it is possible to just write something like
for entry in archive.entries()? {
    builder.append_entry(entry?)?;
}

which would be much simplier.
Since tar doesn't really need to access both header and the data at the same time, this kind of method can be implemented without the cloning overhead inside tar crate, but not outside.

I think we should differ data from entry. Entry is header with data.

authors: opilar upsuper

repo: alexcrichton/tar-rs


text:
k8s 1.26 Support

Describe the bug
A clear and concise description of what the bug is.
We are upgrading from k8s 1.21 -> 1.26 soon. I recently ran a scan of packages that need to be updated/upgraded. Here are the results:
CustomResourceDefinition    clusterpullsecrets.ops.alexellis.io apiextensions.k8s.io/v1beta1 apiextensions.k8s.io/v1 (1.16.0)
These api versions need to be upgraded.
To Reproduce
Steps to reproduce the behavior:
kubent {cluster}
Expected behavior
A clear and concise description of what you expected to happen.
kubent doesnt pick up any api deprecations
Are you a GitHub Sponsor (Yes/No?)
NO
Issues from sponsors get prioritised and a quicker response.
Check at: https://github.com/sponsors/alexellis

[ ] Yes
[X ] No

Screenshots or console output
If applicable, add screenshots to help explain your problem.
Operating system and version:
List all possible solutions, and your suggested option
I have a PR in fork that I can raise when issue gets accepted. Can tag new version
Additional context
Add any other context about the problem here.

Hi @dhanushsure thanks for your interest here.
Let me see how I can help here.
But first, in order to allocate the time to work on this for you. Who is "we"? It helps to known which commercial teams and companies are relying on this project.
Regards,
Alex

I tried running on K8s 1.26 and it worked without any issues.
Thanks for the interest.
Alex

Whilst it wasn't necessary, I upgraded all internal packages to Go 1.26 and published a newer version:
https://github.com/alexellis/registry-creds/releases/tag/0.3.2-rc1

@RicardoNalesAmato @kendrickclark @arnaud-zg @dylandjian @moonape1226 you may want to switch to the latest version of our build, or rebase your commercial forks of this project.
Alex

No worries @dhanushsure
I'm looking for people to help support this work via GitHub Sponsors. Have a look, and if you find this project useful, I'd suggest finding what tier fits your support needs and usage.

Thanks for sharing!

authors: alexellis dhanushsure moonape1226

repo: alexellis/registry-creds


text:
Menus don't show up unless you run the application bundle

It's not very clear from the instructions in the README:
To run the example as a full-fledged UI application, you need to build an app bundle:
...
Alternatively, you can run the executable directly, but the window will initially appear behind all other windows, and it will also not appear in the dock or the switcher, so you will have to find it manually:

Can you add a note in the "common pitfalls" that explains that ? It took me a while to figure out why everything was working but the menus.

Ah thanks for the note @raff, will do.

authors: alexflint raff

repo: alexflint/gallium


text:
Playing a MOD file

Sorry, this is the only way I can see to ask this kind of question.  Godot is compiled, and the demo project works!
But none of the examples show me how to just play a simple file from the hard drive - all the examples use "banks".
In C++ it's pretty straight forward; system->createSound("path to sound", &sound) gives you a pointer to the sound, which you play with system->playSound(sound).  But I can't see any equivalent functions available from the Fmod Godot object.
Specifically I have those old MOD "tracker" songs and I want my games to be able to play them.  S3M, MOD, IT, XM etc.  It's the sole reason I'm using your module :)

Hey there.
You should be able to get this done as of https://github.com/alexfonseka/godot-fmod-integration/commit/8e0db73fbad07ed58edc3144de6a557c5936acb0.
In GDScript you would do:
var my_sound = FMOD.sound_load(UUID.new(), "<your-file-name>.mod", Fmod.FMOD_DEFAULT)
FMOD.sound_play(my_sound)

I've also updated the documentation with some more code snippets.
The Godot integration mainly focuses on Studio functions (for now at least) so not many low level functions are exposed as of yet :)

That's amazing, thank you.  MOD playback is literally the one thing I personally miss in Godot, I'm looking forward to making use of this.
So I notice usually we have 2 separate functions, generally in sound libraries, one for quick sound effects, and another for ongoing background music.  The example you have there, looks like it's used for sound effects (as per your documentation) AND music (as per your example above), I assume there's no issue with this?

You can use the example code for quick sounds. For music you can set the mode to Fmod.FMOD_CREATESTREAM. I wouldn;t use this for MOD files but it is useful if you're playing back large .wav files for example.
Also, for quick sounds there are play_one_shot and play_one_shot_attached functions available. These only work with Studio events though.

Ah, I assume we wouldn't do "FMOD_CREATESTREAM" unless the file was actually big, and MOD files are usually very small?
I'm getting an error with the above code snippit, it doesn't recognise the FMOD_DEFAULT enum I think.
Invalid get index 'FMOD_DEFAULT' (on base: 'GDScriptNativeClass').
I'm a little new to using git, so just to be sure I've updated correctly, below I've pasted the terminal output of how I updated your module and recompiled, that way you can make sure I did it correctly. (Path name is a bit long, so I shortened it before pasting)
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD $ cd godot
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot $ cd modules
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules $ cd fmod
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules/fmod $ git checkout master
M	.gitignore
M	LICENSE
M	README.md
M	SCsub
M	api/.gitkeep
M	api/COPY_FMOD_API_HERE
M	config.py
M	demo/Banks/Desktop/Master Bank.bank
M	demo/Banks/Desktop/Master Bank.strings.bank
M	demo/Scenes/Main.tscn
M	demo/Scripts/FMOD.gd
M	demo/Scripts/Listener.gd
M	demo/Scripts/Main.gd
M	demo/default_env.tres
M	demo/icon.png
M	demo/icon.png.import
M	demo/project.godot
M	godot_fmod.cpp
M	godot_fmod.h
M	register_types.cpp
M	register_types.h
Already on 'master'
Your branch is up to date with 'origin/master'.
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules/fmod $ git pull
remote: Enumerating objects: 38, done.
remote: Counting objects: 100% (38/38), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 27 (delta 18), reused 27 (delta 18), pack-reused 0
Unpacking objects: 100% (27/27), done.
From https://github.com/alexfonseka/godot-fmod-integration
   523fb28..a0c6a3d  master     -> origin/master
Updating 523fb28..a0c6a3d
error: Your local changes to the following files would be overwritten by merge:
	.gitignore
	README.md
	SCsub
	config.py
	demo/Scripts/FMOD.gd
	demo/Scripts/Main.gd
	godot_fmod.cpp
	godot_fmod.h
Please commit your changes or stash them before you merge.
Aborting
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules/fmod $ cd ..
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules $ cd ..
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot $ scons -j8 platform=x11
scons: Reading SConscript files ...
Enabling ALSA
Enabling PulseAudio
Checking for C header file mntent.h... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...
[ 99%] progress_finish(["progress_finish"], [])
[100%] scons: done building targets.
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot $

And here's my code:
extends Node2D

var FMOD = Fmod.new()
const UUID = preload("res://uuid.gd")

# Called when the node enters the scene tree for the first time.
func _ready():
		# set up FMOD
	FMOD.system_set_software_format(0, Fmod.FMOD_SPEAKERMODE_STEREO, 0)
	# initializing with the LIVE_UPDATE flag lets you
	# connect to Godot from the FMOD Studio editor
	# and author events in realtime
	FMOD.system_init(1024, Fmod.FMOD_STUDIO_INIT_LIVEUPDATE, Fmod.FMOD_INIT_NORMAL)

	var my_sound = FMOD.sound_load(UUID.new(), "music/SCORES.mod", Fmod.FMOD_DEFAULT)
	FMOD.sound_play(my_sound)

It seems Git didn't merge some of the changes because of conflicts. You can stash your local changes using git stash and then pull.
Also I should mention that I've upgraded the FMOD version of the integration to 2.00.00. So you need to download this version of the API from FMOD's website. Just follow the instructions as described here.

Thanks :)  Ok that's weird because I never changed anything - it's possible I saved over the demo project files when experimenting, but certainly not the .cpp and .h files...
Ok I restarted and got the latest Godot and godot-fmod.  Now compiling gives me this error, any idea what this could mean?
modules/fmod/godot_fmod.cpp: In member function 'void Fmod::updateInstance3DAttributes(FMOD::Studio::EventInstance*, Object*)':
modules/fmod/godot_fmod.cpp:92:58: error: cannot bind non-const lvalue reference of type 'FMOD_VECTOR&' to an rvalue of type 'FMOD_VECTOR'
    FMOD_3D_ATTRIBUTES attr = get3DAttributes(toFmodVector(pos), toFmodVector(up), toFmodVector(forward), toFmodVector(vel));
                                              ~~~~~~~~~~~~^~~~~
In file included from modules/fmod/godot_fmod.cpp:30:0:

That error occurs about 4 times in different places but I figured it was redundant to paste all of them since they seem to all be the same problem.

That's quite interesting. I'm not getting this error on MSVC. Using different compilers can sometimes result in compiler errors so I'm guessing this is one of those cases.
Can you try updating the module again (make sure it includes https://github.com/alexfonseka/godot-fmod-integration/commit/4daf9cb636e94f417ee624d3106ad6dd9a849db4) and see if it successfully compiles now?

As far as getting the latest FMOD 2.00.00, I have downloaded it and copied it into the modiles/fmod/api folder again as well. Though the first instruction "You must download FMOD and install it" worries me every time, because I don't know what it means by "installing it". In Windows I'd expect an .exe or .msi to install with, and in Linux (Ubuntu), I'd expect one of those package files you can install with the Software Installer. Is this instruction to "install it" just referring to the copying of the api folder in the later instruction?

They essentially mean the same thing. The installation section describes this in two steps, first to install the API (on Windows it's an installer and on Linux it's just a gzip that you can extract somewhere). The second step is to copy the files to the module's /api directory.

Ok, I believe after starting from scratch, and getting the latest godot and your fmod module, I still have the errors. I deleted the entire godot source folder, and re-did everything from the start again, as per your instructions.
Here is the complete output of the terminal of me doing all this, at this pastebin link https://pastebin.com/FVyPpkAq
As it's a lot of text, here's the parts of interest;
Here's the start, where I downloaded everything then kicked off the build
domarius@Domarius-Ubuntu /mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD $ git clone https://github.com/godotengine/godot
Cloning into 'godot'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 212058 (delta 1), reused 0 (delta 0), pack-reused 212051
Receiving objects: 100% (212058/212058), 292.16 MiB | 1.67 MiB/s, done.
Resolving deltas: 100% (163317/163317), done.
Checking out files: 100% (6928/6928), done.
domarius@Domarius-Ubuntu /mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD $ cd godot
domarius@Domarius-Ubuntu /mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot $ cd modules
domarius@Domarius-Ubuntu /mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules $ cd ..
domarius@Domarius-Ubuntu /mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot $ git submodule add https://github.com/alexfonseka/godot-fmod-integration modules/fmod
Cloning into '/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod'...
remote: Enumerating objects: 198, done.
remote: Counting objects: 100% (198/198), done.
remote: Compressing objects: 100% (119/119), done.
remote: Total 198 (delta 122), reused 147 (delta 76), pack-reused 0
Receiving objects: 100% (198/198), 898.27 KiB | 749.00 KiB/s, done.
Resolving deltas: 100% (122/122), done.
domarius@Domarius-Ubuntu /mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot $ scons -j8 platform=x11
(snip)

And here's the end, where it failed the compile;
(snip)
[Initial build] modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::setGlobalParameter(String const&, float)':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:152: undefined reference to `FMOD::Studio::System::setParameterByName(char const*, float, bool)'
modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::getGlobalParameter(String const&)':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:157: undefined reference to `FMOD::Studio::System::getParameterByName(char const*, float*, float*) const'
modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::getEventParameter(String const&, String const&)':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:249: undefined reference to `FMOD::Studio::EventInstance::getParameterByName(char const*, float*, float*) const'
modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::setEventParameter(String const&, String const&, float)':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:256: undefined reference to `FMOD::Studio::EventInstance::setParameterByName(char const*, float, bool)'
modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::playOneShotWithParams(String const&, Object*, Dictionary const&)':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:523: undefined reference to `FMOD::Studio::EventInstance::setParameterByName(char const*, float, bool)'
modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::playOneShotAttachedWithParams(String const&, Object*, Dictionary const&)':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:563: undefined reference to `FMOD::Studio::EventInstance::setParameterByName(char const*, float, bool)'
modules/libmodules.x11.tools.64.a(godot_fmod.x11.tools.64.o): In function `Fmod::Fmod()':
/mnt/stuff/To Sort/Software/Game Development/Godot/Godot3_FMOD/godot/modules/fmod/godot_fmod.cpp:867: undefined reference to `FMOD::Studio::System::getCoreSystem(FMOD::System**) const'
collect2: error: ld returned 1 exit status
scons: *** [bin/godot.x11.tools.64] Error 1
scons: building terminated because of errors.

Hey there. It seems you have no compiler errors this time. What you got there is a bunch of linker errors. Are you 100% positive you removed any existing files in /api before copying over the FMOD files? because all of those linker errors are associated with functions that were changed on the 2.00.00 update.

Ah yes, they are linker errors.  But no matter how sure I am that I've got the latest files in the api folder, I still get them. I made a 3 minute video showing me flushing out the folder, re-downloading the latest api, putting it in and re-compiling, and still getting the linker errors :(
https://youtu.be/HTjVmKA1nGM

I'll have a closer look at this on Linux. It's probably a libpath config issue.
In the meantime you can simply revert to a previous commit before the 2.00.00 changes were applied.
git checkout 66db3d47d2999f895f227129e1319226fb497067
This commit should play MOD files and it won't have the 2.00.00 changes. Use the FMOD version and API libs that worked for you before.

Thanks man. Ok did the git checkout you suggested, and downgraded to fmod 1.10.12, and I'm back to the previous "cannot bind non-const lvalue reference" error.  Is this something that will be fixed by walking back through fmod versions?
Here's me using the git checkout you gave me, then re-compiling, and the error. I've pasted in fmod api 1.10.12 in the api folder.
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules/fmod $ git checkout 66db3d47d2999f895f227129e1319226fb497067
Note: checking out '66db3d47d2999f895f227129e1319226fb497067'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 66db3d4 Updated README
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules/fmod $ cd ..
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot/modules $ cd ..
domarius@Domarius-Ubuntu /(long path)/Godot3_FMOD/godot $ scons -j8 platform=x11
scons: Reading SConscript files ...
Enabling ALSA
Enabling PulseAudio
Checking for C header file mntent.h... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...
[ 22%] Compiling ==> modules/fmod/godot_fmod.cpp
[ 22%] Compiling ==> modules/fmod/register_types.cpp
[ 38%] modules/fmod/godot_fmod.cpp: In member function 'void Fmod::updateInstance3DAttributes(FMOD::Studio::EventInstance*, Object*)':
modules/fmod/godot_fmod.cpp:92:58: error: cannot bind non-const lvalue reference of type 'FMOD_VECTOR&' to an rvalue of type 'FMOD_VECTOR'
    FMOD_3D_ATTRIBUTES attr = get3DAttributes(toFmodVector(pos), toFmodVector(up), toFmodVector(forward), toFmodVector(vel));
                                              ~~~~~~~~~~~~^~~~~
In file included from modules/fmod/godot_fmod.cpp:30:0:
modules/fmod/godot_fmod.h:76:21: note:   initializing argument 1 of 'FMOD_3D_ATTRIBUTES Fmod::get3DAttributes(FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&)'
  FMOD_3D_ATTRIBUTES get3DAttributes(FMOD_VECTOR &pos, FMOD_VECTOR &up, FMOD_VECTOR &forward, FMOD_VECTOR &vel);
                     ^~~~~~~~~~~~~~~
[ 38%] modules/fmod/godot_fmod.cpp:102:58: error: cannot bind non-const lvalue reference of type 'FMOD_VECTOR&' to an rvalue of type 'FMOD_VECTOR'
    FMOD_3D_ATTRIBUTES attr = get3DAttributes(toFmodVector(pos), toFmodVector(up), toFmodVector(forward), toFmodVector(vel));
                                              ~~~~~~~~~~~~^~~~~
In file included from modules/fmod/godot_fmod.cpp:30:0:
modules/fmod/godot_fmod.h:76:21: note:   initializing argument 1 of 'FMOD_3D_ATTRIBUTES Fmod::get3DAttributes(FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&)'
  FMOD_3D_ATTRIBUTES get3DAttributes(FMOD_VECTOR &pos, FMOD_VECTOR &up, FMOD_VECTOR &forward, FMOD_VECTOR &vel);
                     ^~~~~~~~~~~~~~~
[ 38%] modules/fmod/godot_fmod.cpp: In member function 'void Fmod::setListenerAttributes()':
modules/fmod/godot_fmod.cpp:126:57: error: cannot bind non-const lvalue reference of type 'FMOD_VECTOR&' to an rvalue of type 'FMOD_VECTOR'
   FMOD_3D_ATTRIBUTES attr = get3DAttributes(toFmodVector(pos), toFmodVector(up), toFmodVector(forward), toFmodVector(vel));
                                             ~~~~~~~~~~~~^~~~~
In file included from modules/fmod/godot_fmod.cpp:30:0:
modules/fmod/godot_fmod.h:76:21: note:   initializing argument 1 of 'FMOD_3D_ATTRIBUTES Fmod::get3DAttributes(FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&)'
  FMOD_3D_ATTRIBUTES get3DAttributes(FMOD_VECTOR &pos, FMOD_VECTOR &up, FMOD_VECTOR &forward, FMOD_VECTOR &vel);
                     ^~~~~~~~~~~~~~~
modules/fmod/godot_fmod.cpp:137:57: error: cannot bind non-const lvalue reference of type 'FMOD_VECTOR&' to an rvalue of type 'FMOD_VECTOR'
   FMOD_3D_ATTRIBUTES attr = get3DAttributes(toFmodVector(pos), toFmodVector(up), toFmodVector(forward), toFmodVector(vel));
                                             ~~~~~~~~~~~~^~~~~
In file included from modules/fmod/godot_fmod.cpp:30:0:
modules/fmod/godot_fmod.h:76:21: note:   initializing argument 1 of 'FMOD_3D_ATTRIBUTES Fmod::get3DAttributes(FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&, FMOD_VECTOR&)'
  FMOD_3D_ATTRIBUTES get3DAttributes(FMOD_VECTOR &pos, FMOD_VECTOR &up, FMOD_VECTOR &forward, FMOD_VECTOR &vel);
                     ^~~~~~~~~~~~~~~
[ 38%] modules/fmod/godot_fmod.cpp: In constructor 'Fmod::Fmod()':
modules/fmod/godot_fmod.cpp:853:2: warning: left operand of comma operator has no effect [-Wunused-value]
  system, lowLevelSystem, listener = nullptr;
  ^~~~~~
modules/fmod/godot_fmod.cpp:853:10: warning: right operand of comma operator has no effect [-Wunused-value]
  system, lowLevelSystem, listener = nullptr;
          ^~~~~~~~~~~~~~
[100%] progress_finish(["progress_finish"], [])
[100%] scons: *** [modules/fmod/godot_fmod.x11.tools.64.o] Error 1
scons: building terminated because of errors.

Haha. Yeah I guess going back also reverts "fixes". I should have split those two into separate commits, my bad.
In your godot_fmod.h file, change lines 76 and 77 to:
line 76: FMOD_3D_ATTRIBUTES get3DAttributes(FMOD_VECTOR pos, FMOD_VECTOR up, FMOD_VECTOR forward, FMOD_VECTOR vel);
line 77: FMOD_VECTOR toFmodVector(Vector3 vec);

And in your godot_fmod.cpp file change lines 458 and 466 to:
line 458: FMOD_VECTOR Fmod::toFmodVector(Vector3 vec) {
...
line 466: FMOD_3D_ATTRIBUTES Fmod::get3DAttributes(FMOD_VECTOR pos, FMOD_VECTOR up, FMOD_VECTOR forward, FMOD_VECTOR vel) {

You should be able to play your MOD file now 🤞

Success!  My games can have MOD music in them now!  Thanks man :)

I'll have to test it out for myself on Linux when I have the time. If you want notifications for future updates you can add the repository to your Github watch list.

Just a heads up - I have a suspicion I may have previously put the fmod library files in a system location, and it may be referring to those.  I'm thinking this is the case because I'm now trying out a different install of linux and it's complaining it can't find the library files at all, even though I'm using the same folder as previously.  So it was probably ignoring that fmod/api folder entirely and using older library files that I'd previously placed in the linux system folder for libraries. (usr/lib or something)

Ahah - I remember what I did - that's the issue with the instructions that I was mentioning earlier.
In step 1, where it says "Download the FMOD Studio API (You need to create an account) and install it on your system.", I took this to mean I had to put the library files somewhere. So I looked up where to put them in a Linux system and did that!
If "installing it" is already covered in step 4 when you copy the api folder, I would suggest removing "and install it on your system" from step 1.

Hey there! Thanks for letting me know. I noticed that there is a slight issue in the build config file and it is not specifying the correct libpath for Linux. It worked for you earlier because the linker searches for the libs firstly in the LIBRARY_PATH env variable and if it does not find them it will then proceed to check the usr/lib folder which in your case was where it eventually found them.
I pushed a fix e6f02935f1d122b06e779827f463ba07f603a5b7 that should hopefully solve all the linking errors.

If "installing it" is already covered in step 4 when you copy the api folder, I would suggest removing "and install it on your system" from step 1.

On Windows (and on macOS as well I believe) it's an installation package that you need to run. On Linux though it is just an archive with the lib files. I guess I'll update the docs to reflect this to prevent any sort of confusion.

Awesome! I'll try updating soon. Heh, I guess I'm your Linux QA for the moment.
So after the update, it should look in godot/modules/fmod/api?

Yeah, it should look in that directory now. Let me know how you go.

authors: Domarius alexfonseka

repo: alexfonseka/godot-fmod-integration


text:
Not capable to work with ue4_2.25

Its not working with New version of ue4... Maybe tweaking some module name will work

Possibly, since the plugin was released for 4.19. Thanks for letting me know. You've got some error message? Or what words defines the not working the best?

authors: RTBRuhan alexhajdu


text:
Speedup neutral charge check

This changes the algorithm used to validate that a composition can achieve a neutral charge.
The old algorithm would scale around O(C**N) with N the number of atoms and C the max number of possible charge values per atom. The proposed algorithm scales at about O(N**2 * C**2).
I compared the two implementations using the same elements as in the current experiments ([1, 3, 6, 7, 8, 9, 12, 14, 15, 16, 17, 26]) and setting the numbers of atoms per element to [0, 0, 0, 0, 0, 0, 0, i, i, i, i, i] for various values of i.
Results (in seconds) :
------
For i =  3
Old implementation :  0.002059459686279297
New implementation :  0.00014591217041015625
------
For i =  5
Old implementation :  0.011979341506958008
New implementation :  0.0001742839813232422
------
For i =  7
Old implementation :  0.04272580146789551
New implementation :  0.00034546852111816406
------
For i =  9
Old implementation :  0.610426664352417
New implementation :  0.0005359649658203125
------
For i =  11
Old implementation :  15.19710898399353
New implementation :  0.0007321834564208984
------

For i = 13, the old implementation gets killed
I've tested the new implementation until i = 39, at which it point takes 0.0078s to run.

Dropping this here for future reference in case it is useful: https://smact.readthedocs.io/en/latest/_modules/smact/screening.html#smact_filter

authors: alexhernandezgarcia carriepl

repo: alexhernandezgarcia/gflownet


text:
Failed in more complex environment

Thank for the sharing the code.
I tested that the code is working in the invertedPendulum-v1.
But when I changed the environment to Ant-v1 without changing any other parameters,
it seems the agent failed to learn as below. Do I need to change some parameters?
Time 00h 01m 01s, episode reward -3032.25671304008, episode length 1000
Time 00h 02m 01s, episode reward -99.15254692012928, episode length 25
Time 00h 03m 01s, episode reward -41.27665909454931, episode length 14
Time 00h 04m 01s, episode reward -39.077425184658665, episode length 17
Time 00h 05m 02s, episode reward -136.60746428384076, episode length 45
Time 00h 06m 02s, episode reward -111.40062667574634, episode length 40
Time 00h 07m 02s, episode reward -516.1070385678166, episode length 169
Time 00h 08m 02s, episode reward -129.64627338344073, episode length 42
Time 00h 09m 02s, episode reward -146.55425861577797, episode length 45
Time 00h 10m 03s, episode reward -253.41361049200614, episode length 86
Time 00h 11m 03s, episode reward -108.6953450777496, episode length 38
Time 00h 12m 03s, episode reward -64.66194807902957, episode length 16
Time 00h 13m 03s, episode reward -33.51695185844647, episode length 11
Time 00h 14m 03s, episode reward -86.88904449639067, episode length 35
Time 00h 15m 03s, episode reward -78.48049851223362, episode length 23
Time 00h 16m 03s, episode reward -165.73681903021165, episode length 61
Time 00h 17m 04s, episode reward -155.3555664457943, episode length 60
Time 00h 18m 04s, episode reward -57.65249942070945, episode length 20
Time 00h 19m 04s, episode reward -392.10161323743887, episode length 109
Time 00h 20m 04s, episode reward -55.63287075930159, episode length 12
Time 00h 21m 04s, episode reward -81.0448173961397, episode length 29
Time 00h 22m 04s, episode reward -149.84827826419726, episode length 52
Time 00h 23m 04s, episode reward -398.0365800924663, episode length 22
Time 00h 24m 05s, episode reward -1948.6136580594682, episode length 17
Time 00h 25m 05s, episode reward -18719.08471382285, episode length 51
Time 00h 26m 06s, episode reward -805145.8854457787, episode length 1000
Time 00h 27m 06s, episode reward -17008.04843510176, episode length 17
Time 00h 28m 07s, episode reward -168769.34038655, episode length 129
Time 00h 29m 07s, episode reward -104933.08883886453, episode length 79
Time 00h 30m 07s, episode reward -22809.687035617088, episode length 17
Time 00h 31m 07s, episode reward -46398.71530676861, episode length 37
Time 00h 32m 07s, episode reward -18513.064083079746, episode length 15
Time 00h 33m 07s, episode reward -21329.411481710402, episode length 15
Time 00h 34m 09s, episode reward -1393903.341478124, episode length 1000
Time 00h 35m 10s, episode reward -1374988.6133415946, episode length 1000
Time 00h 36m 10s, episode reward -33792.40522011441, episode length 28
Time 00h 37m 10s, episode reward -20629.94697013807, episode length 16
Time 00h 38m 10s, episode reward -39780.93399623488, episode length 29
Time 00h 39m 10s, episode reward -61722.81635309537, episode length 47
Time 00h 40m 10s, episode reward -46780.12455378964, episode length 36
Time 00h 41m 10s, episode reward -91640.36757206521, episode length 73
Time 00h 42m 11s, episode reward -77137.71004513587, episode length 63
Time 00h 43m 11s, episode reward -15184.611248485926, episode length 10
Time 00h 44m 11s, episode reward -26995.023495691694, episode length 20
Time 00h 45m 11s, episode reward -110371.66228435331, episode length 81
Time 00h 46m 11s, episode reward -55639.738879114084, episode length 41
Time 00h 47m 11s, episode reward -53735.2616539847, episode length 39
Time 00h 48m 11s, episode reward -60755.49631228513, episode length 43
Time 00h 49m 11s, episode reward -29466.664499076247, episode length 23
Time 00h 50m 12s, episode reward -48580.31395829051, episode length 37
Time 00h 51m 12s, episode reward -128957.8903571858, episode length 99
Time 00h 52m 12s, episode reward -70144.76359014906, episode length 51
Time 00h 53m 12s, episode reward -29271.097255889938, episode length 21
Time 00h 54m 12s, episode reward -21737.6644599086, episode length 17
Time 00h 55m 12s, episode reward -27549.40889570978, episode length 20
Time 00h 56m 12s, episode reward -97097.66966694668, episode length 77
Time 00h 57m 13s, episode reward -18384.51761876518, episode length 14
Time 00h 58m 13s, episode reward -28424.585660954337, episode length 22
Time 00h 59m 13s, episode reward -96267.24448946006, episode length 72
Time 01h 00m 13s, episode reward -79794.54738721657, episode length 60
Time 01h 01m 13s, episode reward -88486.88046448736, episode length 64
Time 01h 02m 13s, episode reward -31071.50782185118, episode length 24
Time 01h 03m 13s, episode reward -53608.97197643964, episode length 38
Time 01h 04m 14s, episode reward -38451.031800392186, episode length 27
Time 01h 05m 14s, episode reward -27645.787896926682, episode length 20

Indeed, I was doing something wrong by using the probabilities of action given 'old' models.
I corrected this error into my PPO implementation, and now it seems to learn in all environments. I'm going to update everything.

repo: alexis-jacq/Pytorch-DPPO


text:
Inconsistent time format for 24/12 hours

Describe the bug
By default the time format is 24 hours. But if you set it to 12 hours with M j, Y g:i:s A it shows correctly in some places but not on the graph.
To Reproduce
Steps to reproduce the behavior:

Go to Settings -> General
Change Time format to M j, Y g:i:s A
Look at Dashboard. It says Last speedtest run at: Aug 3, 2023 2:29:56 PM This is correct 12 hour format
Look at the graph. The axis say: Aug 03 - 14:29

Expected behavior
The graph axis should say Aug 03 - 2:29 PM
Environment (please complete the following information):

OS: Debian 12
Architecture: amd64
Browser Firefox
Version 115

Screenshots

It shows fine in Results page too

This one is on purpose as the longer formatted dates can get a bit crowded imo.

authors: alexjustesen azizLIGHT

repo: alexjustesen/speedtest-tracker


text:
Update README.md

I managed to run the compiler with these extra dependencies (I'm using Debian 10). After that, I still get a compilation error, possible fix in #17.

Fixed in 666c5483bc93efa6d01e0b7a927461269f8e14de.

authors: OlivierBlanvillain alexozer

repo: alexozer/flitter


text:
Support for Piece-Aligned (optimise alignment, BEP-47) ?

Torrents containing multi files often get stuck at 99.x% if not piece-aligned when creating.
Could u plz support this feature (Based on BT protocol BEP-47) ? thanks.

Padding files and extended file attributes.
https://www.bittorrent.org/beps/bep_0047.html
Padding files are synthetic files inserted into the file list to let the following file start at a piece boundary. That means their length should fill up the remainder of the piece length of the file that is supposed to be padded.

Related Information:
https://forum.qbittorrent.org/viewtopic.php?p=41005#p41005

@predb
can you send me an example of a file that gets stuck at 99.x?

I just merged 0.9.1 and updated uploaded it to PyPi.  You can now use the --align command line flag when creating version 1 torrents to force them to piece align to file boundaries.

authors: alexpdev predb

repo: alexpdev/torrentfile


text:
Support for Nominatim lookup endpoint

Thank you very much for providing this aweseome gem!
If I saw correctly, all Nominatim lookups go to the /search endpoint. While this covers most use cases, some are missing, such as looking up an osm_id, which is done through the /lookup endpoint. For example:
curl 'http://localhost:8080/lookup?osm_ids=R1702265&format=jsonv2&addressdetails=1'

[{"place_id":104828,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"relation","osm_id":1702265,"boundingbox":["47.3991502","47.4171175","8.5260623","8.5587967"],"lat":"47.4104211","lon":"8.5445851","display_name":"Oerlikon, Kreis 11, Zürich, Bezirk Zürich, Zürich, Schweiz/Suisse/Svizzera/Svizra","place_rank":20,"category":"boundary","type":"administrative","importance":0.14667666666666662,"address":{"suburb":"Oerlikon","city":"Zürich","county":"Bezirk Zürich","state":"Zürich","ISO3166-2-lvl4":"CH-ZH","country":"Schweiz/Suisse/Svizzera/Svizra","country_code":"ch"}}]

Would you be interested in supporting the lookup endpoint as well?
Best,
Kalsan

Thank you for your quick answer! Do you require assistance with this? I might be able to help next year, given that I'll have more time then than I do have now.

Yes, definitely open to a pull request. No rush.

Thank you :-) will contact you somewhere in winter/spring 2025 hopefully!
Have a nice day!

authors: alexreisner kalsan

repo: alexreisner/geocoder


text:
chore: update to vite 4

Great project, thanks!
I've ran the tests and everything works

Thanks for your pull request.

thanks for the quick merge 😊🙏

authors: alextim shairez

repo: alextim/vite-plugin-simple-json-server


text:
Docker - container not starting after update

I know that I have a bit of a complicated awkward setup here, but hopefully someone with a bit better understanding of yesterdays update can help me locate what's broken.
I have a bunch of the directories redirected to my home directory as it's being ran in plexguide, and some of this needs to be able to be updated on it's own for configuration purposes and such.
pg_volumes:
          - '/home/iandrewc/nginx/:/opt/nginx/'
          - '/home/iandrewc/nginx/:/etc/nginx/'
          - '/home/iandrewc/nginx/:/usr/local/nginx/'
          - '/home/iandrewc/HLS/:/opt/data'
          - '/home/iandrewc/HLS/:/HLS'
          - '/home/iandrewc/video_recordings/:/videorecordings'
          - '/home/iandrewc/www/:/www'
          - '/home/iandrewc/letsencrypt/etc/letsencrypt:/le-ssl'

But here's the errors that's showing in the log now.
Error relocating /usr/local/nginx/sbin/nginx: d2i_OCSP_RESPONSE: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: OCSP_RESPONSE_new: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: OCSP_response_get1_basic: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_set_alpn_select_cb: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: X509_email_free: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: ENGINE_by_id: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: i2a_ASN1_INTEGER: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: EVP_MD_CTX_create: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_get_rbio: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_get_timeout: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: RSA_generate_key: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: BIO_s_mem: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: BIO_new_file: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: ENGINE_load_private_key: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_get_ex_data_X509_STORE_CTX_idx: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_get_verify_result: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: X509_NAME_digest: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: EVP_sha256: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_do_handshake: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: BIO_write: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_use_certificate: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CIPHER_get_name: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: X509_STORE_CTX_get_ex_data: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_get_verify_mode: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_set_timeout: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: ERR_peek_error_line_data: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: PEM_read_bio_X509: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_get_verify_depth: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_get_servername: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_get_verify_callback: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_get_cert_store: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: SSL_CTX_use_PrivateKey: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: ERR_get_error: symbol not found,
Error relocating /usr/local/nginx/sbin/nginx: X509_check_issued: symbol not found```

Looks related to openssl. Are you able to reproduce this issue with a more minimal setup without the mounted volumes?

Finally got a chance to do this, thank you for getting back to me.
So I pulled out the volumes other than the HLS ones and WWW as I felt it was unlikely they'd cause it. Then loaded them back one by one. All volume mappings were okay apart from this one.
/home/iandrewc/nginx : /usr/local/nginx
Of course I can't do much without that as that's where the config lives.
Thoughts on possibilities to look at from here?

Looks like after copying that folder from the container, and then updating /nginx/sbin/nginx in my local volume, the container at least stays running. Seems to have broken something else but at least it's working.

repo: alfg/docker-nginx-rtmp