Document/support for M1

Is it unclear if this library support M1 macs or what is the required config for arm build to succeed?
Related to https://github.com/PyO3/pyo3/issues/1800

I haven't worked with M1 myself yet, the architecture is not relevant for rustimport directly though. This project just uses cargo/rustc and optionally pyo3, which afaik support M1 (?).
If you need to supply any additional configuration via e.g. additional command line arguments, there are some ways to do it though - please tell me if so.

@mityax I just tried all combination I could find in the PyO3 repo and only managed to get a stable build using Maturin directly. I assume some runtime injections are used somewhere depending on the platform. Rather sad, rustimport definitely offers a better interface.

It seems like maturin is adding some commandline args on macOS autmatically. Could you try this alternative way of adding them?
If that solves it I might make rustimport add them automatically as well for the sake of simplicity.

@mityax Thanks. I tried again this morning with fresh eyes, and managed to get it compiling using https://pyo3.rs/master/building_and_distribution.html#macos in the project local config ./.cargo/config.toml. Would it be possible to add pyo3_build_config in rustimport directly to avoid additional config?

Also, you may want to include some code signing logic (codesign --verify --verbose --sign - native.cpython-310-darwin.so) . Currently, it seems that the generated .so is rewritten violating its signature when used by another process (you can also remove and recreate the file instead).

I added a commit to set the linker args automatically, just as setuptools-rust does.
I prefer this command-line argument approach since it doesn't require changing any files or adding dependencies and is pretty dynamic (other templates than pyo3 could now also add additional arguments).
Could you try installing the latest version from git to see if it works correctly?
$ pip install --force-reinstall --no-cache git+https://github.com/mityax/rustimport.git

Also, you may want to include some code signing logic

Thanks for bringing that up. My guess is that the signature is not valid anymore because of the appended checksum – would that makes sense? Also, since I'm not an apple dev - what exactly are the benefits of codesigning in this context and does cargo do that automatically by default?

@mityax Works well, thanks.

My guess is that the signature is not valid anymore because of the appended checksum

I would assume so. As a temporary workaround, removing the file before re-creating it does the job. I am sadly unfamiliar with the topic. Maybe the a flag to re-create or sign the bundle would do the job?


Machine Learning test!

Choose the best ML algorithm to make the code run fast and efficiently

hi how about applying a deep learning model to the data i have a large data of leaf disease detection
i can train it and we can do prediction on it


Don't pass globals as arguments to bedrock2 functions

Here's my attempt to fix #817.
The idea is to parameterize the source code section in Aes.v over a Context {constant_vars : aes_constants expr}, whose fields are then instantiated to expr.literal SOME_Z_CONST for proofs and for compilation using the bedrock2 compiler, and instantiated to expr.var STRING_NAME_OF_CONST for pretty-printing to C code, and the pretty printer gets a list of varnames that it should treat as globals, that is, it does not make local definitions for them, and it checks that they are not modified or used as argument names.
As expected, this PR does not change the contents of aes.c.out that's generated by AesToC.v.
While updating the proofs, some of the bitfiddling proof automation didn't adapt so well at the first try. I guess if I tried a bit harder, I could adapt it to work again with what's there now, but it would just break the next time someone makes a change, so for now, I wrote more verbose proofs that are hopefully easier to debug, but at some point, I think we should invest in more robust and debuggable bitfiddling proof automation.
There might be potential for further simplifications, but I think the main pain point of having to pass all constants to each function call should be fixed now.
Review by @jadephilipoom please, and if you think it's good, I'd suggest to move the modifications in straighline_call and in the C pretty printer to upstream bedrock2 before merging this PR, that's why I marked it as a draft.

I think there are some corner cases to be careful of here, though.

I'm glad to see that these points are raised and scrutinized :) So let me explain in more detail what I already did to address such concerns:
If we have a program like this:
let idle := "AES_STATUS_IDLE" in
...
bedrock2_func_body:(
  foo = load(idle))

the bedrock2 program logic and semantics will not accept it, because it reads an uninitialized variable (map.get l "AES_STATUS_IDLE" = None, so evaluation of the load expression will fail).
However, a more worrisome example is this:
let idle := "AES_STATUS_IDLE" in
...
bedrock2_func_body:(
  idle = bar;
  foo = load(idle))

Here, the proofs think that the program is valid and that the load happens at address bar, whereas the pretty-printed C code, after macro AES_STATUS_IDLE has been expanded to 0 by the C preprocessor, would start with the statement 0 = bar;, ie it is not valid C, and not the same as the program we verified.
In order to prevent this from happening, I added a check to AesToC.v that prints an error if the function body tries to assign to a global variable.
Now, why does this prevent all cases where a local variable name clashes with a global constant? Let's distinguish two cases:

The local variable is never written. Then the program logic proof won't go through, because it will see an undefined variable, like in the first example above.
The local variable is written at least once. Then the check generates an error.

I agree that this exporting & reusing C macro-defined constants is delicate -- in principle AES_STATUS_IDLE could expand to any C snippet...

One suggestion for how this could look: write the source code with globals as expr.var, and then write a lightweight transformation that, given a map of constant names and values, substitutes literals wherever it sees those variables (unless they've been overwritten). We can then prove that the resulting program has the same behavior as the original, assuming that the locals map initially contains the same map that was passed to the transformation -- and then we can pass this literals-containing version to the compiler without leaving the door open to tricky corner cases. What do you think?

This idea looked promising at first, but then I noticed that to make sure the compiler correctness proof and the program logic proofs compose, we need to pass the same version to both, that is, the literals-containing version. This means that the var-containing version would only be used for pretty-printing, and an equivalence proof between the var-containing version that assumes these vars are locals, which is not how gcc sees them (it sees them as constants after the preprocessor has expanded them), would not really increase my confidence. So we're back to a situation where the proofs are about a slightly different version than what is fed to gcc, but that's the case in all approaches so far: Right now, the verified version passes more arguments to the functions than the version fed to gcc, and in all approaches, we verify the source against bedrock2 semantics, while gcc compiles it according to its own C semantics, so in any case, this is a tricky process where careful inspection is needed.


Import MicroProfile Approach to Reactive doc

This is an import of the following document:
https://docs.google.com/document/d/1PEVm6viY4fR7fQyC6i-O-PSO2ciBMCdO9b2R3bsLAnk/edit#
I've incorporated most of the feedback into this.

GitHub renders it with no problems:
https://github.com/jroper/microprofile-reactive/blob/approach-to-reactive-import/approach.asciidoc
My plan was to link to it from the README, the README would be a table of contents for the repository and contain information about the specs etc, while this would be a separate document describing governing principles. But if you think it should be part of the README itself, I'm happy to move it.

I've updated incorporating feedback from the MicroProfile Reactive hangout:
https://docs.google.com/document/d/1UKBBNFn-CeMih3lNUGvpShcL2aTpnvmJs9LQ8qT9OI0/edit#
cc @cescoffier @NottyCode

@Emily-Jiang any thoughts on whether I should move the document into the README?


M01 Unit 6 Task 4 - Password specified doesn't match password set previously in lab.

Module: 01
Lab/Demo: 06
Task: 04
Step: 00
Description of issue
Password in step 4 doesn't match password set previously in Task 3 (It's missing a $ sign)
Repro steps:

Alter password in 'Connect to the test VMs using RDP' from TestPa$w0rd! to TestPa$$w0rd!

Thank you for your feedback this was fixed in a previous pull request.


Trailing slash in import breaks an angular/cli build.

Bug report

What is the current behavior?
If I import anything from "@angular/core/" instead of "@angular/core" the generated umd bundle has an empty entry in the dependency list.
If the current behavior is a bug, please provide the steps to reproduce.
I have explained the issue thorougly here: https://github.com/angular/angular-cli/issues/11214

What is the expected behavior?
That I get a warning about removing trailing slashes from the import paths, or that these slashes are ignored. The error I was getting is from Uglify JS not being able to parse 2 consecutive commas, meaning that webpack has silently failed and generated invalid Javascript.

Other relevant information:
webpack version:  the one included with @angular/cli 6.0.8
Node.js version: 7
Operating System: Windows 10
Additional tools:

@Etchelon please provide minimum reproducible test repo, thanks!

Closing due to inactivity. Please test with latest version and feel free to reopen if still regressions. Thanks!


Error handling and ability to shut down server

I use glen_node for some local CLI dev and need to be able to shut down the server after receiving a oauth callback. hopefully this is to your liking

awesome, let me know when there's a new version on hex, then I can publish some dependent things


404 - Unknown commit object for CVE-2023-5678

Fixed in OpenSSL 1.1.1x (git commit) (Affected since 1.1.1)
https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=710fee740904b6290fef0dd5536fbcedbc38ff0c

https://www.openssl.org/news/secadv/20231106.txt
Due to the low severity of this issue we are not issuing new releases of
OpenSSL at this time. The fix will be included in the next releases when they
become available.
The fix is also available in commit ddeb4b6c6d527e54ce9a99cba785c0f7776e54b6
(for 3.1) and commit db925ae2e65d0d925adef429afc37f75bd1c2017 (for 3.0).
It is available to premium support customers in commit
710fee740904b6290fef0dd5536fbcedbc38ff0c (for 1.1.1) and in commit
34efaef6c103d636ab507a0cc34dca4d3aecc055 (for 1.0.2).

Commits 710fee740904b6290fef0dd5536fbcedbc38ff0c and 34efaef6c103d636ab507a0cc34dca4d3aecc055 reference this fix in the premium support repository, which is not exposed via gitweb
In the public repository this has been fixed on the master branch as commits ddeb4b6 and  db925ae.  It has and will not be fixed in the 1.1.1 and 1.0.2 branches of the public repository as they are out of support.


Add Middleware ordering section to Middleware doc

Per @JunTaoLuo in https://github.com/aspnet/Docs/pull/2505#discussion_r96088295
The Middleware doc should address middleware ordering that can circumvent middleware from running if it's placed after a terminal middleware.
Proposal: Add a section after the Built-in middleware section with content something like this ...
Middleware ordering
Terminal middleware, which processes a request and returns a response, placed before another middleware will prevent the downstream middleware from executing. For example, if you place the Static File Middleware before the Response Compression Middleware, your static files cannot be compressed. The Static File Middleware will fully handle requests for static files, returning them to clients before the Response Compression Middleware can execute.
public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles();
    app.UseResponseCompression();
    app.UseMvcWithDefaultRoute();
}

If you intend to use the Response Compression Middleware to compress your static files, position the Response Compression Middleware earlier in the request processing pipeline. The following example demonstrates the middleware arrangement that would result in compression of your static files.
public void Configure(IApplicationBuilder app)
{
    app.UseResponseCompression();
    app.UseStaticFiles();
    app.UseMvcWithDefaultRoute();
}

@GuardRex  looks good to me. Can you PR and ask [@]JunTaoLuo to review?


[Go Live][30 Jan 2022]

Docs Build status updates of commit 6e8e84f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/icons/GitHub-icon.png
:white_check_mark:Succeeded
View

msteams-platform/assets/icons/microsoft-icon.png
:white_check_mark:Succeeded
View

msteams-platform/assets/icons/stack-overflow-icon.png
:white_check_mark:Succeeded
View

msteams-platform/assets/icons/teams-icon.png
:white_check_mark:Succeeded
View

msteams-platform/bots/how-to/conversations/channel-messages-with-rsc.md
:white_check_mark:Succeeded
View

msteams-platform/feedback.md
:white_check_mark:Succeeded
View

msteams-platform/m365-apps/extend-m365-teams-message-extension.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


tests/kernel/mem_heap/k_heap_api/kernel.k_heap_api fails on intel_adsp_cavs25.

Describe the bug
Test fails sporadically... It's hard to reproduce.
To Reproduce
scripts/twister -W -p intel_adsp_cavs25 --device-testing --hardware-map <path_to>/cavs/cavs.map -T tests/kernel/mem_heap/k_heap_api -v
Expected behavior
Test should pass.
Impact
Annoyance, affects our CI.
Logs and console output
Twister output.
tests/kernel/mem_heap/k_heap_api/kernel.k_heap_api  FAILED Timeout ( 60.524s)
and <path_to>/handler.log contains.
ERROR   - INFO:cavs-client:REMOTE HOST: <host_ip> PORT: <host_port>
INFO:cavs-client:Monitor process
INFO:cavs-client:Sent:     start_log
INFO:cavs-client:Receive: start_log
INFO:cavs-client:Start to monitor log output...

Environment :

OS: Linux
Toolchain:  Zephyr SDK v 16.1
Zephyr version: zephyr-v3.4.0-3031-g81e28a4f1bef.

 So it is highly probable that it's a local CI issue. Closing for now. Reopen if needed.


Remain in buffering state until text is buffered

Using hls streams, for example this shaka-demo, you can notice than on seek ts-segments and webvtt-segments don't get loaded evenly.

Expected:
fileSequence64.ts
fileSequence64.webvtt
fileSequence65.ts
fileSequence65.webvtt

or
fileSequence64.webvtt
fileSequence64.ts
fileSequence65.webvtt
fileSequence65.ts

That's why sometimes when you seek your hls-streams you could catch your videos without subtitles for a while.

I notice the TS segments are grey, so the browser is probably caching the segments, so they get downloaded immediately.  Since the first TS segment is downloaded quickly, we fetch the second soon.  We don't have any scheduling for segments, we just download segments in order as quickly as we can.  We also play the video once audio+video is downloaded, so we'll start playing even if we don't have the text available.

How can I avoid playing without vtt segment? Like add subtitles as required as audio+video.

I think it's sorta bug, because if text track is enabled and selected, then player ought to wait for a text fragment as well as audio and video.

This doesn't appear to be a bug to me.  We have logic that no stream should be more than 1 segment ahead of any other, and that restriction appears to be working.  Your audio doesn't get 10 segments ahead of your video (as it used to once upon a time in an old version of Shaka Player).  The same is true for text.
The buffering of media (pausing until more is loaded) is done at the level of the media element (<video> or <audio> tag in the HTML).  This does not include text, which is handled separately.
Text does not need to be fetched ahead of audio or video being fetched, it only needs to be processed ahead of audio or video being played.  It's possible that your buffering goal (what is fetched ahead of playback) is really close to your segment size.  We can't tell what your segment size is, but 10s is surprisingly common still, and that's also our default buffering goal in current versions of Shaka Player.
Therefore I would recommend you increase the buffering goal of the player so that what is fetched and processed is further ahead of what is being played.  Try this:
player.configure('streaming.bufferingGoal', 20);

If that doesn't work, try increasing it to 30.
Does this help?

Parameter bufferingGoal could help with playing without seeks, when you seek a stream (or walk through specific time points), the player doesn't wait for subtitles and start playing without them. That's why you could miss one vtt-cue if it has relatively heavy size or short duration (which could disturb hear-impaired persons), currently the only way of walk-around the problem is rewind a little back the stream to re-watch it with already downloaded text segment.

I think it's reasonable to change our buffering logic to also wait for text tracks.  We currently manually enter a buffering state when we don't have enough data and only move forward when we have buffered streaming.rebufferingGoal amount of content.  We could extend this logic to apply to text too.  If the user has enabled text tracks, it's because they may need it so it should be the same priority as audio.

Is anyone interested in seeing this implemented? Otherwise the issue will be closed in 7 days.


long tests fail

commented out for now, check back

fixed by fixed grabbids exact match fix https://github.com/INCF/pybids/issues/25


Fix recorder tab

Broken since removing angular

@tsachis can up have a look at https://github.com/outbrain/Leonardo/blob/master/src/leonardo/ui/views/recorder/state-detail/states-detail.ts#L28
I'm not sure whats going on - we need to figure out when an item in the recorder is an option for an existing state or the user needs to define a new state (with an initial option).
Looking at the old code it seems like stateActive is responsible, but doesn't seem to work.
FYI - to test this simple remove/add the <script src="mock.js"></script> from examples/angularIL/index.html and look at the login request.

fixed


Update the IA UI

It is inconsistent with other screens. Please change it to this one - https://www.figma.com/file/toOjVICtIYu5WmNbhJuyxm/JAC?node-id=146%3A1970
We have added check boxes, as per other screens.

Looks like this should still be open following code review / UT


Error: incompatible marshal file format

Hi guys good afternoon, I'm setting up a straight-server in ubuntu 16 and the server starts ok, it generate gateways and orders on the DB correctly, but only in BTC currency, when I try to generate in USD o EUR it sends the next error:
^Croot@ubuntu-s-2vcpu-4gb-sfo2-01-BTC-process:~# straight-server -p 9696
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-1.0.0/lib/straight/faraday_monkeypatch.rb:1: warning: already initialized constant Faraday::SSLOptions
/usr/share/rvm/gems/ruby-2.5.1/gems/faraday-0.15.2/lib/faraday/options.rb:218: warning: previous definition of SSLOptions was here
Setting config dir to /root/.straight
I, [2018-08-09T22:48:32.226964 #17011]  INFO -- : starting Straight Server v 1.0.0
I, [2018-08-09T22:48:36.623765 #17011]  INFO -- : POST /gateways/0bed1c74cc5fa8deb1c0db270b34d54e5e2f871a2673b1e837515c9e45ea15fd/orders
{"amount"=>"100"}
I, [2018-08-09T22:48:36.625630 #17011]  INFO -- : Creating new order with attrs: {:amount=>"100", :currency=>nil, :btc_denomination=>nil, :keychain_id=>nil, :callback_data=>nil, :data=>nil, :description=>nil}
F, [2018-08-09T22:48:36.627979 #17011] FATAL -- : Straight::GatewayModule::NoAdaptersAvailable: the list of exchange rate adapters is empty or nil
Backtrace:
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-1.0.0/lib/straight/gateway.rb:188:in try_adapters'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-1.0.0/lib/straight/gateway.rb:157:in amount_from_exchange_rate'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-1.0.0/lib/straight/gateway.rb:99:in new_order'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/gateway.rb:140:in create_order'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/orders_controller.rb:55:in create'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/orders_controller.rb:169:in dispatch'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/orders_controller.rb:16:in initialize'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/initializer.rb:133:in new'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/initializer.rb:133:in block in initialize_routes'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:71:in block in process_request'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:70:in each'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:70:in process_request'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:43:in block in response'     /usr/share/rvm/gems/ruby-2.5.1/gems/logmaster-0.1.5/lib/logmaster.rb:54:in watch_exceptions'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:36:in response'     /usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/api.rb:163:in call'
/usr/share/rvm/gems/ruby-2.5.1/gems/faye-websocket-0.10.7/lib/faye/adapters/goliath.rb:28:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/rack/params.rb:67:in call'
/usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/rack/async_middleware.rb:73:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/rack-1.6.10/lib/rack/content_length.rb:15:in call'
/usr/share/rvm/gems/ruby-2.5.1/gems/async-rack-0.5.1/lib/async_rack/async_callback.rb:114:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/async-rack-0.5.1/lib/async_rack/async_callback.rb:91:in block in new'
/usr/share/rvm/gems/ruby-2.5.1/gems/rack-1.6.10/lib/rack/reloader.rb:45:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/request.rb:166:in block in process'
the value of exchange adapter was NULL

After that, in the DB I put in the next values

and that was the next error:
^Croot@ubuntu-s-2vcpu-4gb-sfo2-01-BTC-process:~# straight-server -p 9696
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-1.0.0/lib/straight/faraday_monkeypatch.rb:1: warning: already initialized constant Faraday::SSLOptions
/usr/share/rvm/gems/ruby-2.5.1/gems/faraday-0.15.2/lib/faraday/options.rb:218: warning: previous definition of SSLOptions was here
Setting config dir to /root/.straight
I, [2018-08-09T22:49:13.853265 #17013]  INFO -- : starting Straight Server v 1.0.0
^Croot@ubuntu-s-2vcpu-4gb-sfo2-01-BTC-process:~# straight-server -p 9696
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-1.0.0/lib/straight/faraday_monkeypatch.rb:1: warning: already initialized constant Faraday::SSLOptions
/usr/share/rvm/gems/ruby-2.5.1/gems/faraday-0.15.2/lib/faraday/options.rb:218: warning: previous definition of SSLOptions was here
Setting config dir to /root/.straight
I, [2018-08-09T22:53:03.589397 #17106]  INFO -- : starting Straight Server v 1.0.0
I, [2018-08-09T22:53:07.256709 #17106]  INFO -- : POST /gateways/0bed1c74cc5fa8deb1c0db270b34d54e5e2f871a2673b1e837515c9e45ea15fd/orders
{"amount"=>"100"}
F, [2018-08-09T22:53:07.258544 #17106] FATAL -- : TypeError: incompatible marshal file format (can't be read)
format version 4.8 required; 6.43 given
Backtrace:
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/plugins/serialization.rb:100:in load'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/plugins/serialization.rb:100:in block in module:Serialization'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/plugins/serialization.rb:203:in deserialize_value'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/plugins/serialization.rb:154:in block (3 levels) in define_serialized_attribute_accessor'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/gateway.rb:61:in initialize_exchange_rate_adapters'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/gateway.rb:398:in after_initialize'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/plugins/after_initialize.rb:20:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:935:in block in with_sql_each'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:335:in block (2 levels) in fetch_rows'     /usr/share/rvm/gems/ruby-2.5.1/gems/sqlite3-1.3.13/lib/sqlite3/resultset.rb:138:in each'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:326:in block in fetch_rows'     /usr/share/rvm/gems/ruby-2.5.1/gems/sqlite3-1.3.13/lib/sqlite3/database.rb:267:in query'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:187:in block (2 levels) in _execute'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/database/logging.rb:38:in log_connection_yield'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:187:in block in _execute'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/connection_pool/threaded.rb:91:in hold'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/database/connecting.rb:270:in synchronize'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:180:in _execute'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:126:in execute'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:1083:in execute'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/adapters/sqlite.rb:320:in fetch_rows'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:935:in with_sql_each'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:945:in with_sql_first'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:701:in single_record!'
/usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:689:in single_record'     /usr/share/rvm/gems/ruby-2.5.1/gems/sequel-5.11.0/lib/sequel/dataset/actions.rb:207:in first'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/gateway.rb:367:in find_by_hashed_id'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/orders_controller.rb:153:in dispatch'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/orders_controller.rb:16:in initialize'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/initializer.rb:133:in new'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/initializer.rb:133:in block in initialize_routes'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:71:in block in process_request'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:70:in each'     /usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:70:in process_request'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:43:in block in response'     /usr/share/rvm/gems/ruby-2.5.1/gems/logmaster-0.1.5/lib/logmaster.rb:54:in watch_exceptions'
/usr/share/rvm/gems/ruby-2.5.1/gems/straight-server-1.0.0/lib/straight-server/server.rb:36:in response'     /usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/api.rb:163:in call'
/usr/share/rvm/gems/ruby-2.5.1/gems/faye-websocket-0.10.7/lib/faye/adapters/goliath.rb:28:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/rack/params.rb:67:in call'
/usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/rack/async_middleware.rb:73:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/rack-1.6.10/lib/rack/content_length.rb:15:in call'
/usr/share/rvm/gems/ruby-2.5.1/gems/async-rack-0.5.1/lib/async_rack/async_callback.rb:114:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/async-rack-0.5.1/lib/async_rack/async_callback.rb:91:in block in new'
/usr/share/rvm/gems/ruby-2.5.1/gems/rack-1.6.10/lib/rack/reloader.rb:45:in call'     /usr/share/rvm/gems/ruby-2.5.1/gems/goliath-1.0.6/lib/goliath/request.rb:166:in block in process'
Any ideas what is that I'm doing wrong?

y Solved this inserting the adapters like this:
DB = Sequel.sqlite('/root/.straight/straight.db')
gateguay = DB[:gateways]
gateguay.update(exchange_rate_adapter_names: Marshal.dump(["Bitpay"]))

Hello! In case this is still an issue, feel free to submit it to https://github.com/mycelium-com/gear-engine/issues


[reuse] put licenses for .svg in separate files

With version 3.0 of the reuse tool, it doesn't like the licensing statement in the .svg headers anymore...

@dglaeser have you checked with the most recent version? There was a fix in the reuse tool a couple of days ago right around the release that fixed some issues regarding the parsing of headers in certain files.


Update dependency: deps/k_release

With K v7.1.65 (Haskell backend update runtimeverification/k#4517) the following test keeps failing:
PROOF FAILED: LEMMAS-SPEC.range-31
1 Failure nodes. (0 pending and 1 failing)

Failing nodes:

  Node id: 3
  Failure reason:
    Matching failed.
    The following cells failed matching individually (antecedent #Implies consequent):
    K_CELL: doneLemma ( #range ( X:Bytes , S1:Int #Implies S2:Int +Int 5 , 32 ) +Bytes Y:Bytes +Bytes #buf ( Z:Int -Int lengthBytes ( Y:Bytes ) , 0 ) #Implies Y:Bytes )
    ~> K_CELL_de090c3b:K
  Path condition:
    #Top

Join the Runtime Verification Discord server (https://discord.com/invite/CurfmXNtbN) or Telegram group (https://t.me/rv_kontrol) for support.

(https://github.com/runtimeverification/evm-semantics/actions/runs/9968614116/job/27555142835#step:8:378)
@anvacaru, I'm going to drop that commit so that changes up to K v7.1.64 can be merged. Please do the debugging and reporting for K v7.1.65.


Properties as Table like function properties

Hi,
Is it possible to document interface parameters like function properties as a table instead of listed one by one.
The reason I'm asking is that, I'm using typedoc to create README.md files and interface parameters make the page very long.
Thanks,

Hi, @ozum @tgreyuk
The requirement might be different from different case.
Some project's API document (property comments) are simple (one-line), so that project might need a property-table markdown description to make the document clean & tidy.
However, some project's API document are complex (like they needs to include a example-code-comment inside the property comment).
In this situation, the comment is a multi-line comment.
Due to the markdown table has poor support for multiline-text,
So markdown table may not fit this situation.
So the list mode is still needed in this situation.
If someone is willing to implement this, I suggest to provide a configuration to switch the document style:
Table mode, that render the properties to table, which fits the one-line comment in properties.
List mode, that render the properties to a list (current behavior), witch fits the multi line comments in properties.

https://www.typedoc-plugin-markdown.org/docs/options#propertiesformat


Add solara notebook

This adds a minimal implementation of the dashboad (the only thing left out was the text) using solara.
It could use a bit more text but is definitely a very different approach!

You misspelled "accordion" as "accordian" in your comments for the definition of Page(), but otherwise looks good.


Result of SetBit or ClearBit query is inaccessible

QueryResult doesn't appear to have any method to access the boolean response from SetBit or ClearBit. I could be missing it, but all the example code also neglects the response.

PR https://github.com/pilosa/java-pilosa/pull/86 address this issue. Closing.


Unrecognized command or argument 'mssql'.

Dotnet Interactive MSSQL
I'm using the latest version of VSCODE
and follow the instructions but some error happens and says:
Error: The required command was not provided.
Code:
#r "nuget:Microsoft.DotNet.Interactive.SqlServer,*-*"
#!connect mssql --kernel-name mydatabase "Persist Security Info=False; Integrated Security=true; Initial Catalog=MyDatabase; Server=localhost"

Output:
Unrecognized command or argument 'mssql'.
Unrecognized command or argument '--kernel-name'.
Unrecognized command or argument 'mydatabase'.
Unrecognized command or argument 'Persist Security Info=False; Integrated Security=true; Initial Catalog=MyDatabase; Server=localhost'.

I know I should customize Connection string, but error is somewhere else
Please complete the following:
.NET Interactive
© 2020 Microsoft Corporation
Version: 1.0.345202+1f7cb23c53cee7fedf47418a0b0321090034af16
Library version: 1.0.0-beta.22452.2+1f7cb23c53cee7fedf47418a0b0321090034af16
Build date: 2023-10-07T11:18:50.4361748Z

OS

[x] Windows 11
[ ] Windows 10
[ ] macOS
[ ] Linux (Please specify distro)
[ ] iOS
[ ] Android

Frontend

[ ] Jupyter Notebook
[ ] Jupyter Lab
[ ] nteract
[x] Visual Studio Code
[ ] Visual Studio Code Insiders
[ ] Visual Studio
[ ] Other (please specify)

Screenshots

I also get the same.
Additionally I get the following error when trying to create a db context:
#!connect mssql --create-dbcontext --kernel-name myKernel "Data Source=
Error: System.InvalidOperationException: /Users/ianchivers/.dotnet/tools/MicrosoftSqlToolsServiceLayer failed to start properly. Exit code: 150.
---> StreamJsonRpc.ConnectionLostException: The JSON-RPC connection with the remote party was lost before the request could complete.
---> System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Threading.CancellationToken.ThrowIfCancellationRequested()
at StreamJsonRpc.MessageHandlerBase.WriteAsync(JsonRpcMessage content, CancellationToken cancellationToken)
at StreamJsonRpc.JsonRpc.SendAsync(JsonRpcMessage message, CancellationToken cancellationToken)
at StreamJsonRpc.JsonRpc.InvokeCoreAsync(JsonRpcRequest request, Type expectedResultType, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at StreamJsonRpc.JsonRpc.InvokeCoreAsync(JsonRpcRequest request, Type expectedResultType, CancellationToken cancellationToken)
at StreamJsonRpc.JsonRpc.InvokeCoreAsync[TResult](RequestId id, String targetName, IReadOnlyList1 arguments, IReadOnlyList1 positionalArgumentDeclaredTypes, IReadOnlyDictionary`2 namedArgumentDeclaredTypes, CancellationToken cancellationToken, Boolean isParameterObject)
at Microsoft.DotNet.Interactive.SqlServer.ToolsServiceClient.ConnectAsync(ConnectParams connectParams)
--- End of inner exception stack trace ---
at Microsoft.DotNet.Interactive.SqlServer.ToolsServiceClient.ConnectAsync(ConnectParams connectParams)
at Microsoft.DotNet.Interactive.SqlServer.ToolsServiceClientExtensions.ConnectAsync(ToolsServiceClient serviceClient, Uri ownerUri, String connectionStr)
at Microsoft.DotNet.Interactive.SqlServer.MsSqlKernel.ConnectAsync()
at Microsoft.DotNet.Interactive.SqlServer.MsSqlKernelConnector.CreateKernelAsync(String kernelName)
at Microsoft.DotNet.Interactive.SqlServer.ConnectMsSqlCommand.ConnectKernelsAsync(KernelInvocationContext context, InvocationContext commandLineContext)
at Microsoft.DotNet.Interactive.CompositeKernel.<>c__DisplayClass21_0.<b__0>d.MoveNext() in D:\a_work\1\s\src\Microsoft.DotNet.Interactive\CompositeKernel.cs:line 271
--- End of stack trace from previous location ---
at System.CommandLine.NamingConventionBinder.CommandHandler.GetExitCodeAsync(Object returnValue, InvocationContext context)
at System.CommandLine.NamingConventionBinder.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass15_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Invocation.InvocationPipeline.g__FullInvocationChainAsync|2_0(InvocationContext context)
at System.CommandLine.Parsing.ParseResultExtensions.InvokeAsync(ParseResult parseResult, IConsole console)
at Microsoft.DotNet.Interactive.Commands.DirectiveCommand.InvokeAsync(KernelInvocationContext context) in D:\a_work\1\s\src\Microsoft.DotNet.Interactive\Commands\DirectiveCommand.cs:line 33
at Microsoft.DotNet.Interactive.Kernel.HandleAsync(KernelCommand command, KernelInvocationContext context) in D:\a_work\1\s\src\Microsoft.DotNet.Interactive\Kernel.cs:line 330
at Microsoft.DotNet.Interactive.KernelCommandPipeline.b__6_0(KernelCommand command, KernelInvocationContext context, KernelPipelineContinuation _) in D:\a_work\1\s\src\Microsoft.DotNet.Interactive\KernelCommandPipeline.cs:line 60
at Microsoft.DotNet.Interactive.KernelCommandPipeline.SendAsync(KernelCommand command, KernelInvocationContext context) in D:\a_work\1\s\src\Microsoft.DotNet.Interactive\KernelCommandPipeline.cs:line 41


Move netns directory into StateDir

The directory where cri puts the netns references is currently hardcoded. This moves it into StateDir which can be configured.
Having this configurable is useful for systems with read-only root filesystems where one needs tight controls over where software
is able to write to.

Meaning I should gate this behind a setting?

Meaning I should gate this behind a setting?

Yes, that seems safer to keep compatibility.

Yes, that seems safer to keep compatibility.

@lorenz One question, what underlying system are you running on that does not have /var/run as tmpfs?  Ideally in all modern systems, /run is tmpfs and /var/run should symlink to /run

I still think this change is fine to make, we just need to make sure we are backward compatible in cause of a user upgrading containerd while pods are running.

@crosbymichael This is a custom operating system being developed. It does not even have /var and the entire root is a read-only filesystem. It also doesn't have /run.
I'll implement a flag to gate this.

@AkihiroSuda Done, the new behavior is now gated behind netns_mounts_under_state_dir.

Thanks, the code looks good but could you squash the commits

Done


Update metadata to (presumably) v8.10.21

As the repo doesn't have documentation, I had to guess. Please let me know if I did this incorrectly:
cd libPhoneNumberTests
./metadataGenerator
cd ../libPhoneNumber
./GeneratePhoneNumberHeader.sh

I don't know if the test failure is a (now) faulty test, or a fault of the process I ran above.

@iziz @paween bump

A new metadata has been merged.


Troubleshooting guide directs to delete the wrong thing

In troubleshooting instructions for deleting the GKE Certificate, the listed command is kubectl -n istio-system delete ingress envoy-ingress, rather than kubectl -n istio-system delete managedcertificate gke-certificate

Thanks @mmwebster for submitting this issue.
/cc @abhi-g

Thanks @mmwebster !
/assign @Bobgy

@8bitmp3 let's address this separately.
/assign @jlewi
Can you take a look at this issue? I'm not familiar with the reported problem.


Problem with ElasticSearch host URL

Hi @delirius325 ,
I am facing a problem with respect to the ElasticSearch host URL. In a normal scenario, the URL for accessing the ElasticSearch is https://<ElasticSearch_Host_URL>, but the URL given to us for using is in this format - https://<ElasticSearch_Host_URL>/elasticsearch-loadtest/
So, my question is how can I fit this URL, (mainly the extra part /elasticsearch-loadtest/) in the backend listener form. Also, to use the URL https://<ElasticSearch_Host_URL>/elasticsearch-loadtest/ an user name and password is required. So in which field I have to add the user credential ?
Thanks,
Sourav

Hi @sg86-sourav ,
Technically, adding the extra /elasticsearch-loadtestin the es.host field should work. As far as username/password, it usually means XPack is installed on the instance. You would then need to add your username/password in the es.xpack.user and es.xpack.password.
Hopes this helps!

Hi @delirius325,
Regarding host, we have tried the option you have mentioned, but getting an error as mentioned below -
es.scheme  = https
es.host =  <ElasticSearch_Host_URL>/elasticsearch-loadtest/
es.port = 443
es.xpack.user = <user_name>
es.xpack.password =
Error Message :
Error with node: [host=https://<host_url>/elasticsearch-loadtest/:443]
Thanks,
Sourav

Remove the extra / at the end of the es.host input

Hi @delirius325,
I have tried by removing extra '/', but getting the same error.
ElasticsearchBackendClient: Error with node: [host=https://commerce-dp.ah.nl/elasticsearch-loadtest:443]
However, I have tried with another approach, as mentioned below, and using that I am able to create index in ElasticSearch from Jmeter, but it is not able to post the data -
es.scheme = https
es.host = <ElasticSearch_Host_URL>
es.port = 443
es.index = elasticsearch-loadtest/<index_name>
es.xpack.user = <user_name>
es.xpack.password = <user_passwd>
After further analysis, I found that the following code snippet is failing due to which it is not able to detect the version of the ElasticSearch. Throwing the error message - ERROR i.g.d.j.b.e.ElasticSearchMetricSender: Exceptionorg.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
public int getElasticSearchVersion() {
Request request = new Request("GET", "/" );
int elasticSearchVersion = -1;
try {
Response response = this.client.performRequest(setAuthorizationHeader(request));
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK && logger.isErrorEnabled()) {
logger.error("Unable to perform request to ElasticSearch engine for index {}. Response status: {}",
this.esIndex, response.getStatusLine().toString());
}else {
String responseBody = EntityUtils.toString(response.getEntity());
JSONObject elasticSearchConfig = new JSONObject(responseBody);
JSONObject version  = (JSONObject) elasticSearchConfig.get("version");
String elasticVersion =  version.get("number").toString();
elasticSearchVersion = Integer.parseInt(elasticVersion.split("\.")[0]);
logger.info("ElasticSearch Version : "  + Integer.toString(elasticSearchVersion));
}
} catch (Exception e) {
if (logger.isErrorEnabled()) {
logger.error("Exception" + e);
logger.error("ElasticSearch Backend Listener was unable to perform request to the ElasticSearch engine. Check your JMeter console for more info.");
}
}
return elasticSearchVersion;
}
As it is not able to detect version, it is taking the default version i.e. -1 and due to this it is calling the following code snippet, which is for less than 7 version, but I am using 7.8.0 version.
_if(elasticSearchVersionPrefix < 7) {
request = new Request("POST", "/" + this.esIndex + "/SampleResult/bulk");
actionMetaData = String.format(SEND_BULK_REQUEST, this.esIndex, "SampleResult");
}
It supposed to call the following code snippet for posting the data as the version is more than 7-
_else {
request = new Request("POST", "/" + this.esIndex + "/bulk");
actionMetaData = String.format(SEND_BULK_REQUEST, this.esIndex);
}
Please look into it and let me know how I can resolve it.


Isolates dev styles that shouldn't apply to the doc

Looks good to me

@dylanesque tip for the future, in case you don't already know: You can officially "approve" the PR by going to "Files changed", clicking the green "Review changes" button in the top-left, and selecting "Approve." Or you can comment or request changes from there. That makes it easier to keep track of who's looked at the PR, whether something's blocking it, and how many approvals it's gotten. Again sorry if you already knew this; just trying to help you out in case you didn't.

@dylanesque tip for the future, in case you don't already know: You can officially "approve" the PR by going to "Files changed", clicking the green "Review changes" button in the top-left, and selecting "Approve." Or you can comment or request changes from there. That makes it easier to keep track of who's looked at the PR, whether something's blocking it, and how many approvals it's gotten. Again sorry if you already knew this; just trying to help you out in case you didn't.

No, that's useful for me to know, thanks!


More attractive main menu

Ideas: https://hu.pinterest.com/zivdesign/ui-main-menu/

A new menu design is ready.


Use the URL shortener for non-ASCII URLs

Detect when a URL uses non-US-ASCII characters and automatically use the URL shortener.
If the shortener chokes on a URL, make sure we display an appropriate error message (ie, don't say the URL is too long if it isn't).

Great!


Feat/sort by embedding

This PR is the first stab at sorting at indexing and sorting by an embeddings column.
oxen workspace create -n index_titles
oxen workspace df index train_0_100_embeddings.parquet -w 446d6e6c-1a3a-4645-9e6e-fc79759f6cc0 -c title_embeddings --embeddings
oxen workspace df get train_0_50000_embeddings.parquet -w 446d6e6c-1a3a-4645-9e6e-fc79759f6cc0 --sort-by-embedding-query "title = 'Stanton, California'" --embedding-column title_embeddings

Summary by CodeRabbit

New Features

Introduced a new command for handling embeddings in the CLI, allowing for indexing and querying embeddings.
Added new command-line arguments for data frame operations, enabling sorting by embedding queries.
Enhanced workspace management by allowing optional workspace names during creation.
Added functionality for downloading data frames and managing embedding configurations.

Bug Fixes

Improved error handling and logging across various commands and functions.

Documentation

Updated documentation to reflect new features and changes in command-line options.

Tests

Added new tests for embedding functionalities and modified existing tests for improved clarity.

@gschoeni
Change the embedding
oxen workspace df get nike_data.jsonl -w 890cec74-8ee3-4e6a-a3e7-0d9cc7b81655 --find-embedding-where "name = 'Nike Sportswear'" --sort-by-similarity-to embedding --similarity-column my_similarity


How to enable breakpoint debugging for this project in the golang editor?

What would you like to share?
请问该项目如何在golang编辑器中开启：断点调试？
Additional information
No response

Step one: run mage start to find the command line.
Then, start debugging by following the command line arguments.


Just a simple question

Hi.Can you ,please,tell me: is the statement going to be positive or not really?

@aid0123 https://monyx.io/news


fix: prevent crash due to invalid headers

Description
When the tracer encounters an invalid propagation header value, logging the list of headers and their values can lead to a crash.
Details
For each key and value in the list of headers, a nlohmann::json instance is created with the following code:
stream << nlohmann::json(it->first + ": " + it->second);

It is possible to craft an input for any of the headers inspected by the tracer that can cause a crash when the JSON library attempts to parse or dump the input.

Can we include some unit tests that fail for the old behavior, but pass for the new behavior?

nlohmann::json might fail to encode a string? That's surprising.
Anyway, if the "crash" was due to an exception thrown by the JSON library, then this might help in testing.

@dgoffredo Yes, it's a character encoding / serializing issue.

In the past I've used it as a shorthand for "give me a quoted, escaped string."
I was trying to understand what was the purpose, thanks for the context. I will definitely audit for other uses of nlohmann::json


Why has AM not taken off?

I just came across the idea of Attribute Modules today. The advantages seem very clear. I'm curious if anyone knows why AM has not taken off and why it hasn't been adopted more widely by CSS frameworks, etc. It's weird because its from 2014 but I haven't heard about it until I stumbled on it today.
As for feedback, the only way I would change AM is not having multiple values in a single attribute like:
am-Button="wide red uppercase"

While this approach is simple, its definitely more difficult to deal with when you start using JavaScript to interact with these attributes. With classes it's easy because lib's like jQuery have .addClass() and .removeClass(). It's easy to add and remove modifier classes using tools like this. But non such tools exist for custom attributes.
For example, if you are using JavaScript to dynamically change the above button from red to blue, you have to use a bunch of JavaScript to parse through the current values, remove all "color" values and then add then append  blue into the attribute value.
A better solution would be for each different type of thing into it's own attribute. So instead of the above, have:
<button am-Button-size="wide" am-Button-color="red" am-Button-text="uppercase">hello</button>
This has all the power of the proposed AM solution, but it uses separation of concerns to compartmentalize each type of attribute. So now, if you need to dynamically change the color of the button, it's just $('button').attr('am-Button-color','blue');. No more parsing out values and having to remove values first, etc. It's just changing a single attribute to a new value and done.

That's a good idea. I'm not sure why AMCSS didn't go further, but there's a lot of different pure-CSS namespacing techniques out there, and they're all pretty interchangeable. So it's just a matter of someone releasing a CSS framework that uses it before it'd get popular.
I like your am-Button-size vs am-Button-color though. Basically, AMCSS is whatever works for you once you realise you're not limited to classnames!

@Jakobud But with modificators realised as separate custom attributes you get such vebose tag markup as BEM!

@geelen @Jakobud @viT-1 @benschwarz  I have been looking around the web about using data attributes for styling components and came across your discussion. I also came to a similar conclusion as you guys did but I think I went all the way with the idea of using data attributes instead of classes and created Rams a framework with zero classes and pure data attributes glory. I have been looking for a community that understands this stuff please let me know what you guys think about Rams, I need more feedback.

@jacobxperez I wrote iam-css documentation with samples.

@viT-1 Thanks I'll take a look at your work. This type of projects are great I feel like there is a lot of potential in data attributes that hasn't been tapped yet.


[FEATURE REQ] Allow the option of normal verbosity for logging test runs during CI builds

Summary
When the NUnit framework is used for testing, it attempts to group test output written to the console or test context in order to ensure that the information for a given test and test fixture appear in logical order in the logs.   Because the ability exists to run tests in parallel, the framework accomplishes this by collecting all test output for a given fixture in memory, writing to the log only after the tests in that fixture have all completed.
Unfortunately, this means that using test log output for debugging is troublesome when a test hangs.  Because of the deferred nature of logging, if a test hangs the process is aborted and all cached output is lost.  Because multiple tests from different fixtures may be running in parallel, it is very difficult to understand what tests have run and which tests have not.
The dotnet test command offers the ability to tune the logging level and at its normal level, the test runner itself will print the outcome of a completed test as part of its progress.   This logging does not suffer from the caching issue of the NUnit framework and allows for a better understanding of which test have completed.   In the nighty test runs, normal verbosity is specified as part of the archtype configuration.   However, in our CI builds, the logging verbosity is not specified in the archtype configuration and defaults to a minimal state with no detail about individual tests.
Desired Features:

Allow for CI builds to use normal verbosity for test logging, preferably as the default,  or as an optional parameter.

I'd be happy to open a PR with the changes to the archtype, but am unsure if the verbosity level is intended as a redaction in the CI pipeline.   If the issues passes triage and you would prefer to that I make the change, please feel free to assign it back to me.


Feature/Low_voltage

Fixes #2233
https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0170-sdl-behavior-in-case-of-Low-Voltage.md
This PR is ready for review.
Risk
This PR makes no API changes.
Testing Plan
Unit tests are provided
ATF scripts are provided: https://github.com/smartdevicelink/sdl_atf_test_scripts/pull/1953
Summary
Descibe SDL behavior during Low Voltage event.
CLA

[x] I have signed the CLA

@KhrystynaDubovyk please take a look at the latest updates


available images for trained data

Hello,
I saw that you published the majority of training data, however, as I understand it is only text files and there are no images available. Where can I find them? For example for cc3m? I saw on google page that I can download a train split and download images, however, not all images are available and their name are different than you have in cc3m_train_ram.json.
Jurijs

For the open-source file of CC3m and SBU, the image file names are randomly named by us because there is no official unified naming for the image data.
Therefore, only rough matching can be done through captions to find the corresponding image files.

Thank you!

For the open-source file of CC3m and SBU, the image file names are randomly named by us because there is no official unified naming for the image data. Therefore, only rough matching through captions can be done to find the corresponding image files.

Hi, there are many  capitions for different images are same. How to identify them? (about 600000 captions have multiple image to corresponse with in cc3m)

For the open-source file of CC3m and SBU, the image file names are randomly named by us because there is no official unified naming for the image data. Therefore, only rough matching through captions can be done to find the corresponding image files.

Hi, there are many capitions for different images are same. How to identify them? (about 600000 images have same caption with other in cc3m)


Remove gpg and wget binaries from image, slimming it down some 8,5Mb

No JIRA
Just throwing this idea out there. Cannot see any reason to keep wget, gpg, dirmngr in the image?
After this operation, 3,579 kB disk space will be freed.
After this operation, 5,176 kB disk space will be freed.

I see that Dockerfile.body.template includes this line at the bottom:
    apt-get -y install acl dirmngr lsof procps wget netcat gosu tini jattach; \

...which installs both wget and dirmngr again. I see that a few of the scripts/ use wget, so it probably needs to stay (unless we can convert them to using curl), but why do we need dirmngr in the image runtime?

Shaving MB usually gets my approval :-)
(I have no clue RE dirmngr).

Shaving MB usually gets my approval :-)

Sure. I hope we can use jlink in the future to shave off some JDK modules. The debian distro is already quite slim, but avoiding too many apt-get installs is important, they also drag in lib dependencies. However, removing less used jar dependencies from Solr is probably the main way to continue shaving. If only SolrCell could be a standalone project...

I think coming up with multiple tags would be how to slim further.  solr:9-slim solr:9, solr:9-andTika, solr:9-prometheus
And also, continue Solr-package investments to make it easier to "install".

I think at some point it is very useful to have a tool inside the container, either wget or curl, that lets us debug issues with Solr.

I think at some point it is very useful to have a tool inside the container, either wget or curl, that lets us debug issues with Solr.

Agree very much. Now we have both. wget weighs less than 1Mb so not worth the effort to convert all scripts to using cURL I think. But it could be done if one wanted.

@HoustonPutman do you recall why we have dirmngr in the last RUN command? I think perhaps it is a leftover from when splitting Dockerfile into templates for local and prod. Then you moved the apt-get from top of the old Dockerfile to later in the body. I'm going to try to remove it ans run all integration tests...

Ahh didn't see your last change. But I don't remember off the top of my head. Probably test related, but I'm not confident.


Support mandatory single-value query parameters

Our legacy application supports Swagger paths like the following:
POST /v3/items/{name}?type=key&size={size}

where both {name} and {size} are defined as path parameters.
In Go-Swagger, we cannot include '?' and '=' characters into the path definition.
What would be the best suggestion for us, if we have to preserve this style?
On one side, we do not wish to add query parameter {type} with fixed value 'key' (we assume it will appear in the generated Java API), and on other side, we cannot change the path to /v3/items/key/{name}, even if we think it is a good idea.
We are considering a workaround using %3F for '?' and %3D for '='.

I'll check what can be done to support this use case.
I've seen the conversations about this on the swagger spec. I don't think swagger 2.0 actually allows query strings in the swagger spec.
But I agree it's a useful thing to have because you can group parameters / responses etc this way.


Don't show ROSE price when not on mainnet

Please note that we are still waiting for the final OK from @donouwens on this one.

I dont think it is relevant. Rose tokens only live on rhe Mainnet, and it is impossible to do any transactions betweek testnet and mainnet.

@csillag Sure, but isn't the Testnet used for anything that's aimed to be on the Mainnet eventually? Correct me if I'm wrong, but with that in mind, the ROSE token holds some relevancy,

Yes, that is true. (This is the reason we even have to ask this question.)

Test token don't have any value we can show there, no?

No, TEST tokens are free. (You get them for free by opening a faucet.)

do the other widgets hold any value in that case (Active Accounts, Nodes, Transaction)? Do those widgets show the total of all networks or only the data from the Testnet?

All of these other widgets show data excusively from TestNet.

If they only show the data from Testnet

Yes

I agree to keep those and remove (or replace see below**) the ROSE token widget and keep the other widgets.

OK, here we go.

However, if we show data from Mainnet or all networks in those widgets ...

They don't.

Would it have any value to show how many TEST Tokens are used over period x instead of the ROSE widget?

I don't know. Do we even have such data?

In any case, we are in agreement that we can remove this one, right? (And then we can think about maybe adding something else to the free space later?)


Make sure region is always present for credentials and console links

What type of PR is this?
bug
What this PR does / Why we need it?
Changes for the new flow made it so that "region" wasn't being set when requesting credentials for old and new clusters, or a console link for new clusters.
Which Jira/Github issue(s) does this PR fix?
Resolves OSD-19492
Pre-checks (if applicable)

[x] Ran unit tests locally
[x] Validated the changes in a cluster
[ ] Included documentation changes with PR

/lgtm

/approve


Should we use "get" instead of "load" in the functional classes.

This seems to be more consistent with the service API.

/cc @mziccard @ajkannan @mderka

I don't see any problem with using get instead of load; I'm for switching the name to get

Renaming load to get sounds good to me!


Malformed URL triggers an unhandled exception and mapUnknownRoutes is never called

Hi,
If a user try to access a page with some dummy route parameters like

http://bla/login/%

Then createParams method (of /src/plugins/js/router.js) / decodeURIComponent is called with "%" parameter and crashes: "Uncaught URIError: URI malformed". mapUnknownRoutes is never called because this error is not handled.
durandal version: 2.1.0

I have a fix if you confirm it's a bug.

Closing since Durandal has been superseded by Aurelia just shy of four years ago.


fix(esl-popup): fix arrow position for adjacent axis

Fixed incorrect popups arrow position settings in the case when esl-popup instance change position.

:tada: This PR is included in version 3.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Registry does not support SWIFT?!?!?

Hello I am using harbor 0.5.0 as OVA.
We also have EMC Isilon Storage that supports SWIFT and I am trying to integrate both together, but unfortunately I get errors like this whenever I configure swift instead of the default storage. The line 9 is actually is a beginning of the swift section. :
Mar  3 15:21:46 <IP_ADDRESS> registry[861]: configuration error: error parsing /etc/registry/config.yml: yaml: line 9: found character that cannot start any token
Mar  3 15:21:46 <IP_ADDRESS> registry[861]:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]: Usage:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]:   registry serve <config> [flags]
Mar  3 15:21:46 <IP_ADDRESS> registry[861]: Flags:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]:   -h, --help=false: help for serve
Mar  3 15:21:46 <IP_ADDRESS> registry[861]:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]: Additional help topics:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]:

It seems that swift is not recognized as a valid storage backend by registry although documantation says it should.
Here is what I changed:
Update common/templates/registry/config.yml and replace storage section that looks like this:
    storage:
        cache:
            layerinfo: inmemory
        filesystem:
            rootdirectory: /storage
        maintenance:
            uploadpurging:
                enabled: false
        delete:
            enabled: true

to:
    storage:
        cache:
            layerinfo: inmemory
        swift:
            username: user:user
            password: PASSW0RD
            authurl: http://swift.storage.isilon:28080/auth/v1.0
            container: harbor
        maintenance:
            uploadpurging:
                enabled: false
        delete:
            enabled: true

Am I doing something wrong?

seems right. I ever config ceph with swift interface, my config is below:
    swift:
        authurl: http://xxxx:880/auth/v1
        username: xxx:swift
        password: ******
        container: registry

And it works fine.
BTW: I use harbor 0.5.

Thanks niyanchun,
would you please post the entire common/templates/registry/config.yml? May be I have an error somewhere else.

Thanks niyanchun.
My config looks identically to yours. I suspect that the issue is with the binaries or OVA. How do I push it further? Do I need to file a case at VMWARE to get this looked at and fixed?

I don't think something wrong with the binaries or OVA. From your error message:
Mar  3 15:21:46 <IP_ADDRESS> registry[861]: configuration error: error parsing /etc/registry/config.yml: yaml: line 9: found character that cannot start any token

I seems something wrong with the config, and the error is report by the registry image, not others. I have two suggestions:

check your config again, such as there should not have any tabs in yaml(use spaces)
if you could, you can git clone the registy source code, and start it from your own computer with your config. And that is not too difficult. IDEA may be a good choice for such huge project.  Of course, you can send me your config file, I could do it for you when I'm free.

Hope to help you.

niyanchun,
yes you were right, the tabs were the reason for the error. I moved one step forward but got stuck again :-(
Now I cannot  push the images. The SWIFT container is getting created upon push but then error HTTP/500 is reported. I guess it is on the storage side now. Thanks a lot for your help wit the tabs/spaces. I did not know yaml is so sensitive to tabs :-)

Yeah, tabs is illegal in yaml~

Thanks @niyanchun !
@c6opuc so your issue has been fixed right?

Yes. the issue is fixed. I am still fighting with the storage though,
but it has nothing to do with the initial problem :-)
On 3/8/17, Daniel Jiang<EMAIL_ADDRESS>wrote:

Thanks @niyanchun !
@c6opuc so your issue has been fixed right?
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/vmware/harbor/issues/1509#issuecomment-284992608

Let me close this issue and happy fighting :)


support for installation via a bower module

It would be beneficial to us if circular-json could be installed via a bower module.  Details for creating a bower.json file and registering can be found here.
Thank you for providing the community a useful tool.
Respectfully,
cResults

PR welcome ;-)


Solo should use a default FST chart version

Create a version.mjs with the required versions such that we can update it in CI during release instead of modifying the code.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add UDPSocket feature flag (bug 1195704)

https://bugzilla.mozilla.org/show_bug.cgi?id=1195704

@ngokevin I've restarted the build a few times and it always fails on mkt/games/tests/test_views.py:TestDailyGamesView.test_randomization, I don't understand the relation. Any ideas ? The test passes locally when ran in isolation.

add a skiptest to it, we're going to revert games anyways

r+


the "gemfire" link leads to a 404

The link Accessing Data with GemFire at the bottom of the README leads to a page that does not exist.
Has it changed to "https://spring.io/guides/gs/accessing-gemfire-data-rest" maybe ?

Thanks, @DominiqueComte. Good catch. The Accessing Data with GemFire guide was archived and moved to the spring-attic. This link should be removed from the guide.
I'll leave this open and mark this as a good issue for first time contributors. The specific line that needs removed is here.

Right you are. We archived several guides recently so any cross link will be broken at this point. Looks like most of the data guides do have the gemfire link. We evaluate the guides from time to time for archival, so this will be a problem that continues to pop up.
If you see the broken links feel free to log an issue in that repository. I'll apply the good first issue label. I'll do the same as I come across them. I find issues like this are great for first time contributors to learn the Spring OSS contribution process. If no one grabs the issue after a while, someone on the Spring team will likely do the removal as we make other changes.

Can I work on this?

Absolutely you can work on this. I'm no longer a maintainer of the project, but I know the Spring team actively encourages community involvement. The guides are a great place to get started.


Fix divide-by-zero error in stack transform with offset = normalized

This PR adds an image test and unit test that formerly raised a divide by zero error in the stack transform

Ended up needs to fix a bunch of new warnings/lints found by the new Rust 1.66.0


form macros: base most of these on the upstream toolkit's copy

Story https://trello.com/c/W3d7VMrO/72-supplier-app-use-frontend-toolkit-macros-3
Depends on https://github.com/alphagov/digitalmarketplace-frontend-toolkit/pull/375
Don't know how much more I need to say.

This looks good as far as I can see.  I think I'd like to give it a quick try-out once the toolkit version is merged, before thumbsing up.

Please do - the quickest way of doing so is modifying bower.json to point to https://github.com/alphagov/digitalmarketplace-frontend-toolkit.git#ris-form-text-field-add-unit-vars

Interesting that there were no other merges into this repo in the last 12 days so I didn't need to rebase.


[tlul/dv] Temporarily fix tlul error due to new feature - multi-clk

New feature was just added #903
Current TB doesn't support multi-clock, use same clock to avoid failure
Signed-off-by: Weicai Yang<EMAIL_ADDRESS>

o oops, sorry about that @weicaiyang
I had all the clocks hooked up to the same thing in top_earlgrey, but I forgot the xbars have their own TBs.
How do you guys want to handle this in the future? Is the idea still array of clocks and resets? Otherwise, our individual xbars are likely to vary a lot..so unless you want to generate all of them..

o oops, sorry about that @weicaiyang
I had all the clocks hooked up to the same thing in top_earlgrey, but I forgot the xbars have their own TBs.
How do you guys want to handle this in the future? Is the idea still array of clocks and resets? Otherwise, our individual xbars are likely to vary a lot..so unless you want to generate all of them..

@tjaychen
I'm currently working on xbar automation to generate TB based on top_earlgrey/ip/xbar/data/autogen/xbar_main.gen.hjson. Yes, will generate TBs for all kinds of xbar and need arrays to store clocks and resets.
I will support multi-clock after the automation, so I create the quick fix.
Before implement multi-clock, I need some info like what is the freq for each clock, how to reset since we have multiple reset pins.


doc/proposals/cli-ux-phase1.md: adding first CLI UX proposal

Description of the change:
This PR adds a proposal to update the SDK CLI with new commands to support running an operator with OLM.
Motivation for the change:
To initiate design discussions and a proof of concept implementation for simplifying the process of deploying an operator to a cluster using OLM.

@LiliC

I expressed my doubts about adding this before, so won't focus on it anymore :D

I hear you. I think we have consensus among the framework teams that most of the logic around these UX improvement and integration proposals should be maintained outside the SDK. The idea is that the SDK will vendor these libraries and provide a nice CLI wrapper for the integrations that make sense in the context of a user of the SDK.

I am just curious to see the plans for the other phases, like phase 2, just to get the bigger picture of the plan, it would make it easier to review this proposal I think. How would the init and up actually work behind the scenes in the future phases, etc.

We haven't really broken down the larger set of proposals into phases, but @dmesser's research epic briefs are the most detailed description of the broader vision.

Also I am wondering how will we build the operator-registry and handle/show errors there, as right now if I build the registry for an operator, the errors are not very helpful most of the time.

I haven't started looking into the details yet, but I think it'll be easier to build a ConfigMap for the catalog data, rather than a standalone operator-registry image, because that would be yet another image the user has to push and configure correctly in their catalog source. With a ConfigMap, we should be able to handle more of the details without exposing more complexity to the user.
Hopefully, operator-registry has a library we can use that builds the ConfigMap and returns decent errors. If not, I'd suggest we submit PRs against operator-registry to add those things.

What are our plans for keeping up with OLM changes, do we know if they plan to add breaking changes in the (near) future.

My understanding of some of the recent discussion of OLM APIs is the resource types in the proposal are here to stay for awhile, so there shouldn't be breaking changes to those. If OLM consolidates and simplifies their existing APIs into new APIs, we can incorporate those at our own pace.
Ideally, we could extract the majority of the olm up command into a separate shared library that is maintained jointly by OLM and the SDK team, such that we would only need to bump version numbers to get improvements to that piece of the integration in the SDK.

(Can't seem to answer in the comment thread 🤷♀ )

Do you think users will know that these names correspond to the OLM repo deploy directories? If so, would that mapping in the SDK be confusing, and should we suggest this as a change to the OLM repo, so that the names match up?

Could we not just have both, upstream and k8s?


Ycloud debian9 and ubuntu16 docker images

+1, but I'd be more confident if Shane Kumpf could also take a look.

+1 lgtm


Is there any documentation for protocol keyword for configuration?

Hi,
      My setup is made of a couple of arduinos which are communicating with a raspberry via nRF24L01 radio modules. The code on the arduinos is generated with thingml. I want the raspberry to be a gateway to my web server that will display data captured from the arduinos' sensors. From the examples found on this repository, I couldn't figure it out how the annotations and protocol keyword work.
      Here, I don't understand how is the connection made between the led_service port and the MQTT broker
Thank you

The annotation registry documents (most of) the annotations.


pd.Grouper support?

In pandas, you can pas a pandas.TimeGrouper object to a .groupby() call, and it allows you to group by month, year, day, or other times, without manually creating a new index with those values first. It would be great if you could do this with xray, but at the moment, I get:
/usr/local/lib/python3.4/dist-packages/xray/core/groupby.py in __init__(self, obj, group, squeeze)
     66             if the dimension is squeezed out.
     67         """
---> 68         if group.ndim != 1:
     69             # TODO: remove this limitation?
     70             raise ValueError('`group` must be 1 dimensional')

AttributeError: 'TimeGrouper' object has no attribute 'ndim'

Not sure how this will work though, because pandas.TimeGrouper doesn't appear to work with multi-index dataframes yet anyway, so maybe there needs to be a feature request over there too, or maybe it's better to implement something from scratch...

I wrote a resample function last week based on TimeGrouper. See the dev docs for more details: http://xray.readthedocs.org/en/latest/whats-new.html
This should go out in the 0.4.1 release, which I'd like to get out later this week (everyone likes faster release cycles if they are backwards compatible.
It would be pretty straightforward to create some sort of API that gives direct access to the resulting GroupBy object. I was considering something like Dataset.groupby_time. I'd love some input here if you have ideas.

Looks good to me. I don't know enough to be able to comment on the API question.

Well, I guess the first question is -- are there uses for TimeGrouper that you can't easily do with resample?
I suppose the simplest (no new method) would be to allow passing a dict where the key is the time dimension and the value is the grouper. Something like ds.groupby({'time': pd.TimeGrouper(...)}) or ds.groupby(time=pd.TimeGrouper(...)).

Unfortunately I'm not familiar enough with pd.resample and pd.TeimGrouper to know the difference in what they can do. resample looks like it would cover my use-cases, although the docs are pretty limited, and don't actually specify the format of the rule format...
One thing that I would like to be able to do that is not covered by resample, and might be covered by TimeGrouper is to group over month only (not month and year), in order to create a plot of mean seasonal cycle (at monthly resolution), or similarly, a daily cycle at hourly resolution. I haven't figured out if I can do that with TimeGrouper yet though.

Indeed, I need to complete the resample docs before doing a release :).
For your other use case, you just want to group by 'time.month' (or 'time.hour'), e.g.,
http://xray.readthedocs.org/en/v0.4/examples/weather-data.html#probability-of-freeze-by-calendar-month

Heh, I meant the pandas docs - they don't specify the rule argument format either
time.month  and time.hour do exactly what I need. They aren't mentioned in the docs at http://xray.readthedocs.org/en/stable/groupby.html, and I'm not sure how I'd guess that they exist, so perhaps they should be added to that page? It doesn't appear to be something that exists in pandas..

For pandas resample, see here: http://pandas.pydata.org/pandas-docs/stable/timeseries.html#up-and-downsampling
The doc string could definitely use an update there, too -- see https://github.com/pydata/pandas/issues/5023 (I think I'll try to update this, too)
For time.month, see this part of the docs:
http://xray.readthedocs.org/en/stable/data-structures.html#dataarray-coordinates
I'm going to consolidate all the time/date functionality into a new documentation page for the next release of xray, since this is kind of all over the place now.
Also, I should probably break up that monolithic page on "Data structures", perhaps into "Basics" and "Advanced" pages.

Ah, cool, thanks for that link, I missed that in the docs.
One thing that would be nice (in both pandas and xray) is a time.timeofday. I can't figure out how to do it with time.hour and time.minute - I need half-hourly resolution averaging. time.time does something in xray, but it seems to never complete, and it doesn't work at all in pandas.

Hmm. ds['time.time'] appears to be broken in xray (it casts to a datetime64 array). I'll make a new issue for that.
However, it should work in pandas -- you can do df['time'].dt.time:
In [13]: t = pd.date_range('2000-01-01', periods=10000, freq='H')

In [14]: t.time
Out[14]:
array([datetime.time(0, 0), datetime.time(1, 0), datetime.time(2, 0), ...,
       datetime.time(13, 0), datetime.time(14, 0), datetime.time(15, 0)], dtype=object)

The simplest way to do timeofday, though, is probably just to calculate ds.coords['timeofday'] = ds['time.hour'] + 60 * ds['time.minute']. Then you can do ds.groupby('timeofday').

Nice.
Ok, I have hit a stumbling block, and this is much more of a support request, so feel free to direct me else where, but since we're on the topic, I want to do something like:
start = 2002
n_years = 4
new_data = []
for year in range(start, start + n_years):
    days = 365 if year%4 else 365
    for d in range(days):
        day_data = mean + annual_cycle.isel(dayofyear=d) + daily_cycle
        day_data.coords['time'] = datetime.datetime(year,1,1) + datetime.timedelta(day=d, hour=day_data.timeofday.hour, minute=day_data.timeofday.minute)
        new_data.append(day_data)
xray.concat(new_data)

where mean, annual_cycle, and daily_cycle are overall mean, annual cycle at daily resolution, and daily cycle at 30 minute resolution (the latter two bias corrected by subtracting the mean). I'm trying to make a synthetic dataset 4 years long that only includes the mean, seasonal, and daily cycles, but no other variability.
The assignment of day_data['time'] fails because the day_data.timeofday.hour (and .minute) don't work. These are datetime.times, is there an efficient way of converting these to datetime.timedeltas, without first manually taking them out of the DataArray?

Dunno if this is related to the ds['time.time'] problem, but I tried creating the daily_cycle using a pandas.Timedelta as the index (timeofday), but it also appeared to just hang indefinitely when doing the data.groupby('timeofday').mean('time') call..

same problem with numpy.timedelta64 too.

I don't think the timeofday issue is related to using Timedeltas in the index (and it's certainly not related to the ds['time.time'] issue). Also, it should be exactly equivalent to use timedelta64 or Timedelta -- both should convert to timedelta64 when put in an xray object.
Here's an example that seems to be working properly (except for uselessly display timedeltas in nanoseconds):
In [29]: time = pd.date_range('2000-01-01', freq='H', periods=100)

In [30]: daystart = time.to_period(freq='1D').to_datetime()

In [31]: timeofday = time.values - daystart.values

In [32]: ds = xray.Dataset({'data': ('time', range(100))}, {'time': time, 'timeofday': ('time', timeofday)})

In [33]: ds
Out[33]:
<xray.Dataset>
Dimensions:    (time: 100)
Coordinates:
    timeofday  (time) timedelta64[ns] 0 nanoseconds ...
  * time       (time) datetime64[ns] 2000-01-01 2000-01-01T01:00:00 ...
Data variables:
    data       (time) int64 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

In [34]: ds.groupby('timeofday').mean('time')
Out[34]:
<xray.Dataset>
Dimensions:    (timeofday: 24)
Coordinates:
  * timeofday  (timeofday) timedelta64[ns] 0 nanoseconds ...
Data variables:
    data       (timeofday) float64 48.0 49.0 50.0 51.0 40.0 41.0 42.0 43.0 44.0 45.0 46.0 ...

Ok, weird. That example works for me, but even if I take a really short slice of my data set, the same thing won't work:
In [61]:
d = data.sel(time=slice('2002-01-01','2002-01-03'))
d

Out[61]:

<xray.Dataset>
Dimensions:           (time: 143, timeofday: 70128, x: 1, y: 1, z: 1)
Coordinates:
  * x                 (x) >f8 1.0
  * y                 (y) >f8 1.0
  * z                 (z) >f8 1.0
  * time              (time) datetime64[ns] 2002-01-01T00:30:00 ...
  * timeofday         (timeofday) timedelta64[ns]<PHONE_NUMBER>000 nanoseconds ...
Data variables:
    SWdown            (time, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.58 ...
    Rainf_qc          (time, y, x) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ...
    SWdown_qc         (time, y, x) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ...
    Tair              (time, z, y, x) float64 282.9 282.9 282.7 282.6 282.4 281.7 281.0 ...
    Tair_qc           (time, y, x) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ...
    LWdown            (time, y, x) float64 296.7 297.3 297.3 297.3 297.2 295.9 294.5 ...
    PSurf_qc          (time, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ...
    latitude          (y, x) float64 -35.66
    Wind              (time, z, y, x) float64 2.2 2.188 1.9 2.2 2.5 2.5 2.5 2.25 2.0 2.35 ...
    LWdown_qc         (time, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ...
    Rainf             (time, y, x) float64 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ...

    Wind_qc           (time, y, x) float64 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 ...
Attributes:
    Production_time: 2012-09-27 12:44:42
    Production_source: PALS automated netcdf conversion
    Contact<EMAIL_ADDRESS>    PALS_fluxtower_template_version: 1.0.2
    PALS_dataset_name: TumbaFluxnet
    PALS_dataset_version: 1.4

In [62]:
d.groupby('timeofday').mean('time')

That last command will not complete - it will run for minutes. Not really sure how to debug that behaviour.
Perhaps it's to do with the long/lat/height variables that really should be coordinates (I'm just using the data as it came, but I can clean that, if necessary)

The problem is that you've created a new timeofday dimension that is gigantic and orthogonal to all the other ones. You want timeofday to be along the time dimension.
d.groupby('timeofday').mean('time') is literally doing the exact same calculation 70128 times. We also implicitly assume the coordinates corresponding to dimensions have unique labels, which explains why we aren't grouping 48 times instead.
Also, unlike pandas, xray currently does the core loop for all groupby operations in pure Python, which means that yes, it will be slow when you have a very large number of groups (and it loops again to handle your 15 different variables). Using something like Cython or Numba to speedup groupby operations is on my to-do list, but I've found this to be less of a barrier than you might expect for multi-dimensional datasets -- individual group members tend to include more elements than in DataFrames.

Ah, yep, making the dimension using data.coords['timeofday'] = ('time', [np.timedelta64(60 * int(h) + int(m), 'm') for h,m in zip(data['time.hour'], data['time.minute'])]) works. Thanks for all the help :)

This is a very useful functionality. I am wondering if I can specify the time window, for example, like ds.groupby(time=pd.TimeGrouper('12.42H')). Is there a way to do that in xarray?

@saulomeirelles Nope, this hasn't been added yet, beyond what you can do with the current resample interface. Ideally, we would update resample so that it worked like resample in newer versions of pandas, where it creates a groupby object instead of immediately doing the calculation. But we haven't had time to do this yet.

Thanks, @shoyer !
Here is an example of how I circumvented the problem:
data  = np.random.rand(24*5) times = pd.date_range('2000-01-01', periods=24*5, freq='H') foo    = xray.DataArray(data, coords=[times], dims=['time']) foo    = foo.to_dataset(dim=foo.dims,name='foo')
T     = time.mktime( dt.datetime(1970,1,1,12+1,25,12).timetuple() ) # 12.42 hours Tint   = [ int( time.mktime( t.timetuple() ) / T ) for t in  foo.time.values.astype('datetime64[s]').tolist()]  foo2  = xray.DataArray( Tint, coords=foo.time.coords, dims=foo.time.dims) foo.merge(foo2.to_dataset(name='Tint'), inplace=True)
foo_grp = foo.groupby('Tint')
foo_grp.group.plot.line()

Hi, being able to pass a pd.TimeGrouper to .groupby() would be really handy. Here is my use-case and work around at the moment (.resample() doesn't serve my needs because I need to iterate over the groups:
import pandas as pd
import xarray as xr

dates = pd.DatetimeIndex(['2017-01-01 15:00', '2017-01-02 14:00', '2017-01-02 23:00'])
da = xr.DataArray([1, 2, 3], dims=['time'], coords={'time': dates})
time_grouper = pd.TimeGrouper(freq='24h', base=15)

# digging around the source code for xr.DataArray.resample i found this
grouped = xr.core.groupby.DataArrayGroupBy(da, 'time', grouper=time_grouper)

for _, sub_da in grouped:
    print(sub_da)

which prints:
<xarray.DataArray (time: 2)>
array([1, 2])
Coordinates:
  * time     (time) datetime64[ns] 2017-01-01T15:00:00 2017-01-02T14:00:00
<xarray.DataArray (time: 1)>
array([3])
Coordinates:
  * time     (time) datetime64[ns] 2017-01-02T23:00:00

Would it be possible to add a grouper kwarg to .groupby(), e.g.
da.groupby('time', grouper=time_grouper)

Have you tried iterating over a resample object in the v0.10 release
candidate? I believe the new resample API supports iteration.
On Thu, Nov 2, 2017 at 5:40 PM hazbottles<EMAIL_ADDRESS>wrote:

Hi, being able to pass a pd.TimeGrouper to .groupby() would be really
handy. Here is my use-case and work around at the moment (.resample()
doesn't serve my needs because I need to iterate over the groups:
import pandas as pdimport xarray as xr
dates = pd.DatetimeIndex(['2017-01-01 15:00', '2017-01-02 14:00', '2017-01-02 23:00'])
da = xr.DataArray([1, 2, 3], dims=['time'], coords={'time': dates})
time_grouper = pd.TimeGrouper(freq='24h', base=15)
digging around the source code for xr.DataArray.resample i found this
grouped = xr.core.groupby.DataArrayGroupBy(da, 'time', grouper=time_grouper)
for _, sub_da in grouped:
print(sub_da)
which prints:
<xarray.DataArray (time: 2)>
array([1, 2])
Coordinates:

time     (time) datetime64[ns] 2017-01-01T15:00:00 2017-01-02T14:00:00
<xarray.DataArray (time: 1)>
array([3])
Coordinates:
time     (time) datetime64[ns] 2017-01-02T23:00:00

Would it be possible to add a grouper kwarg to .groupby(), e.g.
da.groupby('time', grouper=time_grouper)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pydata/xarray/issues/364#issuecomment-341598412, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABKS1sv9n8gxYr6Dne83Hfp0IJl_5gMvks5symDugaJpZM4DredK
.

pd.TimeGrouper is deprecated in latest pandas release, so I imagine this bug should be closed.

Well, the functionality is still there, it's just recommended that you use
pd.Grouper.
On Wed, Nov 29, 2017 at 2:47 AM lexual<EMAIL_ADDRESS>wrote:

pd.TimeGrouper is deprecated in latest pandas release, so I imagine this
bug should be closed.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pydata/xarray/issues/364#issuecomment-347735817, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABKS1pVxryyv73zANrbH-ncx-UjspMkFks5s7MXRgaJpZM4DredK
.

We now support Xarray Grouper objects which are equivalent.


Custom getters inside builder

I have a class like this:
public abstract class Vehicle {
  public abstract String getTypeId();

  public Type getType() {
    //TODO Call stuff to get the Type
  }

  public abstract Builder toBuilder();
  public static class Builder extends Vehicle_Builder {}
}

How can I get the getType() function inside the generated builder too? I won't like to define it twice.

This is not currently supported. FWIW, I don't think this is the right ownership for this behaviour. The typeId to Type conversion belongs to the Type class; Vehicle should just store a Type object, and not expose its conversion functions. It's too tightly coupled.

Ah right, I see. And I have a List with a getter and a getter with a class parameter (generics) to get the parts with that class. Sadly I can't create getters with a parameter. How can I do that?

That's also not supported I'm afraid! I'm not sure how that would work tbh. How would the value depend on the type? Wouldn't it be the other way around?

That's also not supported I'm afraid! I'm not sure how that would work tbh. How would the value depend on the type? Wouldn't it be the other way around? Perhaps you could paste a code snippet of how you would implement it by hand.

abstract class Part {}

class Wheel extends Part {}
class Seat extends Part {}

And then:
class Vehicle {
  List<Part> parts;

  public <V> V getPart(@NotNull Class<V> partClass) {
        return parts.stream().filter(partClass::isInstance).map(partClass::cast).findFirst().orElse(null);
  }
}

That's very bespoke, I can't imagine this being used enough to put into a code generator. It might be a use-case for issue #14 if that ever gets implemented.


change backitup submodule name to match path

the path for the submodule was changed in commit 12b1655b6c239c0146b543ebf20f4b6739b86783, but the submodule name was never updated to reflect it.

Thanks.


Views, sort_copy, online algorithms...

cpp-sort currently only cares about in-place sorting algorithms: algorithms that mutate the passed collection and don't return anything (except when they do), which is pretty much enough for people most of the time. However, I believe that there is some value in having algorithms that actually copy a sorted equivalent of the passed collection into the library. It once again leads to maaaaany design decisions depending on how we want to implement that:

Have a cppsort::sort_copy function in the library taking a sorter (or defaulting to default_sorter) and an additional OutputIterator parameter?
Provide an equivalent cppsort::sort_move function?
Create a cppsort::sorted function that takes an iterable and returns a new instance of the same iterable? Make it work with an OutputIterator instead? Have it take any sorter like cppsort::sort?
Add a cppsort::sorted_view returning a range with sorted iterators which, when iterated, corresponds to a sorted view of the original collection? It's pretty much what indirect_adapter does in the first place, but decoupling it from the adapter might also be interesting.
Have first-class support for online sorting algorithm? Adding an is_online property in cppsort::sorter_traits is easy, but how to use it properly?

An interesting algorithm about incremental sort that might provide some idea and/or insights about online/incremental sorting: http://larshagencpp.github.io/blog/2016/04/23/fast-incremental-sort

For sort_copy algorithms, one interesting solution would be to take advantage of the fact that sorters are function objects to provide a copy or copy_to method:
cppsort::ska_sort.copy(collection, std::back_inserter(res));

I don't know whether it's a good idea. Like everything else I will have to balance the pros and cons.

What I called a sorted "view" in the original post can't be a View according to the standard concept semantics because views are supposed to have O(1) construction and linear traversal. A "sorted view" would either be sorted at construction in O(n log n) time or would use an online algorithm and have O(n log n) traversal. No matter what I do with this issue I should use another terminology.

A few updates regarding the concerns discussed in this issue:

Issue #167 removes cppsort::sort and cppsort::stable_sort, so adding a first-class cppsort::sorted might seem like a poor idea. Though unlike the other two it would provide a feature that can't be covered by a simple sorter or sorter adapter.
The sorted_view idea is mostly covered by the sorted_iterators utility added as part of issue #200 (commit 8bd558cf9a6d993bf9aa51d3cd64f263c821f817).

The other points are still very much open design issues without obvious answers to this day. To keep the genericity of the collection/compare/projection design without getting too complicated, I'd probably need to invent a way to give a separate channel for output range parameters somehow.


add UGM email domain

@aurell-ops I am sorry, the domain mail.ugm.ac.id is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).

thanks for your response, i'll do it immediately


Root logger default logging level is changed after importing neural_compressor

Hello, I've noticed that simply importing neural_compressor causes issues with the root logger. It changes the logging level from the default WARNING to INFO, and this is not a good behaviour because it can change the logging level of the loggers of other imported libraries, letting them print all the INFO stuff that sometimes can be a bit too much. Generally the good practice would be to use a named logger (for example logger=logging.getLogger("neural_compressor")) and not the root one, so that when you set its level you don't change te default level of all the loggers. You can reproduce the issue with this small code snippet:
import logging
print(logging.getLogger())
import neural_compressor
print(logging.getLogger())

The output will be:
<RootLogger root (WARNING)>
2022-10-29 07:43:46 [INFO] NumExpr defaulting to 2 threads.
2022-10-29 07:43:49 [INFO] Generating grammar tables from /usr/lib/python3.7/lib2to3/Grammar.txt
2022-10-29 07:43:49 [INFO] Generating grammar tables from /usr/lib/python3.7/lib2to3/PatternGrammar.txt
<RootLogger root (INFO)>

Hi @valeriosofi,
Thanks for the problem you found, we took your suggestion and have fixed it in internal repo.


onActiveItemsChange

It would be really useful to add an event handler that would trigger when a set of active items has changed. I was going to use it to save the state of the accordion to my global state objects so that the clients that are looking at the same page could always be in sync.
Could you please add this feature? There should not be much to write.

I am thinking onChange handler, just need to think of good place to put it
Would you want anything other than newState passed to it?

@kachkaev see if that PR works for you

Hi @psimyn. Thanks for responding and for the PR!
I'm not sure I will be able to check the PR inside my project in the next couple of weeks — could anyone else have a look at it please? The code seems OK — I haven't spotted anything suspicious.

Definitely nothing suspicious :) I'll confirm it can do what you were after then will probably merge


Update nf-mfidl-imfcameraocclusionstatereportcallback-onocclusionstat…

…ereport.md
Adding remarks clause that one should not call back to IMFCameraOcclusionStateMonitor object from OnOcclusionStateReport callback function.

@kasumman : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Appstudio update test-component-pac-hryi

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-hryi-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
17 seconds
clone-repository

✅ Succeeded
7 seconds
sast-snyk-check

✅ Succeeded
24 seconds
build-container

✅ Succeeded
13 seconds
clair-scan

✅ Succeeded
10 seconds
sbom-json-check

✅ Succeeded
9 seconds
deprecated-base-image-check

✅ Succeeded
57 seconds
clamav-scan

✅ Succeeded
11 seconds
inspect-image

✅ Succeeded
5 seconds
show-sbom

✅ Succeeded
5 seconds
show-summary


Make Windows Release for Zarf

Need to create a release of the zarf binary for Windows users

[ ] Update release to generate a windows Zarf binary
[ ] Validate no unsafe file path issues, e.g. "/" (https://stackoverflow.com/questions/9371031/how-do-i-create-crossplatform-file-paths-in-go)

I'm speaking to Philly.NET on AirGap deployments in October, I'd love to get this done before then.  I'm bumping up the list.

Prev stuffs:
https://github.com/defenseunicorns/zarf/pull/833/files
https://github.com/defenseunicorns/zarf/pull/431


Potion Brewer: Can't craft Potion of Weakness

Industrial Foregoing Version: 1.12.2-1.12.13-237
TeslaCoreLib Version: 1.12.2-1.0.17
Crashlog (If Any):
The Potion Brewer won't allow any potions to be crafted that don't start with Awkward Potions. This prevents crafting of potions such as Potion of Weakness and its splash variant as it starts with fermented spider eye.

:wave: Sorry but Industrial Foregoing has ended support for version 1.12. I'm closing this issue as it will no longer be updated for that version. Thanks for playing with the mod.