Archivist retry

Should we add retry logic on write failures or do we just want to rely on multi-vault set ups taking care of these issues? Retries do have to be very carefully managed or they can take down an already unstable system.
Thoughts?

Retries could be nice, since I do not know many use-cases of multi-vaults. We could have a sane default (3 seems reasonable) configurable over an option object for each mutation operations.

Thought about this one further: I don't see why we would have that built-in. Failing early and letting retry logic be implemented in user-land makes much more sense to me, regardless of multi-vault.

How would you do that in user-land? All you have access to is distribute, and it doesn't make sense to redistribute 20 operations if only 1 of them failed. Now arguably we should call vaultValue.resetOperation() on every vault value that successfully gets distributed, after which we could re-distribute safely any values that remain undistributed. Then a userland retry on distribute would be possible. But still tricky I would say, given that most archivist.distribute() calls originate in command center, not userland.

No, I think you are correct.
I guess the question is, should we have an internal API or should we let developers manually distribute what they wish to retry? Arguably we would not want to retry at all on some error cases.

That's the first question that needs answering then I guess. Is there a single logic that always applies? eg: the database may have a set of errors that imply that retrying is a good idea, and other errors that imply it's a bad idea. If there's a clear distinction, that may be the best trigger for retrying or not (rather than user-choice and making the user look at 50 different error types to make up their mind). Compare that to how (to the best of my knowledge) with HTTP all 5xx errors can be worth a retry, 4xx errors you should not retry.
If no such distinction can be made, then unfortunately we would have to move the decision-making responsibility to the user. Ideally we shouldn't, because I think error complexity is a pain, and different databases have different sets of errors.
Are there cases where you would never want to retry even if the database indicates a retry is perfectly valid? Do we care enough about these cases to expose it to the user through API?

If user-land complexity is a pain, I see no reason why not relieving that pain by making a user-land module dealing with these issues. I feel it would be less risky than trying to get this into the internals of MAGE and having to explain to developers that retries happen by default.
In the end, I may want only one mutation to retry, for instance - no all of them. The only thing we could perhaps consider is emitting an error on the state when distribute fail... maybe.

I think listening for an error is hard to act on, as it's not part of an asynchronous flow. What I was trying to get to above was:
Perhaps it makes sense to let the vaults decide if the operation can be retried. Based on that, we can go a few directions. Auto-retry in archivist, or leave it to the user (somehow). I prefer auto-retry if we can get away with it. A big "if", I admit.

I would imagine that retry logic has more to do with user land logic than vault backend behavior. I may want to retry some operations, but not others.
We could make it into an option on operations perhaps. Then we would need to introduce API changes to mutation ops, which I believe do not take options at the moment.
That said, if we figured out an API for error management instead, we could then allow for a much more fine grained behavior; for instance, we could allow for interruption, retry or application-level rollback of all ops in the state of we found just the right API to do error handling.

It could be topic configuration. I think this is the kind of thing you would want to configure per topic. Per operation seems like overkill to me. Doing it through topic configuration also solves the whole "where in userland" problem, since it'll happen during all distribute() operations.

We might want to discuss this one in person, but I am concerned configuration-based would ultimately yield sufficient control over the workflow. Or at least we'd sort of miss the opportunity to allow developers to implement their own error recovery mechanism.
Perhaps something with a callback would make sense? I'll try to come up with some pseudo-code at some point to demonstrate what I have in mind.

state.archivist.on('error', function (state, operation, cb) {
  // Retry
  return operation.retry(cb)

  // application-level rollback
  state.archivist.clear()
  state.archivist.set(...) // Reset data back to what it was
  state.archivist.distribute(cb)

  // Manually return an error
  return cb(new Error(...))
})

One issue I see with this API is that rollbacking or altering msgStream events wouldn't be simple.

Oh, I like operation.retry :)
I would argue that the example above may be easier to implement as:
mage.core.archivist.on('error', function (state, operation, cb) {

I don't think it would make a ton of sense to set this up on every state object, which is also harder to do because I would have to remember to add something to every user command. There may be ways around it, but MAGE out of the box should make it easy I think. Also, I don't know if having control on a per state level would actually help. Besides, you can always pass hints on the state by calling state.data.retries = 0; if you wanted to let this error-handler know something about how you want things to be handled.

Then again you might not want to retry everything, or at least not in the same way. That, and plugging things this way would not allow for, say, attempting application level rollback or things like that.
I don't think it would make a ton of sense to set this up on every state object, which is also harder to do because I would have to remember to add something to every user command.

One could make a factory function for that, or a decorator (already available in TS, coming to a next JS release). It would be less efficient since you'd set this on every object, but it would make it easier to work out edge cases if needed.

I think the default should be easy and useful, out of the box. I'm getting the impression you may not have understood my proposal well enough. State objects carry a data object around. You could easily set state.data.retries = 0; (or whatever logic you may fancy) if you didn't want any retries on this state. When the mage.core.archivist error handler gets called, it could inspect that on the state that is passed and act on it.

I believe we have different assumptions: I assume that when retries will be used, it will be the exception, not the rule. And that recovery logic might also be different on a case-by-case basis.

Closing due to lack of interest. Please re-open if still deemed relevant.


Escape key

Hi, it would be nice to add an Esc key.
I use vim inside termux and that's the special feature that I really hope to find in a keyboard designed for programmers ;) ! Thanks

@yvan-sraka, yeah, I should have added that since the first version. I'm currently thinking where exactly it should be placed. Any suggestions? Thanks for getting in touch :-)

@VladThodo You can get some ideas from Hacker Keyboard layout

@VladThodo thanks for the project.
Thinking about layout, could we add it after the > (right arrow) on the arrows layout?

@victorperin, I'm actually thinking about replacing the existing 'OK' key with ESC. There's already an entet key on the arrows layout, thus the OK is kinda redudant in this case.

I Agree, didn't bring that up because I thought it might have some specific use cases.


Revert "Always update config when generation has changed [run-systemtest]"

Reverts vespa-engine/vespa#19957
Please review only, merge if this breaks something

This will fail because config proxy has not implemented setNewConfigAndGeneration().  Might be more changes needed in config proxy as well


Under selling it

Hello, I am attempting to utilize your plugin to achieve what seems to be a unicorn case usage, I have been scouring the universe for over a year now trying to arrive at the context of what I am referring to as "Predictive note placement"...The closest I have come is using zapier, Which forces a sending back and forth to chat GPT for categorization of raw notes on the fly, but in a perfect world this would be already baked into obsidian, and I am curious if I am in the right spot, if there's a way to configure your plug-in to achieve this?
I have a 2.5 million word vault I want to be able to just give my days worth of raw notes to, and inferring from the previously structured hierarchy that the vault represents, since it's all geared towards one project, it can extrapolate from the meaning per blurbs worth of notes where it would predict I would place it and why, And if I approve I can just simply allow it to place it in that particular file in whatever folder, etc.
I utilize speech to text and talk a lot therefore, just to go about this process on my own over the years has taken up eons of my life to do manually. I am admittedly not tech savvy and I checked out your pages information already, regarding the plug-in directly, But it just looks like I'm looking at a foreign languages all, curious If you find this to be a creative breath of fresh air?
-grazie

I don't think the plugin can help with it


GEODE-8684: Setting a session's maxInactiveInterval does not work when the commit valve is disabled

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

I tried breaking this PR into 2 commits - the first being a change to allow setting the commit session valve in test setup and the second is the actual change.


License?

The project doesn't have a license. It is a very good practice to have one.

Good question, there is no license because I'm indecisive on what to use.
My current thoughts about it:
I hope for this project to go far, but realistically it probably wont.
The license is the hardest breaking change to make if you didn't prepared the terrain well enough.
MIT & similar will cause the least friction to adoption.
But, because of this, and the nature of this programming language if this get popular you could totally see some cloud company adding bunch of clever query rewriting rules written by people way smarter than me, and locking it behind their cloud.
Now their runtime is way more competitive than the open one and they benefit from the OSS works, for free.
This is the same problem than elasticsearch/other and I want to avoid that.

You don't need the same license for the entirety of the project FWIW. The compiler could be licensed in GPL, and the runtime to something more permissive. It would be good to figure out the answer to these questions:

Should 3rd parties be able to ship a modified compiler without open-sourcing their changes?
Should 3rd parties be able to modify the core libraries, the JIT, etc. without open-sourcing their changes? (Would the source compiler or parts of it be shipped in any way in the runtime?)

Something interesting to note - some libraries are GPL-licensed but have a linking exception, e.g. libstdc++, of which my understanding is that you must open source changes if you're shipping a modified version, but linking against the runtime does not require you to open source your application source code.

Resolved by #8.


Stokes PR from Branch

Time to see how badly I can write Python.
Since this is a PR from the branch, please send any PRs for this to that branch (who needs to use git properly?!)
@Cadair Would it be possible to enable PEP8Speaks for this repo?

pep8speaks is now on.

@Cadair Thanks

Hello @nabobalis! Thanks for updating the PR.

In the file docs/source/conf.py, following are the PEP8 issues :

Line 41:1: E402 module level import not at top of file
Line 48:1: E402 module level import not at top of file
Line 76:1: E402 module level import not at top of file
Line 85:80: E501 line too long (84 > 79 characters)
Line 86:80: E501 line too long (86 > 79 characters)
Line 88:80: E501 line too long (83 > 79 characters)
Line 90:80: E501 line too long (80 > 79 characters)
Line 123:80: E501 line too long (80 > 79 characters)
Line 137:1: E265 block comment should start with '# '

In the file sunkitsst/visualisation/cube_explorer.py, following are the PEP8 issues :

Line 20:1: W293 blank line contains whitespace
Line 53:23: E128 continuation line under-indented for visual indent
Line 60:23: E128 continuation line under-indented for visual indent
Line 67:80: E501 line too long (100 > 79 characters)
Line 73:1: W293 blank line contains whitespace
Line 76:80: E501 line too long (117 > 79 characters)
Line 77:80: E501 line too long (119 > 79 characters)
Line 78:1: W293 blank line contains whitespace
Line 116:80: E501 line too long (80 > 79 characters)
Line 122:80: E501 line too long (104 > 79 characters)
Line 123:80: E501 line too long (104 > 79 characters)
Line 125:80: E501 line too long (104 > 79 characters)
Line 126:80: E501 line too long (104 > 79 characters)
Line 129:64: E231 missing whitespace after ','
Line 129:80: E501 line too long (97 > 79 characters)
Line 131:70: E231 missing whitespace after ','
Line 131:80: E501 line too long (107 > 79 characters)
Line 131:105: E231 missing whitespace after ','
Line 154:80: E501 line too long (88 > 79 characters)
Line 155:80: E501 line too long (84 > 79 characters)
Line 164:80: E501 line too long (114 > 79 characters)
Line 181:80: E501 line too long (114 > 79 characters)
Line 185:80: E501 line too long (99 > 79 characters)
Line 185:100: W291 trailing whitespace
Line 186:80: E501 line too long (111 > 79 characters)
Line 205:80: E501 line too long (103 > 79 characters)
Line 223:80: E501 line too long (83 > 79 characters)
Line 224:80: E501 line too long (86 > 79 characters)


refactor, saving just the state we need to

avoid caching DeployState since we want to free those resources
after the model is completely built.

@bratseth please review
@hmusum FYI
after this, only these classes have DeployState lying around:
com/yahoo/config/model/test/MockRoot.java
com/yahoo/config/model/ConfigModelContext.java
com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java
com/yahoo/vespa/model/VespaModel.java

👍


add(platform): make application users super admin

Describe your changes
Instructions for making application users super admin and related updates.
Checklist

[X] The first paragraph of the page is on one line.
[X] The other lines have a line break at 90 characters.
[X] I checked the output.
[X] I applied the style guide.
[X] My links start with /docs/.

Preview: https://staceys-super-admin-app-user.aiven-docs.pages.dev/docs/platform/howto/manage-application-users#make-an-application-user-a-super-admin


created tests for subtraction function

Change Summary
[Briefly summarise the changes that you made. Just high-level stuff]
Change Form
Fill this up (NA if not available). If a certain criteria is not met, can you please give a reason.

[x] The pull request title has an issue number
[ ] The change works by "Smoke testing" or quick testing
[x] The change has tests
[ ] The change has documentation

Other Information
issue 5

you can change "issue 5" to "issue #5" to link the issue. there's also the "linked issue" at the right side of this panel.
If you prepend the PR with "S5" it becomes easier to see where it is in the PR tab

You can do 'closes issue #5 ' or assign the issue on the right of the screen to have it close the issue after you create a PR. This allows the issue to close and others to know

The pylint is catching that the imported modules are commented out


Rename VCPKG_MAKE_CONFIGURE_OPTIONS -> VCPKG_CONFIGURE_MAKE_OPTIONS not documented

I just spend 2 hours two build vcpkg cppunit package with llvm libc++. It is build is make/automake based.
Documentation says i should modify VCPKG_MAKE_CONFIGURE_OPTIONS in my custom triplet but this had no affect. So I went digging into the vcpkg code and learned that this was renamed in PR#20165. Missing documentation was already posted there  but no one took action.
Therefore I open this issue in hope this will be changed and future users do not need to do the same digging as I did.

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

ID: 81b81fec-b84b-3943-0b8b-4d3c6c8a17cd
Version Independent ID: 81b81fec-b84b-3943-0b8b-4d3c6c8a17cd
Content: Triplet files
Content Source: vcpkg/users/triplets.md
Product: vcpkg
GitHub Login: @vicroms
Microsoft Alias: viromer

I think https://github.com/microsoft/vcpkg/pull/20165 got it wrong.

I think microsoft/vcpkg#20165 got it wrong.

No, I think the rename in this PR is correct. The variable names usually reflect the function it is used in. In this case vcpkg_configure_make(). And the function name is also the same shema as other configure functions.

Nonsense. I introduced the variable.... as well as VCPKG_CMAKE_CONFIGURE_OPTIONS. It was intended to be parallel and consistent to it which is why it is VCPKG_MAKE_CONFIGURE_OPTIONS
VCPKG_CMAKE_CONFIGURE_OPTIONS is also used in vcpkg_configure_cmake. It has nothing to do with the function name.

Ok. So should I open a issue there?

While I agree with @Neumann-A that these variables should have the same pattern, we have to document what currently works.


Add validation to application blocking bar

Guide the user to how to add the application with .exe case sensitive and also add error when any  duplicates application is add

Adding a drop down so that the user doesnt have to type the exact name of the application to close it.


Updated camera calibration support

When camera is not calibrated at the beginning, and user performs camera calibration, node crashes at following line 433 as "cv_bridge_img_rect" is not pointing to anything.
cv_bridge_img_rect_->header.stamp = img_raw_msg_.header.stamp;
I have added the code to call setupRectification()  if "cv_bridge_img_rect" is null pointer to make sure that topic and related objects are initialized before accessing them.

I am sorry but I unexpectedly pushed my changes and pull request got modified. I will close this and submit new one with correct change.


Start of GitHub Pages

Closes #5.
Connected #21.

Merge #21 first.

I'm getting ready to merge and updating the change log - please @me if any other changes are pushed.


There is not context menu in the textarea

It would be nice you can right click in the textarea and select paste or copy, you know, not everyone knows the shortcuts

This is my solution https://github.com/AngelGallegosE/Osiris/pull/1


Add Edge Environment mixin

Adding an Edge Environment mixin which specifies the XDM properties automatically added to experience events received to the AEP Edge orchestration service. The mixin includes just the properties used by AEP Edge by copying the required properties from Environment and PlaceContext. This mixin can be added to schemas which send experience events to Edge without needed to include the entire schemas for Environment and PlaceContext.
Here is an example using all the properties defined in the mixin:
{   "xdm:placeContext": {
        "xdm:geo": {
            "@id": "https://data.adobe.io/entities/geo/tokyo",
            "xdm:countryCode": "JP",
            "xdm:stateProvince": "JP-13",
            "xdm:city": "Tokyo",
            "xdm:postalCode": "141-0032",
            "schema:latitude": 35.6185,
            "schema:longitude": 139.73237
        }
    },
    "xdm:environment": {
        "xdm:ipV4": "<IP_ADDRESS>",
        "xdm:ipV6": "2001:db8:0:0:0:ff00:42:8329"
        "xdm:browserDetails": {
           "xdm:userAgent": "Mozilla/5.0 (iPhone; CPU OS 12_4 like Mac OS X; en_US)"
        }
    }
  }
}

Please link to the issue https://jira.corp.adobe.com/browse/PLAT-79072

@kevinlind , If you are OK with the the new PR  (https://github.com/adobe/xdm/pull/1071), please close this PR

Closing as changes are incorporated into PR #1071


[no ticket] add html lang attribute

Purpose
For better accessibility.
Summary of Changes
Add lang="en" to html element in index.html
Side Effects
None expected.
Feature Flags
n/a
QA Notes
No QA needed.
Ticket
n/a
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md

Pull Request Test Coverage Report for Build 3132

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 72.528%

Totals

Change from base Build 3131:
0.0%

Covered Lines:
6353

Relevant Lines:
7907

💛  - Coveralls


asset_pipline_loader

Local Rails 3.2.17 app w/ asset pipeline disabled, Ruby 2.0.0-p451, was failing spec tests with undefined method `find_asset' for nil:NilClass. Noted that Rails.application.assets is defined, but nil in that case. Updated asset_pipeline_loader to check for nil? and updated test.

:+1:

Should be fixed in latest release.


executor: miri fixes

Fixes a few MIRI errors due to loosely mixing &TaskStorage<F> and &TaskHeader. References "downgrade" the provenance. TaskHeader is smaller, so once you have a &TaskHeader you can't use pointer casts to access the whole TaskStorage<F>. This fixes it by always keeping the raw pointer around, which doesn't downgrade provenance.
The error was:
[dirbaio@mars std]$ MIRIFLAGS=-Zmiri-disable-isolation cargo miri run --bin tick
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
     Running `/home/dirbaio/.rustup/toolchains/nightly-2022-07-13-x86_64-unknown-linux-gnu/bin/cargo-miri target/miri/x86_64-unknown-linux-gnu/debug/tick`
error: Undefined Behavior: trying to reborrow <12349> for SharedReadWrite permission at alloc2[0x30], but that tag does not exist in the borrow stack for this location
   --> /home/dirbaio/embassy/embassy/embassy-executor/src/executor/raw/mod.rs:162:20
    |
162 |         let this = &*(p.as_ptr() as *const TaskStorage<F>);
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |                    |
    |                    trying to reborrow <12349> for SharedReadWrite permission at alloc2[0x30], but that tag does not exist in the borrow stack for this location
    |                    this error occurs as part of a reborrow at alloc2[0x30..0x40]
    |
    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
help: <12349> was created by a retag at offsets [0x0..0x30]
   --> src/bin/tick.rs:15:1
    |
15  | #[embassy_executor::main]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: backtrace:
    = note: inside `embassy_executor::executor::raw::TaskStorage::<std::future::from_generator::GenFuture<[static generator@src/bin/tick.rs:15:1: 15:26]>>::poll` at /home/dirbaio/embassy/embassy/embassy-executor/src/executor/raw/mod.rs:162:20
    = note: inside closure at /home/dirbaio/embassy/embassy/embassy-executor/src/executor/raw/mod.rs:390:13
    = note: inside `embassy_executor::executor::raw::run_queue::RunQueue::dequeue_all::<[closure@embassy_executor::executor::raw::Executor::poll::{closure#1}]>` at /home/dirbaio/embassy/embassy/embassy-executor/src/executor/raw/run_queue.rs:69:13
    = note: inside `embassy_executor::executor::raw::Executor::poll` at /home/dirbaio/embassy/embassy/embassy-executor/src/executor/raw/mod.rs:373:9
    = note: inside `embassy_executor::executor::Executor::run::<[closure@src/bin/tick.rs:15:1: 15:26]>` at /home/dirbaio/embassy/embassy/embassy-executor/src/executor/arch/std.rs:52:22

bors r+


wrong permissions on /etc/rancher/k3s/k3s.yaml

Environmental Info:
K3s Version:
k3s version v1.21.4+k3s1 (3e250fdb)
go version go1.16.6

Node(s) CPU architecture, OS, and Version:

Linux k100c 5.4.60-v8.1.el8 #1 SMP PREEMPT Sun Aug 23 02:58:38 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

Cluster Configuration:

None yet, this is intended as my control plane and I've not set up nodes. Planning on 3 nodes total.
Describe the bug:

After installing K3s for the first time on a Pi4, it ended with this error:
Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions

Solution:
$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

Steps To Reproduce:

Installed K3s:

$ curl -sfL https://get.k3s.io | sh -

Expected behavior:

Expected k3s to start without issue.
Actual behavior:

K3s told me to add boot args to /boot/cmdline.txt, which I did.
It also failed to start due to an unreadable k3s.yaml file, which I solved and have now started k3s successfully.
Additional context / logs:

This is on CentOS 8 running on a Pi 4.

This is expected behavior. It is not secure to allow everyone on the system to use you cluster by default. You can change that behaviour using --write-kubeconfig-mode "0644"  as described here: https://rancher.com/docs/k3s/latest/en/installation/install-options/#options-for-installation-from-binary
Another option is becoming root: sudo su -

Brilliant, thank you!

Quoted solution has a typo. It should be $ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

Thank you. Fixed.

It's reproducible because it's working as designed.


Add core-js@3 as dependency

Seems like we missed this earlier and now it's breaking even the simplest example in the CodeSandbox.

This change is

Maybe be it's ok to do it as part of #148


look for deno.json relative to entrypoints

fix https://github.com/hasundue/deno-molt/issues/20

I feel like the current import-map option doesn't make sense

its either we want to follow deno cli and only  allow one entry-point
or keep the current behavior of multiple entry-points but remove the import-map flag, since we can't tell on which entry-point to apply, and I think its not obvious that it should apply to all entry points like its the case in master

Thanks!
Okay it was my mistake to use the word "entrypoint".
Accepting multiple inputs directly inherits from createGraph function of deno_graph, and is an essential feature of the module, at least for me.
I'm convinced that removing --import-map is an option, but I prefer to keep it since deno check does accept multiple input files AND --import-map option. We should look into the behavior of deno check though.
So probably "entrypoints" should be replaced with just "files", in accordance with deno check.

I restored import-map option, now its the same as in master, it will take precedence for all entry points over automatic detection.

Now I see we should remove --parallel


可以爬该条推文被哪些用户转发了吗

应该可以
在 2020-08-05 10:20:02，"nanciwan"<EMAIL_ADDRESS>写道：
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


ionic run android error after crosswalk implementation

hi there,
i used $ ionic run android with Genymotion without problems. But after the implementation of the crosswalk it doesn't work, i get this error:

And here is the $ ionic info

Your system information:
OS: Windows 8
Node Version: v0.10.33
Cordova CLI: 4.2.0
Ionic Version: 1.0.0-beta.14
Ionic CLI Version: 1.3.11

I think this has to be about ARM/x86 thing which i am not really know a lot about
Thanks in advance and sorry if my english is not perfect at all

what i tried:

remove and add platform android
change the version in config.xml
update cordova and ionic
update lib ionic
reinstall crosswalk

Still same error.
P.S: the .apk with ionic build work perfect

@aluknot Have you tried the x86 version? And just in case, here is a solution for INSTALL_FAILED_CPU_ABI_INCOMPATIBLE error.

@joseadrian - thanks for that solution.
@aluknot Let me know how that works for you.

@joseadrian thanks for your answer! i am trying that for Genymotion and now i don't get the error but having problems with the Google Play Services... so is partial solved.
But for your first question, is possible to run ionic for x86? appart from the build which work perfect and i get both, arm and x86 but for the run? how?
Thanks.

Yes, it should be running the architecture type for the connected device.
So if you have an ARM device, it should build/run the ARM version.
Is it not?

I'm having the same problem as @aluknot , it looks like the ionic cli isn't getting the right apk based on the architecture.

@ramirotw If you're still having issues, feel free to re-open. Until otherwise, closing for now.

I get a similar error
~/www/ionic/climbuddy$ ionic run android
Updated the hooks directory to have execute permissions
Running command: /home/bojan/www/ionic/climbuddy/hooks/after_prepare/010_add_platform_class.js /home/bojan/www/ionic/climbuddy
add to body class: platform-android
Running command: /home/bojan/www/ionic/climbuddy/platforms/android/cordova/run
ANDROID_HOME=/home/bojan/Apps/android-sdk-linux
JAVA_HOME=/usr/lib/jvm/java-8-oracle
WARNING : No target specified, deploying to device '06db1c7a'.
Running: /home/bojan/www/ionic/climbuddy/platforms/android/gradlew cdvBuildDebug -b /home/bojan/www/ionic/climbuddy/platforms/android/build.gradle -PcdvBuildArch=arm -Dorg.gradle.daemon=true
WARNING [Project: :] Current NDK support is deprecated.  Alternative will be provided in the future.
WARNING [Project: :] Current NDK support is deprecated.  Alternative will be provided in the future.
WARNING [Project: :] Current NDK support is deprecated.  Alternative will be provided in the future.
WARNING [Project: :] Current NDK support is deprecated.  Alternative will be provided in the future.
WARNING [Project: :cordova-plugin-crosswalk-webview:mobile-xwalk_core_library] Current NDK support is deprecated.  Alternative will be provided in the future.
:preBuild
:compileArmv7DebugNdk
:preArmv7DebugBuild
:checkArmv7DebugManifest
:preX86DebugBuild
:CordovaLib:compileLint
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugProguardFiles
:CordovaLib:preBuild
:CordovaLib:preDebugBuild
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl
:CordovaLib:compileDebugRenderscript
:CordovaLib:generateDebugBuildConfig
:CordovaLib:generateDebugAssets UP-TO-DATE
:CordovaLib:mergeDebugAssets
:CordovaLib:generateDebugResValues
:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources
:CordovaLib:processDebugManifest
:CordovaLib:processDebugResources
:CordovaLib:generateDebugSources
:CordovaLib:compileDebugJavaNote: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:CordovaLib:processDebugJavaRes UP-TO-DATE
:CordovaLib:packageDebugJar
:CordovaLib:compileDebugNdk
:CordovaLib:packageDebugJniLibs UP-TO-DATE
:CordovaLib:packageDebugLocalJar UP-TO-DATE
:CordovaLib:packageDebugRenderscript UP-TO-DATE
:CordovaLib:bundleDebug
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:compileLint
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:copyDebugLint UP-TO-DATE
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:mergeDebugProguardFiles
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:preBuild
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:preDebugBuild
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:checkDebugManifest
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:preDebugTestBuild
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:prepareAndroidCordovaLibUnspecifiedDebugLibrary
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:prepareDebugDependencies
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:compileDebugAidl
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:compileDebugRenderscript
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:generateDebugBuildConfig
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:generateDebugAssets UP-TO-DATE
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:mergeDebugAssets
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:generateDebugResValues
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:generateDebugResources
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:mergeDebugResources
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:processDebugManifest
:cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:processDebugResources/home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/res/debug/layout/autofill_card_unmask_prompt.xml:19: error: Error: No resource found that matches the given name (at 'hint' with value '@string/card_unmask_input_hint').

/home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/res/debug/layout-v17/autofill_card_unmask_prompt.xml:30: error: Error: No resource found that matches the given name (at 'hint' with value '@string/card_unmask_input_hint').

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':cordova-plugin-crosswalk-webview:mobile-xwalk_core_library:processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
  	/home/bojan/Apps/android-sdk-linux/build-tools/22.0.1/aapt package -f --no-crunch -I /home/bojan/Apps/android-sdk-linux/platforms/android-21/android.jar -M /home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/bundles/debug/AndroidManifest.xml -S /home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/res/debug -A /home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/bundles/debug/assets -m -J /home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/generated/source/r/debug --debug-mode --custom-package org.xwalk.core --non-constant-id -0 apk --output-text-symbols /home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/bundles/debug
  Error Code:
  	1
  Output:
  	/home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/res/debug/layout/autofill_card_unmask_prompt.xml:19: error: Error: No resource found that matches the given name (at 'hint' with value '@string/card_unmask_input_hint').

  	/home/bojan/www/ionic/climbuddy/platforms/android/cordova-plugin-crosswalk-webview/mobile-xwalk_core_library/build/intermediates/res/debug/layout-v17/autofill_card_unmask_prompt.xml:30: error: Error: No resource found that matches the given name (at 'hint' with value '@string/card_unmask_input_hint').

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
 FAILED

BUILD FAILED

Total time: 4.817 secs

/home/bojan/www/ionic/climbuddy/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: /home/bojan/www/ionic/climbuddy/platforms/android/gradlew with args: cdvBuildDebug,-b,/home/bojan/www/ionic/climbuddy/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true
ERROR running one or more of the platforms: Error: /home/bojan/www/ionic/climbuddy/platforms/android/cordova/run: Command failed with exit code 1
You may not have the required environment or OS to run this project

Same here.  After multiple removings and installings


How generate slo:objective:ratio form multiple clusters?

Hello
We have one VictoriaMetrica cluster for multiple k8s cluster. We user vmaget inside k8s and send data over remote_write to big monitoring cluster. If create some sli, slo:objective:ratio will create without labels "cluster" (sloth does not know about this label). Grafana dashboard use slo:objective:ratio for some selection. We will have slo:sli_error:ratio_rate5m with label cluster and slo:objective:ratio with out label cluster
How i can generate slo:objective:ratio with label cluster but do it automaticle, without create metrics for every cluster?

I found solution
  - record: slo:objective:ratio
    expr: vector(0.99) + on() group_left(cluster) (slo:sli_error:ratio_rate5m*0)

And i found code
https://github.com/slok/sloth/blob/main/test/integration/k8scontroller/exp_base_7d_test.go#L133-L134
Is it possible to change a hardcoded value to a template one?


MM broken?

I updated to version 0.0.317 and can't launch the application

Works fine after uninstalling and reinstalling. I had unchecked the box for wiping defaults during update, which may have been related...


feat: create an exportable version of plan loading

This PR adds an installable target of the plan loading routines (notably the text format) that is more readily consumed by other languages.

Since this depends on the #89 I'm switching this PR temporarily into draft mode.

This PR depends on https://github.com/substrait-io/substrait-cpp/pull/91 (the substrait-cpp submodule dependency).  As concern will be to keep the version of Substrait that both substrait-python and substrait-cpp depend on in sync.

This should be ready to go now.


character encoding: US-ASCII and UTF-8

I'm suddenly getting this new fastlane error

[!] incompatible character encodings: US-ASCII and UTF-8 (Encoding::CompatibilityError)

/Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/fast_file.rb:20:in `tr!': [!] incompatible character encodings: US-ASCII and UTF-8 (Encoding::CompatibilityError)
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/fast_file.rb:20:in `initialize'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/lane_manager.rb:12:in `new'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/lane_manager.rb:12:in `cruise_lane'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/command_line_handler.rb:30:in `handle'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/commands_generator.rb:105:in `block (2 levels) in run'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/commander-4.4.3/lib/commander/command.rb:178:in `call'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/commander-4.4.3/lib/commander/command.rb:178:in `call'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/commander-4.4.3/lib/commander/command.rb:153:in `run'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/commander-4.4.3/lib/commander/runner.rb:446:in `run_active_command'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:38:in `run!'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/commander-4.4.3/lib/commander/delegates.rb:15:in `run!'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/commands_generator.rb:302:in `run'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/commands_generator.rb:42:in `start'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/fastlane/lib/fastlane/cli_tools_distributor.rb:63:in `take_off'
	from /Users/admin/.rvm/gems/ruby-2.2.0/gems/fastlane-2.15.1/bin/fastlane:15:in `<top (required)>'
	from /Users/admin/.rvm/gems/ruby-2.2.0/bin/fastlane:22:in `load'
	from /Users/admin/.rvm/gems/ruby-2.2.0/bin/fastlane:22:in `<main>'
	from /Users/admin/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `eval'
	from /Users/admin/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `<main>'

I dont believe i've changed anything that i'm aware of.  Is this a fastlane error or something related to my software?
Thanks

I met this problem, and checked that my LANG environment variable value is unset. By setting the correct LANG environment variable before executing fastlane command, the problem is solved.
export LANG="en_US.UTF-8

@flyeek export LANG="en_US.UTF-8" save my whole day


[Feature Request] option to change nvngx_dlss.dll version

Hi,
first thanks a lot for your work on SpecialK, it's awesome !
As title says, do you think it's possible to add an option to SKIF in order to change the nvngx_dlss.dll version used before launching a game ?
Versions you can find on https://www.techpowerup.com/download/nvidia-dlss-dll/
I know I can do it manually by replacing dll file, and already do this way, but it would be nice to be able to swap it directly in SKIF with up to date nvngx_dlss.dll files.
Thank you !

I know this isn't an answer to your question, but try this tool out. It's very light weight, easy to use, and great for managing dlss dlls. Both replacing/updating and restoring.
https://beeradmoore.github.io/dlss-swapper/

Sadly this tool is pretty buggy atm, that's why I do it manually.
Adding the option to SKIF is no priority for me but I think it would be a cool addition.
Regards.

This feature is outside of the scope of SKIF, sadly, so will never be implemented (and I'm not even sure we'd be allowed to redistribute all of those DLL files anyway).


Steven/add logs

Related Github tickets

a list of github issues that are relevant for this PR

Background
A short paragraph on test what exactly this PR solves.
Testing completed

[ ] a list of actions that you've performed to ensure that this PR works as intended
[ ] 99% of the times you should have an item: "wrote tests"

Breaking changes

[ ] I have checked my code for breaking changes
[ ] If there are breaking changes, there is a supporting migration.

Merging. We'll check out the failing tests on the next one.


deprecate SDL_GetRevisionNumber

Alternative to PR #63

deprecate the function to make user aware
only provide the function if available in the library

Love it. This is the one that shows most consideration for the user.


Update new Logo and background for splash screen, first screen, pincode screen

Version test: v1.0.3(165)
Devices test: IP 11
Validation passed.


Use the modern Microsoft Graph to create a Community in Viva Engage instead of using the classic Yammer developer functionality

Suggestion
To enhance the Provision Assist to stay up to date, I would like to request an enhancement of the creation a Viva Engage Community by switching to the Microsoft Graph API. Can this be implemented?
Classic route of creating a community in Viva Engage currently implemented in the Provision Assistant solution
The provision-assist-m365 documentation describes in Step 12 (Optional): Enable provisioning of Viva Engage Communities the old way of creating a community in Viva Engage, e.g. by referencing the previous product name Yammer and using the classic developer functionality of requesting the creation of a Yammer App Token during deployment of the solution. A great enhancement will be the use of the modern way of creating a Viva Engage Community by interacting with the Microsoft Graph API.
Suggested modern route of creating a community in Viva Engage to be implemented in the Provision Assistant solution
As described in the Microsoft Learn Documentation for Microsoft Graph at Use the Microsoft Graph API to work with Viva Engage (preview) under the /beta version of the the Microsoft Graph functionality is available to create a Viva Engage Community. The implementation steps including the App Registration in Microsoft Azure is described and depicted in Tech Community Blog Introducing the Community Creation API for Viva Engage on Microsoft Graph Beta. The following picture shows a community in Viva Engage created via the Microsoft Graph API.

Important: The Viva Engage API in Microsoft Graph is only supported for Viva Engage networks in native mode. You can't use this API to manage legacy or external Viva Engage networks.

@haroldvandekamp nice enhancement! Yes we should definitely do this.
I will add it to the roadmap 😀

This has now been completed in the latest release. FYI @haroldvandekamp

Thanks @alexc-MSFT . Great to see that creation of a Viva Engage Community is now handled via the Microsoft Graph API.


planning: Cortex API supports /threads, /messages

Goal

Cortex takes over management of Threads, Messages from Jan

Cortex API supports /threads, /messages

Cortex should take over data structures for Threads, Messages

e.g. /threads folder in data folder
We should not make any changes to this

Linked: https://github.com/janhq/jan/issues/3904

Questions

Should we have cortex.db keep track of all Threads (vs. fs lookups = inefficient)
Should we move Threads into cortex.db?

Dan's view: I don't think so, messages.jsonl and thread.json are useful primitives, and we should avoid bloating SQLite

Problems
/messages is quite straightforward for now but Jan's /threads are a combination of model preset, assistant parameters, assistant tools and threads.
Also /assistants is not well designed, it defaults to a hard-coded template.
See a Jan thread.json example:
{
  "id": "jan_1729768043",
  "object": "thread",
  "title": "0.5.8 llama 3.2 1b",
  "assistants": [
    {
      "assistant_id": "jan",
      "assistant_name": "Jan",
      "tools": [
        {
          "type": "retrieval",
          "enabled": true,
          "settings": {
            "top_k": 2,
            "chunk_size": 1024,
            "chunk_overlap": 64,
            "retrieval_template": "Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nCONTEXT: {CONTEXT}\n----------------\nQUESTION: {QUESTION}\n----------------\nHelpful Answer:"
          }
        }
      ],
      "model": {
        "id": "llama3.2-1b-instruct",
        "settings": {
          "engine": "llama-cpp",
          "ctx_len": 3072,
          "ngl": 100,
          "prompt_template": "<|start_header_id|>system<|end_header_id|>\n\n{system_message}<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n",
          "text_model": false
        },
        "parameters": {
          "engine": "llama-cpp",
          "frequency_penalty": 0,
          "max_tokens": 3072,
          "presence_penalty": 0,
          "stop": [
            "<|eot_id|>"
          ],
          "stream": true,
          "temperature": 0.699999988079071,
          "top_p": 0.949999988079071
        },
        "engine": "llama-cpp"
      },
      "instructions": ""
    }
  ],
  "created":<PHONE_NUMBER>312,
  "updated":<PHONE_NUMBER>233,
  "metadata": {
    "lastMessage": "Hello!"
  }
}

See OpenAI Assistant and Thread:
{
  "id": "asst_abc123",
  "object": "assistant",
  "created_at":<PHONE_NUMBER>,
  "name": "Math Tutor",
  "description": null,
  "model": "gpt-4o",
  "instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
  "tools": [
    {
      "type": "code_interpreter"
    }
  ],
  "metadata": {},
  "top_p": 1.0,
  "temperature": 1.0,
  "response_format": "auto"
}

{
  "id": "thread_abc123",
  "object": "thread",
  "created_at":<PHONE_NUMBER>,
  "metadata": {},
  "tool_resources": {}
}

So should we:

Introduce a new structure similar to an existing one and scoped by /threads and /messages
Follow a popular schema such as OpenAI that could scale to /assistants

I think 2 is preferred since we could take advantage of existing test suites and client SDKs. Otherwise, we would eventually do another migration to scale to /assistants and double the workload, such as writing tests.
Decouple threads & /models
Currently they are coupled and fairly similar to preset which is not really well defined. E.g. thread.json defines model settings, which created a side effect where switching between threads would also reload the model. It's an antipattern and we should find a way to decouple it.

Inference parameters & tools go to /assistants. It's to scale /assistants better, instead of hard coding.
Model parameters go to /models where PUT takes affect (now it's used nowhere)
The thread is now fairly thin. Better to scale to /run as well, it is a likely a container that glue components together (assistant, run, file_stores)

@louis-jan I agree that Option 2 is correct - i.e. we follow the OpenAI Schema an Threads, Messages, Assistants and Models. I would like to start to find an incremental approach to get there to reduce major change risk.
Can I check my understanding of your proposal:
Ideal Outcome

Cortex will have a cleaner schema which is aligned with OpenAI's schema

/assistants -> Cortex DB "Assistants" table -> assistant.yaml
/threads -> Cortex DB "Theads" table -> thread.json
/models -> Cortex DB "Models" table -> model.yaml

Key Questions
Can Users customize a single Thread's inference params?

I agree that per-thread Model and Assistant settings introduces too much complexity

I think we can give them the option to edit it when Thread is in focus, and save it as Model or Assistant settings
Otherwise, any changes made will be lost once the user navigates out of the Thread

We can loop back later on to provide Per-Thread customization

e.g. create a model.yaml, assistant.yaml in Thread folder

Will we move Threads to a structured DB?

Imho, we should just have a very simple Threads table in cortex.db

This should just be a lookup table for the individual Threads folders

We should continue to have Threads folders which hold messages.jsonl and thread.json
We should start to version thread.json, as it is likely that we will have multiple versions

How will we deal with legacy Threads?

Should we just focus on fresh conversations, and let legacy Conversations extension deal with older Threads in Jan?
Or: should we write a migration script? (would we discard Per-Thread model customizations?)

Hi @dan-homebrew

I definitely agreed with the approach.
That is a great idea, a lookup table would really help to boost the performance.
I think we would want to deal with it slowly. After Jan moves the model settings to /models, that would be easier to migrate /threads. Or even easier to just glue legacy and new data together with a simple transform function for the time being.

@dan-homebrew @janhq/cortex This is the visualization diagram of how we are going to structure and support. Green components are in scope, red components are out of scope.

Can I clarify my understanding:

Watcher monitors files for changes? (does it reload?)
Runner: what does this do?

I super agree with the strategy to just glue legacy and new data with a simple transform function:

We figure out what the new data structure should be and implement it in Cortex.cpp

Make sure new data structures include v1 in the JSON or YAML, so that we can make rapid upgrades

We transform old data structures into new data structures at runtime
We eventually write a migration script, once the data structures have settled (somewhat)

I think we would want to deal with it slowly. After Jan moves the model settings to /models, that would be easier to migrate /threads. Or even easier to just glue legacy and new data together with a simple transform function for the time being.

Can I clarify my understanding:

Watcher monitors files for changes? (does it reload?)
Runner: what does this do?

Yeah, just to monitor file changes, it's good to have, minor one. I dont know how to name engine running stuff and so on. That is not related to the business layer, so just leave it runner 😆.

@namchuai @louis-jan For Threads/Models/Assistants, I recommend we take an incremental approach:
V1 Threads

We should add a version to all current Thread.json as having version: 1
We should have a v1 thread handler in Cortex, that recognizes and can parse Model, Assistant from v1 Thread
We should still cover this with test coverage

V2 Threads

We should design the ideal structure for V2 Threads (eg Model, Thread, Assistant)
I still think that user should be able to have per-thread model params - this can be achieved by creating a model.yaml in the Thread folder
This enables us to have clear separation of concerns between Thread, Model and Assistant

@namchuai @sangjanai can you help add the /threads and /messages to doc page? http://<IP_ADDRESS>:39281/#tag/threads
please cmiiw, for V1, we only query for Jan folder so only
we will try to replace these endpoints

/threads

[x] GET : List of threads
Empty list

Array of thread

[x] GET retrieve threads

@TC117 , thread title will be stored in metadata. Since OpenAi's Thread object does not have title.
So, in order to update the title, please use this for example:
curl --location 'http://<IP_ADDRESS>:39281/v1/threads/0001KN04SY7D75K0MPTXMXCH39' \
--header 'Content-Type: application/json' \
--data '{
    "metadata": {
        "title": "my title"
    }
}'

Thanks @namchuai, Got it so we not use PATCH for modify 👍


Ready Indicator Update after each turn-in

I noticed that the ready indicator only updates when you finish crafting a potion. For the method that involves turning-in the majority of a full inventory of potions, it would be nice if the ready indicator would update after each potion turn-in. This way when I'm near the end of my inventory I wouldn't have to be manually scanning my inventory + thinking about the order to tell if I have any matches.

This is not possible as the type of potion made from the stations isn't trackable

The ready indicator seems to work when you make the potion initially, I'm guessing since in that moment the plugin knows that you're using a certain potion type on a certain station, I guess it could go off the chat message too "you finish crystallising the X". Would it be feasible to collect this information in some saved state inside the plugin, so it could track what has entered/left your inventory for the purpose of achieving the ready indicator updates?
Here's an example - there could be a table that would have 3x slots per type of potion (to account for all combinations). For every chat message corresponding to creating a potion, e.g. "you finish crystallising the Liplack liquor", then that entry of the table would get +1 to indicate how many potions of that type the player has in their inventory. Then when the player goes to turn in the potions, for every message "You deposit some Liplack liquor and fulfil an order" (or the failure message), it would subtract 1 from the corresponding entry in the table.
With this there would probably be a lot of edge cases like what if the player leaves the area and banks some of these potions. So maybe this isn't practical, let me know what you think

That could be a band-aid but I would imagine reordering potions in your inventory would cause issues since there is no state attached to the items. Ex, you have two LLL and swap them--the plugin wouldn't know what was moved.

I don't want to support the full inv of pots method because there's no reliable way of tracking how a potion was refined


Can't download dataset coco_caption.zip

During downloading dataset coco_caption.zip,  the error occured:
Read error at byte 2549.../, (Connection reset by peer), Retrying.
And it repeats infinitely.
How can I download dataset normally??

and also, this does not work: adding user-agent. e.g.,
--user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22"

In other server download is completed, but the internet is still unstable.

OMG. azcopy is the best. I had the same issue but using azcopy fixed it. :D


Correction for raw affiliation Department of Social Sciences TU Dortmund University

Correction needed for raw affiliation Department of Social Sciences TU Dortmund University
raw_affiliation_name: Department of Social Sciences TU Dortmund University
new_rors: 01k97gp34
previous_rors:
works_examples: W4396711236
contact: 5585124a20ae0b9eb49b664db5b2db22:917f59e1630ca0825643a8b14de01f @ tu-dortmund.de

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Space is added to browser name when IE

Used this module to retrieve browser info and found that there was a space added to the browser name when IE.
Checked the code and found at line 29 in index.js (https://github.com/stevelacy/browser-info/blob/master/index.js#L29) there is a space added.
Is there any reason for this or is it a typo?

good catch, I don't remember any reason for it.
want to PR?

Created a pull request for the fix

merged, publishing.
thanks


CreateInstance failed in version 2.2.6 loaded into VS 2017

Hello,
at first, thank you all for the excellent work on this extension, I have been using it for ages :)
Unfortunately, it seems the latest version 2.2.6 has broken support for VS 2017 (Professional 15.9.36), because it fails to load with the following error "Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=<IP_ADDRESS>", for complete detail please see attached ActivityLog.zip.
I have downgraded to version 2.2.5 that works fine.
Thank you,
CW2

I forgot to mention I also have installed Visual Studio Community 2019 (16.10.0) with the extension version 2.2.5 working fine. If the problem can be caused by this particular combination of installed VS versions, please let me know in case you need to test anything or provide more information (e.g. fusion log); I am familiar with VS extension development.

Thanks for the bug report. I'm very sorry about that.
I think I know why that happened. I switched to reference the Dev16 SDK, believing it supported all downstream products. My bad. I guess I have to revert to an older SDK.

I switched to using the Dev14 (VS 2015) SDK pieces and verified that it now works on VS 2017.
Thanks again for the bug report.

I have checked the new 2.2.7 version and it works fine in VS 2017.
Thank you for such quick fix.


Handling of cancelled client requests

This is basically a question.  From what I can tell, if you refresh/reload a Grafana dashboard it will cancel outstanding database requests.  If Trickster in turn has long running requests to the backend database, are those proxied requests also cancelled?

Hi Geoff  - I believe this works as you describe, since the inbound request's context is associated with the upstream request
and should abort when it is canceled by the client. I will verify this and let you know for sure.

Thanks -- I'm trying to figure out at what layer in our proxying flow that the request is not being cancelled.  People push "refresh" on Grafana but somehow the original slow queries are still being processed by ClickHouse.  But I assume this behavior is important for other back ends as well.

After some more testing this works exactly as you expected/described.  Thanks!


Different validation errors onChange and onBlur

I've noticed a weird thing with some validation. If a field is required AND has a specific answer required to be valid the UI doesn't update with onChange properly. Instead when it blurs it shows the proper validation message. I've created a branch that recreates the issue in Storybook. Also there's a loom.
Branch: https://github.com/SelectQuoteLabs/SQForm/compare/form_validation_showcase
Loom: https://www.loom.com/share/e40a450e6da3459a8828b83086bdf0bf

So here's what I've found so far
isFieldError is only being set if isTouched and isError from Formik is set user useForm hook.
isTouched is not set until onBlur is called. Therefore the first time you change the value of a field you won't get the correct error until you blur the field. After that, so long as isTouched continues to be set, you'll continue to get the correct errors onChange.
Not sure exactly how we would want to handle this? Can we set isTouched in the onChange handler if the new value is different than the initialValue? Or, why do we need our error state to be dependent on isTouched? Do we want to be able to submit a form where the initialValue of a field is an invalid value?

:tada: This issue has been resolved in version 4.3.6 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


webview_flutter iOS  Xcode build error

Hello, I created a webview application that works just fine on Android, tested it on my phone also. Works. Tested on iPhone, Works. But when I try to build from xcode i am having the error: library not found for -lwebview_flutter. I did the steps required to have it work on iOS( adding the boolean in plist) Any suggestions? I can share any additional info if needed

It works fine for me, are you sure that you did everything right ?
This is how i have added permission for embedded views in my info.plist:
  <key>io.flutter.embedded_views_preview</key>
  <string>YES</string>

@dragen18 Did you find any way to solve the issue?

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.


SMSL sanskrit mk2 audio control

After fresh instalation of Moode Audio and your solution software volume control from Win/Android app worked flawlessly, despite fact that I got "Simple mixer control 'Master',0" It stopped working after few restarts. I dont know if it is known issue, I was surprised that it worked at all.

Hello, can you try to restart the container and post the logs?
docker-compose up -d --force-recreate
docker-compose logs

Not sure if it will help, because right now it is not working (when it stopped I've switched back to hardware volume controll), but there you have. If you want I can try to recreate it (hopefully I made backup image while it was working) and show you those logs. Let me know if it may help.
docker-compose up -d --force-recreate docker-compose logs Recreating tidal-connect ... done Attaching to tidal-connect tidal-connect    | Tidal Connect - https://github.com/GioF71/tidal-connect.git - entrypoint.sh version 0.1.8 tidal-connect    | Tidal Connect - https://github.com/GioF71/tidal-connect.git - common.sh version 0.1.7 tidal-connect    | FRIENDLY_NAME=Moode tidal-connect    | MODEL_NAME=Raspberry Pi tidal-connect    | MQA_CODEC=false tidal-connect    | MQA_PASSTHROUGH=false tidal-connect    | CARD_NAME=AUDIO tidal-connect    | CARD_INDEX= tidal-connect    | CARD_DEVICE= tidal-connect    | CARD_FORMAT= tidal-connect    | CREATED_ASOUND_CARD_NAME= tidal-connect    | ENABLE_SOFTVOLUME=yes tidal-connect    | ENABLE_GENERATED_TONE=yes tidal-connect    | ASOUND_FILE_PREFIX= tidal-connect    | FORCE_PLAYBACK_DEVICE= tidal-connect    | SLEEP_TIME_SEC=3 tidal-connect    | RESTART_ON_FAIL=1 tidal-connect    | RESTART_WAIT_SEC=10 tidal-connect    | CLIENT_ID= tidal-connect    | LOG_LEVEL=3 tidal-connect    | File [asound.conf] has not been provided tidal-connect    | File /etc/asound.conf does not exist. tidal-connect    | Entering write_asound_if_needed ... tidal-connect    | Specified CARD_NAME=[AUDIO] tidal-connect    | Found audio device [AUDIO] as index [0] tidal-connect    | Entering write_audio_config with card_index=[0] ... tidal-connect    | Creating sound configuration file (card_index=[0], softvol=[yes]) ... tidal-connect    | check_master=[numid=7,iface=MIXER,name='Master'] tidal-connect    | A control named [Master] already exists for the device at index [0] tidal-connect    | A softvolume control will be created for the device at index [0] using name [SoftMaster] tidal-connect    | *WARNING* Tidal volume slider might act on the hardware volume control tidal-connect    | *WARNING* If you don't want this, consider disabling software volume tidal-connect    | Building asound.conf with softvolume ... tidal-connect    | Setting PLAYBACK_DEVICE=[tidal-softvol] tidal-connect    | Sound configuration file created tidal-connect    | Completed write_audio_config tidal-connect    | Completed write_asound_if_needed. tidal-connect    | pcm.tidal-audio-device { tidal-connect    |   type plug tidal-connect    |   slave.pcm { tidal-connect    |     type hw tidal-connect    |     card 0 tidal-connect    |   } tidal-connect    | } tidal-connect    | pcm.tidal-softvol { tidal-connect    |   type softvol tidal-connect    |   slave { tidal-connect    |     pcm "tidal-audio-device" tidal-connect    |   } tidal-connect    |   control { tidal-connect    |     name "SoftMaster" tidal-connect    |     card 0 tidal-connect    |   } tidal-connect    | } tidal-connect    | PLAYBACK_DEVICE=[tidal-softvol] tidal-connect    | Starting Speaker Application in Background (TMUX) tidal-connect    | Sleeping for a while (3 seconds)...

Looks like your device already has a Master control. Please try this:

stop the tidal-connect container
reboot the computer
before starting tidal-connect again, try executing this:

amixer -c AUDIO controls
and please post the output!


Shouldn't checkout step ignore .gitignored files?

Shouldn't the circleci command ignore files in the local repo that are ignored by gitignore?
I'm having an issue testing locally in a repo where if the generated android build files and the node_modules files (both of which are ignored by .gitignore) are in the local repo when i run circleci build it fails on the checkout step trying to copy these files:
====>> Checkout code
  #!/bin/bash -eo pipefail
mkdir -p /home/circleci/my-company/the-project && cp -r /tmp/_circleci_local_build_repo/. /home/circleci/my-company/the-project
cp: cannot access ‘/tmp/_circleci_local_build_repo/./node_modules/react-native-auth0/android/build/generated/source/r/release/com’: Permission denied
cp: cannot access ‘/tmp/_circleci_local_build_repo/./node_modules/react-native-background-service/android/build/generated/source/r/release/com’: Permission denied
cp: cannot access ‘/tmp/_circleci_local_build_repo/./node_modules/react-native-background-timer/android/build/generated/source/r/release/com’: Permission denied
...etc

If I delete these folders (or move them outside the repo) the command succeeds, but having to do this all the time is really impractical. I would have thought that the command should ignore gitignored files so that the build environment is most like how it will be when actually running on circleci.com so why isn't it ignoring these files?
And even if it's deliberately doing this because it's useful in some cases, why does failing to read an ignored file cause the checkout step to fail, could it not at least just ignore errors when trying to read ignored files? (In my case these will be either be overwritten later in the script or they are completely irrelevant for the tests anyway)
Or is there maybe a .circleciignore-file or something similar I could use?

Right now the "local checkout" step is just a simple copy of all files. It should probably use git ls-files or git archive to build a tarball and use that as the context of the build.

This is now tracked at https://github.com/CircleCI-Public/circleci-cli/issues/151


Content css

it will be good to get an example to configure django-ckeditor to use additional css files
via
http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-addContentsCss
as far as I understand  - it is currently not possible to set custom css via config

+1

If you set a path to a file in statics folder then it should just work.

@riklaunim that sounds  something similar to offer to use html editor to make a site. Ofcause it is possible.
but the reason is the same why ckeditor has that method in a first place.  think of the feature is for cms where there is need to have css which is not known to admin site before hand and settings are configured in a page plugin which are added to main cms on occasion, and that plugin knows exactly which css it will use and can push it to admin configs

If it's not known when deploying the application then noting can be done on the Python side. You can play with using JavaScript code that will dynamically set some CSS file path when needed.

@riklaunim
it is known at deploy time. But django admin interface won't access arbitrary css file in static. So to allow to edit text in ckeditor in admin as it will appear on specific dynamically constructed page - there is need to configure ckeditor for specific page - letting it it know to use specific css.

Full working sample
# settings.py
CKEDITOR_CONFIGS = {
    'default': {
        'skin': 'moono',
        'toolbar': 'Basic',
        'toolbar_Basic': [
            {'name': 'document', 'items': ['Save', ]},
            {'name': 'basicstyles',
             'items': ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat', '-',
                       'PasteFromWord']},

            {'name': 'paragraph',
             'items': ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', 'NumberedList', 'BulletedList',
                       '-', 'Outdent', 'Indent', '-', 'Blockquote', '-',
                       ]},
            {'name': 'insert',
             'items': ['Table', 'HorizontalRule', 'SpecialChar', 'PageBreak']},

        ],
        'extraPlugins': ','.join(['sharedspace', 'save', 'autolink', ]),
        'removePlugins': ','.join(['resize', ]),
        'width': '21.0cm',
        'sharedSpaces': {
            'top': 'id-top-ckeditor-toolbar',
            'bottom': 'id-bottom-ckeditor-toolbar'
        },
        'contentsCss': 'html, iframe, body {overflow:hidden;outline: none;}',
    }
}

sample django template:
{% load staticfiles %}
<!DOCTYPE html>

    <meta charset="UTF-8">
    <title>Title</title>

    {% if form %}
        <form method="post">
            {% csrf_token %}
            {{ form }}
        </form>
    {% endif %}

{% if form %}
    {{ form.media }}
{% endif %}

@luzfcb thanks -
but could you please edit contentCss so that it assept css files?
@riklaunim
it is known at deploy time. But django admin interface won't access arbitrary css file in static. So to allow to edit text in ckeditor in admin as it will appear on specific dynamically constructed page - there is need to configure ckeditor for specific page - letting it it know to use specific css.
edit: it might be possible to accomplish the task  using class Media in specific admin class in plugin though, but might be easier to use ckeditor config fo automatically constructed admin

@Kurdakov the original ckeditor contentsCss configuration assepts css files
http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-contentsCss
but I never tried to do this with django-ckeditor

@luzfcb thanks a lot - I will try it

I have tried to add my custom css file and still I can't see it overriding the original styles.
I have added it to my CKEDITOR_CONFIGS setting like this:
CKEDITOR_CONFIGS = {
'default': {
'skin': 'moono',
'toolbar': [['Format'],
['Bold', 'Italic', 'Undo', 'Redo'],
['Link', 'Unlink'],
['Image'],
['SpecialChar'],
['Source']],
'tabSpaces': 4,
'contentsCss': '/static/css/uploader.css',
}
}
Any idea what am I doing wrong?

Not sure why that wouldn't work apart from caching problems or the CSS file not being there at all. contentsCss works perfectly here.
@filias what do you get when you access /static/css/uploader.css in the browser?

A possible workaround is to add the css with javascript
$(function() {
            setTimeout(function() {
                var $head = $(".cke_wysiwyg_frame").contents().find("head");
                var url = "{% static '<PATH-TO-YOUR-CSS>' %}";
                $head.append($("<link/>", { rel: "stylesheet", href: url, type: "text/css" } ));
            }, 2000); // Wait for CKEditor to init
        });

Where .cke_wysiwyg_frame is the class of the iframe.

@filias did you ever figure it out?

@rmuktader not really, I didn't work on that project anymore... I hope you find out.

@filias doing this in the admin class is the only thing that worked for me.
     class Media:         css = {                 'all': ('/static/css/rich-text-editor.css',)             }

Yes. I'd recommend using "all": ("css/rich-text-editor.css",) and not adding the /static/ prefix though. When using the former the name is mangled by ManifestStaticFilesStorage or other storages which may want other prefixes, such as when storing static files or S3 or so.

I have tried to add my custom css file and still I can't see it overriding the original styles.
I have added it to my CKEDITOR_CONFIGS setting like this:
CKEDITOR_CONFIGS = {
    'default': {
        'skin': 'moono',
        'toolbar': [['Format'],
                    ['Bold', 'Italic', 'Undo', 'Redo'],
                    ['Link', 'Unlink'],
                    ['Image'],
                    ['SpecialChar'],
                    ['Source']],
        'tabSpaces': 4,
        'contentsCss': '/static/css/uploader.css',
    }
}

Any idea what am I doing wrong?

You need to add !important in your css that overwrite any other css

This is actually possible right now.
    }
}


Query regarding library licensing

Hi Team,
Just came across the following file in debug library:
https://github.com/visionmedia/debug/blob/master/Makefile
On line #1, there is a reference to a StackOverflow URL. As the StackOverflow subscriber's content is licensed under CC-By-SA, should this library be licensed under similar license?
Just wanted to clarify, as we see the debug library is present in many popular libraries as a dependency like body-parser, express and more. These popular libraries are likely to be included in various commercial applications, would it affect the license for such applications?
Please advise.
Thanks in advance!

No. Please review what CC-By-SA requires. It does not require that the parent work is also licensed similarly. The only mainstream license that requires that is GPL, which is why it's not commonly used.


function.extensionality is broken in Agda 2.5.1

Unfortunately, I don’t know how to fix this.
No instance of type
Coercion
(((x : _X_34 h) → _Y_35 h x) .function.isomorphism.core.≅
 ({x : _X_34 h} → _Y_35 h x))
(_X_27 h → _Y_28 h)
was found in scope.
when checking that impl-iso is a valid argument to a function of
type
{i j : .Agda.Primitive.Level} {X : Set i} {Y : Set j}
{k : .Agda.Primitive.Level} {Source : Set k}
{{c : Coercion Source (X → Y)}} →
Source → X → Y

Agda 2.5.1 changed something in instance resolution, so I removed all the usages of apply and invert that weren't resolved correctly. Now it should type check.


repr's for Observer, FixedTarget

It's time to make some informative __repr__ methods for Observer and FixedTarget. Here's what I've done to start the conversation:
>>> from astroplan import Observer, FixedTarget
>>> keck = Observer.at_site("Keck", timezone="US/Hawaii")
>>> print(keck)
<Observer: name=u'Keck',
    location (lon, lat, el)=(-155.478333333 deg, 19.8283333333 deg, 4160.0 m),
    timezone=<DstTzInfo 'US/Hawaii' LMT-1 day, 13:29:00 STD>>

>>> polaris = FixedTarget.from_name('Polaris')
>>> print(polaris)
<FixedTarget: name=u'Polaris',
    coord=<SkyCoord (ICRS): (ra, dec) in deg
    (37.95456067, 89.26410897)>>

Thoughts and feelings, @astroplanners/astroplanners-contributors?

I definitely like the idea of informative __repr__s.  I think the Observer one looks good as-is, but for FixedTarget, perhaps something slightly simpler is better given that it's always got the same type of information?  That is, something like: <FixedTarget "Polaris" at SkyCoord (ICRS): (ra, dec) in deg     (37.95456067, 89.26410897)> (note also the removal of the brackets around SkyCoord - I think the >> at the end is a bit confusing/ugly and it's still clear what's going on)

RE @eteq: I've changed FixedTarget.__repr__ to show:
from astroplan import FixedTarget
polaris = FixedTarget.from_name('Polaris')
print(polaris)
<FixedTarget "Polaris" at SkyCoord (ICRS): (ra, dec) in deg (37.95456067, 89.26410897)>

:+1:
How does it look for a vector of targets?
Please add tests for those repr functions.

@cdeil for a vector of targets:
from astroplan import FixedTarget
ft_list = [FixedTarget.from_name(name)
           for name in ["Vega", "Polaris", "Rigel"]]
print(ft_list)

gives
[<FixedTarget "Vega" at SkyCoord (ICRS): (ra, dec) in deg
(279.23473479, 38.78368896)>, <FixedTarget "Polaris" at
SkyCoord (ICRS): (ra, dec) in deg (37.95456067, 89.26410897)>,
<FixedTarget "Rigel" at SkyCoord (ICRS): (ra, dec) in deg
(78.63446707, -8.20163837)>]

I just tried the Time and SkyCoord classes. Once they reach some length the repr uses ... to get a short string:
In [15]: SkyCoord(np.zeros(10000), np.ones(10000), unit=('deg','deg'))
Out[15]:
<SkyCoord (ICRS): (ra, dec) in deg
    [(0.0, 1.0), (0.0, 1.0), (0.0, 1.0), ..., (0.0, 1.0), (0.0, 1.0),
     (0.0, 1.0)]>

I like short repr, but I'm not sure it's worth implementing something else than what is here now. @eteq What do you think?
One point that's important is that repr never raise, because that can result in hard to understand tracebacks. So please add at least one test for the vector case (not sure if there are other cases that should be tested).

There's travis-ci fails for the tests implemented here.
E.g. https://travis-ci.org/astroplanners/astroplan/jobs/74598958#L528

@cdeil / @eteq / @adrn This problem is a 2/3 compatibility issue that I could use some help on. Strings in py3 are printed with a leading u that doesn't appear in py2, which is breaking some of my repr tests:
    def test_observer_repr():
        obs = Observer.at_site("Keck", timezone="US/Hawaii")
>       assert repr(obs) == ("<Observer: name='Keck',\n    location (lon, lat, el)="
                             "(-155.478333333 deg, 19.8283333333 deg, 4160.0 m),\n "
                             "   timezone=<DstTzInfo 'US/Hawaii' LMT-1 day, "
                             "13:29:00 STD>>")
E       assert '<Observer: n...3:29:00 STD>>' == '<Observer: na...3:29:00 STD>>'
E         - <Observer: name=u'Keck',
E         ?                 -
E         + <Observer: name='Keck',
E               location (lon, lat, el)=(-155.478333333 deg, 19.8283333333 deg, 4160.0 m),
E               timezone=<DstTzInfo 'US/Hawaii' LMT-1 day, 13:29:00 STD>>

What's the best way to test for string equivalence universally on py2 and 3?

Also @eteq / @cdeil: it'd be great if you took a look at the one-character PR astropy/astropy#4057, which is needed to make this astroplan PR (#53) work properly.

@bmorris3 – So this needs https://github.com/astropy/astropy/pull/4057 before the tests pass? If so we can't merge it, because we support Astropy 1.0 for now and this would break our continuous integration.
Maybe just mark these tests xfail for now and open a new reminder issue that they should be activated later?

What's the best way to test for string equivalence universally on py2 and 3?

Usually using string literals works, no?
assert "this" == "that"

What is difference about the repr string here that makes it fail on Py 2 or 3 (if that is the case, I didn't look)?

@cdeil These tests will pass before #4057 is fixed, because they've been written to not test a case where the astropy issue will cause failure. I'm just pointing you to that issue because it's a simple review.
Re "what's the difference": Py 3 stores strings as unicode strings by default, Py 2 does not. If a string is generated by repr in Py 2 and a string is printed with like "string", but the test is expecting Py 3 compatible output which looks like this u"string" the test will fail; and vice versa.

@cdeil and I have found that there are two separate issues. In one case there are more decimals of the numbers represented one version of the repr, the other has to do with unicode string literals. We're saving this to discuss with @eteq or @adrn either in GitHub or in the Hangout tomorrow.

Are you sure there is a problem with unicode literals? My dumb test that makes me question that idea:
Python 3.3.2 (default, Jun 30 2013, 12:10:10)
[GCC 4.2.1 Compatible Apple Clang 3.1 (tags/Apple/clang-318.0.61)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> u'apple' == 'apple'
True

Python 2.7.10 |Anaconda 1.8.0 (x86_64)| (default, May 28 2015, 17:04:42)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> u'apple' == 'apple'
True

It's taking the repr, then printing a string so that it comes out either "u'Keck'" or "'Keck'".

RE: the number of decimals issue -- I've run in to this problem before (with @eteq ) when writing doctests for astropy.coordinates. I think there is a way to solve this using the doctest directive FLOAT_CMP, e.g., on the line of the __repr__ test, add: # doctest: +FLOAT_CMP at the end of the line. Though, it looks like someone changed that to a plain ol' # doctest: +SKIP in astropy master, so not sure if that actually worked consistently...
e.g., see: https://raw.githubusercontent.com/astropy/astropy/master/docs/coordinates/sgr-example.rst

@bmorris3 ah I misread where the 'u' was ending up

I just now thought of a possible solution for the float representation difference issue: use only integers in the repr test.

@cdeil / @adrn: I got it to pass all of the tests! I it by:

undoing the repr call within the __repr__ method for the name argument, which gets rid of the pesky preceding u for the unicode string
swapping the __repr__ tests in the /tests dir for doctests in each __repr__ and using the # doctest: +FLOAT_CMP command suggested by @adrn to dodge the differing float length problem

Good to merge?

Nice! I'm down to merge

:clap:


iOS 10 Safari navbar disappears after opening a  menu

go to:
https://bootswatch.com/cerulean/
scroll to form and select the select element.
The navbar will disappear as long as the iOS Safari input helper is open and reappears when closing.
The same happens to ALL fixed elements on the page, they disappear\get relative positioned.
I have an SPA app which modifies the page contents when selecting an option and all elements stay hidden after closing after choosing a select option. The nav ans sidebar are seem to loose their fixed postition and stay at relative positions. Furtermore the postition of the select input helper is misplaced after opening the select element a second time. Turning the device repositions the select helper to the correct position.
Apple bug report has been filed. #28407863
generic bootstrap site before select

generic bootstrap site after select

web brf normal view before selecting select element

web brf nav sidebar scroll to top and all other fixed elements disappeared after selecting select element

web brf after closing select

web brf misplaced select helper

web brf after screen rotation select helper realigns

Apple bug report has been filed. #28407863

I would encourage you to repost your report to https://openradar.appspot.com
I would also encourage you to file a WebKit bug: https://bugs.webkit.org

However, since this concerns Bootstrap 3, which is no longer supported per #20631, I will close this.
Please let us know if the bug also occurs with Bootstrap 4, in which case I'll be happy to reopen this for further action.

Thanks,
bugs filed...
for BS4 demo see
http://www.codeply.com/go/GjrVfpcyEv
scroll down to select and watch the navbar disappear

WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=162362

@gomski Looks like you're using an iPad. What exact model of iPad is it?

its an iPad Air A1475

Hi, I noticed this too and created stack post yesterday.

Do we just need to document the bug here @cvrebert or can this be closed out as something outside our control?

@mdo Just need to add it to the Wall.

It looks like the Safari bug has been fixed in iOS 10.3.1.


q[m / s] or q.in(m / s)

First, I would like to state that I personally love the syntax that creates a reference based on quantity_spec and Unit:
quantity<isq::height[m]> q;

I wouldn't like to make the above gone.
However, yesterday I wrote the following example in our documentation:
auto q1 = 42 * W;
std::cout << q1 << "\n";
std::cout << q1[J / s] << "\n";
std::cout << q1[N * m / s] << "\n";
std::cout << q1[kg * m2 / s3] << "\n";

Initially, I provided this operator to entertain myself with this idea and for consistency with the above. However, there are a few significant differences here:

isq::height[m] is a pure compile-time operation with no runtime overhead. It also never touches the quantity value.
q[m], of course, creates a new type in compile-time but also involves a runtime value rescaling operation according to the provided new unit. It can also lead to overflows or losing the precision of a quantity value.

Even more, we now have a q.number_in(si::metre) (#412), which returns a raw value in a provided unit.
So here comes the questions:

Should we add q.in(si:::metre) to express runtime behavior and for consistency with number_in()?
Should we remove the q[si::metre]?
Should we have both solutions?

Should we have both solutions?

q.in(si::metre).number() can replace q.number_in(si::metre).

Well, we can also use q[si::metre].number() now.

BTW, there is one more important difference in behavior between isq::height[m] and q[m]. The first one is provided unconditionally, while the second one is available only for non-truncating conversion. Otherwise value_cast<m>(q) needs to be used.

Should we have both solutions?

q.in(si::metre).number() can replace q.number_in(si::metre).

IIRC, the proponents of number_in suggested removing number because it's unsafe.
So to get the number you have to specify the unit.

On the other hand, q.number_in(m), as of now, has the same constraints as q[m].


text added to MorseFlasher.ino

added my name in the code for the morse code flash idea i came up with :)

cool!


Can't map jest-dom matchers that receive parameters

this part of the API - jest-dom - has hit a roadblock as I try to be able to execute jest-dom as a standalone so I can execute it from Selenium.
more info

solved by porting it rather than mapping it.


cc-wrapper: Clean up dynamic linking with x86 multilib

Motivation for this change
It's better layering to do everything in ld-wrapper.
I pulled this out of https://github.com/NixOS/nixpkgs/pull/29396 as its good to consider on its own. It was reviewed there by @orivej, however.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
[x] Built statifier, some multilib-using Linux derivation
Built stdenv on platform(s)

[x] NixOS
[ ] macOS
[x] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

CC @orivej

Ok, this one is ready for review next!

Doing rebuilds overnight. Hope you all like it tomorrow!


Make layout optional in parser

Part of #37

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (82ddb10) to head (a6e3068).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main       #75   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           59        60    +1
  Lines         2850      2880   +30
=========================================
+ Hits          2850      2880   +30

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


EHN: Add rng option in random_mc.jl

Great contribution all around:
✔ functionality
✔ docs
✔ tests
👏


Add docstrings and update readme

Codecov Report
Patch and project coverage have no change.

Comparison is base (30333e0) 100.00% compared to head (d821f89) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #11   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           12        12
=========================================
  Hits            12        12

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


Critical Notifications

Checklist

[x] I checked for similar existing requests (both open and closed) before posting.
[x] My request is generic, other users may benefit from it too.

Proposal
Make channel and critical a option.
Additional info
Add parameters from this articel to the actions of Alarmo >>
https://companion.home-assistant.io/docs/notifications/critical-notifications/

That will be great 👍

@Glennesink @nielsfaber Hi All, has this feature implemented?


When vulnad.ps1 executed , it says Invoke-VulnAD not found. Kindly see this as i have set execution policy to unrestricted and ran script as admin

When vulnad.ps1 executed , it says Invoke-VulnAD not found. Kindly see this as i have set execution policy to unrestricted and ran script as admin. Also command for creating Active directory does not work. It says CreateDNSDelegation not found .

Did you execute follow command before you run Invoke-VulnAD?

Import-Module ./vulnad.ps1

Download script
Import-Module .\vulnad.ps1
Invoke ...
fun


Anzeige der Zuschauerzahlen in Prozent

Context: we know how many folks are enrolled in most courses, we could display something along the lines of 650 viewers (50%) for a course with 1300 students enrolled.
We'd need to make sure that the 50% doesn't seem like a limit though.


There is no timestamp error when using CommonJS syntax

I'm trying to test modules that use the simplified CommonJS syntax as described in this SO thread.
However, the karma-requirejs/lib/adapter.js logs an error "There is no timestamp for..."
For example:
// mysrc.js
define(function(require) {
  var foo = require('foo');
  var bar = require('bar');

  var someFunc = () {
    // do something with foo and bar...
  }

  return {
    someFunc: someFunc
  };
});

// mysrcSpec.js
define(['mysrc'], function(mysrc) {
  describe('testing', function() {
    it('does something', function() {
      mysrc.someFunc();
    }
  }
});

Then it doesn't even get as far as executing the test, console displays error "There is no timestamp for /base/foo.js"
However, if I rewrite mysrc.js in the traditional RequireJS syntax, then all dependencies are found and test passes:
define(['foo', 'bar'], function(foo, bar) {
   var someFunc = () {
    // do something with foo and bar...
  }
);

Is it possible to use the karma requirejs plugin together with the CommonJS style syntax?

Sorry had a mistake in the files section of karma.conf.js, fixed that and now it does work with the CommonJS syntax.


Name Error thrown for request: /keystone/styles/keystone.min.css

I just installed, started an logged in to admin section and got this css error:

KeystoneJS Started:
SydJS is ready on port 3000
GET / 200 892.545 ms
GET /keystone/ 302 352.823 ms
GET /keystone/signin 200 282.691 ms
POST /keystone/signin 200 537.094 ms
POST /keystone/signin 302 348.241 ms
GET /keystone/ 200 121.582 ms
LESS Name error : variable @select-menu-max-height is undefined
LESS File : /Users/goransvensson/Documents/iPrognos/keystonecms/node_modules/keystone/node_modules/react-select/less/select-menu.less 21:13

Error handling 500 (error):
[TypeError: Object # has no method 'err']

Name Error thrown for request: /keystone/styles/keystone.min.css
{ [Error: variable @select-menu-max-height is undefined]
type: 'Name',
message: 'variable @select-menu-max-height is undefined',
filename: '/Users/goransvensson/Documents/iPrognos/keystonecms/node_modules/keystone/node_modules/react-select/less/select-menu.less',
index: 732,
line: 21,
callLine: NaN,
callExtract: undefined,
column: 13,
extract:
[ '\tmargin-top: -1px;',
'\tmax-height: @select-menu-max-height;',
'\tposition: absolute;' ] }
GET /keystone/ 200 181.535 ms
LESS Name error : variable @select-menu-max-height is undefined
LESS File : /Users/goransvensson/Documents/iPrognos/keystonecms/node_modules/keystone/node_modules/react-select/less/select-menu.less 21:13
Chrome developer console also report this:
Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://localhost:3000/keystone/styles/keystone.min.css
It is difficult to find any keystone directory at all.
Any hint where to look and start debugging?
Regards,
Göran

Did a quick fix in /node_modules/keystone/node_modules/react-select/less/select-menu.less
and hard coded the value on line 21: max-height: 200px;
and on line 33: max-height: 198px;

The error
"Name Error thrown for request: /keystone/styles/keystone.min.css"
The file keystone.min.css is not there. It is located in
/keystone/public/styles/keystone.min.css
It seems that a part of keystone is updated since the SydJS site was created.
Is anyone maintaining the SydJS sample site ?


feature/support azure datasource

Spec

[x] Allow datasource to be stored on azure blob
[x] Allow streaming from azure
[x] Allow dedicated azure downloader

 Add Azure to Python client


Product feature vote system

Is your feature request related to a problem? Please describe.
It would we nice to have a vote system (like/not like/points) when listing products feature /roadmap can be voted by logging user or public users.

you can develop that as a custom vuejs component see here:
https://larecipe.binarytorch.com.my/docs/2.2/custom-css-and-js#new-theme