Confuse about the training details of mask head

Dear author:
Thanks for your great job!
I'm confused about the training details of mask head. I find that you use the roi_feat extracted from gt_bbox instand of pred box from FCOS to train maskhead, right?

In './fcos.py', you always add gt to proposals and do the match between proposals and gt. So the 'gt' added to proposals will 100%  match the gt. Then in the 'self._sample_proposals' function, I find that it's not a sample function, it just return the index of matched proposal（which is the gt added to proposals）. Finally, I print out the proposal boxes which will be the input of maskhead, and I find it's the same as gt_box.

In the code comments, you say that when training starts the proposals will be low quality due to random initialization, so you add gt. But it will cause the input of maskhead is always the roi from gt_box.

which checkpoint did you use? training from scratch?

No matter which checkpoint i used, the roi is always extracted by gt_box

I guess it is because during the initial stage the box proposal has a lower quality but the box quality will be gradually improved during training.

Your printed box proposal number is very small. Only 2 or 3 which means lot of proposals are not matched.

Actually, FCOS will predict 100 proposals for each img. For example, an img have 11 gt instances. In 'label_and_sample_proposals' function, gt box have been added to proposals, so we get 111 proposals. Then 'pairwise' function will return a 11*111 matrix. And the gt added to proposals must match target gt. No matter how good the pred box quality is, the added gt must be better than it. Thus, no pred box will be used for mask head.
In common rcnn roi head, such as maskrcnn, it also used gt_added_to_proposals, but its sample function is different from yours. It randomly sample positive and negative proposals for box head and only positive samples for maskhead which will contain the pred box . But in BCNet, I find the sample function just return the proposals successfully matched gt. So I'm confused whether I have wrong understanding of your code.

Oh, I get it. It means gt may match several proposals so the good quality pred box will also match. It is same as common roi head.
Thanks a lot !
By the way, will you release the code of faster-rcnn+BCNet?

It is contained in the code here. You just need to modify the config to use faster rcnn instead of fcos as object dectecter.

Thanks a lot

Thanks a lot

Do you have config of faster-rcnn+BCNet？Thanks a lot


[Feature Request] add eviction API's to VM's module and type caches

Problem
The Move VM keeps a cache of the modules it has previously deserialized, verified, and linked (and similar for types and scripts). However, there are no API's for removing entries from these caches, nor is there any eviction policy. This means that an instance of the VM is kept alive and continues encountering new modules, these caches will grow without bound and eventually cause memory issues.
This was not an issue in Diem because the set of modules was fixed and VM instances were ephemeral (i.e., the system starts a new VM instance for each block). But other uses of Move may want to use the VM in a different way--e.g., we are considering a system where a server keeps an instance of the VM alive indefinitely, and we expect the server to encounter many different modules.
Proposed solution
I think we should start with exposing API's that:

Return the size of all three caches in bytes
Clear all caches

This is rather crude, but these API's will at least allow adapters to prevent the caches from growing beyond N bytes.
In time, I can imagine VM config's that allow adapter's specifying various eviction policies (e.g., a LFU cache that drops the long tail of infrequently used modules seems like a sensible one), but I'd rather move forward with something simple for now and use experience/data to help us design something fancier.

Yeah, this has long been a known issue and hopefully we'll have the bandwidth to tack it in the following days.

I think we should start with exposing API's that:

Return the size of all three caches in bytes
Clear all caches

I think these are reasonable short-term solutions that will get you unblocked while we explore the option of lifting the code cache out of the Move VM. @runtian-zhou did a very similar thing previously, so I don't think we'll be worried about a few more patches.

In time, I can imagine VM config's that allow adapter's specifying various eviction policies (e.g., a LFU cache that drops the long tail of infrequently used modules seems like a sensible one), but I'd rather move forward with something simple for now and use experience/data to help us design something fancier.

Yeah, I think we'll definitely need to consider something like an LFU cache in the future. Hopefully allowing the adapter to take ownership of the code cache will make this easier to implement.


Use hdf5 file to load catalog data

Replaces np.load with h5py.File to open an hdf5 file
Added a dummy weighted catalog file to the repo so that testing can be done. This dummy weighted catalog file contains data for 10 galaxies.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 98.665%

Totals

Change from base Build<PHONE_NUMBER>:
0.001%

Covered Lines:
1700

Relevant Lines:
1723

💛  - Coveralls

@swagnercarena OK, I've implemented most of your suggested changes plus some more. Here's what I've done:

WeightedCatalog no longer takes catalog_weights as input during initialization. Now it takes just a paramater (e.g. 'gini'), and the catalog weights are loaded up during the __init__ function instead. This way we do not have to open the hdf5 file in the input config.
Added functionality to load batches of the images at a time. I added a batch_size parameter to the CosmosCatalog as you suggested. self.batch_number keeps track of the number of times modify_cosmology_params has been called. self.total_num_galaxies keeps track of the size of the hdf5 file so we know when to loop back to the first batch.
hdf5 formatting changed as you suggested
I have not yet changed any of the test files to accommodate the new structure of the classes. Will work on that once you approve of the new structure

It looks like the coverage on source_models.py has dropped. Would you mind running coverage locally to see what line is missing?
coverage run --source paltax --omit="*Configs/*,*_test.py,main.py" -m unittest discover -v -p "*_test.py"
coverage html
open html/index.rst


Issue with breaking blocks in a chunk (Unloaded chunk at x, y, z)

Basically, I'm trying to create an instance for a player in the PlayerLoginEvent, but it seems like when the player breaks a block, it throws an error in console and doesn't drop an item. This same code was working with regular Minestom.
Player login listener
CustomChunkGenerator
Block I'm trying to break that doesn't drop anything
createDefaultHandler method - this is where the error occurs
Version:
implementation("dev.hollowcube:minestom-ce:010fe985bb")

Error:
java.lang.NullPointerException: Unloaded chunk at -144,-64,112
	at net.minestom.server.instance.Instance.getBlock(Instance.java:596)
	at net.minestom.server.instance.block.Block$Getter.getBlock(Block.java:218)
	at net.minestom.server.instance.block.Block$Getter.getBlock(Block.java:226)
	at io.github.fisher2911.myserver.world.BlockHandlersKt$createDefaultHandler$3.onDestroy(BlockHandlers.kt:32)
	at net.minestom.server.instance.DynamicChunk.setBlock(DynamicChunk.java:111)
	at net.minestom.server.instance.Chunk.setBlock(Chunk.java:91)
	at net.minestom.server.instance.AnvilLoader.loadBlockEntities(AnvilLoader.java:300)
	at net.minestom.server.instance.AnvilLoader.loadMCA(AnvilLoader.java:129)
	at net.minestom.server.instance.AnvilLoader.loadChunk(AnvilLoader.java:87)
	at net.minestom.server.instance.InstanceContainer.lambda$retrieveChunk$6(InstanceContainer.java:294)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

It only seems to be happening when loading chunks from a file

The issue seems to be that the chunk is cached after the chunk is generated

If you want to reproduce, this causes it:
MinecraftServer.getBlockManager().registerHandler("minecraft:stone") {
    object : BlockHandler {
        override fun getNamespaceId(): NamespaceID {
            return NamespaceID.from("minecraft:stone")
        }
        override fun onDestroy(destroy: BlockHandler.Destroy) {
            println("destroyed stone")
            val position = destroy.blockPosition
            destroy.instance.getBlock(position)
        }
    }
}

instanceContainer.chunkLoader = AnvilLoader("worlds/${player.uuid}")
instanceContainer.setGenerator { unit: GenerationUnit -> unit.modifier().fillHeight(0, 40, Block.STONE)

private fun onPlayerLogout(
    globalEventHandler: GlobalEventHandler,
    barrenInstanceManager: BarrenInstanceManager,
    playerManager: PlayerManager
) {
    globalEventHandler.addListener(
        PlayerDisconnectEvent::class.java
    ) { event: PlayerDisconnectEvent ->
        val player: Player = event.player
        player.instance.saveChunksToStorage()
    }
}

Steps:

Join the server
Leave
Join back


Add Left, Right, and Middle click pan options

This PR allows users to disable panning with certain mouse buttons. At the moment, any mouse button that triggers a MouseEvent will initiate panning, but in many situations a user might want to limit that functionality to a single button, or any of a set of buttons. For instance, a common use case is that right click should not pan, or that only middle click should pan to emulate other similar desktop applications with zoom/pan/pinch interfaces.
With this PR, all three buttons (left click, right click, middle click) are enabled by default to avoid changing existing functionality. To disable specific button presses, you can add any of the following props to the TransformWrapper:

allowLeftClickPan: Allows left click to initiate panning. Defaults to true
allowMiddleClickPan: Allows middle click to initiate panning. Defaults to true
allowRightClickPan: Allows right click to initiate panning. Defaults to true

Here is an example bit of code to disable left and right click panning, and only allow middle click to initiate panning:
function MyComponent() {
    return (
        <TransformWrapper
            panning={{
                allowLeftClickPan: false,
                allowMiddleClickPan: true,
                allowRightClickPan: false
            }}
        >
            <TransformComponent>

Content

            </TransformComponent>
        </TransformWrapper>
    )
}

This would be incredibly helpful! The only way I can use panning right now is by using an activationKey. Being able to enable only MMB for panning would improve the UX greatly.


how to proceed

make things work*
find out how to store PCA and friends in/with the AnnData https://github.com/theislab/scanpy/commit/1cec41881e6d65f489111971f36142cb34c6cf49#commitcomment-20744162
determine how to read/write AnnData. maybe fields named var_* in the HDF5 will be var metadata and so on?

*apart from things still crashing, especially the group plotting should be fixed (should probably be transformed to one scatter call with a list of all groups)

Good! So, I'd really like to jump in and work on ann_matrix as well, if you think this is efficient. Of course, I don't want to mess up what you had in mind.

yes, that's important - can i help?
that's easy, simply put it in smp as a multicolumn object
should be very easy as well, maybe recarray can directly be written with a single key, if not, one has to make the separation between str and float columns -> shall I attack that?

Quite simply: What shall I do in order to merge ann_matrix as quickly as possible with the master branch? starting from tomorrow, fiona would like to work on one tool. so if you allow me, I'll try to get everything running and polished tonight.

Generally: What shall I do in order to merge ann_matrix as quickly as possible with the master branch? Starting from tomorrow, fiona would like to work on one tool using the nestorowa16 case i mentioned before. so if you allow me, I'll try to get everything running and polished tonight. :)

sure, go ahead, i’m occupied today preparing my mitarbeitergespräch :D

damn, I'm not fit enough to make ann_matrix work tonight. so, in order to get figures, analysis and a barebone code for fiona ready (we have a skype conference with fabian and the group in cambridge tomorrow at 11am, and fabian is quite pushy), i'll use the working master branch.
let's discuss merging with ann_matrix in person during the next days.


a self-signed SSL certificate support

This pull request is a suggestion how possible to add a self-signed certificate support.
It would be nice to have that feature for a testing purpose.
How to use:

Create a [Hub]Connection instance and pass an Alamofire SessionManader through a class initializer. How to connect to self-signed servers using Alamofire.

Set property webSocketAllowsSelfSignedSSL of the Connection instance to true value.

let hubConnection = HubConnection(withUrl: ..., sessionManager: ...)
hubConnection.webSocketAllowsSelfSignedSSL = true

@jordancamara Hi. Will you merge the pull request? It's a very useful feature.
If you don't like the approach, let's make something else.
The main idea is the library shell works with a self-signed SSL certificate.

@vldalx I will review it here shortly. Sorry, it's something I meant to get to on Friday but got lost in the kerfuffle.

@vldalx Will this fix work for LongPolling as well?


About  batch processing for main architecture RNN

Hello,
Thank you for open-sourcing this repository!
If the main architecture is RNN, how should I implement batch processing?

Could you elaborate about what do you mean by batch processing? By default, in hyperlight, a batch of data uses the same hypernetwork input and thus the same weights. To use multiple sets of weights within the same batch, the recommended way to do it is using gradient accumulation.

Thank you for your reply! Ultimately, I have resolved my question regarding batch processing.


File app > api > User.py needs renamed to user.py

When running the run.py file, you are prompted with the following output:

    from . import user, book, comment, log, tag
ImportError: cannot import name user

If you rename 'User.py' to 'user.py', the code will execute.

Thanks :)


Update raspian-build.md

You could have just committed this straight to the raspian-build-1 branch. No problem though, I will just merge it from here.

Closing because this has been cherry-picked into #126.


fix lint

fixed the lint caused by rebuilding the lint docker on ci server. the reason is that pylint is updated on pip, which generates more errors compared to the previous version

This was a good move... I just spent nearly a day chasing down odd behaviour in mxnet 0.10.0, caused by the questionable statement:
if kvstore is 'local':
in model.py


Fix typo template in python v2 (HttpTrigger)

Proposal fixing for issue  #3932

I'm going to ahead and close this since we don't usually update the backup templates manually like this.


Added custom agent configuration variable

Added agent custom variable to keep idempotency when using custom/advanced settings in the agent configuration.
This is useful if you're adding extra changes to the configuration.yaml that aren't immediately supported by this ansible playbook

@marcelbirkner  Could I get a review?

Hi @DevKyleS  and sorry we did not get back to you. As you probably already noticed, this repository is not actively maintained. It was intended to be a blueprint for others to build upon and we now updated the README to reflect that. Therefore I will close this PR. If you have your own fork with additional functionality, feel free to get in touch so we can link to it from this repository.


Vickel: Watch businessntactics.com

Vickel requests the watch of the watch_keyword businessntactics\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

businessntactics\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Implement custom Marshaler support, add jsonpb implemention.

This extends upon the work in #130 but keeps net/context conventions in place and updates tests to reflect all the changes.
Addresses #79

Thank you, @willtrking, @tmc .
It looks good to me as an initial implementation.  I'll add some small fixes later.

This might also enable fixing #124

@tamird Yes it does allow that, we did that for a bit in development but never in production.


Socket is closed error

I'm trying to setup SASS in my grunt project but I keep receiving the following error when running a target:
Running "sass:build" (sass) task
Warning: This socket is closed. Use --force to continue.

Aborted due to warnings.

All my other tasks work fine: uglify, concat, compress, jslint, etc. I'm assuming this is more of a Ruby error and not Sass, but no amount of Googling has solved my problem.
Here is the gruntfile: https://github.com/titon/Toolkit/blob/master/Gruntfile.js
I'm using Window 7 + Cygwin + command prompt when running grunt. I know sass works outside of grunt because I use scout and the command line daily.
Any help would be appreciated.

There is a actually workaround ! Running sass in a window command prompt launched after running cygstart cmd in cygwin terminal, that will setup windows PATH environment variable to include cygwin related directories.
When  running sass alone, still got a Command not found error, the key to circumvent that is a windows batch wrapper sass.cmd with following code:
@echo off
set DIRNAME=%~dp0
ruby %DIRNAME%\sass %*

P.S. put that sass.cmd under the same location with sass ruby script. (that is also under PATH, mine's ~/bin/)


Fix possible silent errors on Travis

Because we're piping xcodebuild through xcpretty we need to guarantee that we exit with same status code as xcodebuild otherwise we can have some false positives caused by xcpretty which always succeeds since he hasn't in consideration the exit code of xcodebuild.
Reference: https://github.com/supermarin/xcpretty#usage.
P.S. My apologies, I'm aware that I originated this issue 😞

:+1:


API CRUD support, bearer token permissions, and OpenAPI docs

Docs are being fleshed out at Stoplight. As usual, it's a bit of wishful thinking, but there's a good scaffold in place to get at least the simpler objects in place. Bearer token permissions are all set.

This one's gonna be an incomplete merge. The groundwork is laid, but as usual, there's a lot of other unrelated work involved with this branch.


Request signInInitiate failed with message: getaddrinfo ENOTFOUND github.com

I get the following error when I try to authenticate:
[Copilot] RPC[Error] code_name = InternalError, message = "Request signInInitiate failed with message: getaddrinfo ENOTFOUND github.com"

I guess this is a proxy issue. Anybody can help me resolve this?
$http_proxy and $https_proxy are set.

Can you check if https://github.com/zbirenbaum/copilot.lua/pull/90 solve it for you?
You'll need to set the proxy url to vim.g.copilot_proxy variable.
The format is the same as copilot.vim: https://github.com/github/copilot.vim/blob/2f4f9259a5c0f927b31c4256cd3e4d7c6df87662/doc/copilot.txt#L77-L83

Looks promising, I test later. But why not read vim.env.http_proxy?

But why not read vim.env.http_proxy?

No particular reason at all. Just keeping it consistent with the upstream copilot.vim behavior.

Issue needs to be sovled in upstream copilot.vim plugin. Report here: https://github.com/community/community/discussions/categories/copilot


piston-demo is broken

The piston demo builds, but panics immediately
aaron-mini:piston-demo aholtzma$ RUST_BACKTRACE=1 ./target/release/piston-demo
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Custom { kind: Other, error: StringError("Not supported") }', src/libcore/result.rs:999:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::_print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::continue_panic_fmt
   6: rust_begin_unwind
   7: core::panicking::panic_fmt
   8: core::result::unwrap_failed
   9: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
  10: piston_demo::main
  11: std::rt::lang_start::{{closure}}
  12: std::panicking::try::do_call
  13: __rust_maybe_catch_panic
  14: std::rt::lang_start_internal
  15: main

This is running on MacOS Mojave.

Thats' odd, would you please provide detailed stack trace by running the debug build ?
Thanks

It seems the dependency i am using for this which called systemstat is broken under MacOS now. I am not sure and I don't have a Mac on my hand. So if you could provide the stack trace with line numbers, it should be extremely helpful.

Hi
I have this error
error[E0425]: cannot find function draw_piston_window in module plotters::drawing
--> src/main.rs:25:44
|
25 |     while let Some(_) = plotters::drawing::draw_piston_window(&mut window, |b| {
|

Hi
I have this error
error[E0425]: cannot find function draw_piston_window in module plotters::drawing
--> src/main.rs:25:44
|
25 | while let Some(_) = plotters::drawing::draw_piston_window(&mut window, |b| {
|

Would you please provide more details about how you compile the code ?

I have managed to run that example but using this configuration in cargo.toml
plotters = {version="0.2.3",default_features = false, features = ["piston"]}
systemstat = "0.1.4"
piston_window = "0.96.0"
But using the last plotters version, the project does not work, i.e
plotters = {version="^0.2.8",default_features = false, features = ["piston"]}
systemstat = "0.1.4"
piston_window = "0.96.0"

Hi I tried your configure, what I see is this error
error[E0308]: mismatched types
  --> src/main.rs:21:44
   |
21 |     while let Some(_) = draw_piston_window(&mut window, |b| {
   |                                            ^^^^^^^^^^^ expected struct `piston_window::PistonWindow`, found a different struct `piston_window::PistonWindow`
   |
   = note: expected type `&mut piston_window::PistonWindow` (struct `piston_window::PistonWindow`)
              found type `&mut piston_window::PistonWindow` (struct `piston_window::PistonW

This is caused by version conflict of the piston window used by newer version of Plotters and your configuration.
If this is the issue, it seems change the version requirement of psition window to * could solve
pistion_window = "*"

Closed due to removal of piston backend


Physics Girl - YouTube failed with error 0

Error message: Format name invalid!
Query string: action=display&bridge=Youtube&context=By+channel+id&duration_min=&duration_max=&format=html&c=UC7DdEm33SyaTDtWYGO2CwdA
I have this message since 1 days or two, for several channels.
I'm using RSS-Bridge 2020-11-10
thanks for help.

Just have to replace html by Html.
First, I had this error with Atom format.
For debug, I've replaced Atom with html, and it was a mistake.
In fact, everything is OK
Query string: action=display&bridge=Youtube&context=By+channel+id&duration_min=&duration_max=&format=Html&c=UC7DdEm33SyaTDtWYGO2CwdA

Heh. Nice catch. That value sensivity is not good anyway. I will reopen and edit title


Errors don't implement std::error::Error

Issue as per title. Is this intentional? Would you accept a PR that implements std::error::Error for the Error types in this crate?

Mainly, I've used big enum for error handling because back at a time when I started writing this library downcasting was only in nightly rust(or at least I thought so), so enums were the only sensible option for getting cause of error. That being said, after doing some research I think that it's good idea to implement std error type(without breaking backwards compatibility). I'll probably implement myself it or accept PR.

Cool, thanks for the clarification!
Implementing std::Error will make interop with libraries like anyhow possible which became somewhat of a defacto standard lately.
I'll stand by then, let me know if you want a PR instead.

I've implemented std::error::Error trait for ConnError and onion service errors. This should work. That being said I didn't change structure of errors. They are still enums, so old code should work.

I've implemented std::error::Error trait for ConnError and onion service errors. This should work. That being said I didn't change structure of errors. They are still enums, so old code should work.

Amazing, thank you.
Regarding enums, it is my understanding that this is state-of-the-art error handling in Rust for libraries so need to change that :)


<ignition_frame_id> not working for GpuLidarSensor

Environment

OS Version: Ubuntu 20.04
Source or binary build?
last bin

Description

Expected behavior: The added tag <ignition_frame_id> from https://github.com/ignitionrobotics/ign-sensors/pull/195 should work for every sensor
Actual behavior: It is not applied for GpuLidarSensor published as ignition.msgs.PointCloudPacked

Fixed inhttps://github.com/ignitionrobotics/ign-sensors/pull/218


[BUG] After upgrade to 1.4.0, rancher pods stays in Pending state

Environment

Harvester ISO version: 1.4.0
2 Physical baremetal DELL Precision nodes and 1 witness VM

Describe the bug
After I upgraded 1.3.2 -> 1.4.0, I see few rancher pods stays in the Pending state.
Why is it pending?
kubectl get pod --sort-by=.metadata.creationTimestamp --all-namespaces -o wide
cattle-system                     rancher-7d8b85cf5b-gtbrb                                          0/1     Pending     0               3d21h   <none>         <none>    <none>           <none>
cattle-system                     rancher-7d8b85cf5b-7qf9p                                          0/1     Pending     0               3d20h   <none>         <none>    <none>           <none>
...

Looking at the pod:
kubectl describe pod -n cattle-system                     rancher-7d8b85cf5b-7qf9p
Name:                 rancher-7d8b85cf5b-7qf9p
Namespace:            cattle-system
Priority:<PHONE_NUMBER>
Priority Class Name:  rancher-critical
Service Account:      rancher
Node:                 <none>
Labels:               app=rancher
                      pod-template-hash=7d8b85cf5b
                      release=rancher
Annotations:          harvesterhci.io/timestamp: 2024-09-12T06:39:07Z
Status:               Pending
IP:
IPs:                  <none>
Controlled By:        ReplicaSet/rancher-7d8b85cf5b
Containers:
  rancher:
    Image:      rancher/rancher:v2.9.2
    Port:       80/TCP
    Host Port:  0/TCP
    Args:
      --no-cacerts
      --http-listen-port=80
      --https-listen-port=443
      --add-local=true
    Liveness:   http-get http://:80/healthz delay=0s timeout=5s period=30s #success=1 #failure=5
    Readiness:  http-get http://:80/healthz delay=0s timeout=5s period=30s #success=1 #failure=5
    Startup:    http-get http://:80/healthz delay=0s timeout=5s period=10s #success=1 #failure=12
    Environment:
      CATTLE_NAMESPACE:           cattle-system
      CATTLE_PEER_SERVICE:        rancher
      CATTLE_FEATURES:            multi-cluster-management=false,multi-cluster-management-agent=false
      CATTLE_SYSTEM_CATALOG:      bundled
      CATTLE_BOOTSTRAP_PASSWORD:  <set to the key 'bootstrapPassword' in secret 'bootstrap-secret'>  Optional: false
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-qrd4c (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  kube-api-access-qrd4c:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 cattle.io/os=linux:NoSchedule
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  57m (x21 over 111m)  default-scheduler  0/3 nodes are available: 1 node(s) didn't match pod anti-affinity rules, 1 node(s) had untolerated taint {node-role.kubernetes.io/etcd: true}, 1 node(s) were unschedulable. preemption: 0/3 nodes are available: 1 node(s) didn't match pod anti-affinity rules, 2 Preemption is not helpful for scheduling.
  Warning  FailedScheduling  20m (x9 over 57m)    default-scheduler  0/3 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/etcd: true}, 2 node(s) didn't match pod anti-affinity rules. preemption: 0/3 nodes are available: 1 Preemption is not helpful for scheduling, 2 node(s) didn't match pod anti-affinity rules.

Looking at the ReplicaSet:
kubectl describe rs -n cattle-system                     rancher-7d8b85cf5b
Name:           rancher-7d8b85cf5b
Namespace:      cattle-system
Selector:       app=rancher,pod-template-hash=7d8b85cf5b
Labels:         app=rancher
                pod-template-hash=7d8b85cf5b
                release=rancher
Annotations:    deployment.kubernetes.io/desired-replicas: 3
                deployment.kubernetes.io/max-replicas: 4
                deployment.kubernetes.io/revision: 3
                management.cattle.io/scale-available: 3
                meta.helm.sh/release-name: rancher
                meta.helm.sh/release-namespace: cattle-system
Controlled By:  Deployment/rancher
Replicas:       3 current / 3 desired
Pods Status:    1 Running / 2 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:           app=rancher
                    pod-template-hash=7d8b85cf5b
                    release=rancher
  Annotations:      harvesterhci.io/timestamp: 2024-09-12T06:39:07Z
  Service Account:  rancher
  Containers:
   rancher:
    Image:      rancher/rancher:v2.9.2
    Port:       80/TCP
    Host Port:  0/TCP
    Args:
      --no-cacerts
      --http-listen-port=80
      --https-listen-port=443
      --add-local=true
    Liveness:   http-get http://:80/healthz delay=0s timeout=5s period=30s #success=1 #failure=5
    Readiness:  http-get http://:80/healthz delay=0s timeout=5s period=30s #success=1 #failure=5
    Startup:    http-get http://:80/healthz delay=0s timeout=5s period=10s #success=1 #failure=12
    Environment:
      CATTLE_NAMESPACE:           cattle-system
      CATTLE_PEER_SERVICE:        rancher
      CATTLE_FEATURES:            multi-cluster-management=false,multi-cluster-management-agent=false
      CATTLE_SYSTEM_CATALOG:      bundled
      CATTLE_BOOTSTRAP_PASSWORD:  <set to the key 'bootstrapPassword' in secret 'bootstrap-secret'>  Optional: false
    Mounts:                       <none>
  Volumes:                        <none>
  Priority Class Name:            rancher-critical
  Node-Selectors:                 <none>
  Tolerations:                    cattle.io/os=linux:NoSchedule
Events:                           <none>

Support bundle:
https://drive.google.com/file/d/14Fft3FzgLyDNggpu9gRQyPtd4R7yDQD2/view?usp=sharing

Per the support bundle, it seems that the old rancher ReplicaSet is not scaled down to zero:
$ k -n cattle-system get rs -l app=rancher
NAME                 DESIRED   CURRENT   READY   AGE
rancher-66db9cff46   0         0         0       98d
rancher-7d8b85cf5b   3         3         1       4d23h
rancher-c56dcc99     1         1         1       98d

The new rancher pod cannot run on node t7920 because the old rancher pod rancher-c56dcc99-vlvld is already there (there's a podAntiAffinity rule):
$ k -n cattle-system get po -l app=rancher -o wide
NAME                       READY   STATUS    RESTARTS      AGE     IP            NODE     NOMINATED NODE   READINESS GATES
rancher-7d8b85cf5b-6khwv   1/1     Running   1 (30h ago)   4d23h   <IP_ADDRESS>   t5820    <none>           <none>
rancher-7d8b85cf5b-7qf9p   0/1     Pending   0             4d21h   <none>        <none>   <none>           <none>
rancher-7d8b85cf5b-gtbrb   0/1     Pending   0             4d23h   <none>        <none>   <none>           <none>
rancher-c56dcc99-vlvld     1/1     Running   0             31h     <IP_ADDRESS>   t7920    <none>           <none>

@SlavikCA Do you remember taking any actions during the previous upgrade (v1.3.2 -> v1.4.0)?
cc @FrankYang0529

After I rebooted nodes, I see that old ReplicaSet are gone (scaled down):
kubectl -n cattle-system get rs -l app=rancher
NAME                 DESIRED   CURRENT   READY   AGE
rancher-66db9cff46   0         0         0       102d
rancher-7d8b85cf5b   3         3         2       8d
rancher-c56dcc99     0         0         0       102d

Right?
The issue is that new ReplicaSet is not deployed completely, only 2 out of 3:
kubectl -n cattle-system get po -l app=rancher -o wide
NAME                       READY   STATUS    RESTARTS   AGE     IP            NODE     NOMINATED NODE   READINESS GATES
rancher-7d8b85cf5b-7qf9p   1/1     Running   0          8d      <IP_ADDRESS>   t7920    <none>           <none>
rancher-7d8b85cf5b-gxpvz   0/1     Pending   0          3d22h   <none>        <none>   <none>           <none>
rancher-7d8b85cf5b-tpdhn   1/1     Running   0          4d11h   <IP_ADDRESS>    t5820    <none>           <none>

Looking at the Pending pod:
kubectl -n cattle-system describe po rancher-7d8b85cf5b-gxpvz
Name:                 rancher-7d8b85cf5b-gxpvz
Annotations:          harvesterhci.io/timestamp: 2024-09-12T06:39:07Z
Status:               Pending
IP:
IPs:                  <none>
Controlled By:        ReplicaSet/rancher-7d8b85cf5b
...
Conditions:
  Type           Status
  PodScheduled   False
Node-Selectors:              <none>
Tolerations:                 cattle.io/os=linux:NoSchedule
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age                       From               Message
  ----     ------            ----                      ----               -------
  Warning  FailedScheduling  4m21s (x1131 over 2d23h)  default-scheduler  0/3 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/etcd: true}, 2 node(s) didn't match pod anti-affinity rules. preemption: 0/3 nodes are available: 1 Preemption is not helpful for scheduling, 2 node(s) didn't match pod anti-affinity rules.

Is it because I have 2 nodes + witness?
Is there a way / workaround to make it work?
SB as of now:
https://drive.google.com/file/d/1LcgGsvgIxVGYZR9ffvWHCqk-fZf5NIgp/view?usp=sharing

Is it because I have 2 nodes + witness?

Yes, witness node only holds etcd workload. Rancher pods have pod affinity, so scheduler doesn't put two pods on a same node.

Is there a way / workaround to make it work?

I think there is no harm for current situation.

I think there is no harm for current situation.

I continue to experience #7199.
Can it be caused by this rancher issue?

I think there is no harm for current situation.

I continue to experience https://github.com/harvester/harvester/issues/7199.
And @starbops thinks this issue is the root cause. Can it be caused by this rancher issue?


[WFLY-9897] getBytes(); calls should be replaced with getBytes(Standa…

…rdCharsets.UTF_8);
JIRA: https://issues.jboss.org/browse/WFLY-9897
There are several calls of method getBytes(); in clustering subsystem. getBytes() depends on platform's default charset . This will cause the application behaviour to vary between platforms.

lgtm but @pferraro could you please review?


When does a view gets rendered?

This article explains renderers and their relationship with platform specific controls but when is actual rendering process occuring?  How can it be captured, in what event?  Does a view has to be visible in order to say it has been rendered? etc

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

ID: e3b172d5-2dc1-88e7-ca23-96e87ae24a42
Version Independent ID: 1ca93300-738f-4af7-b47c-0e170b7205a4
Content: Implementing a View - Xamarin
Content Source: docs/xamarin-forms/app-fundamentals/custom-renderer/view.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @dinobu
If I'm understanding you correctly, it sounds like you're essentially asking for a doc that explains the Xamarin.Forms layout cycle. I've created an issue in our backlog for this.
Meanwhile, you can find an explanation of it in Chapter 26 of "Creating Mobile Apps with Xamarin.Forms". The following link has an overview of chapter 26, and a download link for the full chapter: https://docs.microsoft.com/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter26

Hi @dinobu
If I'm understanding you correctly, it sounds like you're essentially asking for a doc that explains the Xamarin.Forms layout cycle. I've created an issue in our backlog for this.
Meanwhile, you can find an explanation of it in Chapter 26 of "Creating Mobile Apps with Xamarin.Forms". The following link has an overview of chapter 26, and a download link for the full chapter: https://docs.microsoft.com/xamarin/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter26

I am trying to find out when my for example Entry view gets rendered, how can I access that event, how to capture it.  Basically, like in Android, where I can find out exactly when a view is rendered, visible, etc but in Xamarin.Forms

@dinobu Understood.
There's a feature, currently scheduled for Forms 4.2, that's going to add BeforeAppearing, Loaded (raised when a view has appeared on a page), and Unloaded events to the VisualElement class. The names of these events may change, but you'll be able to use them to track views as they appear on a page from Xamarin.Forms.
Until then, it's a case of having to use platform events to get the notifications you need.


fix(PET vs PT): Change all to PT for consistency

Context
This Pull Request addresses an issue of inconsistency in the naming convention used in the codebase. The problem was between using "PET" and "PT" terms. To ensure consistency across the project, all instances of "PET" have been changed to "PT"1.
Also isPrescaled was wrong and it should be isPreScaled
Changes & Results
Change PET -> PT
and isPrescaled -> isPreScaled
Testing
OHIF MPR for PT does not work because of this check but the volume has isPrescaled :(
Checklist
PR

[] My Pull Request title is descriptive, accurate and follows the
semantic-release format and guidelines.

Code

[] My code has been well-documented (function documentation, inline comments,
etc.)

[] I have run the yarn build:update-api to update the API documentation, and have
committed the changes to this PR. (Read more here https://www.cornerstonejs.org/docs/contribute/update-api)

Public Documentation Updates

[] The documentation page has been updated as necessary for any public API
additions or removals.

Tested Environment

[] "OS:
[] "Node version:
[] "Browser:

@jbocce The rest are documentations, there shouldn't be any property of a class or variable called PET, I think I got them all, no?

@jbocce The rest are documentations, there shouldn't be any property of a class or variable called PET, I think I got them all, no?

I suppose uids.ts is in examples, so I think we are good, yes.


cantools decode not working with multiplexed signals in .sym

When I run cantools decode /path/to/sym, I get the following error
error: The signals alert1 and alert1 are overlapping in message TestAlert.

The .sym file I am using is as follows:
FormatVersion=6.0 // Do not edit this line!
Title="CanMsgs"

{ENUMS}

{SIGNALS}

{SENDRECEIVE}
[TestAlert]
ID=700h
Len=2
CycleTime=1000
Mux=FSM 0,8 1
Var=alert1 unsigned 8,1
Var=alert2 unsigned 9,1
Var=alert3 unsigned 10,1

[TestAlert]
Len=2
CycleTime=1000
Mux=DCM 0,8 2
Var=alert1 bit 8,1
Var=alert2 bit 9,1
Var=alert3 unsigned 10,1

The error goes away if I change the Var offsets to not overlap between my two multiplexed signals.

Fixed in version 32.19.2, available on PyPI!

Sorry for the late response! I tested it and the issue went away.


Ignore mouseover/mouseout?

Is there a way to show a tooltip "always", until I manually close it? What I mean is, in this case, I don't want the tooltip to show/hide when I hover the connecting element.

http://tipso.object505.com/ I would look into the "Show tipso on page load" example and mix it with the "Interact with tipso tooltip" and the "Click to show/hide tipso" examples.

I did something like this:
var init = function () {
   var tooltip = $('.tooltip').tipso({
      position: 'bottom',
      content: 'Some content'
   });

   tooltip.tipso('show');
   tooltip.off('mouseover.tipso');
   tooltip.off('mouseout.tipso');
};


Confidence and start/stop index in NER

Good day!
It is possible return from NER model confidence and (or) start/stop position entities?
By default model return ["x_tokens", "y_pred"]

Hi @Grossmend,

It is possible to return probabilities for NER models based on BERT: you can set the return_probas option to true in the configuration, remove the last tag_vocab component from the pipeline and rename y_pred_ind to y_pred in bert_sequence_tagger’s out field.
There is no way at this moment to return start/stop positions as the model works with tokenized text. You can however tokenize your inputs beforehand remembering start and stop positions for every token and then match those with the model outputs.

Thanks!


flow-parser: incorrect shorthand property for ObjectPattern with comments

Flow version: 0.163.0
Input
const { /* comment */ prop = 0 } = something;

Expected behavior
Outputs the below AST:
[
  {
    "type": "VariableDeclaration",
    "declarations": [
      {
        "type": "VariableDeclarator",
        "id": {
          "type": "ObjectPattern",
          "properties": [
            {
              "type": "Property",
              "key": {
                "type": "Identifier",
                "name": "prop",
                "typeAnnotation": null,
                "optional": false
              },
              "value": {
                "type": "AssignmentPattern",
                "left": {
                  "type": "Identifier",
                  "name": "prop",
                  "typeAnnotation": null,
                  "optional": false
                },
                "right": {
                  "type": "Literal",
                  "value": "",
                  "raw": "\"\""
                }
              },
              "kind": "init",
              "method": false,
              "shorthand": true,
              "computed": false
            }
          ],
          "typeAnnotation": null
        },
        "init": {
          "type": "Identifier",
          "name": "something",
          "typeAnnotation": null,
          "optional": false
        }
      }
    ],
    "kind": "const"
  }
]

Actual behavior
Outputs the below AST:
[
  {
    "type": "VariableDeclaration",
    "declarations": [
      {
        "type": "VariableDeclarator",
        "id": {
          "type": "ObjectPattern",
          "properties": [
            {
              "type": "Property",
              "key": {
                "type": "Identifier",
                "name": "prop",
                "typeAnnotation": null,
                "optional": false
              },
              "value": {
                "type": "AssignmentPattern",
                "left": {
                  "type": "Identifier",
                  "name": "prop",
                  "typeAnnotation": null,
                  "optional": false
                },
                "right": {
                  "type": "Literal",
                  "value": "",
                  "raw": "\"\""
                }
              },
              "kind": "init",
              "method": false,
-              "shorthand": true,
+              "shorthand": false,
              "computed": false
            }
          ],
          "typeAnnotation": null
        },
        "init": {
          "type": "Identifier",
          "name": "something",
          "typeAnnotation": null,
          "optional": false
        }
      }
    ],
    "kind": "const"
  }
]

Link to Try-Flow or Github repo: https://github.com/prettier/prettier/pull/11736

From the linked other thread, it sounds like this is a regression -- that it was working correctly in v0.162.1. @sosukesuzuki is that right?
If so, then from a look at the commit logs (e.g. with git log --stat -p v0.162.1..v0.163.0 -G shorthand), commit 806cc9c6c3023cf4c1a82bb4114aa5239fd3285e stands out as a likely cause, with this change:
--- a/src/parser/flow_ast_mapper.ml
+++ b/src/parser/flow_ast_mapper.ml
@@ -2035,13 +2035,13 @@ class ['loc] mapper =
     method object_property (prop : ('loc, 'loc) Ast.Expression.Object.Property.t) =
       let open Ast.Expression.Object.Property in
       match prop with
-      | (loc, Init { key; value; shorthand }) ->
+      | (loc, Init { key; value; shorthand = _ }) ->
         let key' = this#object_key key in
         let value' = this#expression value in
         if key == key' && value == value' then
           prop
         else
-          (loc, Init { key = key'; value = value'; shorthand })
+          (loc, Init { key = key'; value = value'; shorthand = false })
       | (loc, Method { key; value = fn }) ->

That will set shorthand to false in, it looks like, any AST transform that touches either the key or the value of a bit of property-init syntax.
The motivation is suggested by the commit summary:
Codemod to rename redefined variables with constrained write errors

If you're renaming a variable, that can certainly need to turn shorthand syntax into non-shorthand syntax. But the Flow_ast_mapper module is used for lots of things, and it sounds like this logic turned out to be over-broad.
Perhaps a fix would look something like (untested):
          (loc, Init { key = key'; value = value'; shorthand = shorthand && key' = value'.left })

I.e., if shorthand was true, then try to keep it true if the new value.left is still equal to the new key.

From the linked other thread, it sounds like this is a regression -- that it was working correctly in v0.162.1. @sosukesuzuki is that right?

Yes, 0.163.0 worked fine.

Also, this bug is a blocker for Prettier updating flow-parser, so I hope it will be fixed. I'm not familiar with Flow's codebase and I've never written OCaml so it is difficult to me to fix it.

We'll take a look at this, thanks for reporting


Pyxis runtime path cannot be on /fsx

Pyxis runtime path cannot be /fsx, otherwise error to run Docker image (directly) on multiple nodes.
# NOTE: below works fine for -N1.
$ srun -N2 --container-image=alpine grep PRETTY /etc/os-release
...
slurmstepd: error: pyxis:     Can't find a SQUASHFS superblock on /fsx/pyxis/1000/385.0.squashfs
slurmstepd: error: pyxis:     Wrong filesystem or filesystem is corrupted!
slurmstepd: error: pyxis:     Failed to read existing filesystem - will not overwrite - ABORTING!
slurmstepd: error: pyxis:     To force Mksquashfs to write to this block device or file use -noappend
...
srun: error: p4de-st-p4de-1: task 0: Exited with exit code 1
...
slurmstepd: error: pyxis:     [ERROR] No such file or directory: /fsx/pyxis/1000/385.0.squashfs
...
srun: error: p4de-st-p4de-2: task 1: Exited with exit code 1

Both the MRs mentioned above still don't fix this issue. No super block found errors still get raised when using this script. Are you guys open for an MR ?


Not working on Microsoft Edge browser.

site not detecting ZeroNet installation on new Microsoft edge browser.

ok found the problem, I was using dark mode extension, checking background colour is not reliable because extensions like, I use or chrome dark mode flag may interfere with these.

Yes, I even made a PR to bypass that problem but @HelloZeroNet never accept it.

Here is an example for easier check:
elem_local_test = createElem('<img src="http://<IP_ADDRESS>:43110/favicon.ico?random=' + Date.now() + '" style="display: none"/>');

elem_local_test.onerror = function() {
    document.getElementById("visit-links").classList.add("no-local");
};

https://github.com/HelloZeroNet/zeronet.io/blob/master/go.html#L68

@krzysztof113 what do you think about the @HelloZeroNet Suggestion ?

Yes, I think I'll move to it. The only problem I've seen is when you have regular webserver on custom port then favicon will be there, with false positive, but the chance for that is negligible.
Overall why are you interested? You plan to use it somewhere in your app? There are barely any users by now.

i heard you are abandoning Zeronet.link redirector, i would like to took up that project & host, as you may know me as developer of zeronet mobile and i previously showed interest in this project, you can trust me to maintain the project for long.

i heard you are abandoning Zeronet.link redirector, i would like to took up that project & host, as you may know me as developer of zeronet mobile and i previously showed interest in this project, you can trust me to maintain the project for long.

please reach out to me @ krzysztof113 @ o2.pl

@krzysztof113 is there an another way of communication to reach you ? like telegram or even matrix rooms or something else.


Add Segment to Analytics

@vsouza is it ok? https://segment.com/pricing

yep. They have a free account :smile:

😅


Travis integration

Would be cool to build all these dozens and dozens of images automatically on Travis:

https://blog.hypriot.com/post/setup-simple-ci-pipeline-for-arm-images/
https://sedden.github.io/blog/2016/04/11/automated-builds-for-arm-docker-containers-on-intel-hosts/

Maybe this is also relevant: https://docs.travis-ci.com/user/trusty-ci-environment


deleting and upvoting expand collapsibles

solved for deleting, need to integrate upvoting to finish

$('.question-delete').on('click', function() {
    $(this).parent().removeClass("collapsible-header");
});

can be adapted for votes and question and comment deletion

fix should be up on bugfixes branch

we'll have to see if it makes a difference


Move method out of generated code

Our standard is to put code in the file without _type in the name.
Also, I found the name BaseRef a bit confusing.

/lgtm

/approved


added support for incremental download of translog files

Description
Presently, the download workflow for remote backed storage works in a manner that causes the download of the same translog files multiple times, each time deleting all the older files before downloading them again. This causes significant wasted network bandwidth, along with the time taken for the shard to become active.
This change adds support for downloading the translog files incrementally and omitting the same if they are present locally.
Implementation
The key changes include-
Incremental Download Logic in RemoteFsTranslog:

The download logic now checks if the local translog files are present and have the same checksum as the remote files.

If the local and remote checksums match, the download is skipped for that generation.
If the checksums do not match, the download is performed for that generation.

Translog Footer Handling:

The TranslogFooter class has been added to handle the writing and reading of the translog footer, which contains the checksum of the translog data.
The footer is written when the TranslogWriter is closed, and the checksum is stored in the TranslogReader.
The TranslogReader is updated to handle reading the footer and ensuring that read requests do not overlap with the footer.

Generation-to-Checksum Mapping in TranslogTransferMetadata:

The TranslogTransferMetadata now includes a mapping between the translog generation and the corresponding checksum.
This mapping is used to compare the local and remote checksums during the incremental download process.
The TranslogTransferMetadataHandler is updated to read and write this generation-to-checksum mapping.

Testing
Manual Testing
Manually tested failover and restore workflow on a 3-node EC2 cluster.
Also, tested backward compatibility wherein initial cluster was created and indexed with older OpenSearch process. It was then switched to incremental download.
Newly added tests

The RemoteFsTranslogTests class has been updated to include new test cases for the incremental download logic:

testIncrementalDownloadWithMatchingChecksum tests the scenario where the local and remote translog files have the same checksum, and the download is skipped.
testIncrementalDownloadWithDifferentChecksum tests the scenario where the local and remote translog files have different checksums, and only the missing generation is downloaded.

The TranslogFooterTests class has been added to verify the functionality of the TranslogFooter class, including writing and reading the footer.
The TranslogTransferMetadataHandlerTests class has been updated to include test cases for handling the generation-to-checksum map in the TranslogTransferMetadata.

Related Issues

One of the optimisations for https://github.com/opensearch-project/OpenSearch/issues/15277
Check List

[x] Functionality includes testing.
[ ] API changes companion pull request created, if applicable.
[ ] Public documentation issue/PR created, if applicable.

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

Rebased over mainline and addressed the comments which needed any refactoring.


⚠ Bofrost.at has degraded performance

In 1f877a4, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1071 ms

Resolved: Bofrost.at performance has improved in 2668a2a.


Review the datamodel of the variable and provide a way to determinate the build order of the variable.

The build order will be usefull later when we will have to perform the query associated to each variable.
For the moment it is used to check if there is no circular dependency and no variable used but not defined.

Codecov Report

Merging #20 (3719824) into master (6289742) will increase coverage by 1.18%.
The diff coverage is 25.69%.

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
+ Coverage   19.00%   20.19%   +1.18%
==========================================
  Files          39       41       +2
  Lines        1131     1248     +117
==========================================
+ Hits          215      252      +37
- Misses        900      979      +79
- Partials       16       17       +1

Impacted Files
Coverage Δ

internal/api/impl/v1/dashboard/service.go
3.70% <0.00%> (-0.30%)
:arrow_down:

pkg/model/api/v1/dashboard.go
0.00% <0.00%> (ø)

pkg/model/api/v1/dashboard_panel.go
0.00% <ø> (ø)

pkg/model/api/v1/dashboard_variable.go
0.00% <0.00%> (ø)

...nternal/api/impl/v1/dashboard/variable/variable.go
72.54% <72.54%> (ø)

Continue to review full report at Codecov.

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


Implement Daira's variable-base scalar multiplication

Savings: 6,000 constraints
Daira has optimizations for variable-base scalar multiplication which gets down to 6 constraints per bit.
In the blockchain SNARK we have scalar multiplications in the VRF evaluation and in the recursive SNARK verification.
The recursive SNARK verification uses

1 full-width scalar multiplication

The VRF evaluation uses

1 private-key-sized scalar multiplication (let's say it's full-width for now, because it is in the implementation)

The existing implementation actually uses "safe" curve addition and so costs (4 + 4 + 2) = 10 constraints per bit. In total, that means for the two scalar multiplications above we go from
275310 ~= 15,000 constraints
to
275310 ~= 9,000 constraints
for a total savings of ~6000 constraints.

The existing implementation actually uses "safe" curve addition and so costs (4 + 4 + 2) = 10 constraints per bit. In total, that means for the two scalar multiplications above we go from
2_753_10 ~= 15,000 constraints
to
2_753_10 ~= 9,000 constraints
for a total savings of ~6000 constraints.

Do you mean from 2 * 753 * 10 to 2 * 753 * 6?

Yes!

You may also be interested in https://github.com/zcash/zcash/issues/3425#issuecomment-511240257 , concerning G2 subgroup testing (and G1 in the subsequent comment). They are written for BLS12-381, but I believe essentially the same technique is applicable to the MNT4/6 curves, if the LLL computation is redone for them.

Thanks @daira -- will check it out :)

@daira -- do you know if there is an implementation of the procedure to go from the curve to the polynomial in psi implementing the subgroup check? It's described on page 5 of this paper but just curious if it is implemented already somewhere.

I don't know of an implementation of that. @ebfull?


Add "Attach comment to issue" modal

Create button to open "Attach comment" modal in context menu.
Create modal to attach comment.
Create API to create issue comment & search issue.
Create notification post when comment is attached.

Fixes of this PR are in the following PR-
https://github.com/Brightscout/mattermost-plugin-gitlab/pull/10


Inaccurate scanning results

The following contents are my scan result, it is not accurate.
LOCATION +13:00
NRP +13:00
PERSON ConfigManager.cpp:196
LOCATION win_err=2
PHONE_NUMBER 364596
PHONE_NUMBER<PHONE_NUMBER>
PHONE_NUMBER 089758
PHONE_NUMBER 089795
PHONE_NUMBER 0.237115
PHONE_NUMBER 364822
PHONE_NUMBER 382473
PHONE_NUMBER<PHONE_NUMBER>
PHONE_NUMBER 384997
PHONE_NUMBER 388439
PHONE_NUMBER 01.696170
PHONE_NUMBER 01.696359
PHONE_NUMBER 02.711273
PHONE_NUMBER 02.711484
PHONE_NUMBER 03.728702
PHONE_NUMBER 03.728901
PHONE_NUMBER 04.763054

Hi @Temimal please see this https://github.com/microsoft/presidio/discussions/767#discussion-3567223


question about IsWholeNumber() implementation

Hi,
this project looks neat!
I was looking at the code and am a bit puzzled by the IsWholeNumber implementation. it's fascinating.

can't we just check if frac == 0 ?
it's unclear what the significance of epsilon is but i assume it's the smallest distinguishable fraction. if that's what it is, how can fraq be smaller than epsilon? if that's not what it is, what is it?
how about just checking if n == math.Floor(n) ?

I have a feeling it's all based on the notion that floats can't be accurately compared but it seems to me my suggestions as well as the current implementation would suffer equally from that.  or i must be missing some important detail..

Hi, thanks for the question!
To answer your points:

can't we just check if frac == 0 ?

No, since floating point math isn't always precise enough (see here)

it's unclear what the significance of epsilon is but i assume it's the smallest distinguishable fraction. if that's what it is, how can fraq be smaller than epsilon? if that's not what it is, what is it?

epsilon is there to check the result of math.Modf(math.Abs(n)) within a small range (0.999999999 through 0.000000001) to try to deal with float's accuracy problems.

how about just checking if n == math.Floor(n) ?

math.Floor isn't precise enough (see point 1), see here
This function isn't perfect though, since IsWholeNumber(2.9999999999999) still returns true, but it's as good as I could get it.

thanks @soudy , i read your response when you wrote it, but forgot to thank you and close this :)

@Dieterbe no problem, was just skimming through the issues :)


Directory structure?

Hi Ryan,
This looks extremely useful.
Just a few questions - what directory structure does ddir have?  Do you use globalIO = TRUE or do you have a directory for each tile?  i.e. ddir+'/0000',  ddir+'/0001', etc for all the tiles.
I make scant use of the Diagnostics package.  I assume if I wanted to use this, I'd want to start using it for more prosaic variables like 'U', 'W','PH' etc?
Is xray better than xarray or is xarray in the future?

Thanks!  Jody

Jody--I'm glad you have found my obscure package. Its overall future is a bit uncertain, as there are many other similar packages in various stages of development. Many of us have been discussing how to collaborate more effectively on a general purpose xarray-based package for GCM analysis. Please join the discussion on our hackpad if you are interested.
Right now the main practical utility of xgcm is to conveniently read MITgcm mds files into xarray format. The example notebook shows how this is done. I also just updated the docs on the relevant function: open_mdsdataset. I would be very interested to hear your feedback.

what directory structure does ddir have?

It is just the run directory of your MITgcm simulation. No subdirectories.

Do you use globalIO = TRUE or do you have a directory for each tile?

It will only work for singlecpuio. It can't handle tiles in any way. (It would be great to add support for tiles--PRs welcome!)

I assume if I wanted to use this, I'd want to start using it for more prosaic variables like 'U', 'W','PH' etc?

Yes, it will work fine for that. It knows how to interpret the "default output." However, it might complain if you don't have an available_diagnostics.log file. A hacky fix is to just copy a random one from any simulation into your directory.

Is xray better than xarray or is xarray in the future?

Did you mean to say xgcm? xarray and xray are the same thing. xgcm depends on xarray. There is no choice to be made.

Yes, I have, but until dask.distributed matures a bit more, it is not possible to scale beyond a single node.

I think just getting mds files into xarray is a great contribution.  I'm a little uncertain exactly what you are doing - have you basically written a backend that mimics what the netcdf backend does, and therefore you don't write intermediary netcdf format - you simply read the mds data when xarray requests it?  If so, that's a fabulous abstraction.
I'm seeing about setting xarray up on the cluster I use (haise.navo.hpc.mil).
I don't see how dask would interact well with 256 sub-files spread among as many subdirectories.  But I don't really understand how it works.  is singlecpuio a big performance hit (well I guess I can try and see).  I always stored in tiles simply because I often wasn't interested in many of the tiles (boundary conditions, passive basins, etc).  However, if I am doing my work on the cluster anyway that savings doesn't really buy me anything.  So the only issue would be if it took 20 minutes to write out each time step instead of 20 seconds.
Glad that xray and xarray are exactly the same thing.  I assumed xray was an obsolete version of xarray.
Thanks a lot.  Jody

you simply read the mds data when xarray requests it? If so, that's a fabulous abstraction.

Yes. It is "lazy" in this sense.

is singlecpuio a big performance hit (well I guess I can try and see).

This depends on your cluster and the nature of your filesystem. In my experience, it is a performance improvement to have one process handle all the io if you are using a shared filesystem.

I'm seeing about setting xarray up on the cluster I use (haise.navo.hpc.mil).

Don't even consider not using conda. Complete environment specifications for xgcm can be found in the ci directory.
I am really glad to have someone else trying this out, but I should warn you that the package is in a state of heavy churn and is extremely far from a stable api.

Don't even consider not using conda. Complete environment specifications for xgcm can be found in the ci directory.

Hmmm, doubt haise has conda (or pip, or...)

I am really glad to have someone else trying this out, but I should warn you that the package is in a state of heavy churn and is extremely far from a stable api.

No problem... I've been warned.

Hmmm, doubt haise has conda (or pip, or...)

It can be done entirely in user space, with no need for system-wide installation of packages. (But of course still probably easier with sysadmin help.)

Umm, yes it can.  Should have thought of that years ago!  These machines are so fancy, I don't quite realize they are just running RedHat underneath it all....

I'll close this now. Feel free to open new issues as they arise.


Atom modify a lot of lines when I make some changes in my files

When I do a "git diff" I can see these modified lines, the final result is that the file keeps just the changes I did, but it is very awful when you want to see what changes you did, and especially when you working with a team and others want to see what you have changed in the file.
As an example, this is the output of "git diff" when I do a simple change.
NOTE: I only changed the last line, however all of that "-+" couples appears. Not sure what's happening... :confused:
        .fc-day,
-       .fc-widget-content
+       .fc-widget-content
        {
                background : #FFF !important;
        }
-
+
    .fc-day-header{
        background-color: #e86484 !important;
    }
@@ -72,7 +72,7 @@

-


WIP: Autogenerate boilerplate

Hi, loving Calypso so far; however the other day I needed a foProduct12 and noticed it didn't exists and then I realized the code was manual.
So, I thought it would be a good idea to rather autogenerate all this boilerplate, what do you think?
I am planning on adding all the boilerplate files but I thought it would be better to first open the PR with what I have right now to get feedback.
Let me know what do you think and if you have any suggestions.
PS: This change breaks bincompat.

Hi, this is an excellent idea! You are moving in the right direction. Let me know if you need help.

Hi @asakaev the PR should be ready now, let me know what do you think.


How to set SIP transport for createUac

I want to set SIP transport for each outbound dialog via 'createUac'.
I already tried to set it on the uri parameter like ';transport=tcp' but it does not work.
Please help me out about this.

can you share the drachtio log file from your attempt at setting the transport, because that should work.  Please have drachtio loglevel at debug

I attached Drachtio log file during my test. My test is making a simple outbound call with UDP. But It is transmitted via TCP. You can see the attached screenshot of some pcap file too.

drachtio_logs.txt

Here is version information,

Drachtio: v0.8.18
Srf: 4.4.18

Thank you for your support.

@davehorton ,
Is there any update?

@davehorton
Please update me about this issue.
I tried with Drachtio 0.8.22 and Srf 4.5.26 but it has the same results.

its saying there are 15 possible transports which is a bit strange
SipTransport::findAppropriateTransport - after filtering for transport we have 15 candidates

Can you restart drachtio, with loglevel = debug and sofia-level=9, make the test call and then provide the entire log file including the startup sequence

@davehorton ,
I attached newly the entire logs of Dracthio from the start.
After restarting Drachtio, I made 3 calls with setting transport UDP, TCP, and UDP respectively.
But the last call with UDP setting was transmitted by TCP.

Drachtio log file

drachtio_logs_20230609.txt

Drachtio config file

drachtio_config_20230609.txt

PCAP screenshot for the last call, UDP setting but transmitted via TCP

@davehorton ,
Please update me about this issue.

@davehorton
Please recognize this issue whether it is a bug or simple configuration issue.
I use Docker based Drachtio so there are not a few network interfaces to bind.
If you are sure about the way to set transport for each calling createUac, Please let me know some example.


Creating and reading dmlc::InputSplit from Python?

Is it possible to use dmlc::InputSplit from Python. I have code Python code which packs my custome data into record files and iterators which read the packed data and convert to NDArray for training. I am trying to split up the record files as described here, but cannot find any uses of dmlc::InputSplit for reading or writing anywhere but c++.  Is this feature only available for code written in c++?

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!


Leaner MacOS tests (selective installation of prerequisites).

Install only the prerequisites needed in prepare_build script.
(installing prerequisites for some languages generates lots of logs and it takes minutes or even more).

@lidizheng  can you take an initial look?

I think this effort is great, save time and resources. Current solution definitely works. I want to discuss the implementation alternatives.

If we are going to use environment variables to dictate whether to install certain dependencies, can we set those variables in .cfg files as env_vars? It is more cohesive and structure.

We could set them in the .cfg files as env_vars but one disadvantage is that for most jobs, there's two .cfg files - one for the master job (continuous runs) and one for PRs. With that setup, we'd need to duplicate the env_vars setting in both of the .cfg files and that seems very fragile (would most likely end up with failures on master tests pretty soon).

If we want to setup build environment in actual build scripts, is it possible to use command line argument than environment variables? So those variables will only be effective for the installation script, and not out-living that script.

For some reason I'm not a fan of the cmdline args (usually the places where we use extra args in our build scripts feel less readable), so I'd prefer to you the env vars. The names of the env vars are chosen to be fairly specific, so it's very unlikely they'd cause unexpected problems somewhere.

@muxi  FYI

This is now ready for review.

We could set them in the .cfg files as env_vars but one disadvantage is that for most jobs, there's two .cfg files - one for the master job (continuous runs) and one for PRs. With that setup, we'd need to duplicate the env_vars setting in both of the .cfg files and that seems very fragile (would most likely end up with failures on master tests pretty soon).

Good to know that the cfg is usually duplicated for master and PRs.

For some reason I'm not a fan of the cmdline args (usually the places where we use extra args in our build scripts feel less readable), so I'd prefer to you the env vars. The names of the env vars are chosen to be fairly specific, so it's very unlikely they'd cause unexpected problems somewhere.

Command line arguments indicate direct relationship between the parent script and child script, also help reader trace the variable preparing logic. For this use case, env var works, and if we keep the naming special, we shouldn't have any trouble.


generate.sh: variants do not include IMAGE_CUSTOMIZATIONS

For example python has 3 variants, none of them include pipenv.

Mind if you provide details with your observation?  I checked the python variants and they all contain pipenv:
$ docker run -it --rm circleci/python:3.6.5 pipenv --version
pipenv, version 11.10.4
$ docker run -it --rm circleci/python:3.6.5-node pipenv --version
pipenv, version 11.10.4
$ docker run -it --rm circleci/python:3.6.5-browsers pipenv --version
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
pipenv, version 11.10.4

It's worth noting that generate.sh only includes IMAGE_CUSTOMIZATIONS in the original base image, as variants images inherit from that image.  circleci/python:3.6.5 is a parent of circleci/python:3.6.5-node, as can be seen in https://6594-85091879-gh.circle-artifacts.com/0/circleci-bundles/python/images/3.6.5/node/Dockerfile .

Ah, I missed that the variants use a different base. I'll close this.


Just saying thanks

This is exactly what I needed! :grin: Thank you for great work. :+1:

Thanks!


Update default payment methods Rust script

In conjunction with https://github.com/Shopify/shopify-cli/pull/2253, we'll be able to bootstrap new Rust scripts on the CLI. This will make developing for these APIs much easier than starting with the "wasm" template that doesn't include any code.
These examples are going to be in the docs as well, so we may as well make them accessible to the CLI.

Hey Dunk, I think you didn't push your change to remove checkout/rust/payment-methods/default/.shopify-cli.yml. I approved but thought you'd do that.


Datasets.map causes incorrect overflow_to_sample_mapping when used with tokenizers and small batch size

Describe the bug
When using tokenizer, we can retrieve the field overflow_to_sample_mapping, since long samples will be overflown into multiple token sequences.
However, when tokenizing is done via Dataset.map, with n_proc > 1, the overflow_to_sample_mapping field is wrong.  This seems to be because each tokenizer only looks at its share of the samples, and maps to the index within its share, but then Dataset.map collates them together.
Steps to reproduce the bug

Make a dataset of 3 strings.
Tokenize via Dataset.map with n_proc = 8
Inspect the overflow_to_sample_mapping field

Expected results
[0, 1, 2]
Actual results
[0, 0, 0]
Notes:

I have not yet extracted a minimal example, but the above works reliably
If the dataset is large, I've yet to determine if this bug still happens a. not at all b. always c. on the small, leftover batch at the end.

I've built a minimal example that shows this bug without n_proc. It seems like it's a problem any way of using tokenizers, overflow_to_sample_mapping, and Dataset.map together:
import datasets
import transformers
pretrained = 'deepset/tinyroberta-squad2'
tokenizer = transformers.AutoTokenizer.from_pretrained(pretrained)

questions = ['Can you tell me why?', 'What time is it?']
contexts = ['This is context zero', 'Another paragraph goes here']

def tok(questions, contexts):
    return tokenizer(text=questions,
            text_pair=contexts,
            truncation='only_second',
            return_overflowing_tokens=True,
            )
print(tok(questions, contexts)['overflow_to_sample_mapping'])
assert tok(questions, contexts)['overflow_to_sample_mapping'] == [0, 1] # PASSES

def tok2(d):
    return tok(d['question'], d['context'])

ds = datasets.Dataset.from_dict({'question': questions, 'context': contexts})
tokens = ds.map(tok2)
print(tokens['overflow_to_sample_mapping'])
assert tokens['overflow_to_sample_mapping'] == [0, 1] # FAILS, produces [[0], [0]]

A larger batch size does not have this behavior:
def tok2(d):
    return tok(d['question'], d['context'])

ds = datasets.Dataset.from_dict({'question': questions, 'context': contexts})
tokens = ds.map(tok2, batched=True, batch_size=2)
print(tokens['overflow_to_sample_mapping'])
assert tokens['overflow_to_sample_mapping'] == [0, 1] # PASSES

I was trying the Question answering tutorial on Hugging face when i faced the same problem.  The preprocessing step is here. i have changed max_length=200, stride=50,
validation_dataset = raw_datasets['validation'].select(range(8)).map(
    preprocess_validation_examples,
    batched=True,
    remove_columns=raw_datasets["validation"].column_names,
    num_proc=1
)
print(validation_dataset['overflow_to_sample_mapping'])
print(validation_dataset['example_id'])

result
[0, 1, 2, 3, 4, 5, 6, 7]
['56be4db0acb8001400a502ec', '56be4db0acb8001400a502ed', '56be4db0acb8001400a502ee',
'56be4db0acb8001400a502ef', '56be4db0acb8001400a502f0', '56be8e613aeaaa14008c90d1',
'56be8e613aeaaa14008c90d2', '56be8e613aeaaa14008c90d3']

when num_proc=2, result -
[0, 1, 2, 3, 0, 1, 2, 3]
['56be4db0acb8001400a502ec', '56be4db0acb8001400a502ed', '56be4db0acb8001400a502ee',
'56be4db0acb8001400a502ef', '56be4db0acb8001400a502f0', '56be8e613aeaaa14008c90d1',
'56be8e613aeaaa14008c90d2', '56be8e613aeaaa14008c90d3']

when num_proc=3, result -
[0, 1, 2, 0, 1, 2, 0, 1]
['56be4db0acb8001400a502ec', '56be4db0acb8001400a502ed', '56be4db0acb8001400a502ee',
'56be4db0acb8001400a502ef', '56be4db0acb8001400a502f0', '56be8e613aeaaa14008c90d1',
'56be8e613aeaaa14008c90d2', '56be8e613aeaaa14008c90d3']

Theoverflow_to_sample_mapping changes with num_proc, but example_id field remains the same . It seems that each process in map has its own counter for overflow_to_sample_mapping. If you are using overflow_to_sample_mapping inside the preprocess_validation_examples function, then there is no issue.


Allow creating a label (pass query_parameters) or assigning one (pass label)

An alternative implementation may be to have one parameter, and check whether it is a dictionary or a Label instance.

Aargh, all the commits ended up on the branch, of course ..


Restore tests and stubs previously moved to dls-bluesky-core

Wrapped Bluesky plans only required for BlueAPI, able to expose through new scratch dir

These are now in dodal


QR code on Field Slip show page

Mostly to demonstrate the rqrcode gem.  We may want to put the QR code on this page, but mostly it's planned to get added to a PDF output for printing slips.

Suggestion: Omit the page title on field_slip#show. It duplicates what's in the displayed field slip.
I don't have answers to your questions, except I don't see an easy way to do the routing you want.
@nimmolo may have answers to the first two.

@mo-nathan. Re routes.
I think this gets what you want, except for the:id constraints, but you can check for that in the controller.
(When I added id: /.*[^\d.-].*/, the tests blow up. Without the constraint, everything passes.)
In routes.rb:
  match "field_slips", to: "field_slips#update", via: [:patch, :put]
  delete("/field_slips", to: "field_slips#destroy")
  get("/qr/:id", to: "field_slips#show", as: :field_slip)
  resources :field_slips, only: [:index, :new, :create, :edit]

This yields the following routes:
% rails routes | egrep "\s/(field_slip|qr)"
    field_slips GET       /field_slips(.:format)           field_slips#index
                POST      /field_slips(.:format)           field_slips#create
 new_field_slip GET       /field_slips/new(.:format)       field_slips#new
edit_field_slip GET       /field_slips/:id/edit(.:format)  field_slips#edit
                PATCH|PUT /field_slips(.:format)           field_slips#update
                DELETE    /field_slips(.:format)           field_slips#destroy
     field_slip GET       /qr/:id(.:format)                field_slips#show

It might be better to keep a field_slip_qr_path helper separate from a field_slip_path. (Or maybe i don't yet understand why you'd want the /qr path as the default).
In any case there's no way to get Rails to generate that special path automatically with/alongside the other resources.
What I noticed in my most recent routes PR is that the named routes are used more than once, and differentiated by method, so:

field_slip_path — put is for :update and get is for :show
field_slips_path — post is for :create and get is for :index.

If you do resources :field_slips, except: :show and try to call something else field_slip_path, it will skip the :update path too, which you probably don't want.

Suggestion: Omit the page title on field_slip#show. It duplicates what's in the displayed field slip. I don't have answers to your questions, except I don't see an easy way to do the routing you want. @nimmolo may have answers to the first two.

Yeah, that's already in #2067 which I just merged.

It might be better to keep a field_slip_qr_path helper separate from a field_slip_path. (Or maybe i don't yet understand why you'd want the /qr path as the default).
In any case there's no way to get Rails to generate that special path automatically with/alongside the other resources.
What I noticed in my most recent routes PR is that the named routes are used more than once, and differentiated by method, so:

field_slip_path — put is for :update and get is for :show
field_slips_path — post is for :create and get is for :index.

If you do resources :field_slips, except: :show and try to call something else field_slip_path, it will mess up the :update path too, which you probably don't want.

The motivation for /qr/ rather than /field_slip/ is to make the QR code simpler.  Realistically it doesn't really matter so I don't think it's worth the added complexity.  Thanks for the ideas!

Suggestion: Omit the page title on field_slip#show. It duplicates what's in the displayed field slip. I don't have answers to your questions, except I don't see an easy way to do the routing you want. @nimmolo may have answers to the first two.

I don't think I understand what you're getting at on field_slip#show unless it's something I pushed merged in a bit later yesterday and just merged into main from #2067.  As far as I can tell the only place the field slip number is given now is in the title.

@mo-nathan: Re field slip duplication of field slip number. Here's what I see (in this branch, in main, and on the webserver).
Should I be seeing something different?

That is what is currently in production.  Did you do a pull on the branch and main?  On this branch and main I currently get:

On main I currently get:

I must have been looking at the wrong branch. As you said, the FS # only appears once in #show.


Displacement of the tooltip date relatively to x-axis date in the line charts

I have a dataset. When I try to render it using the Line Chart, all is ok with  dates on the x-axis. However, when I search for the date near the Tooltip name of the Tooltip, there is a date displacement (the 27 of August becomes to the 26 of August).
Expected Behavior

If I have a point on the Line Chart with a date 27 of August, on the Tooltip I should see the same date 27 of August.
Current Behavior

In tooltip I can see 26 of August while the correct date is 27 of August for this point. For tooltip there is a delay on the one sample of date.
Possible Solution

Steps to Reproduce

Create Line chart.
See the displacement in the tooltip

Screenshots (if appropriate)
Context

Maybe it can be fixed using some special parameter or by the correction of the data format.
Your Environment

Britecharts version used:
Browser Name and version:
Operating System and version:
Link to your project or codepen:

Hi @Lennen, thanks for opening this issue!
Could you set up a codepen to reproduce this issue? You could take this one as a jump start point: https://codepen.io/Britecharts/pen/yravbr
Thanks!


Fix .form-select appearance.

appearance: none; did not work on Safari 10.1.1 and Chrome 60. It works with -webkit-appearance: none;

Thanks.


Unable to install openjdk (Hash problem)

C:\Users\takeda>scoop install openjdk
installing openjdk (1.7.0-u80)
downloading https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u80-unofficial-windows-amd64-image.zip...done
checking hash...hash check failed for https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u80-unofficial-windows-amd64-image.zip. expected: F6DF07CEC3B1BD53B857E5F4E20309AB5E8AEAA29CA9152AB0D26B77B339780A, actual: 1b835601f4ae689b9271040713b01d6bdd186c6a57bb4a7c47e1f7244d5ac928!

Edited in https://github.com/lukesampson/scoop/pull/543

This could be closed. It's solved.

Closing. Thanks @Cyianor


Console does not add up shows below runfile

a = 10
b = 10
a+b
runfile('C:/Users/Satish Iyer/.spyder-py3/temp.py', wdir='C:/Users/Satish Iyer/.spyder-py3')

Hello @satishiyer . This is how Python works, scripts that you run do not display any results unless you tell them to. If you replace the line a+b with print(a+b), you should see the result.


wlgen/rta.py: rt-app log files are being pulled from the wrong directory

specifying a JSON config with 'logdir' : '/some/path', i would expect the log files to be retrieved from /some/path. instead, the run_dir is used:
RTA::__postrun():
logfile = self.target.path.join(self.run_dir, '*{}*.log'.format(task))
self.target.pull(logfile, destdir)

this seems to suggest that the logdir parameter effectively only works if it is set to the run_dir.

It's not fixing your issue straight away, but FYI the whole theme of "some artifact wasn't generated where I expected it to" (sometimes in another directory than the one specified, sometimes no directory is specified so it's just whatever the current path is) was addressed in LISA/next.
So now you'd specify some directory (or get one assigned to you in the results/ directory) and everything would land there. For instance, the log.


Firestore: Storing Date as timestamp

The firestore UI allows me to create timestamp fields.
Saving objects with Date turns the date into string fields. Is it possible to save as timestamp fields? I assume these get optimized indices, and correct ordering.

You won't get a consistent server side timestamp with a JS date. Instead, send the server timestamp from the SDK.
const timestamp = firebase.firestore.FieldValue.serverTimestamp()
ref.update({ updatedAt: timestamp })

@codediodeio I'm not talking about server side timestamps, but datetimes in general.

JS Date objects do get saved as timestamps in Firestore. Are you sure you're not converting it to a string on your end?
ref.update({ updatedAt: new Date() })
// results in timestamp in Firestore

Wouldn't Date.now() provide easier querying?
https://stackoverflow.com/questions/47000854/firestore-query-by-date-range

I know I'm late to this but storing as UNIX timestamp makes for easy querying and ordering. Also, every language has support for UNIX timestamps.

Yeah I've just been using new Date() per docs and works fine.

Are any of you is having problems reading the timestamp back from Firebase and displaying on angular? Whenever a javascript date is recorded into Firebase, once date is read back it comes as an incompatible object. Something like "Timestamp(seconds=1486443600, nanoseconds=0)" . This object is not compatible with Angular Date Pipes. Anybody knows how to deal with this?

@egalot just convert it to date  .toDate()  before your pipe.

@diginikkari Thank you!

@egalot  I added toDate() and now shows the date in the correct format. But I get the following error in console: TypeError: Can not read property 'toDate' of undefined

Is there a way to convert Date to Timestamp object ? As @kamran-mushtaq mentioned we get the following error in all the MaterialDatePickers which use ngModel for binding.

Okay, the only work around I was able to come up with is using a rxjs map operator and converting Timstamp to Date objects in my firestore observables. Thanks to @codediodeio for his amazing tutorials as always.

I had a problem with Firebase Storage timestamps vs Firestore timestamps. You can use this code to convert between them:
export function tryConvertFSTimestamp(obj: any) {
    if (!obj || !obj._seconds)
        return obj;
    const millisec = obj._seconds * 1e3 + (obj._nanoseconds || 0) / 1e6;
    return new Date(millisec).toISOString();
}

Here's a custom pipe to make your template code a little cleaner (includes Locale specific time)....
`import { formatDate } from '@angular/common';
import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';
import { firestore } from 'firebase/app';
import Timestamp = firestore.Timestamp;
@Pipe({
name: 'firestoreDate'
})
export class FirestoreDatePipe implements PipeTransform {
constructor(@Inject(LOCALE_ID) private locale: string) {
}
transform(timestamp: Timestamp, format?: string): string {
return formatDate(timestamp.toDate(), format || 'medium', this.locale);
}
}`

This works for me: https://stackoverflow.com/a/58673212/1077309

I had a problem with Firebase Storage timestamps vs Firestore timestamps. You can use this code to convert between them:
export function tryConvertFSTimestamp(obj: any) {
    if (!obj || !obj._seconds)
        return obj;
    const millisec = obj._seconds * 1e3 + (obj._nanoseconds || 0) / 1e6;
    return new Date(millisec).toISOString();
}

Use Timestamp.toDate instead?

I'm saving properties of type Date and just after receiving the javascript object from the Angularfire collection i do this:
  fetchCompletedOrCancelledExercises(): Observable<Exercise[]> {
    return (this.db.collection('finishedExercises') as AngularFirestoreCollection<Exercise>).valueChanges()
      .pipe(
        map( (exercises: Exercise[]) => {
          return exercises.map(exercise => {
            console.log(exercise);
            return {
              ...exercise,
              **endDate: ((exercise.endDate as unknown) as firebase.firestore.Timestamp).toDate(),**
            };
          })
        })
      );

every think after works fine in the rest of the aplication, and I don't have to call toDate() in the HTML template nor checking if the date property is a Timestamp or a Date object in TypeScript code.

@egalot just convert it to date .toDate() before your pipe.

This only works when the returned data is not serialized as JSON, e.g. return doc.data(). Is there a way where we can get the doc whose timestamp fields can be converted to JS Date before calling doc.data()? That would help the data binding and piping with AngularJS.


Outdated  postcss version, no success trying to make it work

The version used in package.json is fixed to 0.3.4, while PostCSS is continuously updated (version 4.x.x now). When I tried to use postcss-brunch with a minimal brunch project (a single css file), it didn't seem to do anything (no error or anything, as if there were no plugin). This is my brunch-config.coffee :
module.exports.config =
    files:
        stylesheets: joinTo: "main.css"
        javascripts: joinTo: "main.js"

    plugins:
        postcss:
            config: (postcss) ->
                postcss().
                use(require("autoprefixer")(["last 8 versions", "ie 7", "ie 8"]).postcss)

I tried using autoprefixer-brunch (without PostCSS) and it worked.
I just started using brunch so I don't know much about how plugins work (at least for now) but maybe in the meantime some change in PostCSS broke your code ? That or I'm doing something wrong from the begining...

Actually, I figured it out : you have both a compile function and a optimize function. By eliminating one of them it works.

Closing this since everything was discussed in #3.


Hi

when does this repo. available ? Thanks !

Hi,
Sorry for the delay. The code is now available.


Preorder allocations

I want to merge this change because it adds logic for allocating preorder variants. It's used during completing checkout and creating order from draft order.

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

Task linked: SALEOR-2998 Preorders

Task linked: SALEOR-3798 3. Change how to complete checkout with preorders


Let the Gifffer function return gifs containers

This feature enhance the Gifffer function to return an array of the gifs containers for further use:
For Example to simulate clicks:
window.onload = function() {
  var gifs = Gifffer();

  setTimeout( function() {
    gifs[0].click(); //will play the first gif
  }, 1000 );
}

Thanks for contribution.


menu dropdown changes

=> in menu the links are very small, it is difficult to see, it has to change

I would like to work on this issue. Could you please assign me this task

I cant assign @manastiwari99, project admin has the permission to assign


Fix potential deadlock when a task is finalized by and a dependency of a finalizer

Fixes #?
Context
Fixes regression in #21163 and adds some test coverage.
Contributor Checklist

[ ] Review Contribution Guidelines
[ ] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[ ] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[ ] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[ ] Ensure that tests pass sanity check: ./gradlew sanityCheck
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

@bot-gradle test and merge

OK, I've already triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


Update readme with a section on adoption, and a section on the history of the project

Mentions to Firefox, Arrow, Krita.

Documentation only, no need to wait for the CI.