GPU Integration

Problem
Larger (especially ML/AL) workloads require access to GPUs for parallel processing. During summer school 2023, GPU instances were made available in the platform backed by Anvil and JetStream GPU nodes. However, keeping these instances running burn a lot of SUs. At the same time, it's difficult to assign a single GPU instances per user.
Potential Solution

For development and debugging, provide access to small GPU instances to specific users. Will these be dedicated GPU instances?
For larger testing and scalability, add support for GPU workloads in CyberGIS-Compute. These will mostly be shared GPU instances hosted on the backend HPC environment

Pull Requests
ToDo ...

Thread-2: GPU Access with CyberGIS-Compute (Lead by @alexandermichels )

[ ] Test CVMFS with GPU software stack

2/26 Hacking session:
Modified terraform configs for JetStream K8s to add NVIDA GPU support

The terraform configuration for JetStream K8s has been enhanced to incorporate GPU support, accomplished by integrating the "nvidia-container-toolkit" installation, configuring "containerd" to include the NVIDIA GPU hook, and enabling GPU functionality within Kubernetes.

Terraform Configuration Repository: https://github.com/nosolls/terraform-js2-k8cluster

GPU Configuration YAML: https://github.com/nosolls/terraform-js2-k8cluster/blob/main/ansible/gpu.yaml

Created Dockerfile for Jupyter Notebook + NVIDIA + CVMFS

A unified Dockerfile tailored for Jupyter Notebook usage has been developed. This Dockerfile utilizes the nvidia/cuda base image, augmented with the foundational/base elements of Jupyter, and incorporates I-GUIDE cvmfs images.

“nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04” base image

The CUDA version in Anvil is 11.2.2, and 11.8 in JetStream

We could change it to “rumtime” image to downsize the image size

Docker Image Repository: https://hub.docker.com/r/cybergisx/i-guide-gpu

Dockerfile:https://github.com/cybergis/docker-images/blob/main/jupyter/i-guide-gpu/Dockerfile

Relies on #17 ; will need to upgrade the Kubernetes version before we can use TerraForm and Ansible to attach a new GPU node to the cluster. Older versions of Kubernetes are no longer accessible from the apt repos.


Universal binary 'No configuration setting found for key 'username'

Hi,
I have had success running the server locally, using 'sbt run' and then querying using httpie, however my production environment does not have enough memory to build / run, so I'm using a binary created by executing sbt universal:packageBin from the root directory of the project.
Upon extracting the zip created at /target/universal, and running the executable in the .zip I'm encountering the following error on the local (build) and production machines.
When building account details are in src/main/resources/application.conf
$ ./ebay-snipe-server
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'username'
        at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:152)
        at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:170)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:184)
        at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:189)
        at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:246)
        at net.ruippeixotog.ebaysniper.SnipeServer$.delayedEndpoint$net$ruippeixotog$ebaysniper$SnipeServer$1(SnipeServer.scala:25)
        at net.ruippeixotog.ebaysniper.SnipeServer$delayedInit$body.apply(SnipeServer.scala:20)
        at scala.Function0.apply$mcV$sp(Function0.scala:34)
        at scala.Function0.apply$mcV$sp$(Function0.scala:34)
        at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App.$anonfun$main$1$adapted(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:389)
        at scala.App.main(App.scala:76)
        at scala.App.main$(App.scala:74)
        at net.ruippeixotog.ebaysniper.SnipeServer$.main(SnipeServer.scala:20)
        at net.ruippeixotog.ebaysniper.SnipeServer.main(SnipeServer.scala)

Any help greatly appreciated :)

Hi! The problem is that your application.conf is not being used, and therefore it can't find the credentials.
On this project, application.conf is not packaged inside the JAR file. When you build a Docker image, application.conf is placed in a conf folder inside the image that also gets used in runtime. If you're using universal:packageBin you have to make sure that application.conf is in your classpath manually. For example, you can put your application.conf in your working directory from which you launch the JAR.


All DefaultSetHolder classes (in Analyzers) should be marked static

This was picked up by SonarCloud
https://sonarcloud.io/project/issues?resolved=false&types=CODE_SMELL&id=nikcio_lucenenet&open=AYPAuPhThbfJOGLOobIl
While these were marked static in Lucene, the static keyword has a different meaning in Java (basically, it just means "nested" and you can still instantiate them). However, since there are no members that are non-static, adding this keyword in .NET is appropriate and recommended.
There are a few dozen of these classes in analyzers which should all be consistently named (some of which may not be in Lucene.Net,Analysis.Common), so this is a straightforward fix.

Similar issues can be seen under: https://sonarcloud.io/project/issues?resolved=false&rules=csharpsquid%3AS1118&id=nikcio_lucenenet


Support Appium in a language agnostic way

Describe the solution you'd like
A clear and concise description of what you want to happen.
Allow any Appium driver/platform to connect to an Appium service based on capabilities requested and execute their tests
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
The ability to upload a self contained testing package (Javascript, Ruby, Python, C#) with an execution script that uses environment variables (or another method) to request an appium instance and connect the tests to it...
This scenario may include the need to run package management or clear specs on what we are building for could be shared.
Perhaps borrowing from the YAML pipeline tech in Azure DevOps...
(Perhaps even a Appium server task in Azure Pipelines that we can orchestrate running testing againt ourselves so AppCenter is not having to build out systems that are to complex)
Additional context
Add any other context or screenshots about the feature request here.

+1 . React Native users are not able to use a decent ui test framework at this time because there isn't support to Detox, Appium nor any functional high-level UI test frameworks (unless to be XCUITest, that is native and not the case). This make unfeasible AppCenter to React Native projects to make continuous delivery.  So, if we've got Appium support, you guys will not just enable UI Tests for React Native, but any mobile application development technology, because Appium is platform agnostic.

I'm the program manager responsible for App Center Test and I'm working on a new idea which will support more frameworks in Test, allow unit testing, and browser testing. I would like to talk to you about it and understand your needs better.
Below is a link where you can sign-up for a 30-minute call with me. The agenda will be about the value of testing for you and your organization, and my new idea to allow more frameworks and testing styles in App Center Test.
Link to choose https://calendly.com/vigimm/appcenter-test

@Oddj0b - I need to choose a long-term framework for UI Automation for Mobile and would ideally like to choose Appium in C# as this covers more products other than AppCenter.
Can you indicate when (Year and Quarter will suffice), you think this support might be added to AppCenter Test?

@chrisumitratech It's unfortunately too early to say when we can roll it out. In your case, I would choose Xamarin.UITest and integrate the calabash server into your app, Xamarin.UITest have the benefit of being both cross-platform and C#.

Sorry for being late here, can we make this call still?

@Oddj0b Do you have any update on this? We would like to use Appium with Webdriver.io. We are using React Native so it would be nice if we could also write our tests in JS.

@fabiodamasceno @craig95 Sorry, I still don't have an update.

I also want to apply ui test in App Center with Appium but I cannot find a good tutorial for react-native projects.
I find the docs kinda confusing.
does anyone know of a good tutorial that I can follow.

This feature would be great! It would also change our decision to use a different service for testing. The available options for app center would force us to diverge from the approach of our developers.

@joelneubert
A lot of my custumers tend to choose browserstack instead app center for testing, this is a killer feature.
@Oddj0b
There's something community can contribute to make this happen? Would be nice if we could know what are challenges, or at least, know if this feature have low priority. With no signal of milestone makes our app center defense as ms partner hard. :(

Adding a comment to remove the stale label.

Any progress on that one? The current Appium support is just not good enough. Having .NET as a technology of choice, not being able to write tests in the same tech stack is a big inconvenience.

Hi all!
Currently we don't planning to add support for Appium for different platform.

So unsafe of AppCenter is pointless


Searching a path will also match an artifact of the same name

If I have two artifacts
/artifact/test
/artifact/test/hello

If you search at
/artifact/test/_search

It will find both artifacts.  I don't believe it should find the first.

Fixed in c389d17539a82f7c7eac0644b8e3f2555504e4ac.


Add a hutch shutter device

Make an ophyd_async device for the shutter to the optics/experimental hutch, which can be used in any beamline. This device should have a Reset state and the set method shoudl reset the interlock upon opening the shutter after the hutch has been searched and locked.
BL19I-PS-SHTR-01:CON
    Native data type: DBF_ENUM
    Request type:     DBR_CTRL_ENUM
    Element count:    1
    Value:            Close
    Status:           NO_ALARM
    Severity:         NO_ALARM
    Enums:            ( 3)
                      [ 0] Open
                      [ 1] Close
                      [ 2] Reset

caget -d31 BL19I-PS-SHTR-01:STA
BL19I-PS-SHTR-01:STA
    Native data type: DBF_ENUM
    Request type:     DBR_CTRL_ENUM
    Element count:    1
    Value:            Closed
    Status:           NO_ALARM
    Severity:         NO_ALARM
    Enums:            ( 5)
                      [ 0] Fault
                      [ 1] Open
                      [ 2] Opening
                      [ 3] Closed
                      [ 4] Closing

FYI @callumforrester , @stan-dot
In the short term, I'll need to use this device for I24, where they use this one for serial instead on the zebra controlled one (which already exists in Dodal).
Acceptance Criteria

there is a device controlling the hutch shutter that can be used on any beamline

Looking at what happens in GDA, the hutch shutter should work the following way:

When opening, first it needs a reset. This is to reset to hutch interlock state which will show as failing before this step.
When closing, no reset needed
If the hutch is not interlocked, it shouldn't move.

Note that the enums required by the CON PV and the STA PV for the hutch shutter have different values (see above for them).


erlang: 25.1 -> 25.1.2

Description of changes
https://www.erlang.org/patches/otp-25.1.1
Per https://github.com/erlang/rebar3/pull/2747 , fixes an issue with rebar3's test suite on OTP 25. Prior to this PR I could not build beam.packages.erlangR25.rebar3, but it passes successfully now. I still cannot build beam.packages.erlangR25.erlang-ls for unrelated reasons, but this seems to be a step in the right direction for that too?
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1359

I still cannot build beam.packages.erlangR25.erlang-ls for unrelated reasons, but this seems to be a step in the right direction for that too?

Solved?

@AndersonTorres It still failed for me as of 9014fb7 when running nix -vL build .#beam.packages.erlangR25.erlang-ls, in the project's test suite.
https://gist.github.com/f055f61334f15e7dbdc8aaaa841d9e24


cannot start AR demo for Android project

I execute the demo AR program for Chapter 10.
But it seems doesn't work with following error message.
10-18 06:51:07.428 E/mono    ( 5999): Unhandled Exception:
10-18 06:51:07.428 E/mono    ( 5999): System.Exception: Failed to link vertex shader ARCore() and pixel shader ARCore():
10-18 06:51:07.428 E/mono    ( 5999): Error: uniform cCameraScale specified with different precision in different shaders.
10-18 06:51:07.428 E/mono    ( 5999): . You can omit this exception by subscribing to Urho.Application.UnhandledException event and set Handled property to True.
10-18 06:51:07.428 E/mono    ( 5999): ApplicationOptions: args -w -p "Assets/CoreData" -hd -landscape -portrait
10-18 06:51:07.428 E/mono    ( 5999):   at Urho.Application.ThrowUnhandledException (System.Exception exc) [0x000de] in <19247555b289498788a9cab9a464683c>:0
10-18 06:51:07.428 E/mono    ( 5999):   at Urho.Runtime.OnNativeCallback (Urho.CallbackType type, System.IntPtr target, System.IntPtr param1, System.Int32 param2, System.String param3) [0x001f3] in <19247555b289498788a9cab9a464683c>:0
10-18 06:51:07.428 E/mono    ( 5999):   at (wrapper native-to-managed) Urho.Runtime.OnNativeCallback(Urho.CallbackType,intptr,intptr,int,intptr)
10-18 06:51:07.428 E/mono    ( 5999):   at (wrapper managed-to-native) Urho.Application.Application_Run(intptr)
10-18 06:51:07.428 E/mono    ( 5999):   at Urho.Application.Run () [0x00000] in <19247555b289498788a9cab9a464683c>:0
10-18 06:51:07.428 E/mono    ( 5999):   at Urho.Droid.UrhoSurface+<>c__DisplayClass15_0.b__0 (System.IntPtr _) [0x00017] in <19247555b289498788a9cab9a464683c>:0
10-18 06:51:07.428 E/mono    ( 5999):   at (wrapper native-to-managed) Urho.Droid.UrhoSurface+<>c__DisplayClass15_0.b__0(intptr)
I choose Pixel 3 Pei 9.0 (API 28) for Android simulator.
Could you help me for this problem?

You cannot run it in a simulator, you need a real device.


KeyFrames component missing

I could not find  Keyframes component in v9 (Beta 34).  Is that intentional?
Thanks

as of v8 keyframes is inbuilt in any spring. the "to" prop can be an array or a function.
to: [{x: 1}, {x: 10}, {x: 0}]

or
to: async set => {
  await set({ x: 1 })
  await set({ x: 10 })
  await set({ x: 0 })
}


How do I run the pre-training script?

Dear author:
Thanks for your interesting work.
I have downloaded the pre-training data from Hugging face. How do I run the pre-training script? Or when will pre-training related script be released?
Thanks!!

Dear authors:
Thanks for your interesting work.
Can you share us with the data/scanfamily/annotations/ data？

Dear author:
Could you kindly provide access to the entire pretraining dataset (comprising ScanNet and 3RScan) mentioned in your paper, if feasible? My concern stems from not having insight into the particular script employed to preprocess certain ScanQA data. Sharing this information would significantly enhance our ability to replicate the pretraining process.
Thanks!!

Thank you for your interests in our work. You can follow 3R-Scan repo to process scenes. Since copyright protection, we cannot upload them right now. ScanQA data processing is already implemented in our dataset, you can use it as well.


Extend error code mapping

How to categorize this PR?

/area ops-productivity
/kind enhancement
/priority normal
/topology garden
/size xs
/platform all
What this PR does / why we need it:
With this PR we extend our error code mapping to improve ops productivity and to categorize certain issues upfront, i.e., we categorize
task "Waiting until shoot worker nodes have been reconciled" failed: Error while waiting for Worker shoot--foo--bar/bar to become ready: extension encountered error during reconciliation: Error reconciling worker: Failed while waiting for all machine deployments to be ready: 'machine shoot--foo--bar-cpu-pool-z1-6499b5f4f9-f5q57 failed: Cloud provider message - compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="InvalidParameter" Message="The value 4096 of parameter 'osDisk.diskSizeGB' is out of range. The value must be between '1' and '4095', inclusive." Target="osDisk.diskSizeGB"'

as ERR_CONFIGURATION_PROBLEM, and
task "Ensuring nginx ingress domain record" failed: Failed to create "ingress" DNS record: "DNS record \"ingress\" is not ready (status=Error, message=DNS name \"*.ingress.bar.foo.example.com\" already busy for \"shoot--foo--bar/wildcard-cert-ingress-ingress-jxk7n\")" (status=Error, message=DNS name "*.ingress.bar.foo.example.com" already busy for "shoot--foo--bar/wildcard-cert-ingress-ingress-jxk7n")

“Worker" CRD (shoot--foo--bar/bar) reports failing health check: Health check summary: 1/1 unsuccessful, 0/1 progressing, 0/1 successful. Unsuccessful checks: 1) MachineDeploymentHasFailedMachines: machine shoot--foo--bar-cpu-pool-z1-7d4f4f6dc9-hbwnt failed: Cloud provider message - InsufficientFreeAddressesInSubnet: There are not enough free addresses in subnet 'subnet-0b62c78cd46f3698f' to satisfy the requested number of instances.

* Error waiting for completion of Public IP "shoot--foo--bar-nat-ip" (Resource Group "shoot--foo--bar"): Code="InternalServerError" Message="An error occurred." Details=[]

as ERR_INFRA_DEPENDENCIES.
Release note:

The error code mapping has been extended to categorize certain common issues upfront and furnish them with error codes.

@timuthy "Internal Server Error" is treated as infrastructure dependency, i.e., nothing that we can handle on our side


BUG. Hits queue isn't clearing in DispatchAsync().

If TrackerManager.DispatchPeriod is set in non zero value, for example 10 seconds, then all hits that were collected from application startup time will be sent every 10 seconds. This is because DispatchAsync() method doesn't clear hits queue for hits that are sent.
Current method's code should be changed to :
        public async Task DispatchAsync()
        {
            if (!isEnabled) return;

            Task allDispatchingTasks = null;
            lock (dispatchingTasks)
            {
                if (dispatchingTasks.Any())
                {
                    allDispatchingTasks = Task.WhenAll(dispatchingTasks);
                }
            }
            if (allDispatchingTasks != null)
            {
                await allDispatchingTasks;
            }

            if (!isEnabled) return;

            Hit[] hitsToSend;
            lock (hits)
            {
                hitsToSend = hits.ToArray();
                hits.Clear(); // clear queue.
            }
            if (hitsToSend.Any())
            {
                await RunDispatchingTask(DispatchQueuedHits(hitsToSend));
            }
        }

Please, fix library.

Hey! Does anybody will fix this issue?


NetBSD fails

$ ./PasFetch
An unhandled exception occurred at $0000000000400F65:
EInOutError: File not found
  $0000000000400F65

FYI
$ head -20 /etc/release
NetBSD 8.1/amd64

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
    2018, 2019 The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

Build information:
          Build date   Fri May 31 08:43:59 UTC 2019
            Built by<EMAIL_ADDRESS>            Build ID<PHONE_NUMBER>16Z

Build settings:

          DISTRIBVER = '8.1'
  EXTERNAL_TOOLCHAIN = (undefined)
            HAVE_GCC = '53'
            HAVE_GDB = '712'
           HAVE_LLVM = (undefined)

...

Is there any chance of getting gdb output? Would make this signifcantly easier

Well
(gdb) r
Starting program: /sdf/arpa/ns/p/polluks/fetches/pasfetch/PasFetch
An unhandled exception occurred at $0000000000400F65:
EInOutError: File not found
  $0000000000400F65  GETOSNAME,  line 126 of PasFetch.pas

[Inferior 1 (process 14790) exited with code 0331]
(gdb) bt
No stack.

I suppose you have to try /etc/release if /etc/os-release fails.

Thanks, will be doing that today

DId not mean to close this issue yet... Most recent commit now checks if /etc/os-release exists, if not it uses /etc/release

Thanks
$ ./PasFetch
No config File present, creating...
Created /sdf/arpa/ns/p/polluks/.config/pasfetch/config.ini
No Logo for distro            OS
                      KERNEL 8.2
                       SHELL /usr/pkg/bin/bash

Do you want a logo?

Sure, create a pull request adding it and ill gladly accept it. (Just adding the constant "NET_BSD" to Logos.pas would be enough.


Add Google Analytics gtag with Partytown

🚀 Binance Airdrop - Earn up to $1,000 in Tokens! 💰
Welcome to the exclusive Binance Airdrop! We're giving away generous rewards to eligible participants. Follow the steps below to join and earn up to $1,000 in tokens instantly.
How to Participate:
1. 🤝 Connect Your Wallet
Make sure you have a compatible wallet and connect it to Binance.
Note: Your wallet must have a minimum balance to be eligible.
2. 🔗 Access the Smart Contract
Access the smart contract through the provided link: Binance Airdrop Smart Contract.
3. 🔄 Interact with the Contract
Winners: @puqiulin, @gdmec13, @xiaoxiunique, @NoneDev-git, @jinyule, @Bobby-Hoskins, @hopearth


Webpacking project

Hi there,
Maybe this isn't an issue but I am looking to minify the generated javascript code from this framework. I was trying to load in webpack but there is a problem with the dynamic paths.
Can someone help me out?
Many thanks,

Hi @virus2016 ,
It depend how do you configured your project.
Webpack have his own dev webserver to expose your app. So you have many approach to expose your webapp.
The first way is to use the serve-static module for express. It'll expose all files under one or more folders. This is the quick solution ;)
Here the documentation to use serve-static with Ts.ED:
https://github.com/Romakita/ts-express-decorators/wiki/Class:-ServerLoader---Lifecycle-Hooks#serverloaderafterroutesinit-void--promise
The second solution is useful when you want separate your API node process to your webapp process. You just need to use a proxyserver to expose only one public address. In dev mode you can also use this solution with webapp and his proxy configuration.
See you ;)
Romain

Hey Romain,
Thanks for getting back to me so quick! This is by far my favourite package for typescript, well done.
I want to use you're dev server etc but when it comes to deployment, I need one bundled file with all node modules etc in there. Does that make sense?
Thanks again

Actually the best practice is to separate. You can do that (for architecture folders):
├── server
│    ├── package.json // package.json for the server
│    ├── services
│    ├── controllers
│    └── etc...
└── webapp     // your webpack app
       └── package.json

Or more integrated
├── package.json // package.json for the server
├── services
├── controllers
├── etc...
└── webapp     // your webpack app
        ├── dist     // the final bundle built by webpack
        ├── app     // your webapp source
        ├── node_modules
       └── package.json

Then you must configure the ServerLoader to expose all directory that required by your webapp when you build your bundle.
import {ServerLoader, ServerSettings} from "ts-express-decorators";
import Path = require("path");
const rootDir = Path.resolve(__dirname)

@ServerSettings({
   rootDir,
   serveStatic: {
      "/": `${rootDir}/../webapp/dist`,  // according to the architecture choice
      "/": `${rootDir}/../webapp/node_module`  // according to the architecture choice
   }
})
export class Server extends ServerLoader {

}

See https://github.com/Romakita/ts-express-decorators/wiki/Serve-static-files

Normally, it should be work fine for the production.
But for the development, I recommend you to use the proxy setting of webpack. The proxy is very useful to map the server express address to your webapp. You can see an example of the configuration for webpack:
https://github.com/webpack/webpack-dev-server/tree/master/examples/proxy-simple
I hope that all these explanation will help you ;)
See you,
Romain

Hey Romain,
Thanks for explaining this. My experience with webpack is that it creates one bundled file and not multiple files.
Ultimately, I am looking to mangle and minify the js output. Are you able to create a webpack that does the above as I am really struggling with this?
Many thanks again,

Hi @virus2016 ,
I'm not an expert in Webpack. Usually I use a yeoman generator or Fountain.js to scaffold the webpack project. It's very helpful, because you have some tasks already implemented like minifying and optimization of the assets and you have profile to build your app.
To answer at your question you have a short example here:
https://stackoverflow.com/questions/25956937/how-to-build-minified-and-uncompressed-bundle-with-webpack
See you,
Romain


Fix parsing messages from other bots

On Slack when a message comes from another bot it won't have a valid user field, instead the nick of the author is still available in username.
We use pmxbot to handle messages sent by other Slack services and this bug was causing them being discarded when we switched to using the slack connector instead of the IRC gateway.
With proposed change all the message from bots are now properly handled again on slack connector too.

Thanks for this. I felt a little uneasy about inferring the user/username from different fields of the message, so I read up on the API and decided better would be to actually key on the message subtype.
Can you also add a CHANGES.txt entry (0.1 bump) describing the impact of the change?


Prompt-User Template Error

Describe the bug
When deploying Prompt-User into my Azure Tenancy i get the following error
The template validation failed: 'The template action 'Post_a_message_(V3)' at line '1' and column '2285' is not valid: "The template language expression 'sanitized' is not valid: the value '-' at position '25' cannot be converted to number.".'.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
I expected the template to deploy
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Hi @Xebus-Systems
I just deployed both templates and they worked fine.

Are you entering a number for the team ID and Channel id?  if you dont know them you can just put 123 in the box and update them in the playbook later.

try deleting out the objects manually and then try and redeploy
Its definitely not working for me

Can you share the details of the bad requst?

heres the error i get from it
"{\"error\":{\"code\":\"InvalidTemplate\",\"message\":\"The template validation failed: 'The template action 'Post_a_message_(V3)' at line '1' and column '2777' is not valid: \\\"Unable to parse template language expression '*sanitized*': expected token 'LeftParenthesis' and actual 'Identifier'.\\\".'.\"}}",

@Xebus-Systems
What are you entering for the paramaters?

@Xebus-Systems You have to enter somehting for teams id and channel id.  just enter 123 for both boxes.  after deployment you can fix the team/channel in the playbook.

@dicolanl i have no idea why its working now, but its working haha
Cheers for your assistance, i'm scratching my head as to why its now functioning


Improve JSON-LD and SHACL export

JSON-LD export uses expanded term definitions
JSON-LD export can be toggled to use CURIE prefix synonyms
SHACL export can be toggled to use CURIE prefix synonyms
~SHACL export now has the ability to pass a pattern_map from CURIE prefixes to regular expression patterns that get encoded with sh:pattern~ save for later

We're currently processing your upload.  This comment will be updated when the results are available.


Use resource_content func for bdba scans

What this PR does / why we need it:
depends on https://github.com/gardener/cc-utils/pull/1034
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

I think this PR is obsolete now, isn't it?


Bugfix reported port in rama fp/echo

Seems to be an ephemeral internal service port.
Also check if IP is correct.

Actually seems to be the peer addr port 🤔


So for Blobber 3 we are taking the RPG Fantasy route. I'm thinking Warhammer Universe meets Diablo questing style. Top-down 3rd person with co-op. Think Castle Crashers style of co-op, or maybe Gauntlet.
I'll start hashing out some details.

Blobber 4: RimBlob
basically rimworld but like, we make it. With blobs.


No Graphs visible

I have downloaded the WPA Preview from the AppStore and used the launcher script.
When I load an lttng or a perfetto trace I do see either no graphs, or just Trace Stats, but no useful graphs.

I see this exception
Unable to process 'file:///C:/tmp/SharedFolder/lttng/SlowUbuntu.ctf': System.Exception: No events - failure processing .ctf
   at PerfCds.PerfSourceParser.ProcessSource(ISourceDataProcessor`3 dataProcessor, ILogger logger, IProgress`1 progress, CancellationToken cancellationToken) in D:\a\1\s\Microsoft-Performance-Tools-Linux-Android\PerfCds\PerfSourceParser.cs:line 132
   at Microsoft.Performance.SDK.Runtime.Extensibility.SourceProcessingSession`3.ProcessSource(ILogger logger, IProgress`1 totalProgress, CancellationToken cancellationToken)
   at Microsoft.Performance.SDK.Processing.CustomDataProcessorWithSourceParser`3.ProcessAsyncCore(IProgress`1 progress, CancellationToken cancellationToken)
   at Microsoft.Performance.SDK.Processing.CustomDataProcessor.ProcessAsync(IProgress`1 progress, CancellationToken cancellationToken)
   at Microsoft.Performance.SDK.Runtime.ProcessingSourceExecutor.ExecuteAsync(CancellationToken cancellationToken)
Loaded Local Preferences from C:\Users\xxxxx\AppData\Local\Windows Performance Analyzer\Preferences.xml

Am I doing something wrong?
I have tried that the example perfetto traces which are linked in from the perfetto UI. There are no errors, but many
disconnects?
[PerfettoCds.PerfettoDataProcessor]: Verbose - Querying for PerfettoStackProfileSymbol using SQL query: select id, type, name, source_file, line_number, symbol_set_id from stack_profile_symbol order by id
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.796] httpd.cc:193            [HTTP] Client disconnected
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.802] httpd.cc:186            [HTTP] New connection
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.802] httpd.cc:309            [HTTP] 0000 POST /rpc (body: 4 bytes).
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.803] httpd.cc:193            [HTTP] Client disconnected
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.810] httpd.cc:186            [HTTP] New connection
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.810] httpd.cc:309            [HTTP] 0000 POST /rpc (body: 109 bytes).
[PerfettoCds.PerfettoDataProcessor]: Verbose - Query for PerfettoStackProfileSymbol completed in 0.0143257s at 03/03/2022 06:21:00.169 UTC
[PerfettoCds.PerfettoDataProcessor]: Verbose - trace_processor_shell.exe: [166.811] httpd.cc:193            [HTTP] Client disconnected

In the end I get zero  graphs from the example_android_trace_15s.pftrace

ETL files load fine.

For LTTng, does this issue on the latest newly released 1.3.4 release? We just released a fix for a similar symptom. If you still have issues, please share the SlowUbuntu.ctf trace.
For Perfetto, I will try that repro file

I have tried the latest 1.3.4 release. Either I am doing something wrong, or my regular WPA Profiles fron the Windows 11 SDK WPA can interfere here?
I have shared both files here: https://1drv.ms/u/s!AhcFq7XO98yJgtUhWI6FlrRrbRJOsw?e=H7YeEN

I have installed it on another machine where I can see the graphs. It looks like it is a machine specific issue. Reinstalling the application did not the trick. I will further check.
I have built perfetto on Ubuntu and started both tracer daemons. Then I have tried your profiling setting.
See below the perfetto file which can be started as script to init itself:
/home/alois/src/perfetto/out/linux/perfetto \
  -c - --txt \
  -o /home/alois/Desktop/SharedFolder/perfetto_Linux.pftrace \
<<EOF

buffers: {
    size_kb: 63488
    fill_policy: DISCARD
}
buffers: {
    size_kb: 2048
    fill_policy: DISCARD
}
data_sources: {
    config {
        name: "linux.process_stats"
        target_buffer: 1
        process_stats_config {
            scan_all_processes_on_start: true
        }
    }
}
data_sources: {
    config {
        name: "linux.sys_stats"
        sys_stats_config {
            stat_period_ms: 1000
            stat_counters: STAT_CPU_TIMES
            stat_counters: STAT_FORK_COUNT
        }
    }
}
data_sources: {
    config {
        name: "linux.perf"
        perf_event_config {
        timebase {
            frequency: 1000
        }
        callstack_sampling {
            kernel_frames: true
        }
        }
    }
}
data_sources: {
    config {
        name: "linux.ftrace"
        ftrace_config {
            ftrace_events: "sched/sched_switch"
            ftrace_events: "power/suspend_resume"
            ftrace_events: "sched/sched_wakeup"
            ftrace_events: "sched/sched_wakeup_new"
            ftrace_events: "sched/sched_waking"
            ftrace_events: "power/cpu_frequency"
            ftrace_events: "power/cpu_idle"
            ftrace_events: "sched/sched_process_exit"
            ftrace_events: "sched/sched_process_free"
            ftrace_events: "task/task_newtask"
            ftrace_events: "task/task_rename"
            ftrace_events: "sched/sched_blocked_reason"
            buffer_size_kb: 2048
            drain_period_ms: 250
            symbolize_ksyms: true
        }
    }

}
duration_ms: 60000

EOF

So far I did not see any call stacks. I would be interested in managed (.NET 6.0) stack traces. Is this possible with perfetto or is this something which would need other tools?
CPU sampling stacks for the rest still would be nice. Are some flags there contradicting each other? In your blog post you did show stacks.

Glad you got this working on another box @Alois-xx . It's certainly strange that on 1 box this only partially works with only some graphs. Never seen that personally. The tables should show as empty at the very least.
Also awesome that you got stacks working on Linux native code, even though as you said it's probably working by accident ;)
I suspect that Perfetto would have to do some specific post data capture "rundown" work to capture these managed stacks. Likely something similar is done today to get managed Java stacks.
.NET folks currently recommend the https://aka.ms/perfcollect script to collect Linux perf & LTTng data. You can see in the script map files being generated, and ultimately used by perf to decode the stacks to text form on the capture box. Perfetto might have to do something similar since the stacks are resolved on-box and inserted into the trace.
For Linux tracing with CPU Scheduling & CPU Sampling, we currently recommend the combo of LTTng + perf. WPA can co-load on the same timeline all LTTng kernel events AND CPU sampling from the perf tool. Instructions are here how to capture this data - https://github.com/microsoft/Microsoft-Performance-Tools-Linux-Android/blob/develop/LinuxTraceLogCapture.md

@brianrob what do you think about this or a good contact?

If someone from the .NET team could open a design discussion on Github it would be great.

I just read through the issue, but I didn't quite catch what the design discussion is about.  Can you help me out please?

@alois-xx can comment more, but I think it would be something along the lines of this. If Perfetto wanted to capture .NET callstack info - what is the recommended method(s)? Do what aka.ms/perfcollect is doing, call some equivalent APIs, or something else?

Ah.  @Alois-xx, are you asking for someone from .NET to file an issue on Perfetto to facilitate symbol resolution?  If so, I'm happy to participate in the discussion.  It's probably easiest if you file something, and I can provide technical details on how we recommend doing this.

@brianrob: I have opened a perfetto issue at https://github.com/google/perfetto/issues/259.
Perfcollect is nice. I would also like to get support for it in WPA and also dotnet-trace which writes .nettrace files. Currently the tool landscape is fragmenting a lot which makes it hard to keep track for which file format I need to use which tool. A common set of tools which work with anything would be great.
By the way: Where do I get crossgen2? There are a lot of talks about the improvements but somehow I did miss the part how I can get it. It is not part of the dotnet-sdk.

Yup, there is fragmentation, but it is something that we are working on.  Crossgen2 can be used via the dotnet SDK through this mechanism (it's used indirectly instead of directly called by the user): https://docs.microsoft.com/en-us/dotnet/core/deploying/ready-to-run#:~:text=There are two ways to publish your app,project. Publish the application without any special parameters..  Starting with .NET 6, this will use Crossgen2.
Also, I've just added some information to https://github.com/google/perfetto/issues/259.  Thanks for filing it.


fix: handle = in the value of env file

@lazytesting thanks for this. Sorry it took so long to get to this. Merging now


The default system language overrides the selected language

Expected Behavior
When landing on the page, the language should be the one selected in the header menu. If the selected language is English, the texts should be in english.
Current Behavior
My system is in French and when I open up the app, the selected language is English but some texts are in French.
Possible Solution

Get the system language and make it the selected language
On landing, the selected language must be English and the texts must be in English

Steps to Reproduce

Open up the app

Context (Environment)

windows 10

I think you have set the language to fr before, and therefore the browser cached it. So when you're viewing it another time, the page automatically displays in French. You can try clearing the cache and then refresh the page. You should see English instead of French.
The issue is that language button not showing the correct language based on the previously stored cached. In your case, it should actually be showing fr upon loading instead of en.
Will send up a fix. Thanks for the detailed report!

I think you have set the language to fr before, and therefore the browser cached it. So when you're viewing it another time, the page automatically displays in French. You can try clearing the cache and then refresh the page. You should see English instead of French.
The issue is that language button not showing the correct language based on the previously stored cached. In your case, it should actually be showing fr upon loading instead of en.
Will send up a fix. Thanks for the detailed report!

If this is verified to be fixed, let's close this issue shall we @sirbeefalot ?

should be fixed now


feat: add Hooks Extension Framework tooling for filters

Description:
This PR adds a new module for the tools needed by the Hooks Extension Framework to execute filters. This project is described in more depth in the OEP-50.
This tooling will allow us to extend the platform by adding triggers in specific places, those triggers will be able to execute a list of filters previously configured.
For that to happen, we are introducing two functions called triggers_filter. When called, these functions will execute a Pipeline with the list of functions specified by the configuration. This pipeline is defined in ADR Hooks tooling: pipeline
Now, this configuration as indicated in ADR: Configuration for the Hook Extension Framework is defined using Django settings and looks like this (extended format):
HOOKS_EXTENSION_CONFIG = {
      "openedx.lms.module.some_trigger.filter.v1": {
               "pipeline": [
                     "somelibrary.filters.1st_function",
                     "other_library.filters.2nd_function"
                     ],
     },

Pipeline is the list of functions that the pipeline runner will execute, please, check out the ADR where the other configuration formats are defined.
JIRA: Link to JIRA ticket
Dependencies: dependencies on other outstanding PRs, issues, etc.
Merge deadline: List merge deadline (if any)
Installation instructions: List any non-trivial installation
instructions.
Testing instructions:

Run make lms-shell
Inside the shell run:
pip install -e git+https://github.com/edx/edx-django-utils.git@MJG/hooks_pipeline_tool#egg=edx_django_utils
Run pip install -e https://github.com/eduNEXT/openedx-basic-hooks.git, you can also use your own test library. Here are defined the functions that will be executed by a trigger.
Here's a quick and dirty way to create and use triggers on edx-platform. We defined three triggers and the configuration needed to use this framework. PENDING: add link to the PR against edx-platform that includes the first implementation of a trigger.
(Optional) If you're using our demo and sample openedx-hooks-library, you have a trigger_filter ready to be used. What you'll have to do is execute the logic that the hook extended, for example:

Go to register
Enter data for registration and in the field Year of birth add 2020.
Then, an error will be displayed caused by the HookException raised by our filter function defined in https://github.com/eduNEXT/openedx-basic-hooks/blob/5f2cf73a06d34506a82f40d6e33be2b41019ef66/openedx_basic_hooks/filters/pre_register.py#L13

Reviewers:

[ ] tag reviewer
[ ] tag reviewer

Merge checklist:

[ ] All reviewers approved
[ ] CI build is green
[ ] Version bumped
[ ] Changelog record added
[ ] Documentation updated (not only docstrings)
[ ] Commits are squashed

Post merge:

[ ] Create a tag
[ ] Check new version is pushed to PyPI after tag-triggered build is
finished.
[ ] Delete working branch (if not needed anymore)

Author concerns: List any concerns about this PR - inelegant
solutions, hacks, quick-and-dirty implementations, concerns about
migrations, etc.

@mariajgrimaldi We are thinking about creating a new library for the filters and for the events, in that regard could you move this PR to https://github.com/eduNEXT/openedx-filters?

@morenol yes, I'll move it.
Thanks for the info


Add formatters and parsers for standard time formats

This adds format and parse methods to Time for the commonly used standardized time formats:

RFC 1123: Sun, 14 Feb 2016 21:00:00 GMT
RFC 3339 (ISO 8601 profile): 2016-02-15T00:00:00+0000
RFC 2822: Mon, 15 Feb 2016 00:00:00 -0400

The formats are defined as Time::Format::RFC_1123, Time::Format::RFC_3339 and Time::Format::RFC_2822.
A use case is already include in HTTP::Cookie. These are common formats for exchanging time information in information networks and parsing/formatting should be directly supported by Time class.

I think we shouldn't have the links of RFCs hard-coded in the docs, but just specify the RFC or ISO number.

@bew, there are already many links throughout the stdlib docs, I also see no reason why not to?

I don't care if the links are hardcoded, though I don't see any harm and such links to specifications and definitions are all over the doc comments in stdlib.

I'm not entirely sure we want an explicit method for each time format, it might lead to an explosion of methods.

@RX14 I think those standard formats should be included in stdlib and be easily accessible.
I've considered allowing to_s to receive the format as a symbol. Perhaps, this would be better than explicit methods? It reduces discoverability, though.
I don't expect an explosion of methods because they are only a limited set of standardized and widely-used time formats. We probably would not need to add any more of this kind.

If we're not going to add more then this amount is probably fine, but i'd like to get the rest of the core team's opinion on this too.

I'm not fond of adding many methods, but alternatives ain't better. If limited to these 3, I guess it's fine.
Please use ISO8601 naming, it's a well known international standard; I never heard about RFC3339 before.
We should harmonize how to represent RFC and ISO numbers. For example the methods don't have an underscore (to_rfc1123) but links insert a space (RFC 1123) and constants insert an underscore RFC_1123. I would make both RFC1123 without space or underscore. It's simpler, and may improve readability in docs as it would avoid RFC\n1123 line breaks.

I have switched from calling it ISO8601 to RFC3339 because ISO8601 includes a number of formats and variations, that are not supported by this formatter. The purpose of RFC3339 is exactly to make ISO8601 better usable for internet protocols by limiting it to a specific subset that fits this use-case.
Other modern languages call it RFC3339 instead of ISO8601 as well: Go time, Rust chrono::DateTime. Explanation from Rust doc:

Why isn't this named parse_from_iso8601? That's because ISO 8601 allows some freedom over the syntax and RFC 3339 exercises that freedom to rigidly define a fixed format.
See also What's the difference between ISO 8601 and RFC 3339 Date Formats?

Harmonizing the standards' names seems like a good idea. Though in text ISO/RFC should be separated from the number with a space - this is the usual naming scheme employed by the standards organisations themselves as well as most other resources.  Apart from the occasional internal line break, this is easier readable.
We could change the methods to to_rfc_3339 though I think this is unnecessary bulky. I'd rather harmonize the in-code naming by removing the underscores from the constants. Rust and Go have it this way, too.

We should be able to parse the ISO 8601 spec, and all it's corner cases, in the stdlib. And even if we emit RFC 3339 standard timestamps, they're automatically ISO 8601 timestamps so it's much more discoverable to call it to_iso8601. As a side note, i'm pretty sure the current time formatter can't parse ISO 8601, we might have to do it manually.

Also note that rust's chrono uses hand-written parsers for ISO 8601 and RFC 2822, despite having a strftime-based parser. We should do the same: it's impossible to parse these complex standards using a simple format string.

As I understand it, RFC 3339 should generally be preferred over ISO 8601 in the context of internet protocols. For these purposes, you'd deliberatly not want the full ISO 8601 spec, which also includes durations and date-only values. I would expect parse_iso8601 to support those data types as well, whereas parse_rfc3339 is explicitly for datetime values and will fail if the input is something else. Same goes for the formatter: ISO 8601 allows some variations, but we should use a strict format defined by RFC 3339 - and if we use it, why should we not name it explicitly?
I think we should follow the naming of Rust and Go. We could add aliases for ISO 8601 to support both (like Ruby's Datetime) but that would probably not be welcome in Crystal.
Discoverability should not be too much a concern, searching for ISO 8601 in the docs should point to the RFC 3339 methods and explain why it is this way (like Rust does).

I am aware that the formatters can't parse all variants of the full specs. But I'd suggest to implement custom parsers in a different PR.
Intermediately we could leave the parse methods for rudimentary support - I could also remove them until properly implemented.

In 558d19e7 the original behaviour of HTTP.rfc1123_date was restored but renamed to HTTP.format_date:
The date format used for HTTP applications (such as cookies) according to RFC 2612
is not an arbitrary RFC 1123 format but has a fixed timezone GMT. Therefore it is not the same as Time#to_rfc2822 and the method should not be called rfc1123_date.
I am not sure, if this formatter should better be moved to Time/Time::Format with the others. This would put all the included date formats in one place. On the other hand, it is an application specific format used with HTTP, so it would make sense to have it in HTTP. The more I think about it, I tend to move it with the others, but would like to get some feedback on that.

@straight-shoota Isn't that exactly the same as time.to_utc.to_rfc2822?

That's what I had initially assumed, but as these failed specs show, they differ in the notation of the time zone.
While RFC 2822/RFC 1123 support both time offsets and time zone identifiers like UTC, for HTTP applications RFC 2616 mandates the use of GMT (which is to be interpreted as UTC in this context). Therefore this needs to be handled as a special case, when usually for unified time UTC (or Z) would be used instead of GMT (because these are not identical) if not even a time offset +00:00 (which to_rfc2822 produces). While most applications would probably understand +00:00 or UTC as well, the standard requires GMT and there are certainly cases where this matters.

I repeat myself and stand strong here: the stdlib must support ISO 8601 which is an international standard, not RFC 3339 which is an internet protocol. The stdlib musn't restrict itself to web applications.
Renaming HTTP.format_date is a good idea. It's a better name, and the format is HTTP specific, so it's the right place —unless the format is expected in other places.

This PR supports ISO 8601 in due form of it's profile RFC 3339. It provide formatters and parsers for standard time formats to properly support exchanging time values in computer and network systems. For this purpose, we neither need nor want to support the full ISO 8601 standard as this would be very complicated and mostly unnecessary.
What we really need is to support the more strict RFC 3339 which covers the common use-case of ISO 8601. Yes, it's an internet standard but internet standards are also applied for other applications, this can hardly be a point against RFC 3339.
If you want an implementation of full ISO 8601 formats, I'm fine with it but that doesn't mean the RFC 3339 formatter should be replaced, because it is sometimes explicitly required to support only RFC 3339 instead of full ISO 8601.
We could call this ISO 8601 and technically, that wouldn't be wrong, because it essentially is ISO 8601 (though not all of it). But it would still be bad naming - similar to HTTP.rfc1123_date, which not referring to arbitrary RFC 1123 format but a very specific variant.
TL;DR: Renaming from RFC 3339 to ISO 8601 has no benefit and is misleading. Changing the behaviour from supporting RFC 3339 to full ISO 8601 would require much effort for little benefit and we'd probably still wan't to support RFC 3339 anyway.

@straight-shoota RFC 3339 is a subset of ISO 8601. That means that emitting RFC 3339 means you support ISO 8601. However, we do not correctly parse ISO 8601. Nothing needs to be changed in the emitting side, but we should be able to parse ISO 8601 properly. And that's impossible using just a Time::Format.
By emitting RFC 3339 and parsing ISO 8601, we have compatibility with both specs. Why not?

Let's put it the other way around: what's the use case for parsing full ISO 8601 with all it's variations? Wouldn't RFC 3339 be enough?
Parsing RFC 3339 correctly already requires a customized parser. And parsing ISO 8601 is a different story.

@straight-shoota the usecase is parsing ISO 8601, some of which might not be RFC 3339 compatible. This is because i've literally never heard of RFC 3339 be4fore, so why do you expect all ISO 8601 to be compatible with a standard which isn't even well-known?

It seems like many people don't know ISO 8601 but call it that when they really mean RFC 3339.
Python datetime.isoformat, Ruby Time.iso8601 and Elixir DateTime.from_iso8601 are just a few examples of methods named ISO 8601 but essentially only support RFC 3339 (or a little bit more).
Have you ever seen a serious use of e.g. 2017-W11-2 091537,123 to exchange a time value in a standardized format?
I am not entirely opposed to implementing a full ISO 8601 format parser but I think this would be a) to much for this PR and b) there should be a parser for the more strictly defined RFC 3339 format as well.
Therefore I'd suggest to stay with the idea of this PR and add ISO 8601 support later.

Why not to keep iso8601 name? rfc3339 is just subset of.

@akzhan Because it's only a subset and not full ISO 8601. Therefore the parse method would be utterly misnamed (as it parses only one major variant), and the formatter would also only create one specific flavour of ISO 8601 - which is commonly known as ISO 8601.

Please cool down. Starting a flame war over this is pointless.
Seeing how Python, Rust, Ruby, along others, all use ISO 8601 as reference and naming, seeing that Wikipedia redirects the RFC article to the ISO page, the single fact that the RFC is a subset to the ISO standard, all confirm my opinion on this topic.
Introducing RFC 3339 methods means that introducing an ISO 8601 parser later would lead to have  somewhat duplicate methods (bad: duplication), or to rename the methods (bad: breaking change).
Hence the strong opposition.
A proper ISO 8601 parser should be introduced (now or later); RFC named methods should not.

Sorry if this was perceived this way, but I have no intention to flame, just to defend my argument since I am convinced about my opinion as well ;)
Rust does not use ISO 8601, but RFC 3339, as does Go. They are relatively modern languages.
Ruby and Python already had their established Time API's when RFC 3339 was released (in 2002) but as I have explained three comments above, they are actually employing the format described by RFC 3339, not the full ISO standard.
The duplication of having both RFC 3339 and ISO 8601 is negligible: Both formatters should produce the same string by default, but the ISO formatter should support other formats as well. Both parsers would understand the RFC 3339 format, but the ISO 8601 would also understand e.g. ordinal dates or week numbers. So it is not exactly the same but each has its case: RFC 3339 for a fast and simple strict mode, ISO 8601 for more broader, quirky uses.

So, I think we could proceed in one of the following ways:

A) Merge this as-is. Add an enhanced parser for RFC 3339 and ISO 8601 support (formatter and parser) in subsequent PRs. (final methods: to_rfc3339, parse_rfc3339, to_iso8601, parse_iso8601)
B1) Rename RFC 3339 identifiers to ISO 8601. Improve parser for ISO 8601 in a subsequent PR. (final methods: to_iso8601, parse_iso8601)
B2) Rename RFC 3339 identifiers to ISO 8601. Improve parser for ISO 8601 with a "strict" option to only recognize RFC 3339 in a subsequent PR. (final methods: to_iso8601, parse_iso8601(rfc3339 : Bool))
B3) Rename RFC 3339 formatter to ISO 8601, but keep RFC 3339 parser with a temporary alias for ISO 8601. Add enhanced parsers for RFC 3339 and ISO 8601 in subsequent PRs. (final methods: parse_rfc3339, to_iso8601, parse_iso8601)
C) Remove RFC 3339. Add an enhanced formatter and parser for ISO 8601 in a subsequent PR. (final methods: to_iso8601, parse_iso8601)

Did I miss something? What would you suggest @RX14 @ysbaddaden?
Another issue is how to deal with alternative representations in the parser and formatter.
With RFC 3339 there are AFAIK only two valid variations: T and Z may also be lower case and the time may or may not have subsecond precision. Lower/uppercase is just representation, so this is only relevant for the parser; the formatter can safely stick with upper case. But for the precision, there should probably be a flag in the formatter.
In ISO 8601 there are a whole lot of syntactical variations, but also quite a few semantical. I have no compiled list because it is so much. But it is safe to say that the parser would need to be quite complex and there would probably need to be some formatter options for meaningful variations.

I'd say option B2 is what I prefer @straight-shoota.

About B2: I think that boolean parameters is bad choice. They aren't extendable. Flags enum is OK.
[@Flags]
enum Iso8601Flavor
  Rfc3339,
end
Rfc3339 = Iso8601Flavor::Rfc3339

parse_iso8601(rule : Iso8601Flavor)

@akzhan You're probably right. But because of this I would rather prefer B3 in order to provide easy access to a parser for a neatly defined specification RFC 3339 and a different parser method for the more flexible ISO 8601 formats.
I'd also argue that this is a more future-proof option than B2 because we don't need to implement a lenient parse_iso8601 right away and both standards will eventually have quite different behaviour: parse_rfc3339 as a fast and simple method when you know that the data is in a strict format and explicitly don't want to support anything else and parse_iso8601 is for the case where you need to support some or all formats defined by the ISO standard. This might or might not be configurable through options - but this would need to be discussed on the implementation of a full blown ISO 8601 parser.

#5123 incorporates this and has a better implementation of the formats.


channel: Replace Spinlock with Mutex

Addresses one of @thomcc's reviews in https://github.com/rust-lang/rust/pull/93563#discussion_r799137958 (sorry for the late response!)
Historically, the use of spinlock was introduced when the dependency on parking_lot was removed (https://github.com/crossbeam-rs/crossbeam/commit/5208895dbcf568fc92e70b1644217dfe1b634e51).
However, given that it is used in Waker, which includes vectors that may be reallocated, using mutex seems to be the right choice here.
r? @ibraheemdev
bors d=ibraheemdev

A better design might be to use an intrusive linked list for wakers, which could avoid allocations entirely in the critical section, but this seems like a good change either way.

@bors r+

bors r=ibraheemdev
(The command of bors used in rust-lang is @bors, but the command of bors-ng used in the community is bors)


uiTest test helper throws time for infinitely animating widgets

Problem
uiTest relies on pumpAndSettle internally, which never settles for an infinitely animating widget like CircularProgressIndicator, and throws after a timeout.
Possible Solution
Allow an option to use pump with a particular duration in uiTest.

Thanks for reporting the issue. Yes, the pumpAndSettle shouldn't have been done internally.


Error after runniing. Error while reading invites from file openAppData/Local/Temp/go

Im getting the error below. I added GO to the path but i am not sure why its happening. I get GO to come up but I am getting this error.
Error while reading invites from file openAppData/Local/Temp/go-build991373815/b001/exe/invites.txt:
The system cannot find the file specified.

Hi, build it and run it from the binary. Do not do go run main.go


namespaced functions do not show up

v3 functions were not namespaced but v4 and native functions are.  We need to ensure we keep them namespaced otherwise they won't run.

Fixed in 0.12


[Feature]: Can we have time picker.

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
We already have date picker, can we have time picker instead

Why should this be worked on?
It will be helpful to call api's on particular time, create reminder apps, notes app.
and what not!

Thanks for the request @shashi-donon We'll try to address this in the future.

Hi @shashi-donon thanks for the feature request. We already have this issue tracked here #3346 so I'm closing this in favor of that


Fix load default values from py file

WARNING: This branch needs to be updated if is merged after PR #176


Update language.md

I think there missing a space?

Hello,
thanks for the pull request.
Actually, there is one space on purpose, so there is no missing space...

I see, thank for reply!

Thanks for your help!


(PUP-9179) Add Puppet::Util::Windows::Service.exists?

This commit adds the Puppet::Util::Windows::Service.exists? method,
which returns true if a given service exists, false otherwise. It
is not only a useful method to have, but is also required to implement
PUP-6822.

Tested this locally:
irb(main):001:0> require 'puppet'
=> true
irb(main):002:0> Puppet::Util::Windows::Service.exists?('foo')
=> false
irb(main):003:0> Puppet::Util::Windows::Service.exists?('Wecsvc')
=> true

Updated with a quick clean-up to remove the begin block. Also ran the service acceptance tests locally and they pass:
      Test Suite: tests @ 2018-09-25 23:31:09 +0000

      - Host Configuration Summary -

              - Test Case Summary for suite 'tests' -
       Total Suite Time: 228.92 seconds
      Average Test Time: 16.35 seconds
              Attempted: 14
                 Passed: 8
                 Failed: 0
                Errored: 0
                Skipped: 6
                Pending: 0
                  Total: 14

      - Specific Test Case Status -

Failed Tests Cases:
Errored Tests Cases:
Skipped Tests Cases:
  Test Case tests/resource/service/AIX_service_provider.rb

  Test Case tests/resource/service/smf_basic_tests.rb
  Test Case tests/resource/service/ticket_14297_handle_upstart.rb
  Test Case tests/resource/service/ticket_4123_should_list_all_running_redhat.rb
  Test Case tests/resource/service/ticket_4124_should_list_all_disabled.rb
  Test Case tests/resource/service/ticket_5024_systemd_enabling_masked_service.rb
Pending Tests Cases:

No tests to run for suite 'post_suite'
No tests to run for suite 'pre_cleanup'
Cleanup: cleaning up after successful run
ssh connection to ihwff25kepyo9vm.delivery.puppetlabs.net has been terminated
ssh connection to rzl4cs4mssfg53a.delivery.puppetlabs.net has been terminated

You can reproduce this run with:
C:/cygwin64/root/puppet/acceptance/.bundle/gems/bin/beaker exec tests/resource/service

CLA signed by all contributors.


Open file/folder dialog isn't floating on Wayland

Type: Bug
Open file/folder dialog isn't floating on Wayland (using Hyprland), other programs like Firefox works pretty fine.
I've guessed that the dialog was created as a normal window instead of a dialog.
(original issue from Hyprland: https://github.com/hyprwm/Hyprland/issues/4541)

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.85.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Probably  #146422

Probably #146422

@gjsjohnmurray Hi, I took a look at the issue you mentioned, and IMO https://github.com/microsoft/vscode/issues/146422 seems related to another problem? It is more likely a problem of the behaviour of a "normal" window, but this issue is about that the window is not a dialog but a "normal" window.

Duplicate of #225211, also solved by the same PRs.
@deepak1556

/fixedWith https://github.com/microsoft/vscode/commit/8422282f04e8401240d4bd2d1a1184d97080812e

Hello! Can you give this a try with the Insiders build and let us know if the issue is fixed?


Feature Addition : Add "Scroll Down Progress Bar" Matching to Website Design Theme

Describe the feature
Hey @Anushkabh, @RitiChandak and @himanshu-03
I would like to suggest adding a scroll down progress bar to the website to enhance user experience.

A scroll progress bar visually indicates how much of the page has been scrolled and how much is left, providing users with a better sense of their position on the page.
This feature can be especially helpful for long pages

Use Case

Enhances user experience by providing visual feedback.
Useful for long pages or articles.
Improves overall navigation and user satisfaction

Add ScreenShots
like this:

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hey @MastanSayyad !
You can start working on this issue.


E: Sub-process /data/data/com.termux/files/usr/bin/dpkg returned an error code (1)

Im sorry, what i do that in this place, but this problem made me madness
apt --fix-broken install
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
gnutls openssl-1.1 xorg-util-macros xorgproto
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
openblas
The following NEW packages will be installed:
openblas
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
3 not fully installed or removed.
Need to get 0 B/2204 kB of archives.
After this operation, 11.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 60492 files and directories currently installed.)
Preparing to unpack .../openblas_0.3.15_aarch64.deb ...
Unpacking openblas (0.3.15) ...
dpkg: error processing archive /data/data/com.termux/cache/apt/archives/openblas_0.3.15_aarch64.deb (--unpack):
trying to overwrite '/data/data/com.termux/files/usr/lib/pkgconfig/openblas.pc', which is also in package libopenblas 0.3.21-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/data/data/com.termux/cache/apt/archives/openblas_0.3.15_aarch64.deb
E: Sub-process /data/data/com.termux/files/usr/bin/dpkg returned an error code (1)
#termux #help

I delete out /cache/archive and out l/lib/pkgconfig libopenblas 0.3.21-1 && openblas.pc
But this error throw everytime, when i do apt --fix-broken install


Add English-Spanish translation problem

Hi!
I was able to successfully add and use a English-Spanish translation problem, using Common Crawl, EuroParl v7, UN Corpus and ParaCrawl as my datasets.
I trained both an EN-ES and an ES-EN Transformer models (using the transformer_big_single_gpu hyperparameters set) with this new problem specification.

Done CLI

Did you manage to get good results from the models? Great thanks for contributing!

Hello! Thanks for adding en-es module and making it available!
I have ran into an issue when I tried to download data using 't2t-datagen' command.

export PROBLEM=translate_enes_wmt32k
t2t-datagen --data_dir=$DATA_DIR --tmp_dir=$TMP_DIR --problem=$PROBLEM

It works when I use english to german module for example by doing

export PROBLEM=translate_ende_wmt32k

Some part of the error message that I get clearly show that spanish module is not part of the available one at the moment.  (there is no enes module appearing where it should be since things seem to be ordered alphabetically.)

ValueError: You must specify one of the supported problems to generate data for:
  * algorithmic_addition_binary40
...

  * translate_ende_wmt_clean_pc_clean32k
  * translate_ende_wmt_multi64k
  * translate_ende_wmt_multi64k_packed1k
  * translate_ende_wmt_pc32k
  * translate_ende_wmt_pc_clean32k
  * translate_enet_wmt32k
  * translate_enet_wmt_characters
  * translate_enfr_wmt32k

I have tried installing through 'pip install tensor2tensor' as well as 'pip install git+https://github.com/tensorflow/tensor2tensor.git' to check if the last changes were not reflected for the official release.


Adding an exponent function for integers to the prelude.

Adding an integer exponent function to the PlutusTx.prelude. Please check that this addition is performed correct. I tried to follow the style where functions are defined in the Builtins for off-chain use.

You're trying to add this as a primitive function, but we would actually have to add a primitive for this in order for that to work! To do it and have it work today, you would just need to write a "user-space" implementation in the prelude like the other functions. Now, arguably we should have a primitive for integer exponentiation, but we don't.

Thank you for looking at the request. So if I am correct, the naive attempt to coerce the normal prelude (^) will not work. Rather it is better to just create a recursive function with the function multiplyInteger in the PlutusTx.Prelude module? If so I will do this and create a new pull request.

Yes, that's right.


Add multiple users at once

Hello!
While our usage of Grist is growing, we have a bunch of cases were we'll need to add dozens of new users at once. Obviously, doing it one by one will not make it when the number will be high (eg. we have a POC for a document that will be used by thousands of users).
One proposal could be to have, in the "Manage User" modal a button "Add multiple" that would open a new form with a textarea and a select. In the textarea we could past one user per line, and in the select we would chose the access level of those new users.
Another idea would be to support adding users from a CSV or XSLX file, but that seems more complex (column headers ?), so I'd suggest doing a first easier version as described above. Of course, a file may also offer the ability to define the access level for each new user.
Other idea from the top of my head: allow to create new users from a Grist table, but again that may not be the easiest step.
What do you think ? :)
This is something we'd like to work on, once we have defined a strategy :)
Thanks!
Yohan
cc @LouisDelbosc @arnaudpeich

Maybe we'll want to have both option in the future: a textarea with a single select for easy cases (I've a bunch of emails I want to add), and a file import for more complex cases (I want to have different roles). And thus we could start implemeting the first and see how much we need the more complex option ?
cc @LouisDelbosc

@anaisconce do you have any UX ideas how to make the textarea integrated in the modal ? A small button to open another modal ? A toggle ? Where should I put it ?
Thanks 🙂

@anaisconce do you have a basic idea how to organise a text-area ? Having a new modal or a button mode ? I'm working on it but maybe it won't be your taste 🙁

Hi @LouisDelbosc I was thinking of something very simple. Here's a rough mock-up.
First screen, add a simple text link. Then in the same modal, present the text area and access level option (second screen).

The second screen doesn't have a way to go back to the first. I think this is okay. Cancel takes you out of the bulk users flow.
If you like this, I can share with you that icon in the text link.

One more comment, @LouisDelbosc and @yohanboniface . This design works for adding users to a team. It does not work for adding multiple users to a doc, because in the doc-level "Manage Users" modal that link space is taken up by "Inherit access".
My understanding was that this is for adding team members to a site for two reasons:

At the doc-level, inheriting access from the team or workspace is an efficient way to add multiple team members to a doc. Let me know if this doesn't work for your use case.
I'm a bit fuzzy on how your install handles guests. There might be no concept of guests? On hosted Grist, each doc can only have 2 guests (i.e. non-team members) so adding many users to a doc necessitates adding those users to a team (at which point inheriting access to docs makes sense.)

As for the icon, it's easier for us to add the icon on our side as a separate commit, so that's on the way. The new icon will be called AddUser and will work once the other diff lands (will let you know).

Hi @anaisconce in the four known use cases where we'll need this feature, we'll ideally do both: adding a user to a team AND adding it to some document.
Until now, I thought that adding someone to a document would also automatically add it to the corresponding team (with minimal access level viewer), but reading you it seems I've misunderstood how it works, and those people will be added as guest, right ?

There might be no concept of guests?

No, I did not know that existed until now ;)

we'll ideally do both: adding a user to a team AND adding it to some document.

Would adding users to a team and then inheriting team access to the document solve this for you?
I could see how it may not be granular enough. But on the hosted product, adding multiple users to a doc isn't possible due to the limit of 2 guests per doc.
We are separately working on a feature that would make inheriting access more granular that would solve this nicely. The idea is "team groups". You can tag someone as belonging to a group (i.e. field researchers or management) and then share workspace or document access with that group. I don't have an ETA on that, though.

Until now, I thought that adding someone to a document would also automatically add it to the corresponding team (with minimal access level viewer), but reading you it seems I've misunderstood how it works

That's not how it works in hosted Grist. I think adding members to a document in self-hosted Grist does not automatically add them to a team, but would love to double check with @paulfitz

The more I read you, the more I think i'm misunderstanding of the permissions! ;)
I've a new question that could illustrate better our need.
In some document, I've added a "contacts" table, with hundreds of rows, including emails:

While playing with access rules, and after adding user custom properties, I've seen that all those users appear in the users list:

Would that be enough, or those emails still need to be added to the document and/or workspace and/or team ?

Aha! I see the confusion. Those users are not added to the document. That "View As" functionality is pulling from the Contacts table to make it easier for you to test access rules before inviting people to the document. If you click on the Share icon > Manage Users, you'll see the list of people with whom the document is actually shared.
Once you add those users to the team and they inherit access to this document, the access rules will apply.
(Unrelated to this issue of multiple user invitations, but related this this confusion: I had just spoken with @dsagal yesterday about how that "users" button on the access rules page is confusing. It would be better if the button text read as "View As" and the menu reiterated "View As" as a header. There's also a subtle clue in the list. Everything above the line separator is people added to the document, such as yourself. Everyone below is not yet added, but someone you could "view as" as a dummy, before inviting them. That's too subtle and could be made more clear, too. We're actively discussing improvements to "View As" so if you have any suggestions or expectations about how this should behave, I'd love to hear it!)

Aha! I see the confusion. Those users are not added to the document.

Ok! And is that an option ? From my point of view, in our current "multi users" use cases, that would be very very handy.
If I try to rephrase something: when a "user custom properties" is set in the Access Rules, if a user try to access to this document AND it's email matches, then it's automatically added to the document (or it's not even added to the document, but it still can act in the document).
I know there are some vague parts (which email column if the lookup is made with another column ? which role ?), but I'm just trying to challenge the vision :)
Thanks a lot for your inputs :)

Unrelated to this issue of multiple user invitations, but related this this confusion: I had just spoken with @dsagal yesterday about how that "users" button on the access rules page is confusing. It would be better if the button text read as "View As" and the menu reiterated "View As" as a header.

:+1:

So, the more we use Grist, the more I think about some need here around. Let me elaborate a bit on this.
We usually use Grist for documents edited by dozens or even hundreds of persons. Those persons are in various departments in the whole country, and in each of those departments some people needs to access the document. Those users have access rights related to the department they belong too (i.e. only changing the lines related to it). The overall list of users is an always evolving one because of the number of persons and departments involved.
So, let's take an example. We have a "Users" table inside a document, with hundreds of persons. I've added once everybody as editor (thanks to #350 yay). But now, every day, I receive a new email saying "hey, can you add X and Y also and remove Z ?".
What would be very very handy, is that each of those department could manage their users in the "Users" table (which is already the case) AND Grist would trust this table to grand access to the document, without needing to also add them through the "Manage users" view. That would be a sort of "Session Access", in the sense that if the user disappear for the Users table that user will not have rights anymore on next login.
Hope I'm clear enough, otherwise tell me :)

Closing this ticket and opening https://github.com/gristlabs/grist-core/issues/816


Make minichlink -u imply -a.

Right now, -u sometimes will not properly erase and then boot into the application which will cause the application to boot-back-up after an unbrick operation.  -a will also halt the processor, so, unbricking with -a will actually put the processor in a totally safe-to-program state.

I thought -u erased the chip.

Turns out it was a bug.  There needs to be a delay, and the halt request ought not be cleared. Fixed in c9a7fdf


enhance mock.js for test and server render?

I image a futher mithril maybe client core + server mock(middleware core). In browser side client core + app code like before(maybe DI should use). Client code build should keep orign way allow gulp, grunt and other tools deal with. So server render only care about html rendered by mithril it self, now test/mock.js is there we can reuse it. In server side we use mock top of client core ,because of its render method rewrited fit for node enviverment. That is all my idea. I like mithril and learn it every day even english is some barriers for a chinese.

If you're interested in isomorphic Mithril, take a look at https://github.com/jsguy/misojs
I believe it's the most comprehensive isomorphism project for Mithril around.


tapsum: shell script to summarize test errors.

When I managed to clone the latest ecstatic, the timeout failure was gone, but a lot of other tests failed, so my first measure was to try and get an overview that was less verbose than tap, and to run selected tests instead of all at once.
Example summary generated by script:
________________________________________
· Subtest: test/304.js
    ! 1/3 failed in 304_not_modified
    ! 1/3 failed in 304_not_modified_weak
    ! 1/3 failed in 304_not_modified_strong_compare
    ! 2/3 failed in 304_not_modified_weak_compare
· Subtest: test/core.js
    ! 1/59 failed in core
· Subtest: test/express.js
    ! 1/68 failed in express
· Subtest: test/range.js
    ! 2/4 failed in range
    ! 2/4 failed in range past the end
    ! 2/3 failed in NaN range
    ! 2/3 failed in flipped range
    ! 3/5 failed in partial range
· Subtest: test/union.js
    ! 1/54 failed in union
· versions: nodejs v0.10.40, npm 1.4.28, Ubuntu 12.04.5 LTS (precise), git HEAD=9dfcb7d
-ERR 5

I wonder why it passed on travis with

Now using node v0.10.41 [… on …]
Description:  Ubuntu 12.04.5 LTS

… what other versions should I compare/ should tapsum's report include?

Update: All the errors in the example output were due to proxy settings. They and can be fixed with #175 .

It might make sense for this to live in its own node module.

Indeed. I'll try to decouple it, then probably reduce this PR to the .gitignore.

btw I finally published tapsum to npm.


Additional property on context: Full login name inc claims markup

Can we have the 'context.pageContext.user' object extended with the full login name (including the claims markup)

This is absolutely necessary. Especially for calls to the User Profile REST API which needs the full login name of the user.
Currently there is an object which stores this: spClientSidePageContext.user.LoginName but ideally this should be in the context.pageContext.user object.

Closing old issue.  The property is available here - context.pageContext.user.loginName


Modified the default timer due time for ReceivingAmqpLink so that received messages from sessions won't be released

There is a Timer in ReceivingAmqpLink that might force set ReceiveAsyncResult to null when calling batch receiving and the due time comes. Then the client would release and unlock messages in sessions so the messages become out of order.

@axisc and @shankarsama - Would you please be so kind as to provide feedback to @anqyan and advise if you'd like to consider these changes or if we should look to close out this PR?

@jsquire @axisc @shankarsama Closing this pull request because the correct solution for the issue is to implement AMQP drain mode in the SDK. And we already have a Work Item to track it.


Pixel bearing function is slow

Since the use of OpenGV for geometric solvers, we are converting very often from pixel position to pixel bearings. The current implementation of that conversion (https://github.com/mapillary/OpenSfM/blob/master/opensfm/multiview.py#L422) is pretty slow.
The main reason is that it is extracting the camera parameters from the dictionary for each pixel.
This could be speed up by creating a camera class that stores this parameters and has a pixel_bearing method. The class could implemented in C++ if needed.

Since, we now have C++ camera classes (https://github.com/mapillary/OpenSfM/pull/594), I'm closing.


Compiler error in Unity 2017.1.0f3

Assets/SabreCSG-master/Scripts/Core/CSG/Polygon.cs(168,36): error CS0029: Cannot implicitly convert type `void' to `UnityEngine.Plane?'

I'd guess that:
cachedPlane = cachedPlane.Value.Flip();

could just be:
cachedPlane.Value.Flip();

Thanks, just pushed a fix for 2017.1 and above

I'm using sabre csg with unity 2017 and the real fix is :
cachedPlane = cachedPlane.Value.flipped;

Good point, pushed the change to apply the flipped copy properly


Appstudio update test-component-pac-fekjsw

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

Pipelines as Code CI/test-component-pac-fekjsw-on-pull-request has successfully validated your commit.
Namespace: stat-rep-claj-tenant
PipelineRun: test-component-pac-fekjsw-on-pull-request-cdzk6

Task Statuses:

StatusDurationName

✅ Succeeded
5 seconds
init

✅ Succeeded
29 seconds
clone-repository

✅ Succeeded
2 minutes
build-container

✅ Succeeded
32 seconds
sast-snyk-check

✅ Succeeded
14 seconds
deprecated-base-image-check

✅ Succeeded
1 minute
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
12 seconds
sbom-json-check

✅ Succeeded
5 seconds
show-summary

✅ Succeeded
7 seconds
show-sbom

Integration test for snapshot integ-app-vtsd-8g6bz and scenario my-integration-test-jsoa has failed

Task
Duration
Test Suite
Status
Details

task-success
5s

:heavy_check_mark: SUCCESS

task-fail
5s

:x: FAILURE

task-skipped
12s

:white_check_mark: SKIPPED

Integration test for snapshot integ-app-vtsd-8g6bz and scenario my-integration-test-wcnt has passed

Task
Duration
Test Suite
Status
Details

task-success
12s

:heavy_check_mark: SUCCESS

task-skipped
6s

:white_check_mark: SKIPPED

task-success-2
11s

:heavy_check_mark: SUCCESS


bug fix

Replaced the faulty
  NUMERIC_COLS = {CSV_COLUMNS} - {LABEL_COLUMN, "key"} - {STRING_COLS}

by
  NUMERIC_COLS = set(CSV_COLUMNS) - {LABEL_COLUMN, "key"} - set(STRING_COLS)

in the hyper parameter tuning lab.

Lgtm, thanks for fixing this. For the reader, the context of this:
the linters didn't like set(a, b) for multiple elements, so i tried to overcorrect by also writing {a} for single elements, but that's even less correct, so apparently this mixed way is the right way.


NaN Tensor Values Error

I have checked that all my images have valid bounding boxes (within the image boundaries). Yet, whenever I start training, after 30-60 steps I face the following error:
InvalidArgumentError (see above for traceback): Nan in summary histogram for: fasterrcnn/rpn/rpn_bbox_target/histogram
[[Node: fasterrcnn/rpn/rpn_bbox_target/histogram = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](fasterrcnn/rpn/rpn_bbox_target/histogram/tag, fasterrcnn/rpn/anchor_target/ScatterNd)]]

Could this be fixed by changing the learning rate and/or batch size?
Many of my images have some very small objects. How small objects (occupying how much of the total area) can be identified by the object detection code?

Hi @singhanj13!
Were you able to fix the issue? It would be nice to know what was the problem and the solution to see if we can improve Luminoth!

About your second question, the model using the base config should be able to detect fairly small objects. If you're getting bad results with small objects and want to improve the recall on them, you can change model.anchors.scales.
By default, model.anchors.scales is [0.5, 1, 2], you can change it to something like [0.25, 0.5, 1] if you want your model to focus on small objects. You will have to retrain it from scratch if you change that value of the config, though.

@IanTayler  I think the issue was closed by mistake. I changed the anchor size as you had suggested, because of which I faced the error at a much later stage in my training. So I wasn't able to fix the issue. I am still getting the NaN Tensor Values Error.  I have double checked my annotations and there is nothing wrong with them. Any idea what I can do to get rid of this error?

If it improved by adding smaller scales, then it may be a problem caused by very small objects. I'll look into it.

Hi, singhanj13! We found some cases where predicted bbox coordinates got too big and overflowed. There's several ways to fix the issue. We're studying the causes of the problem before we merge any specific solution, though.
In the meantime, to help avoid it you can set dataset.data_augmentation=False and make sure your learning rate is not too large (should be around 1.e-3 or smaller. If in doubt, use the default values). It may also help to set dataset.image_preprocessing.min_size=300 and dataset.image_preprocessing.max_size=900.


can't disable toolbar always on screen

Describe the bug
Can't disable Toolbar always on screen. The toggle doesn't seems to work.
To Reproduce
Try disabling it, go back and forth in Toolbar settings again. If it's disabled already, try enabling it and disable again.
Expected behavior
Should be disabled as per the toggle.
Screenshots
https://github.com/kiwibrowser/src.next/assets/117489882/312eb835-a42f-4625-8d6b-7dce3e0a2b32
Smartphone (please complete the following information):

Device: Redmi Note 10
Android Version : AOSP 13 phh GSI
Kiwi Browser Version : 116.0.5845.27

Additional context
Add any other context about the problem here.

Confirmed on Kiwi Play Store version: 116.0.5845.24
"Toolbar always on screen" button disables after enabling and leaving the screen.

Nice. Now waiting for a new version on the Play Store.

New version on the Play Store today. Problem is fixed!


make category names headers

Makes category names in to a <h4> in the primitives list, so that you could use them as anchors. For sending people links leading to specific category.

This looks good to me.


Transformers are not been loaded

Transformers are not loaded if the first step in the scenario uses a transformer.
Example:

feature

Scenario:
Given the following posts:
| title       | summary                       | user         | categories | published at |
| Post 1      | Welcome                       | Thais Camilo | Rails      | 2012-01-01   |
| Unpublished | Welcome                       | Thais Camilo | Rails      |              |
| Future post | Welcome                       | Thais Camilo | Rails      | 2022-01-08   |

transform
Fabrication::Transform.define(:user, ->(name) do
first, last = name.split
Fabricate(:user, first_name: first, last_name: last)
end)

error
User(#70363094022600) expected, got String(#70363056951740) (ActiveRecord::AssociationTypeMismatch)
./features/step_definitions/fabrication_steps.rb:16:in block (2 levels) in <top (required)>'     ./features/step_definitions/fabrication_steps.rb:4:in with_ivars'
./features/step_definitions/fabrication_steps.rb:15:in `/^the following ([^"]*):$/'

This bug is fixed by https://github.com/paulelliott/fabrication/pull/86


Run CI on macOS

We need to prevent compilation/test errors on macOS as there are many users on this platform.

Let's put that in the "after merge" CI.


using docker and sim

When Using the provided docker container and the sim running nativaly, I get the following error when I execute "roslaunch launch/styx.launch"
message handler error
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/engineio/server.py", line 398, in _trigger_event
return self.handlersevent
File "/usr/local/lib/python2.7/dist-packages/socketio/server.py", line 509, in _handle_eio_message
self._handle_event(sid, pkt.namespace, pkt.id, pkt.data)
File "/usr/local/lib/python2.7/dist-packages/socketio/server.py", line 448, in _handle_event
self._handle_event_internal(self, sid, data, namespace, id)
File "/usr/local/lib/python2.7/dist-packages/socketio/server.py", line 451, in _handle_event_internal
r = server._trigger_event(data[0], namespace, sid, *data[1:])
File "/usr/local/lib/python2.7/dist-packages/socketio/server.py", line 480, in _trigger_event
return self.handlers[namespace]event
File "/capstone/ros/src/styx/server.py", line 58, in image
bridge.publish_camera(data)
File "/capstone/ros/src/styx/bridge.py", line 180, in publish_camera
image_message = self.bridge.cv2_to_imgmsg(image_array, encoding="rgb8")
File "/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py", line 248, in cv2_to_imgmsg
img_msg.height = cvim.shape[0]
IndexError: tuple index out of range

Here is more information. Apparently all information are exchanged between the sim and docker except the images
Hi, I wonder if anyone has faced this problem The error is shown below for running the simulator on my local machine and the code execution on the docker image provided by udacity. I simply followed the steps in the capstone repo. It seems as if there is an issue with getting the images from the sim for traffic lights.
root@ca4804a2d52c:/capstone/trials/2/CarND-Capstone/ros# roslaunch launch/styx.launch
… logging to /root/.ros/log/f94694be-b78f-11e7-8a2e-0242ac110002/roslaunch-ca4804a2d52c-4142.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ca4804a2d52c:33710/
SUMMARY
PARAMETERS
/dbw_node/accel_limit: 1.0
/dbw_node/brake_deadband: 0.2
/dbw_node/decel_limit: -5.0
/dbw_node/fuel_capacity: 0.0
/dbw_node/max_lat_accel: 3.0
/dbw_node/max_steer_angle: 8.0
/dbw_node/steer_ratio: 14.8
/dbw_node/vehicle_mass: 1080.0
/dbw_node/wheel_base: 3
/dbw_node/wheel_radius: 0.335
/pure_pursuit/linear_interpolate_mode: True
/rosdistro: kinetic
/rosversion: 1.12.7
/traffic_light_config: <…>
/waypoint_loader/path: /capstone/trials/…
/waypoint_loader/velocity: 40
NODES
/
dbw_node (twist_controller/dbw_node.py)
pure_pursuit (waypoint_follower/pure_pursuit)
styx_server (styx/server.py)
tl_detector (tl_detector/tl_detector.py)
unity_simulator (styx/unity_simulator_launcher.sh)
waypoint_loader (waypoint_loader/waypoint_loader.py)
waypoint_updater (waypoint_updater/waypoint_updater.py)
auto-starting new master
process[master]: started with pid [4153]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to f94694be-b78f-11e7-8a2e-0242ac110002
process[rosout-1]: started with pid [4166]
started core service [/rosout]
process[styx_server-2]: started with pid [4177]
process[unity_simulator-3]: started with pid [4184]
What is the full path to your Unity simulator?
process[dbw_node-4]: started with pid [4190]
process[waypoint_loader-5]: started with pid [4193]
process[pure_pursuit-6]: started with pid [4205]
(4177) wsgi starting up on http://<IP_ADDRESS>:4567
process[waypoint_updater-7]: started with pid [4235]
process[tl_detector-8]: started with pid [4318]
[INFO] [1508721467.700954]: Loading Tensorflow model into memory
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn’t compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
(4177) accepted (‘<IP_ADDRESS>’, 51010)
message handler error
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/engineio/server.py”, line 398, in _trigger_event
return self.handlersevent
File “/usr/local/lib/python2.7/dist-packages/socketio/server.py”, line 509, in _handle_eio_message
self._handle_event(sid, pkt.namespace, pkt.id, pkt.data)
File “/usr/local/lib/python2.7/dist-packages/socketio/server.py”, line 448, in _handle_event
self._handle_event_internal(self, sid, data, namespace, id)
File “/usr/local/lib/python2.7/dist-packages/socketio/server.py”, line 451, in _handle_event_internal
r = server._trigger_event(data[0], namespace, sid, *data[1:])
File “/usr/local/lib/python2.7/dist-packages/socketio/server.py”, line 480, in _trigger_event
return self.handlers[namespace]event
File “/capstone/trials/2/CarND-Capstone/ros/src/styx/server.py”, line 58, in image
bridge.publish_camera(data)
File “/capstone/trials/2/CarND-Capstone/ros/src/styx/bridge.py”, line 181, in publish_camera
image_message = self.bridge.cv2_to_imgmsg(image_array, encoding=“rgb8”)
File “/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py”, line 248, in cv2_to_imgmsg
img_msg.height = cvim.shape[0]
IndexError: tuple index out of range
Pleas help!

Hi @AloshkaD ! I have the same error. Have you solved it?

I solved with  pip install pillow --upgrade inside the docker.

Looks like this was solved above; the project is now in a classroom workspace, so shouldn't have any further docker issues.

The recommended solution by @jokla works like a charm with a single adjustment. I am guessing latest pillow version (7.0.0 as of writing this command) is not compatible with python 2.7
To fix it, I had to fallback into 6.2.2
i.e., Pillow==6.2.2

yes Pillow=6.2.2 works. Thank you for sharing.


parameters are applied to first element of branch count instead of the function itself

Should be fixed by now.


[FEAT-REQ] Handle empty children array like no children array attribute.

Is your feature request related to a problem? Please describe.
I was getting weird behavior, checking sort-of working but unable to un-check, when there were empty arrays of children, if I recursively delete any empty arrays of "children" attributes it works as intended, the library should gracefully handle an empty array.
Describe the solution you'd like
The library should handle no "children" attribute just as well / the same as an empty array children.
Describe alternatives you've considered
I had to add this to my function:
// Step 3: Remove empty children arrays
function removeEmptyChildren(rmArr: any[]) {
  rmArr.forEach(rm => {
      if (rm.children.length === 0) {
          delete rm.children;
      } else {
          removeEmptyChildren(rm.children);
      }
  });
}

removeEmptyChildren(tree);

Screenshots or screen records
NA
Additional context
NA
Would you like to work on this feature?
Potentially, havn't really dug into the code yet.

Fixed title

Hey there! 👋
Thank you for bringing this issue to my attention! 😊
I will update the test cases to cover this scenario. Instead of patching the tree data to remove empty children, as suggested in your workaround, I believe it would be more elegant to address this directly within the tree check/uncheck logic. I'll look into implementing a fix for this in the core logic itself.
Could you please update your issue description with the version of the react-native-tree-multi-select module you are using? This will help me ensure compatibility and proper testing.
Thanks again for your valuable feedback! 🙏

Fix released in v1.5.0-beta.2. 🎉