Allow content blocks to be created

This adds all the necessary plumbing and views etc to allow a single edition of a content block to be created. It's pretty basic for now, and doesn't validate, or send to the publishing API, but that can come later.
Screenshots

Ta for the review @tahb - I think I've addressed everything. Lemme know if you want a chat about anything else 👍


request global default build configuration

Would it be possible to have a global or default build configuration -- one that acts when no other project build configuration is present? Sorry if this is already possible--maybe i'm just missing how to set it?

Short answer: No, there isn't.
Long answer: The package gets its build configuration from .build-tools.cson config files and when you trigger a command, it will climb up the file tree, starting from the currently active text editor, until it finds one. Now in theory you could create a config file in a folder that all your projects share (e.g. your home folder) and when no config file is present in a project it would read the commands from your "global" config file.
Problem here is that these commands would run in the folder of the config file they're in and not your project's root folder.
Right now the only (good) solution would be to create a small config file in your project and use the "Link to configuration file" provider with "Overwrite working directory" enabled and the path to your global config file ... but it would still require a bit work configuring the project.
If your commands are supposed to run in the same folder than the file you are currently editing then you could use wildcards to change the working directory dynamically ... but that only works in simple "one folder" projects.
This probably needs an easier solution. I'll see what I can do.

I released a modifier package that changes the working directory to the next best Atom project folder.

Create a config file in a folder that all your projects share (that's your "global" config file).
Configure commands and enable the "Change Project Folder" modifier.

Let me know if there are any questions/problems.


Workaround for issue #1379

This change would add the static-msvcrt feature as a workaround for the issue #1379.

Looks good. Thank you


Update version to 1.3.1-3 on production

Update version to 1.3.1-3

Hey! I see that you made changes to our Form component. Make sure to update the docs in FORMS.md accordingly. Cheers!


(FE) Add Sticky header for Test Results

Nice stuff!! Interesting observer was an overkill, thanks for pointing that out.
TIL, sticky is bounded to container being in viewport scope.


Fix/short-response

Update go.work.sum
Update README.md
Using absolute Short URL links instead unique code shorts only
Update responses when generating short URLs

LGTM 💯


[main] Update community files

Cron -knative-prow-robot
/cc knative-sandbox/eventing-writers
/assign knative-sandbox/eventing-writers
Produced by: knative-sandbox/knobots/actions/update-community
Details:

/verify-owners
/lgtm
/approve

/verify-owners
/lgtm
/approve


Update to ComplianceRetentionPolicy to state a location parameter is required to create a retention policy

To create a ComplianceRetentionPolicy the cmdlet requires at least one location (exchange, sharepoint, etc) to be defined.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance-retention/New-RetentionCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance-retention/New-RetentionCompliancePolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@golinku I fixed this in the main branch.


docs: translate hertz/reference/version & json

docs: translate hertz/reference/version & json

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

@GuangmingLuo Would you like to review this translation for me?

ref: https://github.com/cloudwego/hertz/issues/86


Fix requireIPv4PodCIDR requireIPv6PodCIDR options for Helm chart

Please ensure your pull request adheres to the following guidelines:

[ ] For first time contributors, read Submitting a pull request
[ ] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[ ] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Thanks for contributing!

Fix requireIPv4PodCIDR requireIPv6PodCIDR options for Helm chart

@kvaps thanks for your PR :100: , can you help to add some context/rationale in commit message? https://docs.cilium.io/en/latest/contributing/development/contributing_guide/

can you clarify the use case to add this new flag?

Well, in my case I need to set it to false

PR rebased to include also fix for requireIPv4PodCIDR option.

@kvaps thanks for your PR 100 , can you help to add some context/rationale in commit message?

sure, done.

Thanks for the PR, can you clarify the use case to add this new flag?
Cilium will set the values internally automatically to true if the used IPAM mode is kubernetes

@aanm, please correct me if I'm doing something wrong, but if I want to deploy cilium with own IPAM. Then I do:
helm diff upgrade \
  --install cilium cilium/cilium \
  --version 1.8.2 \
  --namespace kube-system \
  --set global.kubeProxyReplacement=strict \
  --set global.k8sServiceHost=cluster1-kubernetes-apiserver \
  --set global.k8sServicePort=6443 \
  --set global.ipv4.enabled=true \
  --set global.ipv6.enabled=true \
  --set global.k8s.requireIPv4PodCIDR=false \
  --set global.k8s.requireIPv6PodCIDR=false \
  --set global.tunnel=disabled \
  --set global.autoDirectNodeRoutes=true \
  --set global.nativeRoutingCIDR=<IP_ADDRESS>/12 \
  --set global.ipam.operator.clusterPoolIPv4PodCIDR=<IP_ADDRESS>/12 \
  --set global.ipam.operator.clusterPoolIPv4MaskSize=24 \
  --set global.ipam.operator.clusterPoolIPv6PodCIDR=fd00::/104 \
  --set global.ipam.operator.clusterPoolIPv6MaskSize=112

And getting the error on the agents:
level=warning msg="Waiting for k8s node information" error="required IPv6 pod CIDR not present in node resource" subsys=k8s

because helm is seting requireIPv4PodCIDR and requireIPv6PodCIDR to true

Thanks for the PR, can you clarify the use case to add this new flag?
Cilium will set the values internally automatically to true if the used IPAM mode is kubernetes

@aanm, please correct me if I'm doing something wrong, but if I want to deploy cilium with own IPAM. Then I do:
helm upgrade \
  --install cilium cilium/cilium \
  --version 1.8.2 \
  --namespace kube-system \
  --set global.kubeProxyReplacement=strict \
  --set global.k8sServiceHost=cluster1-kubernetes-apiserver \
  --set global.k8sServicePort=6443 \
  --set global.ipv4.enabled=true \
  --set global.ipv6.enabled=true \
  --set global.k8s.requireIPv4PodCIDR=false \
  --set global.k8s.requireIPv6PodCIDR=false \
  --set global.tunnel=disabled \
  --set global.autoDirectNodeRoutes=true \
  --set global.nativeRoutingCIDR=<IP_ADDRESS>/12 \
  --set global.ipam.operator.clusterPoolIPv4PodCIDR=<IP_ADDRESS>/12 \
  --set global.ipam.operator.clusterPoolIPv4MaskSize=24 \
  --set global.ipam.operator.clusterPoolIPv6PodCIDR=fd00::/104 \
  --set global.ipam.operator.clusterPoolIPv6MaskSize=112

And getting the error on the agents:
level=warning msg="Waiting for k8s node information" error="required IPv6 pod CIDR not present in node resource" subsys=k8s

because helm is seting requireIPv4PodCIDR and requireIPv6PodCIDR to true

@kvaps yes, and it's correct. Helm is setting those values to true because Cilium needs to wait for the IP addresses to be populated by Cilium operator. If Cilium is showing that message is because Cilium operator is not populating the Cilium nodes with the IPv6 pod CIDR. Did you check its logs for warnings / errors?

I guess the global.k8s.requireIPv4PodCIDR and global.k8s.requireIPv6PodCIDR should be set to true only when user expecting the IP-range configuration from the Kubernetes.
This cilium will wait until controller-manager assigned podCIDR(s) to the node.
My case is different I do not want using Kubernetes IPAM at all. I want to make cilium allocate podCIDR range per node by it's own.
Currently there is no opportunity to set global.k8s.requireIPv4PodCIDR and global.k8s.requireIPv6PodCIDR to false thus cilium will fall in any configuration awaiting podCIDR(s) from the controller-manager.
This PR fixes that

I guess the global.k8s.requireIPv4PodCIDR and global.k8s.requireIPv6PodCIDR should be set to true only when user expecting the IP-range configuration from the Kubernetes.
This way cilium will wait until controller-manager assign any podCIDR(s) to the node.
My case is different. I do not want using Kubernetes IPAM at all.
I want to make cilium allocate podCIDR range per node by it's own.
Currently there is no opportunity to set global.k8s.requireIPv4PodCIDR and global.k8s.requireIPv6PodCIDR to false thus cilium will fall in any configuration awaiting podCIDR(s) from the controller-manager.
This PR fixes that

@kvaps sorry if I was not clear. The requireIPv*PodCIDR flags are used for both Cilium and Kubernetes IPAM modes. Cilium agent will wait for the podCIDR to be allocated by Cilium operator before continuing. Did you check Cilium operator logs to see any errors / warnings?

Ah, OK, It seems you're right, operator was ignoring KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT for some reason.
After redeploy it started working correctly.

I'm going to close this PR, since it makes no reason for now.


Fix dragging ordering

Resolves https://github.com/maplibre/maplibre-plugins-android/issues/44.
This now orders the annotationManagers according to their vertical order (using the belowLayer and aboveLayer).
Tested by @RomanBapst and I (on two different apps, both with ramani-maps and a pure Maplibre-Android app).
See the sample code of #44 with the fix here:
https://github.com/maplibre/maplibre-plugins-android/assets/2606672/e5c9ce45-090b-4c4b-92b4-0190e88e6eb5

Kindly pinging on that front :blush:


eval() multiplication of an integer with a float behaves strangly

easy to reproduce (I tested it with 2.1.3):
SELECT eval("1 * 0.5") FROM V LIMIT 1

==> 0.5 as expected
however
SELECT eval("1 * 0.4") FROM V LIMIT 1

===> 0 !
0 is given also when multiplying with practically any other float except 0.5.
1 is given when multiplying with any  1< float < 2 except 1.5 which gives correct result
the issue is not so serious as it works correctly when the integer is converted to a float (i.e. 1.0)

Hi @michael-go
I just tried it in 2.1.3 final and it seems to work correctly. Could you please double-check that you are not adding blank spaces before or after the dot, eg.

btw, I tried it in Studio, are you doing the same?

Sorry, my fault, I had two Studio open and I tried it on 2.0 by mistake.
I could reproduce this issue, I'm on it
Thanks
Luigi

Thanks for the quick response :stuck_out_tongue:
it happens also on 2.1.4

Fixed in latest stable, closing
Thanks
Luigi


version 1.9.9 use wrong validatingwebhookconfigurations istiod-istio-system

Bug Description
I performed the following steps:

install istio 1.11.4 with command: ./bin/istioctl install --set revision=1-11-4 --set components.pilot.k8s.resources.requests.cpu=50m --set components.pilot.k8s.resources.requests.memory=300Mi
install istio 1.9.9 with cmd: ./bin/istioctl install --set profile=minimal --revision=1-9-9 --set revision=1-9-9 --set components.pilot.k8s.resources.requests.cpu=50m --set components.pilot.k8s.resources.requests.memory=300Mi
then I see a validatingwebhookconfigurations with name istiod-istio-system while I guess the corrent name should be istio-validator-1-9-9-istio-system and it points to the wrong service istiod.istio-system. So it causes the configuration creation to fail because the validation is sent to an invalid service and does not work properly.

Detailed content is as below:
kubectl -n istio-system get mutatingwebhookconfigurations.admissionregistration.k8s.io
NAME                            WEBHOOKS   AGE
istio-sidecar-injector-1-11-4   2          74m
istio-sidecar-injector-1-9-9    1          40m

kubectl -n istio-system get validatingwebhookconfigurations.admissionregistration.k8s.io
NAME                                  WEBHOOKS   AGE
istio-validator-1-11-4-istio-system   2          72m
istiod-istio-system                   1          44m

    service:
      name: istiod
      namespace: istio-system
      path: /validate
      port: 443

Version
./bin/istioctl version
client version: 1.9.9
istiod version: 1.11.4
istiod version: 1.9.9
data plane version: 1.11.4 (1 proxies)
kubectl version --short
Client Version: v1.20.4
Server Version: v1.20.4

Additional Information
No response

I guess it's because the ValidatingWebhookConfiguration name is different in v1.11.4 and v1.9.9
In v1.9.9, its name is istiod-xxx while in v1.11.4 it's istio-validator-xxx

I can't find this in https://istio.io/latest/news/releases/1.11.x/announcing-1.11.4/ we got burned a little.

maybe the different rev args confused me.


current value note coming

hello.
tanks for your library. actually I use Arduino mega in this project. The voltage is received quite correctly but current not.
I design this project like below picture:

I hope you can help me ;(

@faezehFrj  hello I'm also facing the same issue.. did you find any solution for this ?

Hi
I had your problem too...
You must make changes to this library :
1- At this address  : Arduino\libraries\HLW8032-master\HLW8032.ccp
you must change the variable type "CF" to float
2- At this address  : Arduino\libraries\HLW8032-master\HLW8032.h
you must change the value of variable "CurrentRF" to the value of the shunt current resistance used.
I came to the conclusion by applying these changes.
good luck. 👍

hi @ArashGolsaz  Thanks for you reply .
I already made the changes that you mentioned as I was thinking this is problem with datatype casting and I started getting the current values but those values are not accurate because when I calculate power using those (with know load attached ) then it's way of the required values plus negative sign kept appearing repeatedly.
So any fix for that ? Do I need to take RMS ?
Also in GetKwh() function in HLW8032.cpp file, I changed these lines :
uint32_t PFcnt = (1 / PowerPar) * (1 / InspectingPower) *<PHONE_NUMBER> * 3600;
to :
float PFcnt = (1 / PowerPar) * (1 / (CF * VF) ) *<PHONE_NUMBER> * 3600;
and
float KWh = (PFData * PF) / PFcnt;
to:
float KWh = ((PFData * 65536) + PF) / PFcnt;
as per mentioned in Datasheet page#17 .
then I was able to get the correct kwh

@faezehFrj hello I'm also facing the same issue.. did you find any solution for this ?
HLW8032.cpp

float HLW8032::GetCurrent()
{
float Current = GetCurrentAnalog() * CF;;
return Current;
}
float HLW8032::GetCurrentAnalog()
{
float FCurrentPar = CurrentPar;
float Current  = FCurrentPar / (float)CurrentData;
return Current;
this code i get from https://github.com/ocrobot/HLW8032.git


general: drop support for API version 1.0

API version 1.0 is considered insecure and should therefore no longer be used.
We included support for it in 6.3.0 to support updating the server side first,
but future versions will no longer include support for 1.0.
Agent mTLS connections can still be manually disabled, but this is highly
discouraged for normal installations. More details:
https://github.com/keylime/keylime/security/advisories/GHSA-2m39-75g9-ff5r

Rest LGTM

This looks good to me, but I'm going to hold off on approving and merging until we're ready to for the next version bump.

Yeah this should be included just before we release 6.4.0.

Closing this as we only fully remove support for 1.0 once IBM migrates to a new agent.


Crash when iOS suspends app after being backgrounded

Build Information
v0.13.3 via SPM
Issue
We noticed a number of crashes due to EXC_CRASH: RUNNINGBOARD 0xdead10cc. According to the Apple docs, this is likely due to iOS terminating our app because we are actively performing database operations while in the background.
The problem is that we didn't initially know we needed to do anything special in order to avoid this problem, and this could easily happen to anyone who uses this framework.
One potential solution we are in the process of experimenting with is a helper function on the Connection object. Something like this:
@discardableResult
public func withThrowingBlock<T>(_ function: String = #function, _ block: (() throws -> T)) throws -> T {

    // Allows the block to be performed in the background for a short period of time
    let taskId = UIApplication.shared.beginBackgroundTask(withName: function)
    defer { UIApplication.shared.endBackgroundTask(taskId) }

    return try block()
}

This would make for a fairly simple solution to prevent crashes in the vast majority of cases. To use the example for this project:
do {
    let db = try Connection("path/to/db.sqlite3")
    let users = Table("users")
    let id = Expression<Int64>("id")
    let name = Expression<String?>("name")
    let email = Expression<String>("email")

    try db.withThrowingBlock {
        try db.run(users.create { t in
            t.column(id, primaryKey: true)
            t.column(name)
            t.column(email, unique: true)
        })
    }

} catch {
    print (error)
}

Or you could use it to return a value directly:
do {
    let db = try Connection("path/to/db.sqlite3")
    let users = Table("users")
    ...

    let count = try db.withThrowingBlock {
         try db.scalar(users.count) // 0
    }
    print(count)

} catch {
    print (error)
}

As a follow up, we ended up wrapping the entire SQLite Connection object into its own client, which mostly acts as a helper to ensure no one creates one manually. This also helps us with managing the lifetime of the connection as it appears to maintain a reference and needs to be properly closed.
The client class looks something like this:
/// Wraps a SQL database and allows for operations to be performed safely.
public class SQLiteClient {

    let databaseFilename: String?
    let logger: Logger

    private(set) var didEnterBackground = false

    private var cancellables = Set<AnyCancellable>()
    private var _connection: Connection?
    private var createTables: ((_ connection: Connection) throws -> Void)?

    // Custom path we use to store databases - needs to allow read/writes
    private static let databaseDirectory = FileManager.default.sharedDocumentsURL

    /// Initializes the SQL wrapper. You must either pass in a block to create the tables or
    /// call ``setup(createTables:)`` once at a later time.
    /// - Parameters:
    ///   - filename: The short name of the database. Example: "History.sqlite3"
    ///   - logger: The OS logger to which this client should log, usually a local logger.
    ///   - createTables: Optional. A block to immediately setup the database by creating tables only if they do not exist.
    ///   Do not call ``setup(createTables:)`` if used.
    public init(filename: String, logger: Logger, createTables: ((_ connection: Connection) throws -> Void)? = nil) {
        self.databaseFilename = Self.databaseDirectory?.appendingPathComponent(filename).path
        self.logger = logger

        // Track if running in the background
        subscribeToPublishers()

        // Try to setup if a block is passed in
        if let createTables = createTables {
            setup(createTables: createTables)
        }
    }

    // MARK: Public

    /// Clears the database by either deleting the specified tables,
    /// or deleting the database file if needed.
    /// - Parameter tables: Optional. An array of `Table` items to clear.
    /// If empty, the database file will be deleted.
    /// - Returns: True of clearing was successful, False if not.
    public func clearAll(tables: [Table] = []) -> Bool {

        // Try deleting the tables
        var didClear = deleteTables(tables)

        // Try deleting the database if needed
        if !didClear {
            didClear = deleteDatabase()
        }

        // Create a new database or tables if needed
        if didClear {
            createDatabaseIfNeeded()
        }

        return didClear
    }

    /// Deletes the underlying database permanently.
    /// Public for testing purposes.
    @discardableResult
    public func deleteDatabase() -> Bool {
        guard let databaseFilename = self.databaseFilename,
              FileManager.default.fileExists(atPath: databaseFilename)
        else { return false }

        do {
            // Close the connection before deleting the database
            self.connection = nil

            // Try deleting the database altogether
            try FileManager.default.removeItem(atPath: databaseFilename)

            return true

        } catch {
            log(error: error, message: "Error deleting database")
        }

        return false
    }

    /// Optional if a `createTables` block is not used during initialization.
    /// Setup the client by creating tables, but only if needed.
    /// Used if you need to reference `self` in the block in order to perform additional operations
    /// once the tables are properly created.
    /// - Parameter createTables: Block to create tables, but only do so if tables do not already exist.
    public func setup(createTables: @escaping ((_ connection: Connection) throws -> Void)) {
        guard !self.didSetup else { self.logger.resumableAssert("Setup should only be called once"); return }

        // Allows us to create or re-create tables as needed
        self.createTables = createTables

        // Creates the actual SQL database file and tables if needed
        createDatabaseIfNeeded()
    }

    /// Performs one or more operations on the connection in a safe way,
    /// particularly if the app is sent to the background.
    @discardableResult
    public func withSafeConnection<T>(_ block: ((Connection) throws -> T)) throws -> T {
        guard let connection = self.connection else { throw ServiceError.cancelled }

        do {
            return try connection.withSafeThrowingBlock {
                return try block(connection)
            }
        } catch {
            log(error: error, message: "Error performing operation")
            throw error
        }
    }

    // MARK: Private

    private var connection: Connection? {
        get {
            guard self.didSetup else { self.logger.resumableAssert("Setup must be called first"); return nil }
            guard !self.didEnterBackground else { return nil }

            if self._connection == nil {
                self._connection = createConnection()
            }

            return self._connection
        }
        set { self._connection = newValue }
    }

    private var didSetup: Bool { self.createTables != nil }

    private func createConnection() -> Connection? {
        guard let databaseFilename = self.databaseFilename
        else { self.logger.resumableAssert("Database file is missing"); return nil }

        var connection: Connection?

        do {
            connection = try Connection(databaseFilename)
        } catch {
            log(error: error, message: "Error creating connection")
        }

        self.logger.resumableAssert("Connection shouldn't be nil", connection != nil)
        return connection
    }

    private func createDatabaseIfNeeded() {
        do {
            try createDirectoryIfNeeded()
            try createTablesIfNeeded()
        } catch {
            log(error: error, message: "Error creating database")
            self._connection = nil
        }
    }

    private func createDirectoryIfNeeded() throws {
        guard let databaseFilename = self.databaseFilename else { throw ServiceError.invalidState }

        do {
            // Create documents directory if file does not exist
            if !FileManager.default.fileExists(atPath: databaseFilename),
               let databaseDirectoryPath = Self.databaseDirectory?.path {

                try FileManager.default.createDirectory(atPath: databaseDirectoryPath,
                                                        withIntermediateDirectories: true,
                                                        attributes: nil)
            }

        } catch {
            log(error: error, message: "Error creating directory")
            throw error
        }
    }

    private func createTablesIfNeeded() throws {
        guard let createTables = self.createTables else { throw ServiceError.invalidState }

        do {
            // Creates tables in a safe way
            try withSafeConnection { connection in
                try createTables(connection)
            }

        } catch {
            log(error: error, message: "Error creating tables")
            throw error
        }
    }

    /// Deletes the tables without deleting the actual database
    private func deleteTables(_ tables: [Table]) -> Bool {
        guard !tables.isEmpty else { return false }

        do {
            // Try dropping the database table
            try withSafeConnection { connection in
                try tables.forEach { table in
                    try connection.run(table.drop(ifExists: true))
                }

                return true
            }

        } catch {
            log(error: error, message: "Error clearing table")
        }

        return false
    }

    /// Logs a client error using the OS logger
    private func log(error: Error, message: StaticString) {
        let info = (error as? SQLite.QueryError)?.description
            ?? (error as? SQLite.Result)?.description
            ?? error.localizedDescription

        self.logger.error("\(message): \(info)")
    }

    private func subscribeToPublishers() {
        // Allows us to avoid initiating new operations while in the background
        NotificationCenter.default
            .publisher(for: UIApplication.willEnterForegroundNotification)
            .sink { [weak self] _ in
                self?.didEnterBackground = false
            }
            .store(in: &self.cancellables)

        NotificationCenter.default
            .publisher(for: UIApplication.didEnterBackgroundNotification)
            .sink { [weak self] _ in
                self?.didEnterBackground = true
            }
            .store(in: &self.cancellables)
    }
}

fileprivate extension Connection {

    /// Performs a block operation in a safe way by notifying
    /// iOS that it may need more time if the app is sent to the background.
    @discardableResult
    func withSafeThrowingBlock<T>(_ function: String = #function, _ block: (() throws -> T)) throws -> T {

        // Allows the block to be performed in the background for a short period of time
        let taskId = UIApplication.shared.beginBackgroundTask(withName: function)
        defer { UIApplication.shared.endBackgroundTask(taskId) }

        return try block()
    }
}

Here's an example of safe usage:
let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "cacheDatabase")
let client = SQLiteClient(filename: "cache.sqlite3", logger: logger)

// Create the database table if it doesn't exist
client.setup { connection in
    // Used to version the database schema
    connection.userVersion = 0

    // Creates tables only if needed
    try connection.run(CacheItem.tableCreate())
}

// Run a query
do {
    let count = return try self.databaseClient.withSafeConnection { connection in
        try connection.scalar(CacheItem.tableCount())
    }
    print("Table count: \(count)")
} catch {
    print("Error loading count: \(error.localizedDescription)")
}

// Clear data
if client.clearAll(tables: [CacheItem.table]) {
    // Clear succeeded
    postNotification()
}

There's no "official" way to test this, but if you wait 30 seconds, iOS will emit warnings and notify you about background tasks.
One issue that we did uncover since my original comment nearly a year ago is that despite what an Apple rep told me directly, there is a fairly high performance cost (or at least, noticeable) to performing a background task. As such, we only use this code when we must rather than always and unfortunately still experience crashes in some non-trivial scenarios where average performance matters more than occasional background issues.

I suspect my case is a bit different (same core issue) after having looked through and debugged quite a bit. I've been unable to crash it myself after many different tests on device, not getting any warnings when waiting and/or backgrounding on sim either.
The customers crash reports for me call out a function in the initialization method, hours after launch -- suggesting de-suspension, which from my research should never run again. This leaves where the actual problem is happening as rather cryptic. When looking at memory instrument of a healthy run it looks like the crash dump is just reporting the first location of DB access.
In my situation reads and writes only occur from user input so no queries should occur in the background making me wonder if I need to close out the connection. In your code I don't see this occur unless necessary. In your production app did you close out the connection or do you leave it long running/always open?


Fix 583

I'll start this draft PR with a rant. I wanted so much to refactor all this code that we currently do. If you take a step back, look at the functionality for config-maps, you will see that :
As "input" we get :
- properties that users specify
- the k8s client
- environment

and do different manipulations on the above and result in a PropertySource. You know, a Function where input could be some sort of context that provides all these 3 input things we need and output let's say a Set<NormalizedSource>. We could even call it DefaultedNormalizedSource (because if it does not have some properties, like name or namespace), we could "default" them to some things from the client (namespace) or some from environment (name).
The could would simplify greatly, I had a prototype locally. All the checks, transformations would be done in a single (very isolated) package, with a single public entry. We would not duplicate the amount of checks for namespace existence, for example and currently we do that in 4+ places.
Even this PR would be greatly simplified. I could have generated unique normalized sources far sooner then passing them down to Fabric8ConfigMapPropertySource... The obvious problem: this will break compatibility, badly. :( Two things from here:

if that is ever an option, I will gladly take this work + would like to hear thoughts on this.
thank you for reading this and letting me vent it out, as I have spent a lot of time trying to think how to work-around this, even if I @Deprecate some things here and there; but no matter my idea, I would find myself in a position where the changes would be drastic, backwards compatibility wise.

@ryanjbaxter ready to review. I honestly did not expect to have 41 files changed, this looks so much simpler to me then the number of files show. A bunch of them are simply tests, some rename and move things around, etc. The change itself is not complicated, but I wanted to also make k8s-client tests to have the same format as fabric8 and this increased the number of files added/touched.

Thanks for this.  I might not have a chance to look it over until after next week sometime.  We have SpringOne next week so we are heads down on content prep.  If I have some spare cycles before then I will review it.

np at all! good luck with the presentation


Revert "Add Optimism kovan and mainnet chain ids to transactor notify"

Reverts scaffold-eth/scaffold-eth#602

If you add a callback on a Transactor call, this will not work as you expected since the callback will be called just one time and not one on each status change.


Feature: Proper type hinting for UDP ports bindings

I'm trying to bind udp ports:
def telegraf(network: Network):
    ctr = DockerContainer(image="telegraf:1.31.1")
    ctr.with_volume_mapping(f"{CURRENT_DIR}/telegraf_test.conf", "/etc/telegraf/telegraf.d/telegraf_test.conf")
    ctr.with_exposed_ports("8094/tcp")  # Telegraf ports
    ctr.with_bind_ports("8125/udp", "8125/udp")
    ctr.with_bind_ports("8092/udp", "8092/udp")
    _connect_to_network(ctr, network, "telegraf")
    return ctr

It works fine, except that ports are type hinted as int, leading to sad squiggly lines in IDEs.
Could we change type hints of port APIs to allow strings, to make it nicer to define more fine grain port specs?
    def with_bind_ports(self, container: str, host: Optional[str] = None): ...

    def with_exposed_ports(self, *ports: str): ...

  def get_exposed_port(self, port: str): ...

open to a pr for this!

please note that def get_exposed_port(self, port: str): ... is probably wrong as it uses
mapped_port = self.get_docker_client().port(self._container.id, port)

->
port_mappings = self.client.api.port(container_id, port)

->
    def port(self, container, private_port):
        """
        Lookup the public-facing port that is NAT-ed to ``private_port``.
        Identical to the ``docker port`` command.

        Args:
            container (str): The container to look up
            private_port (int): The private port to inspect

So the docker API expect it to be a dict
with_bind_ports & with_exposed_ports seems safe

Opened #690


HHH-12666

https://hibernate.atlassian.net/browse/HHH-12666
After discussing with @dreab8 , I've decided on a simpler approach.
hibernate.native_exception_handling_51_compliance will be added with possible values true or false (default). This property will indicate if exception handling for a SessionFactory built via Hibernate's native bootstrapping should behave the same as native exception handling in Hibernate ORM 5.1,
When set to true, HibernateException will not be wrapped or converted according to the JPA specification.
This setting will be ignored for a SessionFactory built via JPA bootstrapping.
I've incorporated tests from @yrodiere, which were extremely helpful. Thanks @yrodiere! I move and renamed the tests so, unfortunately, there are a lot of diffs. Sorry about that.
I've created a new jira to add more tests: https://hibernate.atlassian.net/browse/HHH-12837.
PR for 5.3 migration guide is: https://github.com/hibernate/hibernate-orm/pull/2443.

@gbadner Glad the tests helped! Thanks for the fix :)

I reorganized the commits a bit to keep the history clean, removed an outdated comment and merged.
Thanks @gbadner and @yrodiere for your work on this!


Separate C7 and C8 Rules

Requires https://github.com/bpmn-io/bpmnlint/pull/99.

Looks good. Took me a little bit to grasp what we fixed with https://github.com/camunda/bpmnlint-plugin-camunda-compat/pull/87/commits/0c675bc9a3e7f44ef28727fee04e49145a687ad7 :wink:.

Took me a little bit to grasp what we fixed with 0c675bc 😉.

Everything is what we fixed! But mainly the fact that we only care about executable processes and some conventions.


[Feature] Enable pip installation without cloning

Firstly, thanks a lot for this awesome package! I am finding it very useful and easy to work with!
Requested feature: I was wondering if it would be possible to make this package pip installable without cloning the repo first.
As far as I understand it, right now the only way to install sinergym is to do
git clone https://github.com/jajimer/sinergym.git
pip install -e .

Possible solution (but I may be wrong): Trying to figure out a way to install sinergym in my own workflow without cloning it first, I have noticed that neither installing it in non-editable mode
git clone https://github.com/jajimer/sinergym.git
pip install .

nor directly from GitHub
pip install git+https://github.com/jajimer/sinergym.git

work. Although they don't fail in obvious ways (one can't be imported, the other yields an empty package on import). Looking at the package configuration, I think the only thing that is missing may be some variables in the setup.py file that add subpackages and modules to the sinergym package (e.g. the packages key). The -e option only seems to work because it adds the cloned repo to the sys.path, bypassing your setup.py.
I have found this tutorial a quite helpful reference for setup.py etc. for my own work:
https://packaging.python.org/en/latest/tutorials/packaging-projects/
Thanks a lot for looking into this, and thanks again for publishing this package!

Hi, @rdnfn. Thank you very much for your comments!
We normally use the Dockerfile to avoid installing Energy+ and setting environment variables by hand, but I guess it is easier to use it with other packages that way. We will go through the tutorial to make it pip installable, thanks!

Hi @jajimer,
Awesome, thanks for the quick response and looking into this!
Definitely agree: it's not too important in a docker workflow but it would make it a bit more convenient and straightforward when using sinergym with other packages and in other contexts.

Hello @rdnfn. Sinergym package is already available without cloning GitHub repository:
pip install sinergym
or, if you want extras packages:
pip install sinergym[extras]
Thanks!

That's absolutely awesome, thanks a lot for implementing this!


Create a user slack channel

We need to

[x] Create the slack channel
[ ] Create a form for applying to join it (or make it open)
[ ] Add a link to the github and the website.

Link here: https://join.slack.com/t/flow-users/shared_invite/enQtNzk5NzE1OTkyNTE0LTU0YmE5ZTVkZmJmNDg1Nzg2YThjOThmY2ZlYWE2ZjQ0NTE1NjE3Y2YwMTljY2U5M2Y3MDhmMWUzZDM3YWViNmE

Resolved.

Apparently the link is no longer active?


refactor(egen): Automl video classification model evalution

This PR includes

changed REGION to LOCATION
removed os.getenv in cleanup section
removed os module
performed linter test
followed template guidelines

REQUIRED: Fill out the below checklists or remove if irrelevant

If you are opening a PR for Official Notebooks under the notebooks/official folder, follow this mandatory checklist:

[x] Use the notebook template as a starting point.
[x] Follow the style and grammar rules outlined in the above notebook template.
[x] Verify the notebook runs successfully in Colab since the automated tests cannot guarantee this even when it passes.
[x] Passes all the required automated checks. You can locally test for formatting and linting with these instructions.
[] You have consulted with a tech writer to see if tech writer review is necessary. If so, the notebook has been reviewed by a tech writer, and they have approved it.
[ ] This notebook has been added to the CODEOWNERS file under the Official Notebooks section, pointing to the author or the author's team.
[x] The Jupyter notebook cleans up any artifacts it has created (datasets, ML models, endpoints, etc) so as not to eat up unnecessary resources.

/gcbrun

/gcbrun

/gcbrun


Webhooks Guide for .net 4.6.1

Hello Tweetinvi!
I see your webhook guide for aspnetcore, but I do not see a corresponding guide for aspnet for the .net framework (specifically we are using 4.6+.) The method used for aspnetcore will not work for regular aspnet. Any advice?

@eaba We have a series of services all on webapi on .net 4.6.1.  I don't see any appbuilder in the startup pipeline for this. Am I missing something?

I am coming back from holiday this week I will send you more info soon.

is there a update on the support for 4.6.1 with regard to webhooks? A example would be great.


Low on battery warning

Would be awesome to have a warning if my battery is running low. It just shuts down right now. I'm using the Tiny Battery Widget currently which is some sort of an indication, but I like to have a pop-up message/vibration at 5% so I can recharge my watch.

@gfwilliams
That should be part of the discussed best practices documentation.
Every battery widget should use that imo.

What do you mean? Every widget should buzz for low battery?

Every battery widget should.
Or not.
But all should behave in the same way imo.

There is a folder for snippets like the one you are talking about
https://github.com/espruino/BangleApps/tree/master/testing
To be honest: All apps and widgets are designed by individual persons in the way they like them to look and work. I suggest make a copy of tiny battery widget and change the new widget the way you like it.
 And I am already doing such things in creating stuff I want and changing stuff the way I want it.
I am just thinking of a streamlined experience with all apps in the "official" app loader.
And that would mean that some things should be consistent in all apps.

In the end, I am not the one making the decision, I am just proposing.

Thanks - however in this case I'm with @MaBecker. I feel like the whole point of this is to put as few restrictions on what can be done as possible so the watch can be customised as much as needed.
I can imagine what might happen in a lot of cases is we end up with one 'basic' version of an app/widget, and one 'kitchen sink' one that has everything and a bunch of settings?
I'm not 100% sold on the low battery warning - for instance if it happens overnight it's just going to annoy a bunch of people. I could totally imagine something that catches your attention when you look at the watch though, like a flashing red X?

Thanks - however in this case I'm with @MaBecker. I feel like the whole point of this is to put as few restrictions on what can be done as possible so the watch can be customised as much as needed.

Ok, fair enough :)

I'm not 100% sold on the low battery warning - for instance if it happens overnight it's just going to annoy a bunch of people

I am used to set my phone to quiet before I go to sleep. The same should be done with a watch in this case. Otherwise other things may go of as well. Notifications from GB, for example.
Which brings me to another idea.
What about a global scheduled silenced mode where beep and vibrate are turned off automatically and then turned back to their original setting again?

What about a global scheduled silenced mode

Sounds like a plan. It could easily be made into a widget (or something that runs in xyz.boot.js).

Let me add global scheduled dark mode which  disable all lcd turn on too , except BTN1 or so.

Would be awesome to have a warning if my battery is running low. It just shuts down right now. I'm using the Tiny Battery Widget currently which is some sort of an indication, but I like to have a pop-up message/vibration at 5% so I can recharge my watch.

You could create an visually empty widget, that uses the notification handler and only display something if the battery is low. This should not interference with other battery widgets.

Yep - with the new notifications this should be pretty easy

It was :-)

Looks like this should have been closed by #531.

I was planning to split the silent mode to a different issue, but forgot about it. Done now: https://github.com/espruino/BangleApps/issues/544


k8s的master上没有任何服务实例

In GitLab by @cuiaq123 on Jun 28, 2020, 06:07

In GitLab by @cuiaq123 on Jun 28, 2020, 06:11
closed


Replace react-select with Material-UI's Autocomplete

Motivation

In effort to reduce the JS bundle size, we can use Material-UI components instead of extra dependencies

Modifications

Replace react-select with Material-UI Lab's Autocomplete component.
Currently selected option no longer disappears when menu is open. The text is selected instead.
Remove the item limit. The dropdown works fine with 5,000 items.

Before
After

Result

Improve appearance and UX, with less code
Remove a dependency and reduce docs-client bundle size by 70 kB (down to 572 kB)

I tried keeping the CSS modifications as minimal as possible, while keeping the old appearance.
Hiding the currently selected item when the menu is open would be a bit more difficult with Autoselect, since the implementation is different. It now allows the user to quickly edit the text, while also clearly indicating that you can start typing again (which was the goal of #3095).
I also removed the limit of the displayed items. I tested with 5,000 items and it works fine. There is a way to configure a limit, which I will look into tomorrow, but please let me know if you prefer the limit or not.
I suggest you test this PR locally to get a better idea of the changes.

This looks good! ♥ Let me review and test it soon.


/lib64/ld-linux-x86-64.so.2: No such file or directory

when I execute the cmake ../ command , I have the following error
/lib64/ld-linux-x86-64.so.2: No such file or directory
please help me to resolve this

Are you attempting to build this on x86?   I've only done that in docker container

yes and I am not using docker. I am following these steps here
https://github.com/dusty-nv/jetson-inference/blob/master/docs/building-repo-2.md

Technically this repo only supports Jetson/aarch64.   I have beta support for x86 in docker.  There are two many different distro's for x86 for me to feasibly support bare-metal on x86.


Added shadow face

Useful for spacemacs ex mode

Any chance you could post a screenshot of what this changes? Or somewhere for me to see this in action.

This makes the previous command in ex mode use the base03 color instead of the default gray70

Looks good to me. Thanks!


Schema basics docs

https://strawberry.rocks/docs/general/schema-basics returns 500 error

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

Thanks @lorddaedra, not sure what's going on, but I'll take a look!

it seems to be back now, I've added sentry, so hopefully I'll catch the error quickly next time 😊


Added custom hook after build has completed.

I am writing a webpack plugin specifically for minifying jigsaw HTML which require access to the outputted HTML after the build process has completed.
Calling the tapped hooks within the command.get callback allows others to run plugin after the build has completed.
For reference please see my plugin (WIP) here: https://github.com/thelevicole/minify-laravel-jigsaw-output-plugin specifically Line 62

Cool, thanks a lot! I cleaned it up a bit and just called the hook jigsawDone.

Have published a package to npm for minifying the jigsaw html output using the new jigsawDone hook. Please see here: https://github.com/thelevicole/webkit-minify-jigsaw-output/


A way to handle non-200 status codes again

It seems that the Dio "Response" type is no longer supported as return type (the generated code tries to call Response.fromJson() which does not exist). How are server responses with a status other than "200" supposed to be handled from version 0.3.0 onwards?

Assume that we have defined the following code
abstract class RestClient {
  @GET("/get")
  Future<HttpGet> ip(@Query('query1') String query);
}

final client = RestClient();

client.ip("aaa").then((httpGet){}).catchError((err){
/// non-200 error goes here.
});

Could you add a piece of documentation somewhere about the structure of the err-instance that gets thrown? I.e. how to get at the request/response properties? (This would help people who may not be able to force their server to generate something other than 200).

@Lootwig  Currently the document is not good. The improvement is scheduled to be done in coming weeks.

#34

#38


Surface: getDomNodeForId was using this.element instead of this.el

getDomNodeForId is now getting element through method getElement

I'm not sure you guys want me/us to create PR rather then just creating issues?
But anyhow, this time I'm doing a PR :)

PR is perfect. Thanks! :)


Sorry everyone, but I'm having a pretty fundamental problem and I'm stuck

I'm trying to run the code here:
https://colab.research.google.com/github/AliaksandrSiarohin/first-order-model/blob/master/demo.ipynb
It works great, but I simply cannot figure out how to replace the images and video files with my own.
It uses a shared file folder on my Google drive, and I cannot add files or make changes to a shared folder of someone else's.
If I copy the whole folder and re-upload it to my google drive, it cannot find it anymore as it's expecting to look for whatever folder was set up in the second step ("mount your google drove folder"...  I tried naming the folder exactly the same as the shared folder, but it cannot find that folder anymore.
Can anyone give me a basic step-by-step on how I can execute the demo from the website I linked with my own source images/videos without having to rewrite the code?, I'd really appreciate it.
I seem to be missing something very fundamental here, as it seems to be set up to use your own files, but it doesn't seem to have the capability of actually doing it without modifications to the code.
thanks !

On the right in colab you can find the window which shows you, your local file system. You can upload your images and videos directly to your colab file system. You will need to change the path to source image and driving video accordingly.

On the right in colab you can find the window which shows you, your local file system

Do mean on this page:
https://colab.research.google.com/github/AliaksandrSiarohin/first-order-model/blob/master/demo.ipynb
I cannot see a window.  Apologies, I've never use Colab before.

Sorry left.

Thanks for this - found it.  But I cannot see how/where to put my files.   My assumption is that I meed to upload a video file and an image.  I cannot see where to put those - it's just not clear to me.  Do I upload them on the left there?  How do I tell the code where they are (ie folder name) & what the file names are?  Or do I have to name them something specific and put them in a specific folder?
Sorry, I just have never used Colab before, so I'm completely lost as far as this context is concerned.  I used to be a coder myself, but I don't understand this tool.
A "do this, then do this, then do that" would be amazing.  happy to send you some money for the time.
Thanks for your help so far :)

Actually, I think I might have figured it out - changed the path in the code in the last block.. But now I'm getting:
RuntimeError                              Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/imageio/plugins/ffmpeg.py in _read_frame_data(self)
620                     raise RuntimeError(
--> 621                         "Frame is %i bytes, but expected %i." % (len(s), framesize)
622                     )
RuntimeError: Frame is 0 bytes, but expected 196608.
During handling of the above exception, another exception occurred:
CannotReadFrameError                      Traceback (most recent call last)
5 frames
/usr/local/lib/python3.6/dist-packages/imageio/plugins/ffmpeg.py in _read_frame_data(self)
626                 err2 = self._stderr_catcher.get_text(0.4)
627                 fmt = "Could not read frame %i:\n%s\n=== stderr ===\n%s"
--> 628                 raise CannotReadFrameError(fmt % (self._pos, err1, err2))
629             return s, is_new
630
CannotReadFrameError: Could not read frame 586:
Frame is 0 bytes, but expected 196608.
I assume the video is the wrong format?  Anything I need to do specifically?
Also, some questions:

I see some references to audio, but I don't hear any audio in the examples. Anything I need to do to make audio work?
It seems to be limited to a certain image and video size.  Is this somethign that can be changed, or is it fixed?

Any help with this error would be super appreciated, I'm trying to do something with this for my friend's birthday tomorrow :)

Try to convert using
!ffmpeg -i /content/gdrive/My\ Drive/first-order-motion-model/07.mkv hinton.mp4

Try to convert using
!ffmpeg -i /content/gdrive/My\ Drive/first-order-motion-model/07.mkv hinton.mp4

Thanks.  Since I don't have Linux installed, I assume that I would need to find a machine to do it on... or can I add something to the code somewhere for this?

Use colab.

Use colab.

OK, I will try to figure out how to do that.  Thanks!

Thanks - got it working.  I see references to audio in the code, is audio preserved from the source video?  I don't see it in the result video that is shown.
Also, does it support higher resolution at all?
Thanks!

Search for related issues.

Thanks - got it working. I see references to audio in the code, is audio preserved from the source video? I don't see it in the result video that is shown.
Also, does it support higher resolution at all?
Thanks!

Hey mactac,
You can extract audio from original video and apply it to your generated output easily using moviepy library. See my reference below:
https://colab.research.google.com/drive/1T2BEp281ogKwrH5MbRWH1IbU74XehNL_#scrollTo=Qnaa6d2PQ9wp
Do note that you need to get the "fps" first, so your audio is in sync with the video:
https://colab.research.google.com/drive/1T2BEp281ogKwrH5MbRWH1IbU74XehNL_#scrollTo=fdFdasHEj3t7

same problem. Using scikit-video to load video instead of imageio fixes the problem for me
!pip install scikit-video
import skvideo.io
driving_video = skvideo.io.vread("/content/gdrive/My Drive/first-order-motion-model/input_video.mp4")
print(driving_video.shape)


api: add Client.BaseURL method

This method is useful in identifying and integrating an api.Client that has already been setup by another package or caller.
We return a copy of base to prevent any modification from interacting with the api.Client.

Hi @presbrey thanks for the PR. Does the package you're interfacing with have a way to accept a new api.Client (may I ask which package)? That would be the preferred route vs exposing this. Let me know if that doesn't help and we can revisit.

Yes, the Ollamafarm package does have a way to take a new api.Client. The package manages multiple api.Clients. The use case for knowing the URL is to make it easier to distinguish multiple Clients in a human friendly way. Without having access to the URL, we can only use the &{address}. The current workaround is to have users register URLs (and we create the api.Client internally), but would like to also support adopting existing Clients directly.

@presbrey thanks for getting back. Would it be possible to create the api.Client instances and pass them to Ollamafarm? I'll re-open this for now in any case


Crypt: wrong echo-message for outgoing messages

Related to: e30dfdc and #1481
I'm using TheLounge, which is reacting on the echo-message and putting it into my view/timeline.
Right now when I write something, I get the encrypted value back as reply. I would've expected to get the unencrypted message back (the same one, that I actually have written).
testmessage: PRIVMSG #testing TEST
echo-reply: @time=2019-01-07T10:18:07.531Z<EMAIL_ADDRESS>PRIVMSG #testing :+OK *ABKW3kFF8J2Jcku9MqSalA==
expected echo-reply: @time=2019-01-07T10:18:07.531Z<EMAIL_ADDRESS>PRIVMSG #testing :TEST

That's an interesting case to consider, the echo-message specification states:

If servers apply any modifications to these messages, they MUST send the final version of the message back to the originating client. (https://ircv3.net/specs/extensions/echo-message-3.2.html)

The wording of MUST is unfortunate here, perhaps it would make sense to try and get echo-message specification adjusted to be a SHOULD or similiar to allow bouncers to not provide the final version of the message in some cases such as if it is encrypted and won't make sense to to the client.


Add Zeus and Chase papers

Hi @samuelrince,
Thanks for compiling this awesome list. I've added the NSDI paper for Zeus, and a workshop paper that applies Zeus to reduce carbon emissions. It'd be great if you can take a look.

Hello @jaywonchung thank you for sharing these papers, they are on my to read list now! I've just watched the video on Zeus and found it really interesting. I am doing volunteer work at @Boavizta on AI environmental impacts, I will be glad if you want to grab a virtual coffee with me in the next days/weeks to talk about Zeus. I am also very interested in the LLMs leaderboard that you've worked on (https://ml.energy/leaderboard/).

Of course! I'd be happy to chat. Could you reach out to the email on my profile? Let's find a common slot some time next week.


Incorrect potential energy from OpenMM/Nanover simulations (incorrect analytic form and signs)

This issue arises due to the way that the potential energy associated with the forces being passed to OpenMM by NanoVer is defined, specifically the expression IMD_FORCE_EXPRESSION = "-fx * x - fy * y - fz * z". This expression defines the potential energy that OpenMM associates with the user interaction, which yields the correct force when taking the derivative with respect to the position of the atom (and therefore produced the correct dynamics in OpenMM), but calculates the incorrect potential energy for the specific forces applied to the simulation.
The form of this expression also explains why we have been experiencing direction-dependent potential energies, as the expression above accounts only for the xyz coordinates of the atoms, rather than the distance vector between the position of the user interaction and the atom to which it is applied. This means that the sign of the potential energy calculated from this expression changes (and can do so discontinuously) when the force is applied to an atom from the opposite direction. Were this the only issue, the fix would be to replace the expression with -fx * (x - x0) - fy * (y - y0) - fz * (z - z0), where x0,y0,z0 defines the position of the user interaction.

From a conversation this morning:

We should clarify in code and comments that IMD_FORCE_EXPRESSION is actually a potential energy expression, and that it is not directly true to the forces, but is only intended to derive to the correct forces
It seems a reason we seem use such a general expression instead of the true energy expression between atom and interaction is because an atom may be affected by multiple instances of multiple force types, and we really just want to apply forces directly to them
We definitely report potential energy incorrectly when forces are applied, but it should be possible to introduce a correction so that we report the right value

closed by https://github.com/IRL2/nanover-protocol/pull/222


Failed running the ClusterAutoK.fit in Cosmx

Report
Hi, when I running the tutorial for CosMx pipeline with my CosMx data, I stopped at the ClusterAutoK.fit step when I running the code: autok.fit(adata, use_rep='X_cellcharter')
The error message always be : TypeError: sparse array length is ambiguous; use getnnz() or shape[0].
How can I figure it out? Many thanks!

Version information
No response

Hi @TengyuZz
thank you very much for trying out CellCharter!
What I believe is happening is that the features in X_cellcharter are in sparse format.
For now, the fitting of the Gaussian Mixture Model only supports the dense format, but I will try to fix it as soon as I can.
However, the fact that you have sparse features makes me suspect that you haven't done dimensionality reduction and I have never tested CellCharter on the full features without dimensionality reduction, but I don't suggest it.
Can you tell me how many features you have in the anndata, for example running adata.obsm['X_cellcharter'].shape?
If you have a small number of features you can just run adata.obsm['X_cellcharter'] = adata.obsm['X_cellcharter'].toarray(), but be aware that if you have a lot of features, the dataset may occupy a lot of memory.

Hi @marcovarrone ,
Thanks for your kind reply. I followed the Nanostring CosMx tutorials here:
https://cellcharter.readthedocs.io/en/latest/notebooks/cosmx_human_nsclc.html
I have running the dimensionality reduction steps as below:

When I running adata.obsm['X_cellcharter'].shape, here is the output:

My CosMx data is 960-panel, is that would influenced? Many thanks for helping me figure this problem out. I am really interested in Cellcharter for its strong function!

Is it possible that you forgot adata.obsm['X_scVI'] = model.get_latent_representation(adata).astype(np.float32)?
Remember also to run cc.gr.aggregate_neighbors(adata, n_layers=3, use_rep='X_scVI', out_key='X_cellcharter') before fitting the GMM.
One other thing, unless you have noticed some strong batch effects between fovs, I would actually run scVI without the batch_key parameter. Of course, if you see a lot of bias between field of views, keep that parameter!

Thanks @marcovarrone, I have resolved the problem and running successfully.  As well, really appreciate for your help and suggestion with scVI batch parameter setting.
Another small question about the ClusterAutoK.stability that my result looks weird as shown, can I ask that is it expected like that trend? Many thanks.

@TengyuZz It can happen, but it depends a lot on the data.
For example, it happened to me when I had only one cancer sample and so the biggest difference would be between the tumor niche and the rest.
You can take a look at the peak at 7. I know it's much lower but 0.75+ is actually not bad, it's just that the stability at k=2 is very very high.
Let me know if you got nice results :)

Hi @marcovarrone ,
Thanks for your suggestion, I use k=7 running the analysis, the results is very good, at least match very well with immunofluorescence. We will in-depth discuss about more biology observations. Cellcharter is really a good strategy for spatial clustering. Many thanks for your patience and useful suggestions! :)


add socials to banner

the old docfx site had the socials across the top banner. add them back

Do the socials in new dropdown nav answer this?


Add function registry bundle

Description
In the future, we will add many registries for different data sources. We need a bundle for them. The ExpressionTypeAnalyzer can get the function via the bundle.
Related issues
Resolve #444

Due to restructuring on the main branch, a new PR will be resubmitted


Multiload

Multiload - Tell me, is it possible to implement this in order to download multiple files at the same time?

I've updated the repo just now.
And added a DownloadListener to handle multiple file downloads. I haven't tested it yet but I'm positive it will work.
Let me know if it works for you.


[Darwin] Consider MTRDevice API to include mechanism to trigger subscription immediately

As a follow up to #27582 which is more a general Matter stack unsubscribe/resubscribe, MTRDevice API should have a mechanism to trigger subscription immediately.
This can be useful for API clients that is changing networks / reconnecting, and knows when specific devices should become available.

https://github.com/project-chip/connectedhomeip/issues/29272


I want to add new project in the list

Please assign me this issue to upload new project

I will Upload New Project


Introduce rounding of entities

Entities are displayed with full float precision what is making them obscure and unreadable.
Keep 2 digits precision

https://developers.home-assistant.io/blog/2023/01/25/sensor_rounding/ -


Updating chef-provisioning-aws breaks chef-client -z functionality with ChefDK 0.4.0 (current version).

Hey guys,
I think there's an issue with the gem dependencies for chef-provisioning-aws that ran afoul of this issue with Cheffish while using the current Chef DK.
[2015-04-11T18:35:18-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)```

**To replicate on Mac OSX:**
* brew cask install chefdk - Installs the current chefdk package - chefdk-0.4.0-1.pkg
* chef verify
* Test a recipe using `chef-client -z simple.rb` or the like, as posted in the ReadME.md
* chef gem update chef-provisioning-aws
* Test a recipe using chef-client -z again.

**ChefDK 4.0 stock gems:**

$ chef gem list | grep chef
chef (12.0.3)
chef-dk (0.4.0)
chef-provisioning (0.18)
chef-provisioning-aws (0.2.1)
chef-provisioning-azure (0.1)
chef-provisioning-fog (0.12)
chef-provisioning-vagrant (0.8.1)
chef-vault (2.4.0)
chef-zero (3.2.1, 1.5.6)
cheffish (0.9.2)
chefspec (4.2.0)

**Update chef-provisioning-aws and dependencies.  List versions:**

[18:33:20] (2) jreid@JoesMacBookPro:~
$ chef gem update chef-provisioning-aws
Updating installed gems
Updating chef-provisioning-aws
Fetching: specinfra-2.28.1.gem (100%)
Successfully installed specinfra-2.28.1
Fetching: rspec-support-3.2.2.gem (100%)
Successfully installed rspec-support-3.2.2
Fetching: rspec-expectations-3.2.1.gem (100%)
Successfully installed rspec-expectations-3.2.1
Fetching: rspec-core-3.2.3.gem (100%)
Successfully installed rspec-core-3.2.3
Fetching: rspec-its-1.2.0.gem (100%)
Successfully installed rspec-its-1.2.0
Fetching: rspec-mocks-3.2.1.gem (100%)
Successfully installed rspec-mocks-3.2.1
Fetching: rspec-3.2.0.gem (100%)
Successfully installed rspec-3.2.0
Fetching: serverspec-2.14.1.gem (100%)
Successfully installed serverspec-2.14.1
Fetching: rspec_junit_formatter-0.2.0.gem (100%)
Successfully installed rspec_junit_formatter-0.2.0
Fetching: chef-zero-4.2.1.gem (100%)
Successfully installed chef-zero-4.2.1
Fetching: chef-12.2.1.gem (100%)
Successfully installed chef-12.2.1
Fetching: cheffish-1.1.2.gem (100%)
Successfully installed cheffish-1.1.2
Fetching: chef-provisioning-1.0.1.gem (100%)
Successfully installed chef-provisioning-1.0.1
Fetching: chef-provisioning-aws-1.0.4.gem (100%)
Successfully installed chef-provisioning-aws-1.0.4
Gems updated: chef chef-provisioning chef-provisioning-aws chef-zero cheffish rspec rspec-core rspec-expectations rspec-its rspec-mocks rspec-support rspec_junit_formatter serverspec specinfra
[18:34:01] (3) jreid@JoesMacBookPro:~
$ chef gem list | grep chef
chef (12.2.1, 12.0.3)
chef-dk (0.4.0)
chef-provisioning (1.0.1, 0.18)
chef-provisioning-aws (1.0.4, 0.2.1)
chef-provisioning-azure (0.1)
chef-provisioning-fog (0.12)
chef-provisioning-vagrant (0.8.1)
chef-vault (2.4.0)
chef-zero (4.2.1, 3.2.1, 1.5.6)
cheffish (1.1.2, 0.9.2)
chefspec (4.2.0)

**Impact:**
A relatively simple recipe like the following

require 'chef/provisioning/aws_driver'
machine 'chef_provisioning_test_node' do
tag 'itsa_me_mario'
recipe 'JO2O'
with_machine_options :bootstrap_options => {
:key_name => 'korrelate2012',
:image_id => 'ami-2c348844',
}
end

fails with `ERROR: undefined method `with_machine_options' for Chef::Resource::Machine` on chef-provisioning-aws (0.2.1), presumably do to the changes made since 0.2.1 was released:

[2015-04-11T18:31:20-04:00] FATAL: Stacktrace dumped to /Users/jreid/repo/chef-repo/.chef/local-mode-cache/cache/chef-stacktrace.out
Chef Client failed. 0 resources updated in 4.297599 seconds
[2015-04-11T18:31:20-04:00] ERROR: undefined method `with_machine_options' for Chef::Resource::Machine
[2015-04-11T18:31:20-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

But an update to chef-provisioning-aws 1.0.4 means a chef-client -z simple.rb fails with the following:

[2015-04-11T18:35:18-04:00] ERROR: Unable to activate cheffish-1.1.2, because chef-zero-3.2.1 conflicts with chef-zero (~> 4.0)
[2015-04-11T18:35:18-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Regards,
Joe Reid

Duplicate ticket with #322, from chef-provisioning.
Created it there before I realized this is probably more appropriate here.  Let me know, either way, and I will close the redundant ticket.

Closing this as a duplicate of #322 where the issue resolution can be found.


Save copy of file the dev uploaded?

For their later reference, so they don't have to go back and forth between their sources folder and the results.

FWIW, I think it's most clear to keep things we get from Kiln in the artifacts folder, and things we give Kiln in sources.

I'm not as sure, but I think we can at least retire this until/unless we hear that someone's finding it challenging to go back and forth between their own folder and the artifacts 👍


Remove HOOO axiom by not[not] <=> not

Currently, one can prove the following:
pub fn proof<A: Prop>() -> False {
    let a: Pow<A, False> = fa();
    let b: Pow<Not<A>, False> = fa();
    hooo_not()(b)(a)
}

It seems sufficient to remove hooo::hooo_not.

This also implies that tauto_hooo_not is invalid, since tauto_hooo_not implies hooo_not.


add support for multiple subdirectories.

This pr allows multiple sub directories in ghosts url.

solves 1. [x] from ErisDS list in #6958
includes additional tests

Instead of removing all slashes "/g" we now specifically remove leading and trailing slashes.

I think this is ready for review.
I also looked trough 2. and 3. task of #6958 but couldn't find a better solution using url.parse and didn't see any dangerous usages of subdir. Would probably better if someone else looked trough it again.

I reviewed it and tested it. Works 👍 thanks. Will wait for travis to finish.


Performance drop when using Distributed Data Parallel

Hello,
I am noticing that using DistributedDataParallel, although significantly faster, results in a higher loss compared to DataParallel training. Is this expected?
I am working with the small Conformer RNN-T model, and also note that I have only trained the models for a few epochs (<< 250 epochs).
Thank you

I think the difference was due to differences in batch_size (and hence the total the number of gradient descent steps)


vscode.getState API will not be cleared when the plugin is uninstalled

Does this issue occur when all extensions are disabled?: No

VS Code Version:
Version: 1.78.2 (user setup)
Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435
Date: 2023-05-10T14:39:26.248Z
Electron: 22.5.2
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045
Sandboxed: No
OS Version:  windows 10

Steps to Reproduce:
I used vscode.setState() in the plugin to persistently save some data, when I uninstalled the plugin and the next time I install it, vscode.getState() can still read the saved data
How can I clear the data when I uninstall the plugin?
I think the data should be cleared automatically when the plugin is uninstalled

I cannot find a public api getState or setState, what method are you referring to?

I cannot find a public api getState or setState, what method are you referring to?
This is the api for vscode webview.

https://code.visualstudio.com/api/extension-guides/webview#getstate-and-setstate
// Inside a webview script
const vscode = acquireVsCodeApi();

const counter = document.getElementById('lines-of-code-counter');

// Check if we have an old state to restore from
const previousState = vscode.getState();
let count = previousState ? previousState.count : 0;
counter.textContent = count;

setInterval(() => {
  counter.textContent = count++;
  // Update the saved state
  vscode.setState({ count });
}, 100);

The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our issue reporting guidelines.
Happy Coding!

Not sure there's enough reasons to clear it. On the other hand, we do want to preserve the state when you disable/enable extensions, switch profiles, and similar cases
If this is causing problems, I suggest versioning your state data so that you can disregard any old state


Ability scores

GitHub Issue (If applicable): #29

PR Type
What kind of change does this PR introduce?

What is the current behavior?

The UI containing stats is only used for two fields, ATK and DEF.
What is the new behavior?

Added additional ability scores as outlined in VISION.md and modification of UI to fit additional fields.
PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tested code with current upstream repo
[ ] Added new tests to the test suite for the feature
[ ] Tested the full test suite, and ensured that the feature does not break current build.
[ ] Docs have been added/updated which fit (for bug fixes / features)
[x] Contains NO breaking changes
[x] Associated with an issue (GitHub or internal)
[ ] Checked licensing of Frameworks/Libraries (if applicable)

Other information

Internal Issue (If applicable):

Closes #29

I have the following issue when testing locally:


master

Hi @shuodata
Thanks for your contribution.
Please tell me when you consider it's ready for review/merging.
Kind regards

Hi @femtotrader,
It's ready, I just made a small change to allow Trailing stops when opening a position
Regards

Thanks @shuodata for your contribution but could you fix the small typo I mentioned in https://github.com/ig-python/ig-markets-api-python-library/pull/95#discussion-diff-264980535R517

Thanks @shuodata


[Search v2.2] [App] Create status bar (Trip)

Implement this section of the design doc

Still waiting on doc reviews.

Deployed to prod 3 days ago. Closing


Support TypeScript

If you need a different binding, contact us!

Can you show us how to make API request in TS?
Example code:
from cloudsmith_api import (
    ApiClient,
    EntitlementsApi,
    RepositoryToken,
    RepositoryTokenRequest,
)

npm = typing.cast(
  RepositoryToken,
  entitlements.entitlements_create(
    owner="testowner", repo="repo-name", show_tokens=True, data=req
  ),
)

Hey @grant, thanks for opening an issue and apologies it's taken us until now to get back to you.
I had a quick chat with the engineering team, and we've agreed that this would be a great addition. I've created a ticket to track the work, which will be scheduled into an upcoming sprint (we can't guarantee an exact time frame!). The team will get back to you on this issue when it has been completed.
If you have any other issues or suggestions, please free to reach out. Thanks!

Sounds good Jack!


Rediness probe fails for glusterfs pods

itadm@k8s-worker03:~$ sudo docker ps | grep gluster
c4a1a61ac7ef        22a008905c35                                                                                "/usr/local/bin/up..."   28 seconds ago      Up 27 seconds                           k8s_glusterfs_glusterfs-4sx5s_default_96d872ad-4bb4-11e9-a2e4-0050568c5505_1
a8ab00b64663        k8s.gcr.io/pause:3.1                                                                                "/pause"                 26 minutes ago      Up 26 minutes                           k8s_POD_glusterfs-4sx5s_default_96d872ad-4bb4-11e9-a2e4-0050568c5505_0
itadm@k8s-worker03:~$ sudo docker exec -it c4a1a61ac7ef bash
[root@k8s-worker03 /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@k8s-worker03 /]# service gluster-blockd status
Redirecting to /bin/systemctl status gluster-blockd.service
? gluster-blockd.service - Gluster block storage utility
Loaded: loaded (/usr/lib/systemd/system/gluster-blockd.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Mar 21 08:37:42 k8s-worker03 systemd[1]: Dependency failed for Gluster block storage utility.
Mar 21 08:37:42 k8s-worker03 systemd[1]: Job gluster-blockd.service/start failed with result 'dependency'.
Mar 21 09:03:39 k8s-worker03 systemd[1]: Dependency failed for Gluster block storage utility.
Mar 21 09:03:39 k8s-worker03 systemd[1]: Job gluster-blockd.service/start failed with result 'dependency'.
[root@k8s-worker03 /]# service gluster-blockd start
Redirecting to /bin/systemctl start gluster-blockd.service
A dependency job for gluster-blockd.service failed. See 'journalctl -xe' for details.
Screenshot of the error below,

I am having the same issue on a bare metal cluster on ubuntu 18.04 LTS.


sonar.properties not being reflected

The chart correctly initializes the container (downloads and installs plugins and populated the conf/sonar.properties file, however, the properties set are not being reflected. Is there a command that I need to run to make the changes stick?
I tested this with SMTP settings and the server did not pick them up. These are core settings in SQ, and there are a lot of settings that I need to set for plugins such as the OpenShift authentication plugin.

hey Mitch. Thanks for reaching out! did you check that if properties are populated in sonarqube-config configmap? I just tested with the following override values and can see the proxy values in Administrator > System settings.
sonarProperties:
  http.proxyHost: proxy.cansu.com
  http.proxyPort: 8080

Hi, thanks for the response! Ya, I did check the config map, and used http.proxy as a test. That configuration setting was reflected in Administration > System > Web, however any setting that I need to update (Administration > General) were not reflected. Here are a few of the settings that I need to set:
<EMAIL_ADDRESS>email.fromName=Agile Dagger
email.smtp_host.secured=HOST
email.smtp_password.secured=PASSWORD
email.smtp_secure_connection.secured=ssl
email.smtp_username.secured=USERNAME
sonar.es.bootstrap.checks.disable=true

Actually, you can see the values are set if you try to send a test email from Administration > General tab. (Cause I got an error HOST. Couldn't connect to host, port: HOST, 25; timeout 30000. Sending the email to the following server failed : HOST:25 error) It just doesn't show in UI, don't know why..Can you test an email to see if it works out for you?

Oh wow it actually is setting the properties they just don't show up on the web UI...thanks! I wonder if there is a way to force the web UI to update?

Not that I know of, sorry.


Issue during initialization

Hi Sergio and thanks for your plugin !
English is not my primary language so forgive my mistakes. I hope i will be clear enough.
I configure a custom flexdatalist to have multiple values and authorize values not from the data (selectionRequired=false). The datalist is read in a database thanks to a call to an url which send back a json object.  That works great.
In my application, i have that screen :

In the case of the previous screen, "{ResourceName}", "{Country}" and "{Status}" are values which are in the datalist. "Value1NotInSelection" and "Value2NotInSelection" are not.
When i click Save Button, the string "{ResourceName},{Country},{Status},Value1NotInSelection,
Value2NotInSelection" (corresponding to the flexdatalist value is recorded in my database.
When i want to edit this record, i do this

But, only the values which are in the datalist appear in the flexdatalist :

I tried a lot of things but i could not succeed in having all the values (including values not in the datalist) at the initialization of the plugin.
I hope i'm clear enough
Thanks
Edouard

Hi,
Yeah, I understood the problem. I'll look at it.
Cheers!
Sérgio

Hi,
Please check out release v2.0.0, if the isse persists, please, reopen it.
Thanks!
Sérgio


Need to bib file for References

Hi team,
We need to add .bib file to the repo for all the references.

Added by James.


Remove CLI changes for clippy

Pull Request
Related issue
Reverts #3434, which was linked to https://github.com/rust-lang/rust-clippy/issues/10087, as putting the lint in the pedantic group is being uplifted to Rust 1.67.1 (my thanks to everyone involved in this work :tada:).
Motivation

Using "standard issue" clippy in the CI spares our contributors and us from knowing/remembering to add the lint when running clippy locally
In particular, spares us from configuring tools like rust-analyzer to take the lint into account.
Should this lint come back in another form in the future, we won't blindly ignore it, and we will be able to reassess it, which will be good wrt writing idiomatic Rust. By the time this occurs, lints might be configurable through clippy.toml too, which would make disabling one globally much more convenient if needs be.

Note
We should wait for the release of Rust 1.67.1 and its propagation to our CI before merging this. The PR won't pass CI before this.

Should be merged after #3461

Should be merged after the release of Rust 1.67.1, so not now :-)

Rebased :-)


Documentation lacks mobile-app scenario information & https considerations

I'm currently working on a project utilising IdentityServer4, with which there will be a native mobile app (iOS).
I'm not 100% certain on whether this belongs here, so feel free to close / discuss.
Essentially I ran headlong into .net core's dev-certs not being supported by iOS due to the certs being self-issued rather than having a CA that iOS can trust.
The documentation for IDS4 is lacking around mobile-app client types as it stands (no real mention of hybrid, pkce, avoiding usage of client secrets, utilisation of redirect urls etc), and there's no information on the utilisation of https in this scenario for dev purposes.
The templates are big on supporting https and getting that right for mvc clients and IDS itself, but there's a real wall you run into when using these certs in a mobile sim.
You can see this issue for more information, as well as this gist for the workaround I eventually had to implement.
Was just wondering if this is something that it's worth calling attention to in the docs?
As I've been banging my head against this for hours, and honestly, it's this sort of friction around security that leads to holes and half-assed implementations.

I am all for some generalized documentation for mobile developers.   I have personally never done any mobil development so can't create.
I think we will need to lean on the community to help out with this.

Agreed - nothing we can do right now inside our core repo. We did some talks around the topic recently - but nowhere as detailed as you probably want it to be.
https://www.youtube.com/watch?v=YF8coyfQb0Y&t=3156s

Toss a link to this up on gitter see if anyone wants to do it.


feat: Add support Palestine banner web component

Add the main banner as a custom web component so it can be included in any framework that can render html.

Hey @FranzGB  thanks for the contribution is it possible to add instructions to import it in  ReadMe too?

Hey @FranzGB thanks for the contribution is it possible to add instructions to import it in ReadMe too?

For sure, let me add that.

Thank you @FranzGB  I really appreciate it.


PD: Use pipette definitions, not hard-coded version

Pipette-related parts of PD were built out before we had pipette definition JSON files in labware-definitions, so PD has its own hard-coded pipette data. It should use the pipette definitions in labware-definitions.
This is also a good time to review & standardize the way pipette models and ids are set up in PD.

Factor out pipettes from file-data atom
Use labware-definitions/robot-data/pipette-config.json instead of protocol-designer/src/file-data/pipetteData.js
Review pipette-related TODOs
Clean up single/multi pipette handling in #1379

Closed in #1823 (and replaced with new pipette-related issues :upside_down_face: )


⚠ SceneTime has degraded performance

In d205628, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1242 ms

Resolved: SceneTime performance has improved in 5a4874b after 7 minutes.


Support touch screens in GUI navigation

My original thought was that touch screens (laptops that have a touch screen) don't require special support and simply use the regular mouse-based controls under the hood. We have a user now with such a window-based touch-screen-enabled laptop and it seems that not all GUI elements behave as nicely with the touch controls as the user expects.
Investigate if special attention is required and if so add support for it.

Known issue https://github.com/electron/electron/issues/17552

Related issue https://github.com/electron/electron/issues/8725


Query semantic analysis time should not be reported as queued time

In case queries that communicates a lot with Hive metastore (retrieving information about tables or checking privileges) analysis time could be noticable.
Notice that Query State Machine is created in initial state QUEUED and so semantic analysis time is included in QUEUED time.

With the dispatcher this gets messy.  The analysis will happen twice. Once asynchronously while queued, so we can kill queries early in the queueing process (we don't want to wait for start to show a that the query is referencing a column that doesn't exist).  The second time will occur when the query is started on an actual coordinator.  The first analysis can't be reused because there is no way to transport an analysis, and we don't want to restrict coordinator selection to where the analysis occurred.  I suggest you simply record the analysis as separate item, and not try to make is a phase.

I will work on this.

The analysis will happen twice.

Does it mean that we will call metastore at least twice for metadata heavyweight queries?

The first analysis can't be reused because there is no way to transport an analysis

Maybe there should be a way to serialize analysis

The analysis will happen twice.

Does it mean that we will call metastore at least twice for metadata heavyweight queries?

Yes.

The first analysis can't be reused because there is no way to transport an analysis

Maybe there should be a way to serialize analysis

I doubt this optimization is worth the work.

The analysis itself usually is fast. The communication with external metastore (or RDBMS or other connectors' data sources) is what usually takes time, easily going into seconds. This is becomes significant for tactical queries which don't spend much time doing actual work. E.g. simple aggregate range queries over tables with large number of partitions.

What is more, connector access control also may communicate with external services. See hive sql-standard, for example when given user has many roles we might ask Hive metastore several times to check if user has access to a table.

Does it mean that we will call metastore at least twice for metadata heavyweight queries?

Yes.

By analysis I mean semantic analysis, the one that happens in SqlQueryExecution constructor and produces Analisis object. Currently we also collect a duration (query statistic) which is called analysisTime (see SqlQueryExecution#doAnalyzeQuery), however there we measure the time spent in logical planner. No semantic semantic analysis is done there.
@dain Can you please tell me where there is second semantic analysis is done? Is SqlQueryExecution twice in single query?

@dain does the analysis happens twice in the current code base? If so, where does it happen?

@dain does the analysis happens twice in the current code base? If so, where does it happen?

No, today it happens once.  If someone runs a separate dispatcher, we will perform ansync analysis on a random worker to ensure the query is valid.  If the queueing the analysis will be canceled.
BTW we are only talking about analysis and not full planning, which means table schema and not partitions.


UF-386: Workbench Preferences Bean API

@manstis Thanks a lot for the review! I answered your comments and will start to apply the ones I agreed to.
I also look forward to it, and will certainly need your help when we migrate the workbench to use this new feature :).

@paulovmr One bigger thing we need to consider is that dynamic plugins should be able to provide WorkbenchPreferences. That means a WorkbenchPreference defined in a dynamic plugin should be discovered by the main application. In order for that to happen the generated implementation needs to be a @JsType...

@csadilek Thank you very much for the review!
For some reason the "reply comment" text box didn't appeared in one of your comments, so I will reply it here: about the boolean root() attribute inside @WorkbenchPreference, how would we infer it? I mean, even if it was an attribute if some other preference, the user could want another instance of it as a root preference in the tree view.
As we talked about on IRC, we will cover the dynamic plugins stuff in another PR.

@paulovmr thanks for the updates.
Re: root = true, since, by default, preferences are at the root level now, how do you know what the root of a preference node is if root == false? In other words, how do you now what the parent node is in the UI for a preference with root == false? It seems to me that this should be know at compile time and then we don't need the root flag (since it defaults to true anyway). Happy to discuss on IRC. Not urgent and can be done later.

@csadilek As we discussed on IRC, we will leave the flag for now, and think in a mecanism that replaces the flag and provides a way to a child insert itself into a parent.

@paulovmr the root flag that @csadilek suggested will be fixed in a next PR right?

@paulovmr  Great work, after you and @csadilek confirm this ^ , we can merge it to master!

@ederign Yes, we agreed to change that in another PR.


Update README.md

I had a bit of trouble when first using the package, since this issue applies to everyone using nextjs I think it would be wise to include it in the README

@KwibooReese thx!


Ticket page design details

Resolve #449

Fix breaking into new line of wallet title in ticket card
Add live data for progress bar and time
Add icon timer
Before:

After:

The ticket status and wallet name on the ticket cards still break into a new line on my display.
If the lifecycle of a ticket is complete, it shouldn't display the time left till completion. Kindly check the mockups
on Figma to correct the current implementation.
The ticket should read 14d not 14 days. Hours should be 8h not < 1 day.

@tuhalang what is the status of this?

Most of the changes here have been addressed on PR #567. We will be closing this when #567 is merged.


fix dead link in example

the specified branch does not exist and leads to an error when running the example

yeah that's a good idea. CI would also help clarify the workflow that can be a bit hard to navigate in the docs


[JENKINS-29516] Track usage of java.io.tmpdir (System temporary files)

https://issues.jenkins-ci.org/browse/JENKINS-29516
This PR continues the work done by @aheritier here https://github.com/jenkinsci/cloudbees-disk-usage-simple/pull/3

@reviewbybees Could you review these changes?

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.

:bee: although there was no need to change the formatting of the pom.xml.

@jtnord Thanks. I've reviewed the pom.xml in order to apply the same criterial with tabs. The plugin is starting and it is important to define (now) the guides.

:bee:


Closing window that was created with -w quits code in OS X

Related to #4006
OS X

Quit Code
code-alpha -w
Cmd W to close the window

Code quits altogether, when it should still be running.

Tough. We behave like ST now, I explicitly checked because I wondered too...

You didnt think it through.


SQL Binding: Give default connection setting name

This PR fixes https://github.com/microsoft/azuredatastudio/issues/17569
If SqlConnectionString setting already exists in local.settings.json:

If it doesn't exist:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 13 (15.38%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.004%) to 41.561%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/sql-database-projects/src/dialogs/addSqlBindingQuickpick.ts
0
11
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.004%

Covered Lines:
26994

Relevant Lines:
58924

💛  - Coveralls