Ferdi not loading / stays "grey"

Describe the bug

I installed Ferdi on my Work Machine, to replace Franz. Franz is still installed in parallel. Unfortunately Ferdi is not starting. It says grey. I already played around with the proxy settings of the Internet Explorer but this doesn't help.
To Reproduce

Steps to reproduce the behavior:

Install Ferdi
Start Ferdi

Expected behavior

Application should come up, at least the login screen or similar.
Screenshots
Not starting screenprint:

Versions:

OS: Windows 10
Ferdi Version: As I cannot open Ferdi, I only can show the installed versions under Systempreferences -> Programms:

Maybe unrelated, but I had similar a problem today and I found this in my logs:

When I looked, that file was an empty file. I filled it in with {} and saved, and now Ferdi loads.

@webworker01 no it was related 😄 I had in the proxy.json file two proxy configs... I removed it so that I had only {} in the file. Ferdi is now starting. Thank you very much!
Do you know, if the proxy.json file will be sometimes again overwritten or were is the config coming from? Thanks!

Probably should keep this one open, maybe there was something from the servers that was sent out to our clients that caused it.   Today is the first time I've had this issue.

@webworker01 I agree with you... I also just added the proxy config for two services and restarted, now the application stays "grey" again

Also with 5.5.0 I have this issue, BUT: I installed 5.5.0 on the same machine, started and everything worked. Configured a proxy for one server, restarted ferdi -> Doesn't start again (Stays grey)

Maybe related to https://github.com/getferdi/ferdi/issues/596?

@kytwb any idea what I cann do? #596 didn't really helped me. 😢

I cross-linked so people seeing #596 can maybe benefit from @webworker01's workaround in https://github.com/getferdi/ferdi/issues/543#issuecomment-610358545. I don't use the proxy feature myself, I think the other active contributors didn't experience this issue as well so it slipped through. We don't have a test suite so every release is a bit risky; we will get there as we iterate. I hope the workaround can unlock your situation, otherwise I would suggest to downgrade to your latest working version.

@kytwb I will try - but I can say that I didn't changed anything regarding the locking of ferdi... just started one V 5.5.0, tried to configure a proxy for Trello and wanted to restart the application. After that the screen stays "grey"... also removing the proxy settings as well as re-aranging the setting of IE11 / windows didn't help. Further I tried to uninstall and re-install Ferdi V5.5.0. - Didn't help as well 😞

What did the trick for me, was going to C:\Users\Username\AppData\Roaming\Ferdi\config, then opening settings.json & setting "lockingFeatureEnabled" to false. I then reopend Ferdi & everything was working again :)

I tried that. "lockingFeatureEnabled" to false - but this was already set to that. Set it to true, restart and set it to false again, didn't help. I deinstalled ferdi again, installed V5.5.0 again. Still the same:

This are my settings.json and proxy.json entries:
proxy.json:
{}
settings.json:
`{
"autoLaunchInBackground": false,
"runInBackground": false,
"reloadAfterResume": true,
"enableSystemTray": true,
"startMinimized": true,
"minimizeToSystemTray": false,
"privateNotifications": false,
"showDisabledServices": true,
"showMessageBadgeWhenMuted": true,
"showDragArea": false,
"enableSpellchecking": true,
"spellcheckerLanguage": "de-de",
"darkMode": false,
"locale": "de",
"fallbackLocale": "en-US",
"beta": false,
"isAppMuted": true,
"enableGPUAcceleration": true,
"serviceLimit": 5,
"server": "https://api.getferdi.com",
"predefinedTodoServer": "https://app.franztodos.com",
"autohideMenuBar": false,
"lockingFeatureEnabled": false,
"locked": false,
"lockedPassword": "",
"useTouchIdToUnlock": false,
"scheduledDNDEnabled": false,
"scheduledDNDStart": "17:00",
"scheduledDNDEnd": "09:00",
"hibernate": false,
"hibernateOnStartup": false,
"hibernationStrategy": 300,
"inactivityLock": 0,
"automaticUpdates": false,
"showServiceNavigationBar": false,
"universalDarkMode": false,
"adaptableDarkMode": false,
"accentColor": "#004785",
"serviceRibbonWidth": 68,
"iconSize": 20,
"sentry": false,
"navigationBarBehaviour": "never",
"todoServer": "isUsingCustomTodoService",
"noUpdates": false,
"customTodoServer": ""
}
Which directories I have to delete, to do a complete re-install and ferdi is not re-using the settings? This one? C:\Users\Username\AppData\Roaming\Ferdi
Thank you! 😄

C:\Users\Username\AppData\Roaming\Ferdi

Yes, delete that folder to remove all of Ferdi's options

@vantezzen Did so, re-installed again V5.5.0 still the same result.

I reviewed also my proxy settings, connection works.
"lockingFeatureEnabled": false is still maintained.
What else can I try?

@vantezzen Did so, re-installed again V5.5.0 still the same result.

I reviewed also my proxy settings, connection works.
"lockingFeatureEnabled": false is still maintained.
What else can I try?

If I were you, I'd try by first uninstalling EVERY VERSION OF Ferdi via 'Programs and Featueres' in Windows, it is possible to have multiple Ferdi installations present there if you've updated Ferdi. Then deleting these 3 folders:

C:\Users\Username\AppData\Roaming\Ferdi
C:\Users\Username\AppData\Local\Programs\ferdi
C:\Users\Username\AppData\Local\Temp\Ferdi Crashes
C:\Users\Username\AppData\Local\FerdiUpdater
Not sure about the name of the last one, but just check for a folder with Ferdi in its name. Then reinstall the newest version of Ferdi & check :) I'm curious to know if this will be able to resolve it for you!

So what I did:

Deinstalled every version of Ferdi (Only 5.5.0 was installed) via Programs and Features

Than I deleted the following directories:

C:\Users\Username\AppData\Roaming\Ferdi => Deleted
C:\Users\Username\AppData\Local\Programs\ferdi => Not there, not deleted
C:\Users\Username\AppData\Local\Temp\Ferdi Crashes => Not there, not deleted
C:\Users\Username\AppData\Local\FerdiUpdater => Deleted

(Franz is still installed in parallel)

Downloaded Ferdi-Setup-5.5.0.exe from https://github.com/getferdi/ferdi/releases/download/v5.5.0/Ferdi-Setup-5.5.0.exe

Installed it again and it started automatically again.

Result: Still stuck: 😞

Hmm :/ Then it must not be settings-related for you, because you've now got a complete clean Ferdi install, as far as I know.

@ckkoen Don't laugh... but a restart helped - it's working now :) I will let you know, if it is not working anymore...

Haha, perfect :D The simplest solutions are the best! Then there must have been an issue with the settings or cache of Ferdi somewhere. Let's hope it keeps on working now!

@kytwb to reply to your earlier question in #701:

Can you confirm you were using Ferdi without an account?

Yes, I'm using Ferdi without account (local server)

What did the trick for me, was going to C:\Users\Username\AppData\Roaming\Ferdi\config, then opening settings.json & setting "lockingFeatureEnabled" to false. I then reopend Ferdi & everything was working again :)

Setting the locking to false worked for me also (Ubuntu, no Ferdi account but local server).

@ckkoen Since some days back, its not working for me anymore... have to check again.

I'm wondering if @klouisbrother's issue isn't another one than the issue I and some others are/were experiencing: simply changing the password setting 'fixed' it for me, which doesn't seem true for the OP.

I can reproduce this. will take this up.

Thank you @mahadevans87 💖

I have triggered a new nightly build that should include the fix for this via v5.5.1-nightly.13.

I have triggered a new nightly build that should include the fix for this via v5.5.1-nightly.13.

I was able to successfully test the new nightly. I first reproduced the grey screen by setting the following values in C:\Users\Username\AppData\Roaming\Ferdi\config\settings.json :
"lockingFeatureEnabled": true,
"locked": true,
"lockedPassword": "a random password",
"useTouchIdToUnlock": true,
So even with "useTouchIdToUnlock" set to true, Ferdi now works and asks for a password when opened instead of the grey screen. I do have 2 remarks however:

This probably has to do with the upgrade, but all users with an already set password might be impacted. In the settings.json, my password was still set to "a random password". At startup Ferdi asked for this, but didn't recognize my password. I suspect this is because it wasn't encrypted yet. Even settings that value to an empty password didn't work, as that wasn't encrypted either. To remedy the situation, I had to set "lockingFeatureEnabled" & "locked" to false and then restart Ferdi. Ferdi now opened without a password. I was then able to enable the feature again via the GUI & set up a password. This was immediately encrypted in the settings.json & after a restart Ferdi recognized the password. So once you've set up your password via the new version, the Password Lock works as expected. But if you've migrated from a previous version with an already set up password, you might run into trouble.
For my 2nd remark I tested the GUI. If the Password Lock was already enabled when opening the Settings, you'll see an empty password field. If you click this empty field by accident & then close the Settings, your password remains unchanged. So far, so good :)  But if you click the 'Enable Password Lock' by accident, and thus disabling it, and then re-enable it immediately without inputting a password (because you think the old password is still active) Ferdi will change your encrypted password to an empy one. So next time you log in, your old password won't work.

Thanks everyone for the big fix on the TouchID unlock!


RFE: hide password fields after successful connect

Avoid the problem with password managers which have helpers for password fields, such as KeePassXC. See screenshot.

Clear all the password input fields after successful login?

clear and hide? :)

Do you want to restore all the password input fields after logout?

I will ask the keepassxc people if they think this is something they should be fixing...


fix: adapt faiss search

Trial to update faiss search to new version.
Problems: Waiting for https://github.com/jina-ai/jina/issues/1449 to be solved
Extra problems: It is very confusing to map the proper volumes so that they can be used in the workspace of the Faiss Container
Extra problems: Cannot use ref_indexer solution as described in https://github.com/jina-ai/jina/issues/1438

Hi @JoanFM ,
thanks for the refactoring! I tried the new faiss search logic, but it seems that the id from match is now a hash instead of an id whereas the groundtruth data returns an actual id :thinking: how is it possible to get a "real" id (I'm using a recent master version of jina).
Many thanks!

Hi @JoanFM ,
thanks for the refactoring! I tried the new faiss search logic, but it seems that the id from match is now a hash instead of an id whereas the groundtruth data returns an actual id  how is it possible to get a "real" id (I'm using a recent master version of jina).
Many thanks!

Hey @ivana-bt ,
Would you open an issue describing the problem in more detail?

Hi @JoanFM ,
thanks for the refactoring! I tried the new faiss search logic, but it seems that the id from match is now a hash instead of an id whereas the groundtruth data returns an actual id  how is it possible to get a "real" id (I'm using a recent master version of jina).
Many thanks!

Hey @ivana-bt ,
I recently had time to work on some fixes for this example, and I added some changes to it

Hi @JoanFM ,
thanks for the refactoring! I tried the new faiss search logic, but it seems that the id from match is now a hash instead of an id whereas the groundtruth data returns an actual id  how is it possible to get a "real" id (I'm using a recent master version of jina).
Many thanks!

Hey @ivana-bt ,
I recently had time to work on some fixes for this example, and I added some changes to it


Please support MIT and other licenses without a copyright line

Many projects (including Rust itself) use the MIT license without the line containing the year and copyright holder. (The Berne convention makes an actual copyright notice optional.) Please allow specifying a name like "MIT" to get just the license, without the un-substituted placeholders. (For instance, the license schema could have an option to delete the line containing the placeholders, and associated extra blank lines.)

--no-copyright flag will be available in v2 release

Thank you. Would it be possible, for licenses that include the placeholder, to either automatically use --no-copyright if you don't supply a copyright holder, or error with a message saying you either need to pass --no-copyright or a copyright holder?

Would replacing the flag with a --placeholder flag make more sense ? That would allow people who still want the placeholders to keep them.

@raftario Yes, that's even better! That sounds like the ideal interface:

License name alone gets you the bare license.
License name plus copyright holder fills in the placeholders.
License name plus --placeholder leaves the placeholders for you to fill in.

All good!

@joshriplett On a similar note, the SPDX spec states that some parts of a license can be marked as optionnal. Do you think it would be a better default to include or exclude those ?

Closed by da7d1bf33f8f505f995966ab34c39dcf38c1b6ce
See #7 for further discussion on the optional parts.


Recommended changes resulting from automated audit

We performed an automated audit of your Cake addin and found that it does not follow all the best practices.
We encourage you to make the following modifications:

[ ] You are currently referencing Cake.Core 0.26.1. Please upgrade to 0.28.0
[ ] You are currently referencing Cake.Common 0.26.1. Please upgrade to 0.28.0
[ ] The Cake.Core reference should be private. Specifically, your addin's .csproj should have a line similar to this: <PackageReference Include="Cake.Core" Version="0.28.0" PrivateAssets="All" />
[ ] The Cake.Common reference should be private. Specifically, your addin's .csproj should have a line similar to this: <PackageReference Include="Cake.Common" Version="0.28.0" PrivateAssets="All" />
[ ] The nuget package for your addin should use the cake-contrib icon. Specifically, your addin's .csproj should have a line like this: <PackageIconUrl>https://cdn.rawgit.com/cake-contrib/graphics/a5cf0f881c390650144b2243ae551d5b9f836196/png/cake-contrib-medium.png</PackageIconUrl>.

Apologies if this is already being worked on, or if there are existing open issues, this issue was created based on what is currently published for this package on NuGet.org and in the project on github.

We performed a follow up automated audit of your Cake addin and found that some (or all) issues previously identified have not been resolved.
We strongly encourage you to make the modifications previously highlighted.
Apologies if this is already being worked on, or if there are existing open issues, this issue was created based on what is currently published for this package on NuGet.
This comment was created by a tool: Cake.AddinDiscoverer version 3.12.1


Added a SurgeContext aware message processing model

This model should simplify the amount of layering that we have in Surge where the various processing models inherit from one another and inevitably end up wired incorrectly due to behaviors changing unexpectedly through the various layers.

Codecov Report

Merging #139 (06aa305) into main (a80c5bb) will decrease coverage by 0.34%.
The diff coverage is 53.43%.

@@            Coverage Diff             @@
##             main     #139      +/-   ##
==========================================
- Coverage   68.87%   68.52%   -0.35%
==========================================
  Files         162      162
  Lines        3309     3301       -8
  Branches       89       86       -3
==========================================
- Hits         2279     2262      -17
- Misses       1030     1039       +9

Impacted Files
Coverage Δ

...src/main/scala/surge/core/KafkaProducerActor.scala
63.79% <ø> (ø)

...c/main/scala/surge/core/SurgePartitionRouter.scala
100.00% <ø> (ø)

.../core/commondsl/SurgeEventBusinessLogicTrait.scala
0.00% <0.00%> (ø)

...ore/commondsl/SurgeGenericBusinessLogicTrait.scala
100.00% <ø> (ø)

...cala/surge/core/event/SurgeEventServiceModel.scala
0.00% <0.00%> (ø)

...surge/internal/core/SurgePartitionRouterImpl.scala
31.57% <0.00%> (ø)

...a/surge/internal/domain/SurgeMessagePipeline.scala
71.60% <ø> (ø)

.../surge/internal/kafka/KafkaProducerActorImpl.scala
86.37% <ø> (-0.36%)
:arrow_down:

...surge/internal/persistence/AggregateRefTrait.scala
100.00% <ø> (ø)

...ain/scala/surge/javadsl/command/SurgeCommand.scala
0.00% <ø> (ø)

... and 24 more

Continue to review full report at Codecov.

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


Various components: Remove obsolete Link in favor of Href

Description

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[X] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[X] The PR is submitted to the correct branch (dev).
[X] My code follows the code style of this project.
[ ] I've added relevant tests.

LGTM.
Btw, why are we not using something like <see cref="Href"/> etc? Is it not supported by docs?

It's not

Added to v7.0.0 Migration Guide #8447


Introduce init and modules.

We don't have an elegant way to call any actions, subscribe to global events or kickstart ourselves when our app loads. We can call actions after we return from app() but packages like the router, a mouse / keyboard interop interface, etc., could be exposed as modules and for their initialization needs, we can introduce a new init function. 🎉

By the way, modules are not like mixins as they would be scoped to a state & action slice, that you can't opt out from.

import { whopper } from "./whooper"
import { mouse } from "./mouse"

import state from "./myState"
import actions from "./myActions"
import view from "./myView"

app({
  init(state, actions) {
    // Subscribe to global events, start timers, fetch resources & more!
  },
  state,
  actions,
  view,
  modules: { whopper, mouse }
})

The modules whopper and mouse of this example can definitely expose their own init function. They would be called after the top-level init with a slice of the state and actions, e.g., state["whopper"] and actions["whopper"],  just how it works with actions.
/cc @lukejacksonn @zaceno @andyrj @Swizz

An issue with modules for me is, it basically means you could do app({ modules: {} }) and that's it? It kind of removes the point of having app({ state, actions, init }) because that's what modules gives you as well.
I mentioned it on Slack, that why add a framework API that gives me a way to do what I'd already be doing with init, state, actions?
const state = Object.assign({}, whopperState, mouseState)
const actions = Object.assign({}, whopperActions, mouseActions)

If modules does that for me, then just app(modules).
I'm confused by the proposal. :)

I like that modules gives you a clear path to convert from the old mixins structure.  It makes it clean without the implicit dependency problems of mixins.
:100:

@johanalkstal
In the case of:
app({ modules: { whopper } })

...its props would be scoped into "whopper", so it's effectively a black bock that can't talk to the outside. It's largely a convenience though.

@JorgeBucaran this is already doable with an HOA today, are you proposing adding support for this to core?

@okwolf Yes. The rationale is that while we could certainly shrug off modules, we can't ignore the need for init.
Here's the same without modules.
import { whopper } from "./whooper"
import { mouse } from "./mouse"
import { bandersnatch } from "./bandersnatch"

import state from "./myState"
import actions from "./myActions"
import view from "./myView"

const actions = app({
  view,
  state: {
    ...state,
    whopper: whopper.state,
    mouse: mouse.state,
    bandersnatch: bandersnatch.state
  },
  actions: {
    ...actions,
    whopper: whopper.actions,
    mouse: mouse.actions,
    bandersnatch: bandersnatch.actions
  }
})

// Subscribe to global events, start timers, fetch resources & more!
whopper.init(actions)
mouse.init(actions)
bandersnatch.init(actions)

I don't think the above is a very good user experience and since it will be a common thing to do, we might as well give users a built-in way to do this so they don't have to reach for a HOA.

@JorgeBucaran I'm on board with init, although I'm tempted to say let's let the community try out using HOAs for modules first and see what should make it back to core before speculating too much. Would init be allowed to set the state like its Elm cousin, or would you be required to call actions to do that?

Should modules be allowed to have modules in turn?

@zaceno Yes, modules should be recursive.

Thanks. @okwolf
I'll think about it and great question. I don't know. I think you can call an action for that, but what do you think?

There were some discussions about allowing state to return a function (actions) => state. If init() is allowed to set state, the thunk approach may be simpler/more consistent with other parts of app(). What do you think?

@JorgeBucaran @okwolf One of the uses of HOA as I saw it was to allow preprocessing/augmentation of initial state. It makes sense if init can do that also/instead, but I don't like the idea of calling actions before the app is done booting up. I'd like to see clean separation of setting up initial state and actual execution of the app (I e action-render-loop)

@zaceno One of the uses of HOA as I saw it was to allow preprocessing/augmentation of initial state.

Yes, but I would rather see HOAs being used for more meta things like debugging tools and maybe things like #306.

...I don't like the idea of calling actions before the app is done booting up.

Init happens after the app is done booting up. It has the same purpose as the former events.load, so you will and want to call actions inside init!

I'd like to see clean separation of setting up initial state and actual execution of the app (I e action-render-loop)

I think it's already clearly separated. You just put your state in the state prop. Now, modules offer an extra convenience for setting the state & actions and offer you encapsulation without introducing issues mixins had.

@okwolf If init() is allowed to set state, the thunk approach may be simpler/more consistent with other parts of app(). What do you think?

We could think of init as an action and one proposal was to nominate a special "init" action inside your actions instead of introducing a new app prop init, but we decided to go with a new app prop instead, so maybe we should not think of init as an action.

My previous comment was mostly against the idea of using actions inside init to set up initial state if that's what you need (because it introduces two different types of actions). Of course init will need access to the final actions object (otherwise how to set up access to mousemove events and similar).
So it was nothing against this proposal. I am for this proposal :)

@zaceno I'm super glad you are on board with this too. It was a struggle to figure this one out!

@JorgeBucaran How close do you feel this is to making it in? I mean are you uncertain about it and want to leave it up for discussion a while, or are you busy implementing it as we speak?
(Just asking because I'm about to publish my 0.14 compatible version of hyperapp partial -- just doing the hard part writing docs. But I might as well skip that if this is coming soon)

Digging the compriomise here! IMO this will be great for the community ecosystem.

Init
To me it sounds intuitive to be a top-level function instead of nested in actions, but I don't really need it yet.
Modules
While I was working on my portfolio website yesterday I had the thought of writing a HOA allowing a components property because of this use case:
import { app } from 'hyperapp';
import { Contact } from './Contact';

app({
  state: {
    contact: Contact.state
  },
  actions: {
    contact: Contact.actions
  },
  view: (state, actions) =>

      ...
      <Contact.view state={state.contact} actions={actions.contact} />
      ...

});

And here's what Contact.jsx basically looks like:
export const Contact = {
  state: ...,
  actions: ...,
  view: ({ state, actions }) => ... // Passed from the root level app
};

With the HOA, I wanted to do something like:
app({
  components: {
    contact: Contact
  },
  view: (state, actions) =>

      ...
      <Contact.view state={state.contact} actions={actions.contact} />
      ...

});

Notice I had to use Contact.view instead of Contact, as well as pass the state and actions properties, which forces me to write a different signature for Contact's view function.
Probably a crazy idea that wouldn't work at all
I understand modules is more about enabling things like the router, but ideally, what I would love to see is the following:
import { app } from 'hyperapp';
import { Contact } from './Contact';

const App = {
  init() {
    // Runs when the component is first rendered
  },
  state: ...,
  actions: ...,
  view: (state, actions) =>

      ...
      <Contact />
      ...

};

export const Actions = app(document.body, App);

And Contact.jsx:
export const Contact = {
  state: ...,
  actions: ...,
  view: (state, actions) => ...
};

A few notes:

Takes care of #410
Uses Contact instead of Contact.view in JSX
No explicit passing of state and actions properties from App.view to the Contact component
The view function of Contact has the same signature as App : (state, actions) (instead of ({ state, actions }))

Any thoughts?
(I also explored this train of thought in my Medium article Exploring Unidirectional Components in Mithril (part 1 — Hyperapp))

@vdsabev To me it sounds intuitive to be a top-level function instead of nested in actions, but I don't really need it yet.

It's going to be a top-level function just as you said. 🎉 😉
About modules VS HOAs, from the Slack @zaceno's words:

This actually gets at the core of the problem I saw with mixins (and why I wanted them renamed from plugins as they once were called).: they basically served two purposes: either to A) augment hyperapp’s features, or B) to modularize your app. Now, current modules is only for B, and we have HOA for A.

@JorgeBucaran well if we decide that init is allowed to set the initial state we could drop the state prop since they would be duplicative, correct?

@vdsabev

No explicit passing of state and actions properties from App.view to the Contact component
The view function of Contact has the same signature as App : (state, actions) (instead of ({ state, actions }))

Sounds exactly like "partial views" from https://github.com/zaceno/hyperapp-partial#partial-views
I've used this pattern a lot and come to like it. There are plenty of folks in the Hyperapp community who would advise against it because it is less explicit. On the other hand (imo) it makes the overall structure stand out more. It's a tradeoff.
FWIW the version of hyperapp-partial currently published is only compatible with hyperapp 0.12.1. I'll soon be publishing a new version for 0.14.0, or (when this makes it in) decomission partial and release a HOA that specifically ads the "partial views" (a k a "prewired components").

@okwolf ...well if we decide that init is allowed to set the initial state we could drop the state prop since they would be duplicative, correct?

That would be correct, but it's not the case. init can't set the state like actions, but it can by calling actions.

In case anyone wants to play with modules before they're released officially (I wanted to start on my prewired comopnents and event bus HOAs), here's a HOA that implements modules. It's tested, but not very thoroughly.
function modules (app) {
    function noop () {}

    function scopeInit (scope, fn) {
        return function (state, actions) {
            fn(state[scope], actions[scope])
        }
    }

    function collectModules(opts) {
        opts.state = opts.state || {}
        opts.actions = opts.actions || {}
        opts.modules = opts.modules || {}
        var inits = [].concat(opts.init || [])
        for (var name in opts.modules) {
            var modOpts = collectModules(opts.modules[name])
            opts.actions[name] = modOpts.actions || {}
            opts.state[name] = modOpts.state || {}
            inits.push(scopeInit(name, modOpts.init || noop))
        }
        opts.init = function (state, actions) {
            inits.forEach(function (i) {
                i(state, actions)
            })
        }
        return opts
    }

    return function (opts) {
        opts = collectModules(opts)
        var actions = app(opts)
        opts.init(opts.state, actions)
        return actions
    }
}

Another reason for sharing it is I want to make sure I have the right idea of how modules + init will work.

Is this available?
Can't find it on master branch. Neither a little doc alongside.

@augnustin  this issue talks about features that were available several months ago, but removed before Hyperapp hit 1.0.
The docs are up to date as far as I know.
You'll find a lot of experimentation if you dig through old issues and PRs, so keep that in mind.

Hello @SkaterDad
Thanks for quick reply. I thought this was not yet released but it is already gone! :smile:
I was looking for a way to load remote data on initial load. I went for:
const view = (state, actions) => (

 actions.syncState()} >

);

would that be the correct way? It feels like it is not the right place to do so and a init option would have felt more confortable but at least it works. :smile:

@augnustin  There was a lot of API changes last year!  It was hard to keep up with at times, but fun to follow along.
When you call the app() function, it returns your actions, so you can call one on the next line.
For example:
const myActions = app(initialState, actions, document.getElementById('app'))
myActions.syncState()

Here's the relevant part of the README: https://github.com/hyperapp/hyperapp#interoperability

@augnustin I'd go with what @SkaterDad said, because it keeps state management logic out of the view.
In case you're interested about modules and initialization with current versions of hyperapp, I've written a bit about it. Nothing official - just my approach, but in case you're interested:
https://zaceno.github.io/hypercraft/post/modular-apps/
https://zaceno.github.io/hypercraft/post/initialization/
https://zaceno.github.io/hypercraft/post/cross-namespace-action-calling/

Hello team! Thanks for your work! I think that  idea of framework with human readable :) code size is great!
What about an official way to create modules with hyperapp? Why do you abandon this functionality? May be I've missed something. Could someone please give an example of complex app based on hyperapp?
P.S. @zaceno 's way in the "hypercraft" looks ok but why not out of the box? Thank you.

Hi @dmitrykurmanov. This is issue is outdated and will only confuse you, unless you are interested in Hyperapp history! 😄
You can totally create modules with Hyperapp, then wire the state and actions into your app main state and actions manually.


pass USE_OPTIMIZE_FOR_ARCHITECTURE into rocksdb which calls it PORTABLE

Change is sensible, but devel has moved on. So I am closing this and make three new PRs for the current branches. See #5473 to #5475


Index Out of Range Exceptions

KSP 1.9.1
PersistentThrust 1.5.3
KSP.log
[LOG 16:07:06.448] PartLoader: Compiling Part 'Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block2_LES/bluedog_Apollo_Block2_LES'
[WRN 16:07:06.452] PartLoader Warning: Variable techtag not found in Part
[WRN 16:07:06.452] PartLoader Warning: Variable thermalEfficiency not found in Part
[WRN 16:07:06.452] PartLoader Warning: Variable thermalWaste not found in Part
[ERR 16:07:06.475] Module PersistentEngine threw during OnLoad: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at (wrapper stelemref) System.Object.virt_stelemref_class(intptr,object)
at PersistentThrust.PersistentEngine.FindModuleEngines () [0x00034] in <68e0182d2a894603aab77fbdeddd8896>:0
at PersistentThrust.PersistentEngine.OnLoad (ConfigNode node) [0x00007] in <68e0182d2a894603aab77fbdeddd8896>:0
at PartModule.Load (ConfigNode node) [0x001ab] in <55ba45dc3a43403382024deac8dcd0be>:0
[LOG 16:07:06.507] PartLoader: Part 'Bluedog_DB/Parts/Apollo/bluedog_Apollo_Block2_LES/bluedog_Apollo_Block2_LES' has no database record. Creating.
====='
[LOG 16:10:35.960] PartLoader: Part 'Pebkac/Parts/LaunchEscape/pebkac_mk1_LES/pkLES_EscapeMk1v2' has no database record. Creating.
[LOG 16:10:35.970] PartLoader: Compiling Part 'Pebkac/Parts/LaunchEscape/pebkac_mk2_LES/pkLES_mk2'
[ERR 16:10:36.001] Module PersistentEngine threw during OnLoad: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at (wrapper stelemref) System.Object.virt_stelemref_class(intptr,object)
at PersistentThrust.PersistentEngine.FindModuleEngines () [0x00034] in <68e0182d2a894603aab77fbdeddd8896>:0
at PersistentThrust.PersistentEngine.OnLoad (ConfigNode node) [0x00007] in <68e0182d2a894603aab77fbdeddd8896>:0
at PartModule.Load (ConfigNode node) [0x001ab] in <55ba45dc3a43403382024deac8dcd0be>:0
[LOG 16:10:36.035] PartLoader: Part 'Pebkac/Parts/LaunchEscape/pebkac_mk2_LES/pkLES_mk2' has no database record. Creating.
====='
[LOG 16:10:36.046] PartLoader: Compiling Part 'Pebkac/Parts/LaunchEscape/pebkac_mk2_LES_noBPC/pkLES_mk2_noBPC'
[ERR 16:10:36.077] Module PersistentEngine threw during OnLoad: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at (wrapper stelemref) System.Object.virt_stelemref_class(intptr,object)
at PersistentThrust.PersistentEngine.FindModuleEngines () [0x00034] in <68e0182d2a894603aab77fbdeddd8896>:0
at PersistentThrust.PersistentEngine.OnLoad (ConfigNode node) [0x00007] in <68e0182d2a894603aab77fbdeddd8896>:0
at PartModule.Load (ConfigNode node) [0x001ab] in <55ba45dc3a43403382024deac8dcd0be>:0
[LOG 16:10:36.110] PartLoader: Part 'Pebkac/Parts/LaunchEscape/pebkac_mk2_LES_noBPC/pkLES_mk2_noBPC' has no database record. Creating.

The problem is caused because there are 3 moduleEnginesFX partmodule present. Fo not it is hotfixed with 1.5.4 which disables itself on these engine

Okay, curious as to why do more than 2 modules cause a problem?

Because we assumed there would only be at most 2 modules  for the multimode engine

Ah, well, then the error makes sense.
Thanks.


Waiting for 2.3 minutes for article to load.

I've just waited for a long time for this article to load in Chrome:
https://docs.microsoft.com/en-us/azure/active-directory/application-access-self-service-how-to
Network console shows that it's the CSS causing the issue:
https://azure.microsoft.com/en-us/asset/menucss/
see screenshot

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

ID: 94025351-b9fe-5819-64fc-a2fe2686c7e2
Version Independent ID: f66ce467-0b71-0468-bc3c-55401f60e997
Content: How to configure self-service application assignment
Content Source: articles/active-directory/application-access-self-service-how-to.md
Service: active-directory
GitHub Login: @ajamess
Microsoft Alias: asteen

@shtratos could you try again? This page loads fine for me. You might have been experiencing a refresh issue with CDN.

Yeah, now it's taking half a second. The problem is that it's not the first time I encounter this issue.

On this page, or just docs.microsoft.com pages in general?

docs.microsoft.com pages in general

Since I haven't heard a response from the team, I'm going to suggest we close this out for now.

#please-close


acheive low file size ?

Respected developer,
I have been using mfc visual studio.
Whenever I need low file size I simply use "Use MFC in a Shared DLL". And it becomes 9mb's to 100kb's executable.
But here when I check shared libs option it becomes 6mb's to 1mb's.
Is there any way I could achieve low filesize as much as possible ?
I have hope because its uses MS VC++ and mfc also uses that same compiler.
Regards.

@graysuit why do you want to have as smallest executable as possible. Do you want to save executable on the floppy (1 mb)? In the past we had option to optimize executable by size, but until now nobody raised the concern about this issue. However, our optimization was not such significant as you expected.

@graysuit why do you want to have as smallest executable as possible. Do you want to save executable on the floppy (1 mb)? In the past we had option to optimize executable by size,

lol floppy xD, its was so old time when we use floppies.
The reason behind lower down file size as much as possible because
In our country, named pakistan have slow internet connections. Even in developed capital islamabad, net speed is around 300kb--500kb's per second. And other region have much more slower connections.
My project is big so I assume it would become more than 50 mb's.

but until now nobody raised the concern about this issue.

May be mostly your users are Europeans. And they have well electronic facilities which Asians don't have.

There is an option in the "Output mode". You need to click on the compiler name like "GCC Debug" or "Clang Debug" (or release if you selected to build release). Then you can select "All shared" for the build you have. It will produced shared library and your executable will be minimal. Mine for GUI example is around 0.15 Mb. However, you still need to deliver these libraries....

I am using Visual C++ . When I check shared libs it compiles fine and results 1.33 mb.
But when I try to compile with all shared libs, it show errors, Please see:
----- plugin/z ( GUI MSC17 SO SHARED MSC WIN32 ) (1 / 10)
adler32.c
compress.c
crc32.c
infback.c
deflate.c
inflate.c
inffast.c
inftrees.c
uncompr.c
trees.c
zutil.c
Creating library...
plugin/z: 11 file(s) built in (0:05.13), 467 msecs / file, duration = 5137 msecs
   Creating library D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\plugin_z.lib and object D:\upp
    \upp\out\examples\MSVS17.Gui.Shared.So\plugin_z.exp
D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\plugin_z.dll (36352 B) created in (0:02.98)
----- Core ( GUI MSC17 SO SHARED MSC WIN32 ) (2 / 10)
PCH: Core.h
Core.h
Cpu.cpp
Mt.cpp
heaputil.cpp
hheap.cpp
sheap.cpp
lheap.cpp
heap.cpp
heapdbg.cpp
StringFind.cpp
String.cpp
WString.cpp
StrUtil.cpp
Utf.cpp
SplitMerge.cpp
UnicodeInfo.cpp
CharSet.cpp
Bom.cpp
NetNode.cpp
App.cpp
Path.cpp
Huge.cpp
Stream.cpp
BlockStream.cpp
FileMapping.cpp
FilterStream.cpp
Log.cpp
Debug.cpp
Util.cpp
Ini.cpp
mathutil.cpp
Random.cpp
Speller.cpp
LocalProcess.cpp
Vcont.cpp
TimeDate.cpp
Index.cpp
ValueUtil.cpp
Value.cpp
Convert.cpp
Color.cpp
Format.cpp
Gtypes.cpp
Lang.cpp
LangInfo.cpp
t.cpp
parser.cpp
Xmlize.cpp
XML.cpp
Uuid.cpp
JSON.cpp
Ptr.cpp
z.cpp
Topic.cpp
CoWork.cpp
MD5.cpp
lz4.c
SHA256.cpp
xxhash.c
SHA1.cpp
xxHsh.cpp
MIME.cpp
InetUtil.cpp
Socket.cpp
WebSocket.cpp
Dli.cpp
Http.cpp
Win32Util.cpp
Creating library...
Core: 68 file(s) built in (0:41.14), 605 msecs / file, duration = 41149 msecs
   Creating library D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\Core.lib and object D:\upp\upp
    \out\examples\MSVS17.Gui.Shared.So\Core.exp
z.obj : error LNK2019: unresolved external symbol _deflate referenced in function "private: voi
    d __thiscall Upp::Zlib::Pump(bool)" (?Pump@Zlib@Upp@@AAEX_N@Z)
z.obj : error LNK2019: unresolved external symbol _deflateEnd referenced in function "private:
    void __thiscall Upp::Zlib::Free(void)" (?Free@Zlib@Upp@@AAEXXZ)
z.obj : error LNK2019: unresolved external symbol _inflate referenced in function "private: voi
    d __thiscall Upp::Zlib::Pump(bool)" (?Pump@Zlib@Upp@@AAEX_N@Z)
z.obj : error LNK2019: unresolved external symbol _inflateEnd referenced in function "private:
    void __thiscall Upp::Zlib::Free(void)" (?Free@Zlib@Upp@@AAEXXZ)
z.obj : error LNK2019: unresolved external symbol _crc32 referenced in function "public: __this
    call Upp::Crc32Stream::Crc32Stream(void)" (??0Crc32Stream@Upp@@QAE@XZ)
z.obj : error LNK2019: unresolved external symbol _deflateInit2_ referenced in function "public
    : void __thiscall Upp::Zlib::Compress(void)" (?Compress@Zlib@Upp@@QAEXXZ)
z.obj : error LNK2019: unresolved external symbol _inflateInit2_ referenced in function "public
    : void __thiscall Upp::Zlib::Decompress(void)" (?Decompress@Zlib@Upp@@QAEXXZ)
D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\Core.dll : fatal error LNK1120: 7 unresolved exter
    nals

There were errors. (0:49.61)

@graysuit why do you want to have as smallest executable as possible. Do you want to save executable on the floppy (1 mb)? In the past we had option to optimize executable by size,

lol floppy xD, its was so old time when we use floppies.
The reason behind lower down file size as much as possible because
In our country, named pakistan have slow internet connections. Even in developed capital islamabad, net speed is around 300kb--500kb's per second. And other region have much more slower connections.
My project is big so I assume it would become more than 50 mb's.

but until now nobody raised the concern about this issue.

May be mostly your users are Europeans. And they have well electronic facilities which Asians don't have.

There is an option in the "Output mode". You need to click on the compiler name like "GCC Debug" or "Clang Debug" (or release if you selected to build release). Then you can select "All shared" for the build you have. It will produced shared library and your executable will be minimal. Mine for GUI example is around 0.15 Mb. However, you still need to deliver these libraries....

I am using Visual C++ . When I check shared libs it compiles fine and results 1.33 mb.
But when I try to compile with all shared libs, it show errors, Please see:
----- plugin/z ( GUI MSC17 SO SHARED MSC WIN32 ) (1 / 10)
adler32.c
compress.c
crc32.c
infback.c
deflate.c
inflate.c
inffast.c
inftrees.c
uncompr.c
trees.c
zutil.c
Creating library...
plugin/z: 11 file(s) built in (0:05.13), 467 msecs / file, duration = 5137 msecs
   Creating library D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\plugin_z.lib and object D:\upp
    \upp\out\examples\MSVS17.Gui.Shared.So\plugin_z.exp
D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\plugin_z.dll (36352 B) created in (0:02.98)
----- Core ( GUI MSC17 SO SHARED MSC WIN32 ) (2 / 10)
PCH: Core.h
Core.h
Cpu.cpp
Mt.cpp
heaputil.cpp
hheap.cpp
sheap.cpp
lheap.cpp
heap.cpp
heapdbg.cpp
StringFind.cpp
String.cpp
WString.cpp
StrUtil.cpp
Utf.cpp
SplitMerge.cpp
UnicodeInfo.cpp
CharSet.cpp
Bom.cpp
NetNode.cpp
App.cpp
Path.cpp
Huge.cpp
Stream.cpp
BlockStream.cpp
FileMapping.cpp
FilterStream.cpp
Log.cpp
Debug.cpp
Util.cpp
Ini.cpp
mathutil.cpp
Random.cpp
Speller.cpp
LocalProcess.cpp
Vcont.cpp
TimeDate.cpp
Index.cpp
ValueUtil.cpp
Value.cpp
Convert.cpp
Color.cpp
Format.cpp
Gtypes.cpp
Lang.cpp
LangInfo.cpp
t.cpp
parser.cpp
Xmlize.cpp
XML.cpp
Uuid.cpp
JSON.cpp
Ptr.cpp
z.cpp
Topic.cpp
CoWork.cpp
MD5.cpp
lz4.c
SHA256.cpp
xxhash.c
SHA1.cpp
xxHsh.cpp
MIME.cpp
InetUtil.cpp
Socket.cpp
WebSocket.cpp
Dli.cpp
Http.cpp
Win32Util.cpp
Creating library...
Core: 68 file(s) built in (0:41.14), 605 msecs / file, duration = 41149 msecs
   Creating library D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\Core.lib and object D:\upp\upp
    \out\examples\MSVS17.Gui.Shared.So\Core.exp
z.obj : error LNK2019: unresolved external symbol _deflate referenced in function "private: voi
    d __thiscall Upp::Zlib::Pump(bool)" (?Pump@Zlib@Upp@@AAEX_N@Z)
z.obj : error LNK2019: unresolved external symbol _deflateEnd referenced in function "private:
    void __thiscall Upp::Zlib::Free(void)" (?Free@Zlib@Upp@@AAEXXZ)
z.obj : error LNK2019: unresolved external symbol _inflate referenced in function "private: voi
    d __thiscall Upp::Zlib::Pump(bool)" (?Pump@Zlib@Upp@@AAEX_N@Z)
z.obj : error LNK2019: unresolved external symbol _inflateEnd referenced in function "private:
    void __thiscall Upp::Zlib::Free(void)" (?Free@Zlib@Upp@@AAEXXZ)
z.obj : error LNK2019: unresolved external symbol _crc32 referenced in function "public: __this
    call Upp::Crc32Stream::Crc32Stream(void)" (??0Crc32Stream@Upp@@QAE@XZ)
z.obj : error LNK2019: unresolved external symbol _deflateInit2_ referenced in function "public
    : void __thiscall Upp::Zlib::Compress(void)" (?Compress@Zlib@Upp@@QAEXXZ)
z.obj : error LNK2019: unresolved external symbol _inflateInit2_ referenced in function "public
    : void __thiscall Upp::Zlib::Decompress(void)" (?Decompress@Zlib@Upp@@QAEXXZ)
D:\upp\upp\out\examples\MSVS17.Gui.Shared.So\Core.dll : fatal error LNK1120: 7 unresolved exter
    nals

There were errors. (0:49.61)


feat: Add Noto Sans font

Open Sans:

Noto Sans Display:

Noto Sans (not variable):

Issue #625

Closing this because of merge conflicts. Adding these fonts with #672


(BC Break) psr logger updates

Closes: https://github.com/GoogleCloudPlatform/google-cloud-php/issues/267
Messages logged through the PsrLogger now log as jsonPayload with a customizable key containing the message contents instead of as textPayload. Placeholders are supported and any additional info in the context array is to be logged as part of the jsonPayload. In order to support logging stackdriver specific data (such as labels) the stackdriverOptions key has been reserved.
Much thanks to @CaptainJojo for the original report.

Thanks


chore(atenlib): use opset18 (#239)

Stack from ghstack (oldest at bottom):

-> #239

@gramalingam sorry I merged the old one into the wrong branch.


Idea: portal collision handling

Ignore collisions with portal wall when object in portal bounding box

Add object that portal is on to its own group, like orange group or blue group

If object in bb, then set collision mask of object to exclude the corresponding group

Define 2 bbs of portal, one which extends outside of object and one that is only behind object

|   |   ||

Object has passed through portal when in both bbs, then we teleport them to the other one

naming: let's call the object that a portal is on the "host object"

Refer to:
https://github.com/schteppe/cannon.js/blob/master/demos/collisionFilter.html


add_layer doesn't work with GeoTIFF file converted from xarray Dataset

I'm trying to add the layer using GeoTIFF file converted from xarray Dataset. However, it isn't shown in the map.
import numpy as np
import xarray as xr
import rioxarray
from localtileserver import TileClient, get_leaflet_tile_layer, examples
from ipyleaflet import Map

data = np.random.randint(100, size = (50, 50))
grid_coords = {'lat': np.arange(0, 50, 1), 'lon': np.arange(0, 50, 1)}

da_1 = xr.DataArray(data, dims=['lat', 'lon'], coords=grid_coords).rename('1')
da_2 = xr.DataArray(data*2, dims=['lat', 'lon'], coords=grid_coords).rename('2')

output = xr.merge([da_1, da_2])
output.rio.set_spatial_dims(x_dim='lon', y_dim='lat').rio.to_raster('test.tif')

client = TileClient('test.tif')

# Create ipyleaflet TileLayer from that server
t = get_leaflet_tile_layer(client, band=1)

# Create ipyleaflet map, add tile layer, and display
m = Map(center=client.center(), zoom=client.default_zoom)
m.add_layer(t)
m

Thanks! BTW, how did you usually create GeoTIFF files for localtileserver? Maybe conversion leads to something wrong.

There's definitely a bug specifically in localtileservers' handling of this data type that needs to be addressed, but maybe using numpy_to_cog or using rio-cogeo to convert the saved TIF to a cog could mitigate this in the meantime

how did you usually create GeoTIFF files for localtileserver?

I usually use rasterio directly

You can also use leafmap.image_to_cog() to convert an image to COG.
https://leafmap.org/common/#leafmap.common.image_to_cog

I should have some free time soon to dive into this and resolve it. I have some suspicions of what's happening... stay tuned.

I realize I didn't pass the bound to numpy_to_cog . Here's the update code:
import numpy as np
import xarray as xr
from localtileserver import TileClient, get_leaflet_tile_layer
from ipyleaflet import Map
import leafmap

data = np.random.randint(100, size = (50, 50))
lat = np.arange(0, 50, 1)
lon = np.arange(0, 50, 1)
grid_coords = {'lat': lat, 'lon': lon}

da_1 = xr.DataArray(data, dims=['lat', 'lon'], coords=grid_coords).rename('1')
da_2 = xr.DataArray(data*2, dims=['lat', 'lon'], coords=grid_coords).rename('2')

output = xr.merge([da_1, da_2])

leafmap.numpy_to_cog(output.to_array().values, 'test.tif', bounds=(lon.min(), lat.min(), lon.max(),lat.max()), dtype='float32')

client = TileClient('test.tif')

# Create ipyleaflet TileLayer from that server
t = get_leaflet_tile_layer(client, band=1)

# Create ipyleaflet map, add tile layer, and display
m = Map(center=client.center(), zoom=2)#client.default_zoom)
m.add_layer(t)
m

I can see the data shown now. However, it only works with zoom=2. If I zoom in or out, the tile will disappear.

The issue with it only appearing at certain zoom levels is separate from the original issue. To fix this, you need to increase both max_native_zoom and max_zoom  when using get_leaflet_tile_layer(). I actually had this same issue the other day and pushed a fix that isn't release in https://github.com/banesullivan/localtileserver/commit/ff70753cae62e3b51fb79ea030a56d11552c99c1
As a quick fix, use max_zoom=30 and max_native_zoom=30

In leafmap, I already fixed this. You should be able to use it directly without setting these two parameters.
https://github.com/opengeos/leafmap/blob/master/leafmap/common.py#L2813

This will be fixed in the next release (0.10.0) given the switch to the more robust rio-tiler backend
(verified example in https://github.com/banesullivan/localtileserver/issues/159#issuecomment-1594483850)


[Feature Request] Create NPC abilities by dragging feat/feature items onto the NPC

I frequently have a use case where I'm designing NPCs which have abilities which replicate feats or features which are available to PCs.
Currently, that involves importing the feat/feature from the compendium, adding a blank action to the NPC, copying and pasting the text of the feat/feature, adjusting the number of actions it takes to use (if any) and (most significantly) adding rule elements and pasting in their JSON data.
This would all be much simpler if it were possible to simply drag a feat/feature onto an NPC stat block and have it get added to the NPC as either an action or passive (depending on the feat/feature in question).
Obviously not every PC feat or feature would instantly work perfectly on an NPC; some have predicates that end up requiring other PC-specific features and such. But this would work out of the box for many abilities as-is (e.g., the many feats that grant new actions or reactions, which are precisely the ones most likely to be useful to an NPC), and would be a huge time savings for others (which might just need some DCs manually set or a couple predicates adjusted in their rule elements - still far simpler than recreating the whole ability from scratch).

We recommend making NPCs using PC rules (see here for guidance). It's already a shaky proposition to copy the contents--including rule elements--of a feat to an NPC, and it will only get worse as system automation improves.


Fix typo

@changeworld : Thanks for your contribution! The author, @zhiweiwangmsft, has been notified to review your proposed change.

@changeworld - thank you for helping improve the content!
@zhiweiwangmsft - I verified this fix - html edit to make the link work.


Support Yosemite's dark mode with b&w icon

I guess the likelihood of a 0.5.1 compiled release is out of the question?

@rderharo,
Sorry for the long wait! I wanted to wait till I had finished the Swift re-write and just release that, but I kept getting sidetracked.
So, I've archived and signed a copy of both 0.5.0 and 0.5.1. I've added tags for both of them, and uploaded the binaries to the Releases page.
I've also updated the website with the latest information and links.
— @citruspi

Oh wow, thanks for the quick response! I'll give it a shot tonight.

Unfortunately I cannot seem to launch 0.5.1. I downloaded it today and I get this error message when I try to launch it:

"Spotify Notifications.app" is damaged and can't be opened. You should move it to the Trash."


Offten Errors with DashSegments!

videos from youtube with DashSegments not download full very offten. download some part video-stream and interrupted with error 404. may automatically restart such downloads? since these videos may download, but you have to restart the download several times manually! if the video to be downloaded in automatic mode, they can already be removed from YouTube and download them again there is no way!

Duplicate of #8466.


Smarter make tasks / tooling

I just ran make test which can take a while, and since I didn't have port forwarding running, it couldn't connect to the deployed pachd instance.
We should
a) provide better tooling for portforwarding (and restarts if you're like me and your laptop kills ssh when its asleep)
and
b) update the make tasks that require connecting to test that they can connect ASAP so that it doesn't take until towards the end of the test to find out your setup is wrong. Perhaps w the right port forwarding tooling, they can use that to check the connection up front

Bandaid for now -- exposed our bash helpers under contributing/bash_helpers


add sen -- tui for docker

Amazing! Thank you. I really love those fancy cli tools. Keep them coming if you know more!

As mentioned in readme of sen, there's also ctop.


Example pull request

This is test pull request. Plz aprov

To review (and approve a pull request), go to the 'Files Changed' tab and press 'Review changes' at the top right corner.
I have setup the repo so that:

No one can push directly to main. You must use a pull request.
A pull request can only be merged AFTER reviewed and approved by another person.

test apprv


Handle nullable feature deser

Thanks Andy. Closing this in favor of https://github.com/chalk-ai/chalk-java/pull/77


Merge mutations during apply mutations step if possible

Haeinsa applies mutations of transaction to rows on commit phase. If transaction contains several mutations for certain row, Haeinsa applies mutations step by step with checkAndPut and checkAndDelete operation. We can optimize this step.
Let's assume that certain transaction should applies following mutations to certain row:

put(row, col1, value1)
put(row, col2, value2)
delete(row, col1)
put(row, col3, value3)
put(row, col4, value4)
delete(row, col3)
put(row, col5, value5)

Here is comparison of how Haeinsa works on current version and optimized version:

AS-IS Haeinsa
TO-BE Haeinsa

checkAndPut(row, [{col1, value1}, {col2, value2}, {lock, newLock})
checkAndDelete(row, [col1])
checkAndPut(row, [{col3, value3}, {col4, value4}])
checkAndDelete(row, [col3])
checkAndPut(row, [{col5, value5}], {lock, newLock})

checkAndPut(row, [{col2, value2}, {lock, newLock}])
checkAndDelete(row, [col1, col3])
checkAndPut(row, [{col1, value4}, {col2, value5}, {lock, newLock}])

Series of operations above have the same result but TO-BE has small number of operations which means faster. I didn't mention deleteFamily operation on the example, but this should be consider too.
Note that this optimization is effective on complicate transaction. With this merging mutation algorithm, we can achieve faster execution of complicate transaction.

I close this issue since #49 merged.


nuxt/fonts does not honour the nuxt baseUrl setting

When I set the nuxt baseURL (I set it at run time via the NUXT_APP_BASE_URL env var), nuxt/fonts can no longer access its cached fonts.
It appears that it always sets the font url to start with /_fonts no matter what, rather than /_fonts.  While I didn't try I assume cdnURL will also not work with nuxt fonts.
While I need to set the NUXT_APP_BASE_URL at runtime, as a test I tried rebuilding the app with the fonts.assets.prefix setting hard coded to /prefix/_fonts and running it with NUXT_APP_BASE_URL=/prefix/, but fonts.assets.prefix changed the path of the fonts within the public directory, not the URL through which the fonts are accessed.
Is there any way to use nuxt fonts with a baseUrl set to anything but '/'?

Can confirm I'm seeing this too.  Have a root app running at "/" where @nuxt/font works perfectly.  Simply set the base URL to something else and the fonts don't load

Guys, any updates? I've got the same issue after setting baseURL up.

Hello, we have the same problem. We need to expose our Nuxt application on a subpath of our domain, so this would greatly help.

@danielroe hope you are have to figure out this issue many thank

so nuxt fonts currently not useable with baseurl?


Why does xr.apply_ufunc support numpy/dask.arrays?

What is your issue?
@keewis pointed out that it's weird that xarray.apply_ufunc supports passing numpy/dask arrays directly, and I'm inclined to agree. I don't understand why we do, and think we should consider removing that feature.
Two arguments in favour of removing it:

It exposes users to transposition errors

Consider this example:
In [1]: import xarray as xr

In [2]: import numpy as np

In [3]: arr = np.arange(12).reshape(3, 4)

In [4]: def mean(obj, dim):
   ...:     # note: apply always moves core dimensions to the end
   ...:     return xr.apply_ufunc(
   ...:         np.mean, obj, input_core_dims=[[dim]], kwargs={"axis": -1}
   ...:     )
   ...:

In [5]: mean(arr, dim='time')
Out[5]: array([1.5, 5.5, 9.5])

In [6]: mean(arr.T, dim='time')
Out[6]: array([4., 5., 6., 7.])

Transposing the input leads to a different result, with the value of the dim kwarg effectively ignored. This kind of error is what xarray code is supposed to prevent by design.

There is an alternative input pattern that doesn't require accepting bare arrays

Instead, any numpy/dask array can just be wrapped up into an xarray Variable/NamedArray before passing it to apply_ufunc.
In [7]: from xarray.core.variable import Variable

In [8]: var = Variable(data=arr, dims=['time', 'space'])

In [9]: mean(var, dim='time')
Out[9]:
<xarray.Variable (space: 4)> Size: 32B
array([4., 5., 6., 7.])

In [10]: mean(var.T, dim='time')
Out[10]:
<xarray.Variable (space: 4)> Size: 32B
array([4., 5., 6., 7.])

This now guards against the transposition error, and puts the onus on the user to be clear about which axes of their array correspond to which dimension.
With Variable/NamedArray as public API, this latter pattern can handle every case that passing bare arrays in could.

(Note 1: We also accept raw scalars, but this doesn't expose anyone to transposition errors.)
(Note 2: In a quick scan of the apply_ufunc docstring, the docs on it in computation.rst, and the extensive guide that @dcherian wrote in the xarray tutorial repository, I can't see any examples that actually pass bare arrays to apply_ufunc.)

I find myself defining two versions of functions often because I need to use the numpy versions with scipy.optimise and use the xarray versions as a convenience because it is cleaner with named dims. So this topic interests me. Dressing a numpy with Variable and using an xarray function is slower that the apply_ufunc and both slower than using a numpy ufunc.
rnd = np.random.default_rng()
x1 = rnd.normal(size=(10, 100))
f1 = lambda x: x.mean(axis=-1)
x2 = xr.Variable(dims=["a", "b"], data=x1)
f2 = lambda x: xr.apply_ufunc(np.mean, x,
                              input_core_dims=[["b"]],
                              output_core_dims=[[]],
                              output_dtypes=[float],
                              kwargs={"axis": -1})
%timeit f1(x1)
%timeit f2(x2)
%timeit f2(x1)

Hi @gmoutso - I'm not clear from your comment whether you are for or against this change!

Dressing a numpy with Variable and using an xarray function is slower that the apply_ufunc and both slower than using a numpy ufunc.

Well yes, there will be some overhead from wrapping with a higher-level API. But that overhead shouldn't scale with the size of the array. Here's results when I tried your just now for arrays of different sizes.
sizes = [10, 100, 1000, 10000]

import time

times_np_fn_np_arr = []
times_xr_fn_np_arr = []
times_xr_fn_xr_var = []
for size in sizes:
    np_arr = rnd.normal(size=(size, 10 * size))
    xr_var = xr.Variable(dims=["a", "b"], data=np_arr)

    start_time = time.time()
    np_fn(np_arr)
    times_np_fn_np_arr.append(time.time() - start_time)

    start_time = time.time()
    xr_fn(np_arr)
    times_xr_fn_np_arr.append(time.time() - start_time)

    start_time = time.time()
    xr_fn(xr_var)
    times_xr_fn_xr_var.append(time.time() - start_time)

import matplotlib.pyplot as plt

# Plot the results
plt.figure(figsize=(7, 5))
plt.plot(sizes, times_np_fn_np_arr, label='np_fn_np_arr', marker='o')
plt.plot(sizes, times_xr_fn_np_arr, label='xr_fn_np_arr', marker='o')
plt.plot(sizes, times_xr_fn_xr_var, label='xr_fn_xr_var', marker='o')
plt.xlabel('Size')
plt.ylabel('Execution Time (seconds)')
plt.title('Execution Time vs. Size for Different Functions')
plt.xscale('log')
plt.yscale('log')
plt.legend()
plt.grid(True)
plt.show()

As expected they converge to the same execution time, so I don't think this overhead is a problem.

Hi @TomNicholas . Thank you for your reply and benchmarks.

I'm not clear from your comment whether you are for or against this change!

Actually I am neither for or against. I wanted to register why this topic would interest me, even if it is not clear to me either!
Currently I define two versions of functions for the same calculation. One for numpy for use in atomic calculations that will be wrapped with a scipy.optimise function. The other for xarray because it is easier to write, clearer to use, and much easier to use with xarray arrays. Although the time difference is due to the overhead (as your plots suggest), this is not good enough for me because scipy.optimise will call the function many many times for a single call. Eg minimise an output (here an atomic float as all output dims are output_core_dims that are none - the objective of minimise).
Using xarray functions with numpy arrays (as the topic is here) is potentially useful but too slow in my use compared to pure numpy. I am not suggesting a solution, only registering my interest if useful to the discussion. Thank you!


CONJUBILEE-2971 : Add support for config options command

Description
What is the intent of this change and why is it being made?

To introduce new command for fetching config options

How Has This Been Tested?

Functional testing and unit testing

How can this change be verified in dev/stage/production?
e.g Looking for certain data in logs, monitoring resources
Deployment requirements
Are there any special steps that must be taken when rolling this change out?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Bower gets an "Empty reply from server" while downloading ui-router

Today I was building my project with bower but this is what it gave to me while it was downloading ui-router from git:
bower angular-ui-router#~0.3.1                ECMDERR Failed to execute "git ls-remote --tags --heads https://github.com/angular-ui/angular-ui-router-bower.git", exit code of #128 fatal: unable to access 'https://github.com/angular-ui/angular-ui-router-bower.git/': Empty reply from server

Additional error details:
fatal: unable to access 'https://github.com/angular-ui/angular-ui-router-bower.git/': Empty reply from server

It's pretty urgent, so thank you for help

It was an issue on my build server. Sorry.


proxy: Detect config file changes with hashes rather than timestamps

This PR changes the way the polling FS watcher detects changes in TLS
config files. Previously, we used the last modified timestamp to
detect changes. However, this didn't work correctly on operating systems
which report timestamps with second precision. Now, we detect changes by
comparing the current and previous SHA-384 hashes of the file's contents.
This allows us to detect changes without relying on (unreliable) OS
timestamps.
Closes #1090.
Signed-off-by: Eliza Weisman<EMAIL_ADDRESS>

As a side note, I want to point out that, while my branch adding tests for filesystem watching isn't quite ready for prime-time yet, I have ran the tests against this branch as well as master, and they do pass. Furthermore, this branch still passes when the thread::sleep calls added to work around #1090 are removed, confirming that it fixes that issue.


SPFx ApplicationCustomizer not executed on Modern NewForm.aspx

Re-creating this ticket as per conversation with Vesa Juvonen. It was raised in issue #2523
but not yet resolved.
Category
Bug
Expected or Desired Behavior
An Alert from ApplicationCustomizer sample has to be shown or custom debugger fired when dev tools are opened on default modern NewForm.aspx.
Observed Behavior
No alert and debugger on default modern NewForm.aspx, even no ApplicationCustomizer scripts loaded when opened network tab in chrome browser dev tools as well in debug mode no prompt to enable debug scripts, however on default modern EditForm.aspx, DispForm.aspx alert is shown and debugger fired, from dev tools scripts are loaded as well as on home page and custom site pages everything works.
Steps to Reproduce
Deploy ApplicationCustomizer sample with following onInit method:
@override
public onInit(): Promise {
Log.info(LOG_SOURCE, Initialized ${strings.Title});
debugger;
let message: string = this.properties.testMessage;
if (!message) {
message = '(No properties were provided.)';
}
Dialog.alert(`Hello from ${strings.Title}:\n\n${message}`);

return Promise.resolve();

}
And try to install it through app catalog or run using gulp serve on SharePoint online web site then visit on custom list default modern NewForm.aspx
Submission Guidelines
Looks like something special happens only on NewForm.aspx, I have tried as well on different site templates and got the same behavior, Please let me know how can I inject script to default modern NewForm.aspx on custom list or if it is a bug then approximately when it will be fixed and rolled out ?

@brettlonsdale This issue is fixed. Please check after mid-November to verify. Thanks

Hi, @ahackettms any update on this issue? Any workaround for it?
Will fix be included in next SPFx relesase?


x/sys: trimmed string socket opt on linux

Bug description
Func GetsockoptString from x/sys/unix package always removes the last byte from the buffer, which in some cases leads to a truncated option value.
From unix man page:
              The security context string may include a terminating null
              character in the returned length, but is not guaranteed to
              do so: a security context "foo" might be represented as
              either {'f','o','o'} of length 3 or {'f','o','o','\0'} of
              length 4, which are considered to be interchangeable.  The
              string is printable, does not contain non-terminating null
              characters, and is in an unspecified encoding (in
              particular, it is not guaranteed to be ASCII or UTF-8).

But the implementation (this patch) always cuts the last byte without checking it for the null character.
What version of Go are you using (go version)?

$ go version
go version go1.21.1

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?

The service code is running on the linux with apparmor enabled. It just reads the app armor label from the Unix socket connection by calling:
var getSocketSecurityLabel = func(rc syscall.RawConn) (string, error) {
	var label string
	var readLabelError error
	err := rc.Control(func(fd uintptr) {
		// Read the apparmor label from the socket option SO_PEERSEC
		label, readLabelError = unix.GetsockoptString(int(fd), syscall.SOL_SOCKET, unix.SO_PEERSEC)
	})

	if err != nil {
		return "", err
	}
	if readLabelError != nil {
		return "", readLabelError
	}

	return label, nil
}

What did you expect to see?

For unconfined application the expected output is unconfined
For snap running in development mode the expected output is appname (complain)
For a labeled app the expected output is full app name

What did you see instead?

For unconfined application the real output is unconfine
For snap running in development mode the real output is appname (complain
For a labeled app the real output miss the last char of the name

The actual fix seems to be pretty short:
// GetsockoptString returns the string value of the socket option opt for the
// socket associated with fd at the given socket level.
func GetsockoptString(fd, level, opt int) (string, error) {
	buf := make([]byte, 256)
	vallen := _Socklen(len(buf))
	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
	if err != nil {
		if err == ERANGE {
			buf = make([]byte, vallen)
			err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
		}
		if err != nil {
			return "", err
		}
	}
	if buf[vallen-1] == 0 {
		return string(buf[:vallen-1]), nil
	} else {
		return string(buf[:vallen]), nil
	}
}

If this looks good I can submit a patch!

@golang/runtime

Please do submit a patch, and if at all possible include a test that fails without the patch.  Thanks.


colors

would it be possible to change the color shown? It would be nice to be able to customize the color according to the scene or game. Thanks for your work

I don't know about customizing it for every scene, but I will look into adding a color picker.

Maybe related, a setting for each fa-icon would be cool, so that I can color code them. The border of the tooltip can then be changed with the player color or a color picker.

Maybe this will work for you guys


WIP Perf/2022 06/optimize playhead rendering

This is just a proof of concept showing how much work was involved in moving work away from React reconciliation over to derivation bodies.

Closing in favor of an upcoming PR


Implement the Q1 2021 small features release in the VM/AOT

Implementation issue for this set of features.
cc @a-siva @mkustermann @mraleph @franklinyow

See also.

Here are the 3 sub tracking issues for this

Implement the triple shift operator https://github.com/dart-lang/sdk/issues/30892
Allow generic function types as type arguments https://github.com/dart-lang/sdk/issues/44930
Allow type arguments on annotations https://github.com/dart-lang/sdk/issues/44931

/cc @alexmarkov @crelier

@a-siva any updates here?

@crelier is waiting for the CFE implementation for generic types as type arguments to be done so he can verify it on the VM

#44930 is closed.

The language features are all implemented, we will be tracking test failures in these new features in individual issues for each failure.


Remove version: Jackett.Jackett version 0.21.446

404 - release deleted
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/Jackett/Jackett/releases/download/v0.21.446/Jackett.Installer.Windows.exe
Response Error: The remote server returned an error: (404) Not Found.
(Automated message - build 918)


Tests throw error since version 2.32.0

Dear Curve community!
I've noticed that the package has been converted to use ESM syntax since version 2.32.0 which is real nice.
However the updated version throws an error when I'm running tests under jest:
Test suite failed to run

    Jest encountered an unexpected token

    Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

    Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

    By default "node_modules" folder is ignored by transformers.

    Here's what you can do:
     • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
     • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/configuration
    For information about custom transformations, see:
    https://jestjs.io/docs/code-transformation

    Details:

    node_modules\.pnpm\@curvefi+api@2.36.0_debug@4.3.4\node_modules\@curvefi\api\lib\index.js:37
    import { PoolTemplate, getPool } from "./pools/index.js";
    ^^^^^^

    SyntaxError: Cannot use import statement outside a module

    > 1 | import curve from '@curvefi/api';
        | ^
      2 | import { NETWORK_CONSTANTS } from '@curvefi/api/lib/curve';
      3 | import { IDict, IProfit } from '@curvefi/api/lib/interfaces';
      4 | import { PoolTemplate } from '@curvefi/api/lib/pools';

      at Runtime.createScriptFromCode (../../node_modules/.pnpm/jest-runtime@29.5.0/node_modules/jest-runtime/build/index.js:1495:14)

I'm assuming this issue had been foreseen before you guys made the transition and I'm simply lacking the knowledge on how to make a ESM package running under jest.
Easy googling solutions with tweaks involving babel-jest, modifications in tsconfig and jest.config.ts did not unfortunately help.
I was wondering if anyone already encountered and has that issue resolved.
I'm running tests using pnpm and nx like that:
pnpm exec nx run app-name:test --test-file be/app-name/src/curve/curve.service.spec.ts --skip-nx-cache
It works pretty much same as "npx jest be/app-name/src/curve/curve.service.spec.ts" and throws exactly same error.
Thank you!

If you have found how to solve this, please let me know

I, unfortunately, have not resolved it. Also the app development I was working on is currently on pause.


Multiple-value parameter

Hi there,
I've been facing issue passing multiple value parameter using chai-request which merely make use of superagent for http requests:
request("myUrl").get("/v1/skus?id=123&id=456")...
this request got encoded and the server receives id[0]=123&id[1]=456 which is totally different than the expected format by the server.
Otherwise - using .query({id: "123", id: "456"}) or
.query({id: "123"})
.query({id: "456"})
override the initial value so only one param is getting sent.
Is there any reason the query param list get encoded ? What I want to achieve is this:
/skus?id=1&id=2&id=3.....
I might be doing it wrong - in this case could you please advice how to pass multiple param values ?
Cheers

I am having this same issue using the supertest which uses this library!
I am writing a test where I want to pass multiple values into the same query string item to make it an array. I am using the connects library that likes me add [] to the end and makes sure it is an array on the server side. If I pass just one like this:
request(app)
    .get('/balance_records/?types[]=BalanceCredit')

Supertest does the correct thing and doesn't add anything to the url:
/api/v1/accounts/1-VzLqGc7vJK/balance_records/?types%5B%5D=BalanceCredit
But if I pass mutiple like this:
request(app)
    .get('/balance_records/?types[]=BalanceCredit&types[]=BalanceDebit')

//or
request(app)
    .get('/balance_records/')
    .query({ 'types[]': ['BalanceCredit', 'BalanceDebit'] })

Supertest injects array elements like so:
/api/v1/accounts/1-VzLqGc7vJK/balance_records/?types%5B%5D[0]=BalanceCredit&types%5B%5D[1]=BalanceDebit
What I need is:
/api/v1/accounts/1-VzLqGc7vJK/balance_records/?types%5B%5D=BalanceCredit&types%5B%5D=BalanceDebit
Is there a way to turn this off or remove it. At least adding an option to override the default and allow for this way of handling arrays would be nice.

I have also run into this.  Was there any resolution to this?

I just did like below and it seem to work.
request(app)
.get('/balance_records/')
.query({ types: ['FlashDisplayCreative', 'ImageDisplayCreative'] })

What query string did it generate?  Does it produce:
?types[0]=FlashDisplayCreative&types[1]=ImageDisplayCreative

or
?types=FlashDisplayCreative&types=ImageDisplayCreative

I'm using the version bundled with traverson right now (which is, presumably, an older version).

Any updates? This problem is now urgent

It does the latter.
BTW: you can use whatever serialization you want using your own code/library, and then set the query as a string.

I'm still running into this and I can't seem to just pass a string....


Information about running multiple bam files

Hi @kcleal ,
I need some information regarding running multiple BAM files (around 10, and possibly up to 100 in the future). Is it possible to run them using a text file [like job array] with the locations provided inside it? If so, could you please guide me on how to set this up, or if there's a specific parameter in dysgu I need to address for it?
Thank you for your assistance.

Hi @poddarharsh15,
Im a little confused about what you mean. If you have 10 separate samples, you need to run dysgu once for each sample, before filtering/merging etc.

I apologize for the confusion. What I meant to ask is how to specify an input file to run Dysgu on several samples.
What I understood from your reply, it appears that I need to run Dysgu for each sample separately and then analyze the results afterward. Is that correct?

Yes that is correct


Update README.md

Add syntax highlighting.

Coverage remained the same at 96.875% when pulling 6186539f291fd518a2a9000500b807b48b132028 on glaucocustodio:master into ef5750df1a752cdf1dbf973d8c101a1c2524e3b7 on mgsnova:master.

Looks better now, thanks!


about the flops

May I ask if there are any methods to reduce FLOPS? I believe that for lightweight networks, FLOPS is a more crucial consideration

@seamoonlight-YBY Thanks, the main idea of this work is to explain why star works, hence star op. is the main focus and we didn't focus on FLOPs.
Here are some tips to reduce FLOPs in network design:

Feature Re-use method as summerized in Table 1.
Put more blocks / params in the later stages (low resolution), like stage 3 or stage 4.

Hops these tips can help.


make stable compile after syntex update

Right now, a checkout of rs-es or a cargo update on a project using rs-es 0.3.1 does not compile on stable (and potentially on others channels).
At the same time, remove 2 warnings.

Coverage remained the same at 50.246% when pulling 8732593d794998d1f69b3507de407831b8c9c39b on TeXitoi:make_stable_compile into<PHONE_NUMBER>738f80eab99de1cba77cad7465a945 on benashford:master.

Cool, thanks for this!
It looks like the change of serde_codegen from 0.7.1 to 0.7.2 pulls in a newer quasi and that introduces the build problems.  I might lock that dependency to prevent this happening in later versions.
In the meantime I'll merge this and push a new release.
Thanks again.

Published as 0.3.2

Great! Thanks for the reactivity.


Error self.context.myFunction using @Output

Hi,
I'm getting a problem with the @Output directive. This is my code:
representatives-list.component.ts
@Output() selected = new EventEmitter();
showRepresentative(event){
     this.selected.emit(event.data);
}

app.component.html
<ar-representatives-list (selected)="onRepresentativeSelected(data)"></ar-representatives-list>
app.component.ts
onRepresentativeSelected(data){
	console.log(data);
}

When the selected event it's emitted, it returns the following error:
Uncaught TypeError: self.context.onRepresentativeSelected is not a function
What's happening?

What does your problem have to do with this plugin ?


Improve OHM default style attrbitution

Pulling over a loose end from long ago #498, the attribution for the main OHM map style is incomplete because we don't cite the sources of hillshade or landcover. The latter is a requirement of use. The former is just nice and improved clarity
This is a better, complete attribution forthe MAIN mapstyle:

OpenHistoricalMap, © ESA 2010 and UCLouvain, U.S. Geological Survey (USGS)

For Railway, Woodblock, and Japanese Scroll, we should just have this:

OpenHistoricalMap

Should this go on the main slippy map or the Copyright page, or both? That page is somewhat confusing, a mix between OHM acknowledging its sources and OHM telling others how to acknowledge OHM. But it seems to be a place for acknowledgements that don’t have to go directly on the map, as the ODbL requires.


Code using mvccpb.KeyValue fail to compile

After https://github.com/coreos/etcd/commit/80d15948bcfc93aabd2c5245d7993c8a9e76bf8f, code using mvccpb.KeyValue explicitly fail to compile since it is moved into internal directory.
mvccpb.KeyValue is export as field type of github.com/coreos/etcd/etcdserver/etcdserverpb.RangeResponse.Kvs. Since RangeResponse is a public API. mvccpb.KeyValue should be public, too.

Plan was revert that change https://github.com/coreos/etcd/pull/9274, until we find better way to handle internal packages. /cc @xiang90

@kaoet Sorry for late response. We've reverted the changes for now. Please try the master branch.


Raspberry Pi 4 board support

As usual, the way to review this is commit by commit

I see the Makefile rule for live rpi image, but how do I build a rootfs?

rootfs is built the normal way -- but you'll have to tweak the pointer to the kernel package. Now that you suggested a README update -- let me document those few steps.
Btw, in general, this is just an issue with the kernel version -- RPi requires a really recent (like of two days ago recent -- I'm not kidding) upstream Linux kernel. In a way, this is a good way for us to test EVE with the kernel we're likely going to move to in 2020 (since 4.x series are getting pretty old at this point). But I still haven't figured out a good way to manage multiple kernel packages.
One idea I had is to may be have a pkg/kernel-next package to track the future kernels.

Does that always use the 5.6 kernel? And show we use it for other ARM?

Yes it does -- and, it is with extreme sadness, that I have to report that HiKey still not compatible with 5.x series. I will ping Linaro folks about that -- but based on previous interactions I think it'll be a pretty involved exersize that will also require HiKey firmware updates, etc. etc.
Now, the only reason HiKey is still interesting to us is that there's some issue with Xen in my build on RPi that I'm debugging -- so may be I'll debug it sooner that we can enabled HiKey on 5.x kernels -- and then we can just ditch HiKey alltogether.

Any noticable size impact on the rootfs?

There's some (b/c of double kernel modules) but it is manageable +18Mb or so.

Finally, let me know if and when you want me to take this on a spin on a hikey.

Actually ;-) what I would really appreciate you testing on HiKey is #826
Lets make sure the basic KVM works there and then we can test it in parallel with RPi.
So... please review #826 -- lets merge it in, test it on HiKey and then come back to RPi

Hey @eriknordmark -- I've fixed a lot of things, simplified quite a bit of others and provided a README https://github.com/rvs/eve/tree/rpi#how-to-use-on-a-raspberry-pi-4-arm-board
Please let me know if you feel like this could be merged

Finally had a chance to review. There is a lot in here. I found the README a bit confusing. In the end, it is just "run these steps slightly differently than normal", but the preceding paragraph threw me off. If I were coming from the outside, I would be somewhat discouraged - it sounds like, "this has to go through lots of hoops to work, and it all is boiled into this one paragraph, but if you really want to go through the pain, read these next steps." And then the next steps aren't so bad!

Well, the steps are not bad @deitch  but:

there's quite a bit happening behind the scenes in Makefile logic (the kind of things that don't happen for other images)
the resulting image is limited compared to the same (default) image for HiKey

It is #2 that I think is fair for us to warn our users about (note that this may change once I enabled Xen on RPi and then I'd be more than happy to follow your advice).

I don't have any issues with the content of the PR, but @deitch has some comments to look at.
My remaining concern is that since we had to back out the code to enable cross compile, the instructions will not currently work.

Actually @eriknordmark -- the instructions are working perfectly without any kind of cross compile. Now, you won't be able to build you pillar code if you want to experiment -- but that's a much more involved operation anyway (and is only interesting to EVE developers not EVE users).

Hey @deitch -- I've update the README somewhat -- please take a look


Add support for creating tasks to format .gradle.kts files

⚠ Is your feature request related to a problem? Please describe
We should create tasks that format the gradle.kts files (like ktfmtFormatKotlinScript and ktfmtCheckKotlinScript) and hook them inside the ktfmtFormat and ktfmtCheck tasks.
💡 Describe the solution you'd like
Could be implemented in a number of ways. Happy to discuss any approach
🤚 Do you want to develop this feature yourself?

[ ] Yes
[X] No

This is up for grab :)

I think this is a great idea.
One easy way to implement this, would be to take the project directory and only collect the top level .kts. files. That would probably solve most use cases.
If we searched recursively for all .kts files, it would be a bit weird for nested multi-module projects. Because the parent project would also format the gradle scripts of subprojects. What do you think?

If we searched recursively for all .kts files, it would be a bit weird for nested multi-module projects. Because the parent project would also format the gradle scripts of subprojects. What do you think?

Yeah that's a good point, so we get the top level .gradle.kts and .settings.kts file and we're good to go 👍 Each project will inspect its own kts file

For an ad-hoc solution, I've implented this in my build.gradle.kts like the following and it works really well for now:
val scriptFiles = fileTree(projectDir) { include("*.kts") }

val ktfmtFormatScript by
    tasks.registering(KtfmtFormatTask::class) {
        description = "Run Ktfmt formatter for script files on project '${project.name}'."
        source = scriptFiles
    }

tasks.ktfmtFormat { dependsOn(ktfmtFormatScript) }

val ktfmtCheckScript by
    tasks.registering(KtfmtCheckTask::class) {
        description =
            "Run Ktfmt formatter validation for script files on project '${project.name}'."
        source = scriptFiles
    }

tasks.ktfmtCheck { dependsOn(ktfmtCheckScript) }

For an ad-hoc solution, I've implented this in my build.gradle.kts like the following and it works really well for now:

I know but I think we can add support for ktfmtFormatScript and ktfmtCheckScript out of the box for ktfmt-gradle


Ability to cancel import to the table storage

Storage Explorer Version: 1.4.2
Platform/OS Version: Win10
Architecture: ia32
Regression From:
In my opinion it would be useful to have an ability to cancel import(probably export as well) to the table storage. Consider a situation when the user imports a lot of data and suddenly realizes that there are some incorrect values.  At this point he cannot just stop the export: he has to wait until the operation complete and only then delete all inserted data.

+1. There should at least be a warning about large tables or if there's >1k rows to export. I just started an export, with no confirmation, and didnt know that I cannot cancel it. Watching my entity count go up (currently 2.7 million) while I wait for my PC or database to explode.

Yes, adding a cancel option for import and export would be very nice. Then you don't have to reload Storage Explorer to stop this kind of process.


Add Certificate Validation option

Description

Added option to allow users to choose a certificate validation option
Changed beta to false
Updated readme and screenshots for instructions

Check List

[ ] New functionality includes testing.

[ ] All tests pass, including unit test, integration test and doctest

[ ] New functionality has been documented.

[ ] New functionality has javadoc added
[ ] New functionality has user manual doc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #449 (e12d2a9) into main (5e1f657) will decrease coverage by 33.59%.
The diff coverage is n/a.

:exclamation: Current head e12d2a9 differs from pull request most recent head 72dbb48. Consider uploading reports for the commit 72dbb48 to get more accurate results

@@              Coverage Diff              @@
##               main     #449       +/-   ##
=============================================
- Coverage     96.51%   62.91%   -33.60%
=============================================
  Files           267       10      -257
  Lines          7149      658     -6491
  Branches        520      118      -402
=============================================
- Hits           6900      414     -6486
+ Misses          196      191        -5
  Partials         53       53

Flag
Coverage Δ

query-workbench
62.91% <ø> (ø)

sql-engine
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...rch/sql/data/utils/NullsLastExprValueOrdering.java

...java/org/opensearch/sql/utils/ExpressionUtils.java

...rch/planner/logical/rule/MergeSortAndRelation.java

.../org/opensearch/sql/data/model/ExprFloatValue.java

.../opensearch/sql/planner/logical/LogicalDedupe.java

...age/serialization/DefaultExpressionSerializer.java

...on/operator/predicate/BinaryPredicateOperator.java

...h/planner/logical/rule/MergeFilterAndRelation.java

...protocol/response/format/RawResponseFormatter.java

...earch/response/agg/CompositeAggregationParser.java

... and 247 more

Continue to review full report at Codecov.

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


Peering Request

Full Name
Universidade Estadual de Ponta Grossa
ASN
53046
PeeringDB Integration

[X] My PeeringDB Entries are current
[ ] Peer at all available exchanges (and omit Peer Address(es) field below)

Peer Address(es)
<IP_ADDRESS> 2804:1F04:8800::12
Code of Conduct (TODO)

[X] I agree to follow this project's Code of Conduct

Thanks for reaching out @luizgb! We've established some multihop BGP sessions on our route-views5 collector:

ASN: 6447
IPv4: <IP_ADDRESS>
IPv6: 2001:468:d01:33::80df:3369

Relevant show bgp summary output:
Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
<IP_ADDRESS>   4      53046         0         0        0    0    0    never       Active        0 Universidade Estadua
Neighbor                              V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
2804:1f04:8800::12                    4      53046         0         0        0    0    0    never       Active        0 Universidade Estadua


Checks Set Up

User Story
As a user, I want to be able to select which checks I care about so that I can efficiently run the checks I care about or only view the results I care about in the moment.
Description
Create the Checks Set Up component as seen in the "Filtering for checks to run" and the "Marginal Checks" sections in the Figma design.
Figma Design
Implementation idea

[ ] Create UI side of Check Set Up component
[ ] Need a way to pass in a set up link, and some indication if that link should display
[ ] Implement select all and deselect all functionality for the button at the bottom of the list
[ ] Implement count of checks selected displayed in the dropdown button
[ ] Localize strings

@paranext/paranext-ux Should deselect all toggle to select all?

Should deselect all toggle to select all?

Go for it, @katherinejensen00 .
If any items are selected, button action = "Deselect All"
If zero items are selected, button action = "Select All"

I am not confident I can finish this by the end of the sprint so I checked the start of the code I had onto the Checks-Set-Up branch and added TODO's with work that still needs to be done for this case. Feel free to change anything and to reach out with questions.


fix(module:date-picker): fix datePicker can't clear (#7534)

PR Checklist
Please check if your PR fulfills the following requirements:

[x ] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: 7534
What is the new behavior?
it can clear range-picker when it has default value
Does this PR introduce a breaking change?
[ ] Yes
[x ] No

Other information

@luckyship Could you add a unit test for this?

@luckyship Could you add a unit test for this?

sorry, let me add new unit test for this

@wenqi73 i have added new unit test, please check again, thanks

@luckyship Thanks!