[5.3] Allow control of short property in Slack notifications.

In order to give access to the short setting on a Slack attachment field, optionally allow an array to be passed in.
Example configuration could then be:
->fields([
    'ID'     => 99,
    [
        'title' => 'Description',
        'value' => $description,
        'short' => false,
    ],
]);

This ensures that description will be nicely rendered on it’s own line in Slack.  Without this, Slack will render it in 50% width even when it is not necessary (mobile = always, desktop = if next to another field) which does not look nice.

Let me try this again without the remote-tracking branch commits.


add commonHash to core

This PR adds the optional commonHash configuration parameter (not attached to the naming 😄) to createCss to provide greater opt-in collision avoidance to @stitches/core and @stitches/react.
When a commonHash property is provided to createCss, the following have said hash added as a suffix

style element id targeted by the default insertMethod
generated CSS custom properties
generated class names

I've tested this in several personal apps and packages consuming stitches, and haven't noticed any issues.

resolves #534
closes #472
related to #357

Wow! I really like this PR, and would like to integrate this sort of feature in the next release.
Let me reach out to you about some work going on in jn.performance.overhaul, and make sure this idea is not lost in the "overhaul".


[NET-661] Handle UDP Packets with missing addresses

What does this PR do?
Use a new kprobe
For tracking UDP sends, earlier we were attaching a kprobe to
int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len);

We were extracting source and destination IPs and ports from sk.
Unfortunately, it turned out that sk does not always have IP and port information. The socket has the destination address only if the socket was connected at some point. (please see https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/#udp_sendmsg for more details).
The msg struct (the second param passed to sendmsg) does have destination address and port in the case of unconnected sockets. But source IP and port still remains missing.
That is why we have decided to attach kprobe to the following function instead:
struct sk_buff *ip_make_skb(struct sock *sk, struct flowi4 *fl4,
			    int getfrag(void *from, char *to, int offset,
					int len, int odd, struct sk_buff *skb),
			    void *from, int length, int transhdrlen,
			    struct ipcm_cookie *ipc, struct rtable **rtp,
			    struct inet_cork *cork, unsigned int flags);

As we can see, the first parameter here is still struct sock. It allows us to reuse existing code for the connected sockets to extract IPs and ports. In the case of unconnected sockets, we now have a fallback option - struct flowi4 *fl4. This data structure has all the IP and port information.
Unfortunately, struct flowi4 is not portable across kernel versions. That is where offset guessing comes in.
Offset guessing
We have already been using offset guessing to determine offsets in struct sock. We use the same approach for guessing offsets in flowi4.
One difference is that all the earlier offset guessing was done using TCP connections. But ip_make_skb is specifically used for UDP connections. So the event generator had to be modified to generate UDP events.
Notes

For IPv6, ip6_make_skb gets called instead of ip_make_skb.

struct sk_buff *ip6_make_skb(struct sock *sk,
			     int getfrag(void *from, char *to, int offset,
					 int len, int odd, struct sk_buff *skb),
			     void *from, int length, int transhdrlen,
			     struct ipcm6_cookie *ipc6, struct flowi6 *fl6,
			     struct rt6_info *rt, unsigned int flags,
			     const struct sockcm_cookie *sockc);

To handle unconnected sockets, we will have to use offset guessing for struct flowi6. This is NOT part of this PR. It will be done as part of future work.

We had following blocks of repeated code for each field we were guessing offsets for:

			status.what = guessDaddrIPv6
			logSuccessfulGuess(guessRTT, status.offset_rtt)
			logStartGuess(guessDaddrIPv6)

These three lines have been factored to a common function: logAndAdvance(status, status.offset_rtt, guessDaddrIPv6).

We now need to extract IP and port from conn objects in two places. So the code has been factored out to a single function extractIPsAndPorts.

Describe your test plan
Unit tests:
Two new tests have been added

One test checks for unconnected UDP connections. This was particularly tricky since it was not clear how data can be sent to a unconnected UDP socket using the net API of GoLang.
The other test checks that we can process IPv6 UDP packets when the socket is connected.

Test on the agent VM

Start the system-probe
Do dig abc.com @<IP_ADDRESS>
curl -s --unix-socket /opt/datadog-agent/run/sysprobe.sock http://unix/connection | python parser.py
the output looks something like this:

$ stats | jq . | python parser.py
2437  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
2426  udp    <IP_ADDRESS>:37047 ->       <IP_ADDRESS>:8125   0  0  0  0  0
2381  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
2457  udp    <IP_ADDRESS>:36161 ->         <IP_ADDRESS>:53     1  0  0 46591  0
2453  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
7223  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
2451  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
2407  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
2456  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0
2457  udp    <IP_ADDRESS>:44091 ->       <IP_ADDRESS>:44091  0  0  0  0  0
12878 tcp    <IP_ADDRESS>:22    ->        <IP_ADDRESS>:60677  0  0  0  0  0
2454  udp <IP_ADDRESS>:873   ->    <IP_ADDRESS>:2049   0  0  0  0  0

Notice that we are now seeing information for <IP_ADDRESS>:53 . Also, we are also seeing <IP_ADDRESS>:2049 (NFS) connections which were not seen before.
The parser.py is a handy script to spit out connections in an easy to ready wasy:
import json
import sys

d = json.load(sys.stdin)
for c in d['conns']:
    s =  "{: <5} {} {: >12}:{: <5} ->{: >16}:{: <5} {: >2} {: >2} {: >2} {: >2} {: >2}"
    print s.format(
        c['pid'],
        c['type'],
        c['laddr']['ip'],
        c['laddr']['port'],
        c['raddr']['ip'],
        c['raddr']['port'],
        c['dnsSuccessfulResponses'],
        c['dnsFailedResponses'],
        c['dnsTimeouts'],
        c['dnsSuccessLatencySum'],
        c['dnsFailureLatencySum'],
    )

Since UDP is by nature connectionless, I find the terminology of "connected" and "unconnected" confusing. Could we clarify exactly what is meant by those terms?

@mbakht It looks like you made a commit from the agent dev VM, which is causing the CLA bot to complain about a commit from vagrant. You might need to squash or rebase and fix that commit. See https://stackoverflow.com/questions/3042437/how-to-change-the-commit-author-for-one-specific-commit for some ways to do so.

@mbakht It looks like you made a commit from the agent dev VM, which is causing the CLA bot to complain about a commit from vagrant. You might need to squash or rebase and fix that commit. See https://stackoverflow.com/questions/3042437/how-to-change-the-commit-author-for-one-specific-commit for some ways to do so.

You are right - I did mistakenly made a commit from the agent VM 🤦 . I tried to follow the instructions in the link you shared. Unfortunately, because I have already merged master into this branch, the suggestion mentioned there did not work.  If merging remains blocked because of this, I will create a new branch and PR with this code once you approve.

Since UDP is by nature connectionless, I find the terminology of "connected" and "unconnected" confusing. Could we clarify exactly what is meant by those terms?

I agree that it is indeed confusing in the context of UDP. Interestingly enough, even in kernel it uses comparison against a TCP state to figure out if an UDP connection is "connected" or not: https://elixir.bootlin.com/linux/latest/source/net/ipv4/udp.c#L1038


Proposal: Make Window inherit from DependencyObject

Proposal: The Window class should inherit from DependencyObject
Summary
One of the most annoying things about the Window class today, and one that diverges a lot from other XAML frameworks is that the Window class is not a DependencyObject, even though we can declare it in xaml.
It limits a lot of typical use-cases.
Rationale

Window properties does not support binding, as there's no property bag to store it in.
Window does not support attached properties to extend how it behave right from xaml (like setting backdrop with helper classes, titlebar settings, manage window stage across app sessions etc).
You cannot find the Window that a UI Element belongs to, because the root XAML element has the Parent as 'null' instead of Window.
You cannot use resources to set properties on the window (like theme resources applied to titlebar via helper classes in attached properties).

Scope

Capability
Priority

This proposal will allow developers to set Window properties through binding
Must

This proposal will allow developers to extend Window behavior in XAML with attached properties
Must

This proposal will allow developers to reach to theme and resource changes at the Window level
Must

This proposal will allow end users to discover which window a given UI element is part of
Must

Important Notes

Window today doesn't have a baseclass, so injecting a baseclass (at least from a .NET point of view) is not a breaking change.
Before: public class Window : ICustomQueryInterface, IWinRTObject, IDynamicInterfaceCastable, IEquatable<Window>
After: public class Window : DependencyObject, ICustomQueryInterface, IWinRTObject, IDynamicInterfaceCastable, IEquatable<Window>

Isn't this the job of the Content property of the Window (same as in UWP?)

@mpettit2253 I'm not following? Of the items listed above, none of these are set on the Content.

I'm speaking from a fair lack of experience here, so if I get things really wrong I apologize.  I had meant that the Window class in WinUI3 and the AppWindow class in the AppSDK aren't meant to be UIElements or even Visuals like in WPF.  They seem to be lightweight bridges to the underlying HWND infrastructure.  Choosing to expose them as a name in XAML isn't so helpful, though their recommendation noted below might work.
If I am misreading this and you were able to do these things in Windows 8/UWP, let me know. I am sad about certain things in those stacks that have been left behind like Suspend/Resume.  Those features allowed me to write a multi-instance ArcGIS Runtime app that used SceneView and MapView for the main view.  Users could open 10 or more instances to work with disparate but related locations, and only the non-minimized ones would take memory, etc.  Your resume magic worked great.
That being said, I'll try using the current recommendations in the docs to see if the functionality you list can be done without super pain.  It looks like the two big recommendations are:

if you need XAML Visual derived features, put a panel or a page as the root and go from there:
https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/guides/winui3#visual-state-manager-and-pageresources

the changing ability to flow into the title bar area may be compatible with their above recommendation:
https://docs.microsoft.com/en-us/windows/apps/develop/title-bar?tabs=winui3


solves issue #3346 now the upoload limit value is assigned to 100 if the edit text is empty

Description (required)
Fixes #3346
What changes did you make and why?
I changed the Settings Fragment activity and made changes in uploadLimitEdittext event listener

@madhurgupta10  okay


[Doc Improvement] [Update hub page 2]

Removed duplicate occurrence of Plan analytics for Teams apps.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/index.yml
94
1
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 74e013c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/index.yml
:white_check_mark:Succeeded
View

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


modify profile to user "default" will change password to "default" and cause other problems

Hi,
I want to change the permission of default user to forbid ddl, so I have the following config:
profiles:
  not_allow_ddl/allow_ddl: 0
users:
  default/profile: not_allow_ddl
  admin/password: admin
  admin/profile: default

but these codes change the password to "default" like this
https://github.com/Altinity/clickhouse-operator/blob/master/pkg/apis/clickhouse.altinity.com/v1/type_config.go#L267-L269
users.xml: |
<yandex>
    <users>
        <admin>
            <networks>
                <ip>::/0</ip>
            </networks>
            <password>admin</password>
            <profile>default</profile>
            <quota>default</quota>
        </admin>
        <default>
            <networks>
                <ip>::/0</ip>
            </networks>
            <password>default</password>
            <profile>not_allow_ddl</profile>
            <quota>default</quota>
        </default>

I am working on a shard env, then I have found this issue https://github.com/Altinity/clickhouse-operator/issues/265 which means I should not change the password, and I do not want to change it either
please help me.

@xiaozzz
As a workaround, you can specify empty password for default user explicitly.
We will fix this in an upcoming hot fix release later today or tomorrow

@alex-zaitsev
I have tried leave the password blank like this
users:
      default/password:

or
users:
      default/password: ~

but the config map translate it to newline like this
<default>
    <networks>
        <ip>::/0</ip>
    </networks>
    <password>
    </password>
    <profile>not_allow_ddl</profile>
    <quota>default</quota>
</default>

and clickhouse still ask me for password.
Thank you for your quick apply, and i will wait for your hotfix

Fixed in 0.9.3


llama-stack.png seems to be missing in the resource folder

Documentation in the resource folder refers to https://github.com/meta-llama/llama-stack/blob/main/docs/resources/llama-stack.png but the file seems to be missing

thx for raising the issue! fixed in https://github.com/meta-llama/llama-stack/commit/2802ac8e9dff82aa35e65c89fbbb4973cddceb53


cherrypick Change execDuration to correct type (#718)

Change execDuration to correct type

validate all fields in test

update ExecDuration comment

add another test when ExecDuration is int

Co-authored-by: Jianping Zeng<EMAIL_ADDRESS>

@zjpjack  I vendored this to rp for you https://msazure.visualstudio.com/CloudNativeCompute/_git/aks-rp/pullrequest/4299297


Make type traits work with clang.

See http://libcxx.llvm.org/type_traits_design.html for the list of intrinsics supported by clang.

Looks good. Thanks, Justin!


Full Review Request

Since you've got all the setup around linting, type checking, etc. set up already, I think you may as well set up a GitHub actions job to run those tests. Here's an example of a job that runs tests using npm, but you could adapt this to instead run tests using invoke. https://github.com/qgreenland-workshop-2023-researcher/qgreenland-workshop-2023-researcher.github.io/blob/main/.github/workflows/test.yml


Matrix texture blurry after resizing column

Release number or git hash: v4.0.0-alpha.7
Web browser version and OS: Chrome 71-beta

Steps to reproduce

Open https://lineup.js.org/app_develop/#soccer
Decrease the width of the texture column
Increase it again

Observed behavior

Expected behavior

After resizing the texture should be updated again.

It seems that this behavior happens, when the column is resized to fast. A solution would be to update the texture on mouse up again.


Add minItems property

Ref https://github.com/open-contracting/ocds-extensions/issues/102
Using "minItems": 2 since a contract should have at least two signatures.

We typically don't set minItems on optional fields. Also, since the field uses identifier merge, it's possible to add one signatory in a later release.

We typically don't set minItems on optional fields. Also, since the field uses identifier merge, it's possible to add one signatory in a later release.

I see, I added a question for you in https://github.com/open-contracting/ocds-extensions/issues/102.

Closing for now. See linked issue.


half<->float conversion cleanup

Using half conversions from TH.
Depends on https://github.com/torch/torch7/pull/901

Replaced by https://github.com/torch/cutorch/pull/680


Add ability to schedule jobs

Environment

Python version 3.9
Nautobot version: 1.0.0

Proposed Functionality
This proposal is to add a scheduler to Nautobot that offers users the ability to schedule jobs.  This is a subset of #275 and meant to be the first implementation and use case for the scheduler.
One idea is to create a new page called "Schedules" that allows users to view all scheduled operations.  The same page may be used to perform CRUD operations on the scheduled jobs. Having a main "Schedules" page should eliminate the need to change the UI for every operation in which a scheduled operation is supported. Any type of operation that can be scheduled could be registered to the scheduler so when a user goes to create a scheduled job (forgive the overloading of the word job - it does not mean Nautobot job) or task, they would see which types of tasks have been registered.
In order to schedule jobs that require user input such as Nautobot Jobs, the ability to create "Templates" would be created.   This would allow users to create a template inclusive of user input values that can then be triggered one-time (now) or scheduled.  For now and for a minimally acceptable feature, this is not required.
The results of executed or scheduled operations should be seen within the existing Job Results page.
Use Case
As a user, I want to be able to schedule recurring Nautobot Jobs.
Database Changes
TBD
External Dependencies
TBD

The full feature didn't make 1.1.0, but will be in 1.2.0.

Addressed by #805, #878, #879, #908.


Compile error: stx/btree_map.h: No such file or directory

When I compile the code (GCC 10.2), it has the compile error "stx/btree_map.h: No such file or directory".
Could you take a look how to fix it?

Hi baotong,
I have updated the README for how to compile the code and fixed several compilation issues.
Thanks for the feedback.

Thanks!


[Feature Request] @readonly attributes

Is your feature request related to a problem? Please describe.
allow the schema to implement a @readonly attribute so we can set a static field on a model that is the same for all rows in a table (set a field to be a static string in the schema itself), (or allow it to be set on creation, but cannot be updated)
Describe alternatives you've considered
It is possible to use enums to set this value and use @default, but I do not want to be able to change this value. so, this is not possible right now.

Hi @sakgoyal , do you think this can be achieved with field-level policy? Like:
model Foo {
  ...
  readonlyField Int @deny('update', true)
}

Will this work together with @default? if so, then yes.

Will this work together with @default? if so, then yes.

Yes, I believe so.

#1208
I know I closed this. but would you still consider this is a potential feature? it could just be a shorthand replacement for @deny('update', true) into just @readonly.


rekey comments incorrect

I was directed over to this project from an issue raised in the SQLCipher project which was linked to from an issue within your project of similar affect.
I saw that you adjusted the documentation to explicitly call out only using the SQLCipher subspec so as not to cause a conflict with standard SQLite which was a good adjustment (even though your documentation previously correctly only referenced the subspec)
One other thing I noticed in both issue reports, which I responded to in the SQLCipher issue report, is that both users believed that rekey encrypts a plaintext database. When correctly linking SQLCipher this is absolutely not correct. You'll need to use the sqlcipher_export() convenience function.
Specifically the second sentence in the comments here is incorrect:
https://github.com/stephencelis/SQLite.swift/blob/master/Sources/SQLite/Extensions/Cipher.swift#L54-L55
In the SQLCipher specific sqlite3.h you'll notice these extra comments above the rekey functions:
/* SQLCipher usage note:

   If the current database is plaintext SQLCipher will NOT encrypt it.
   If the current database is encrypted and pNew==0 or nNew==0, SQLCipher
   will NOT decrypt it.

   This routine will ONLY work on an already encrypted database in order
   to change the key.

   Conversion from plaintext-to-encrypted or encrypted-to-plaintext should
   use an ATTACHed database and the sqlcipher_export() convenience function
   as per the SQLCipher Documentation.
*/

Here's a example using the sample code from your project to create a plaintext database, call rekey on it, then open it without providing a key to display that its not encrypted:
import UIKit
import SQLite

class ViewController: UIViewController {

    let dbPath = URL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]).appendingPathComponent("test.db").path

    override func viewDidLoad() {
        super.viewDidLoad()
        do {
            let fm = FileManager.default
            if (fm.fileExists(atPath: dbPath)) {
                try FileManager.default.removeItem(atPath: dbPath)
            }
        } catch {
            print("Failed to remove db = \(error)")
        }
        createPlaintextDb()
        rekeyPlaintextDb()
        openDbWithoutKey()
    }

    func createPlaintextDb() {
        do {
            let db = try Connection(dbPath)
            // runtime check -- make sure SQLCipher is properly linked
            let cipherVersion = db.cipherVersion
            if (cipherVersion == nil) {
                print("NOT SQLCIPHER!")
                return
            }
            let users = Table("users")
            let id = Expression<Int64>("id")
            let name = Expression<String?>("name")
            let email = Expression<String>("email")

            try db.run(users.create { t in
                t.column(id, primaryKey: true)
                t.column(name)
                t.column(email, unique: true)
            })
            // CREATE TABLE "users" (
            //     "id" INTEGER PRIMARY KEY NOT NULL,
            //     "name" TEXT,
            //     "email" TEXT NOT NULL UNIQUE
            // )

            let insert = users.insert(name <- "Alice", email <-<EMAIL_ADDRESS>            let rowid = try db.run(insert)
            // INSERT INTO "users" ("name", "email") VALUES ('Alice'<EMAIL_ADDRESS>
            for user in try db.prepare(users) {
                print("id: \(user[id]), name: \(user[name]), email: \(user[email])")
                // id: 1, name: Optional("Alice"), email<EMAIL_ADDRESS>            }
            // SELECT * FROM "users"

            let alice = users.filter(id == rowid)

            try db.run(alice.update(email <- email.replace("mac.com", with: "me.com")))
            // UPDATE "users" SET "email" = replace("email", 'mac.com', 'me.com')
            // WHERE ("id" = 1)

            try db.run(alice.delete())
            // DELETE FROM "users" WHERE ("id" = 1)

            try db.scalar(users.count) // 0
            // SELECT count(*) FROM "users"
            sqlite3_close(db.handle);
        } catch {
            print (error)
        }
    }

    func rekeyPlaintextDb() {
        do {
            let db = try Connection(dbPath)
            try db.rekey("t3stp4ssReKey")
            let count = try db.scalar("SELECT COUNT(*) FROM sqlite_schema;")
            print("count after rekey = \(count ?? "No Count")")
            sqlite3_close(db.handle)
        } catch {
            print (error)
        }
    }

    func openDbWithoutKey() {
        do {
            let db = try Connection(dbPath)
            // explicitly don't key the db and see that you'll be able to access it without encryption as rekey doesn't encrypt a plaintext db when using SQLCipher
            let count = try db.scalar("SELECT COUNT(*) FROM sqlite_schema;")
            print("count when opening db again without key = \(count ?? "No Count")")
            sqlite3_close(db.handle)
        } catch {
            print(error)
        }
    }
}

Which outputs:
id: 1, name: Optional("Alice"), email<EMAIL_ADDRESS>count after rekey = 2
count when opening db again without key = 2

Notice that the openDbWithoutKey() was able to access the database without a key because it wasn't encrypted when calling rekey on a plaintext db.

Thanks for pointing this out, I'll change the comments and clarify this in the docs. It might also be worth to expose sqlcipher_export() in the API of SQLite.swift/SQLCipher.
But I'm wondering, is there a reason why rekey doesn't raise an error when called on an unencrypted db? Seems like an obvious user error to catch.

It might also be worth to expose sqlcipher_export() in the API of SQLite.swift/SQLCipher.

That makes sense to me so it provides your lib's users a streamlined way of going from plaintext <> encrypted

But I'm wondering, is there a reason why rekey doesn't raise an error when called on an unencrypted db? Seems like an obvious user error to catch

That is a fair point, rekey just "does nothing" (and returns SQLITE_OK) when called with a key and the open database is not encrypted. Attempting to key the db on subsequent opens with the same key that was provided during rekey will fail with error though. That being said, we think it might be a prudent to return an error in this scenario.
Going the other direction (attempting to rekey with an empty string when the open db is already encrypted) does fail with SQLITE_ERROR already.


Tomcat 9 in docker

Check if we can move to Tomcat 9 (which uses servlet API 4), this would also make it easy to use the adoptopenjdk image with Eclipse OpenJ9, which in turn is optimized for using (far) less memory than Hotspot.

Isn't OpenJ9 the extension of the old IBM java version that was 2x slower than hotspot? Wouldn't it make more sense to move to Graal instead? I believe that we can enable the Graal JIT compiler on java 11+ https://openjdk.java.net/projects/graal/.
And if we want better memory performance we should look at:

moving to spring-boot
using a better GC (shenandoah og zGC)

OpenJ9 indeed traces back to IBM's JDK, though I'm not sure if the performance gap still holds in all cases.
Good idea to use Graal JIT.
By any chance, would you have a recent benchmark comparing HotSpot / OpenJ9 / Graal ?

Found this one: https://www.phoronix.com/scan.php?page=article&item=graalvm201-openj920-jvm&num=1
Also I think that going for Graal is going to be better for the future. Oracle is using a lot of of resources to develop Graal and I think in the future it will take over for HotSpot. I'm a bit more sceptical about OpenJ9 and how IBM is planning on allocating a competing amount of resources.
It's not a clear cut performance wise. And the newer JDKs suffer from a little known G1GC bug where if you don't set XMS to be equal to XMX then it does some miscalculations and will slow down GC quite a lot. Couldn't find the reference for that.

Good to know. And indeed, Graal will eventually replace Hotspot, since maintaining the C++ Hotspot codebase isn't exactly ... painless...


Contributing

Added basic contributing steps. The other one can be discarded

You need to remove the "jebou" commit https://github.com/arilaakk/JuliaFEM.jl/commit/d362d78b2c41741ac8397e55e3d0991377cc87f3. This might the correct instructions: http://stackoverflow.com/questions/20765030/git-remove-a-commit-from-pull-request
Also I would like to see little more details on each numbered point. Maybe it's easy when somebody is showing you want to do and from where to download, but that is the exact information we want to have in the Contributing.rst document. The whole idea is that we would have a tutorial, which will guide a new contributor from github registration to the first pull request.

I have couple of improvements for this

3&4: julia is also released as a binary version which should be recommended
6: how to do, exactly, commands?
8: git add . adds all files from current directory to commit, I prefer to use git add file1 file2 ... filen to avoid adding unwanted files. (Btw, how to remove accidentally added files from commit..)
9: git commit is not actually moving the files anywhere, it just creates a commit ready to go, after that user must also push files to his own repository using git push or git push origin master depending how git is configured. After git push the repository is updated and pull request can be made.
finally, it should be instructed what to do when contributors are asking some changes to pull request before it can be merged

Hint: git reset is  a really nice command before git commit, meaning if you accidentally add too many files you can use git reset to start over. Also nice command is git status, which shows you the added files before you commit them.
Also good habit is always do git pull before git commit. Then you don't need to do the unnecessary merge.

A little off topic but anyway. Contributor should check that his own branch is most recent before making a pull request. We are having exactly this situation with Lexicon.jl, see https://github.com/JuliaFEM/Lexicon.jl (we're 4 commits behind). Maybe @ovainola could describe how to "refresh" outdated branch. "What to do if your branch is outdated?".

offtopic, Lexicon.jl is now updated. Here's an instructions, how to refresh outdated branch: https://help.github.com/articles/syncing-a-fork/

run tests before PR.

Ok, I'll do the changes. Getting my first pull request under review was also part of the git learning process

Here is a related discussion about contributing: https://groups.google.com/forum/#!topic/julia-dev/thJpV8lrNYM

For number 4 (building Julia to the computer), I found good and precise instructions for all platforms at Julia readme (https://github.com/JuliaLang/julia/blob/master/README.md). Would it be best if I referred straight to it? Or does it contain too much information?

Ok so I did some modifications. The instructions are a lot more precise now, they basically cover everything I have done so far. I also added some styling.

I think this is good now.

I agree, It has all the major points covered

Done as requested.

Yesterday wrong clicks. Now this should be merged.


Don't collapse-markdown-sections when clicking links

Fixes #4126
Test URLs

Links in headings
Links inside  elements in headings

Screenshot
n/a
Note that the sections can still be toggled by clicking on the "side" of the links (since headings are blocks).
This fix also prevents the toggling of a section when the "anchor links" are clicked (which happens otherwise since they are inside the heading elements).

Probably good! Can you think of any other troublesome situations with content in headers?

I couldn't find any examples on the spot, but there are some readmes where the
 is an image, which is automatically linked by GitHub to the image location. In that case one would actually want the link to be "disabled" so that clicking on the image/logo would toggle the whole ToC. Not sure it's worth the effort though :man_shrugging:

but there are some readmes where the
 is an image, which is automatically linked by GitHub to the image location

Indeed, it's still a regular link though, so it's covered by the current code.

In that case one would actually want the link to be "disabled"

That kinda gives me an idea for a new feature: disable image auto-links if they point to themselves. This would help me distinguish useless auto-links from custom links 🤔 wanna open a feature request?

47 minutes later…

Sup
 dude?
Not
 much

This probably needs to be excluded as well. .closest('a, details')?

Also I think we should add a expand cursor via CSS, I'm thinking something like:
.markdown-body :is(h1, …) {cursor: expand-y or whatever}
.markdown-body :is(a, details) :is(h1, …) {cursor: initial}

Indeed. Currently it doesn't give any visual clue what has happened if one triggers the feature without knowing it.


Upgrade to CUDA Toolkit 12.1 and make it work with VS 12.10+

Installation creates all kinds of errors because tinycudann does not work with CUDA Toolkit 12.1 and VS 12.10+, while VS 12.9. is not available anymore on windows.
As this is not the repository of tinycudann, just replace it with something that's userfriendly on install.

Just as an FYI, tiny-cuda-nn is required for faster speedups. On Linux I have been able to avoid tcnn installation, and use nerfstudio (although almost 1.5x-2. slower).

Installation creates all kinds of errors because tinycudann does not work with CUDA Toolkit 12.1 and VS 12.10+, while VS 12.9. is not available anymore on windows. As this is not the repository of tinycudann, just replace it with something that's userfriendly on install.

for me tinnycudann is working with cuda 12.6


Hook OpenPrinterW failed under X64 platform

Error message:  ANOMALY: use of REX.w is meaningless (default operand size is 64).
My Test Code:
typedef BOOL  (WINAPI* PFNOPENPRINTERW)(
LPWSTR             pPrinterName,
LPHANDLE            phPrinter,
LPPRINTER_DEFAULTSW pDefault
);
PFNOPENPRINTERW fpOpenPrinterW=(PFNOPENPRINTERW)GetProcAddress(LoadLibraryW(L"winspool.drv"), "OpenPrinterW");
BOOL
WINAPI
MyOpenPrinterW(
LPWSTR    pPrinterName,
LPHANDLE  phPrinter,
LPPRINTER_DEFAULTSW pDefault)
{
BOOL Status;
char temp[MAX_PATH]={0x00};
GetModuleFileNameA(NULL,temp,MAX_PATH);
printf("%s[%d] m_sProcessName=%s \n",FILE,LINE,temp);
Status = fpOpenPrinterW (pPrinterName, phPrinter, pDefault);
return Status;
}
int wmain(int argc, WCHAR* argv[])
{
HANDLE hProc = NULL;
HANDLE m_handle=NULL;
if(Mhook_SetHook((PVOID_)&fpOpenPrinterW, MyOpenPrinterW))
{
OpenPrinterW(L"\Brother MFC-7860DN Printer",&m_handle,NULL);
if(m_handle)
CloseHandle(m_handle);
Mhook_Unhook((PVOID_)&fpOpenPrinterW);
}else{
printf("%s[%d].OpenPrinterW hook fail\n",FILE,LINE);
}
return 0;
}

I cannot reproduce this. Which version of winspool.drv do you have?

@lhg19202212 Hi, I'm also having this problem.
Some of the GDI hooks I did work, some of them not, and none of the winspool.drv hooked functions work...

@Bonjour123 see #17

@poizan42  You were right, I was convinced I had the last version, but actually no. Thanks !

Those having subscribed to this issue could maybe help me on this one (or had once the same problem): https://github.com/martona/mhook/issues/25
It's related to printing functions too, as it is about EndDoc..


Upgrade gorm

gorm seems to be at https://github.com/go-gorm/gorm now and has many updates that aren't in the fork you're using.

I didn't see a way to do this without adding all the backend drivers into the plugin.  Gorm changed it's syntax.
See: https://github.com/Smithx10/coredns-pdsql  to have the latest gorm.

migrarte to gorm.io/gorm


RegistrarPool no longer in Get-CsOnlineUser output

Based on the documentation, we could check if user homed online by looking at RegistrarPool parameter, which needs to have a value in the infra.lync.com domain. But Get-CsOnlineUser cmdlet no longer have RegistrarPool in it's output.
So is there another way we could use to check if user is homed online?
Thanks

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

ID: bb2a9717-6565-8443-8833-f7fdce562781
Version Independent ID: db88c4d6-5864-a481-86cf-465feb452d75
Content: Enable users for Direct Routing - Microsoft Teams
Content Source: Teams/direct-routing-enable-users.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

Hi @didadadida93,
I think you should be able to use the attribute named "HostingProvider". This is the one I use.

Hi @didadadida93, thank you for your feedback.
You can look at the parameter that @vlethiec suggests.
@vlethiec thank you for your comment!

awesome, thanks guys @dariomws @vlethiec


node classification [blogcatalog]

Hello,
Could you please share the experimental code of classification of nodes on blogcatalog dataset. It would be very helpful to understand the NSL framework.
Thanks.

We don't have an example that uses the blogcatalog dataset. To understand how the NSL framework can be used, we recommend going through our tutorials.

I was referring to the node classification experiment on blog-catalog in the paper.
What I understood from Figure 1(B)  from the paper is that you follow the edge model (Xi, Xj) i.e two FFNs and in the last layer, you perform the graph regularization. Correct me if I am wrong.
But, in the tutorial of Cora dataset, there is only one FFN with graph regularization which is different what the paper shows.
Please help me understand what I am missing

Graph regularization using NSL is a generic technique and is not tied to the neural network architecture (such as FFNN with a set number of layers). Also, in a graph-regularized model, there is just one neural network/model, and neighbors of samples are passed through the same network as the samples themselves.
Hope this makes sense.


introduce the various enlightenments necessary for working with statically instrumented binaries.

This PR introduces the ability for afl-fuzz, afl-showmap and winafl-cmin to work with binaries that have been statically instrumented with syzygy's afl mode, and its associated documentation.
Cheers

Not sure if I'll be able to hop to work to publish the new binary release with this before my Black Hat / DefCon trip and the subsequent vacation. In case I don't make it, I encourage anyone that wishes to use this to compile this revision themselves and report any issues here.

Addressed the first round of feedback Ivan!
Cheers

Sorry, had to revert. test_static / afl-staticinstr.c do not build on VS 2010 (I know, pretty old but I've been using it so far and don't have the time to setup a different build environment).
DBG_PRINTEXCEPTION_WIDE_C is undefined and I'm getting a lot of syntax errors.

Sorry for the hassle Ivan - do you have the log somewhere? Also, what
target SDK are you using?
Cheers
2017-07-24 4:54 GMT-07:00 ivanfratric<EMAIL_ADDRESS>
Sorry, had to revert. test_static / afl-staticinstr.c do not build on VS
2010 (I know, pretty old but I've been using it so far and don't have the
time to setup a different build environment).
DBG_PRINTEXCEPTION_WIDE_C is undefined and I'm getting a lot of syntax
errors.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ivanfratric/winafl/pull/63#issuecomment-317399289,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABaHRXvxGS2Dkqi19SEd_lX2Re22Yuidks5sRIX6gaJpZM4OgVUX
.

I've looked a bit more at this today, and I fixed a couple of things:

Linking against psapi.lib for older platform (EnumProcessModulesEx / GetModuleBaseName) (https://github.com/0vercl0k/winafl/commit/f2fef1de118a3f127a88b6604523e37f935eeca6#diff-af3b638bc2a3e6c650974192a53c7291R17)

ifdef'd DBG_PRINTEXCEPTION_WIDE_C as it has been introduced in the Win10 SDK (https://github.com/0vercl0k/winafl/commit/f2fef1de118a3f127a88b6604523e37f935eeca6#diff-6e4dc8332d658b228c2e38c22cecfe47R135)

Correct the formatting of https://github.com/0vercl0k/winafl/commit/f2fef1de118a3f127a88b6604523e37f935eeca6#diff-6e4dc8332d658b228c2e38c22cecfe47R318 as it made VS2010 unhappy

All the changes are available at https://github.com/0vercl0k/winafl/tree/dev-staticinstrumentation, so let me know if this works better and I'll open another PR :).
Cheers

There are still a couple of minor issues that prevent test_static from building on older compiler versions:

Declaring variables in loops is not supported in C prior to VC2013 (lots of issues like that in afl-staticinstr.c)
test_static.cpp(89): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
Building the 64-bit version throws afl-staticinstr.h(35): fatal error C1189: #error :  Static instrumentation is only available for 32 bit binaries. Is it possible to modify CMakeLists so that 64-bit test_static won't be built at all rather than throwing an error?

Could you resolve those and submit a new PR?

Thanks for the feedback Ivan - I've addressed the points you raised & the
changes are available here:
https://github.com/0vercl0k/winafl/commit/db3049e0ecc283b8ef65b4591f91b8952d5d2776.
Let me know if this is good and I'll send a new PR!
Cheers
2017-08-10 6:38 GMT-07:00 ivanfratric<EMAIL_ADDRESS>
There are still a couple of minor issues that prevent test_static from
building on older compiler versions:

Declaring variables in loops is not supported in C prior to VC2013
(lots of issues like that in afl-staticinstr.c)
test_static.cpp(89): warning C4530: C++ exception handler used, but
unwind semantics are not enabled. Specify /EHsc
Building the 64-bit version throws afl-staticinstr.h(35): fatal
error C1189: #error : Static instrumentation is only available for 32 bit
binaries. Is it possible to modify CMakeLists so that 64-bit test_static
won't be built at all rather than throwing an error?

Could you resolve those and submit a new PR?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ivanfratric/winafl/pull/63#issuecomment-321553506,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABaHRQ3zLOUR4cRGa1E-Db3zsqQuF7_sks5sWwfogaJpZM4OgVUX
.

Thanks! It builds fine now but I'm having trouble running it on some older configurations. I tried Win10 with VS2015 and Win7 with VS2010 and VS2013. Win10/VS2015 runs fine. However on Win7 with either VS2010 or VS2013 it just locks up when attempting to run the instrumented binary. No idea whether it's the OS or the compiler that's causing the issues. Have you tried compiling/running it on different configurations and any idea what might be causing the issues?
Also on my Windows 7 setup, instrument.exe fails with the following error message:
[0811/161914:ERROR:dia_util.cc(64)] Failed to create Dia object.
I see in https://github.com/google/syzygy/wiki/SyzyASanHowTo that possibly missing msdia120.dll might be an issue, but I do have VS 2013 on that config and it doesn't even work if I copy msdia120.dll in the current directory (also tried with msdia140.dll without success). Any insight?

afl-fuzz locks-up or just the statically instrumented binary? If you set
AFL_NO_SINKHOLE=1, does everything to run properly? I'll investigate this
issue this week-end. I have compiled & tried it on several OSs/compilers
(at least win7, winblue & win10).
For dia, I think you have to register it with 'regsvr32 /s msdia120.dll'
(it's an in-proc COM server IIRC) - does it work better?
Cheers,
Axel
2017-08-11 7:34 GMT-07:00 ivanfratric<EMAIL_ADDRESS>
Thanks! It builds fine now but I'm having trouble running it on some older
configurations. I tried Win10 with VS2015 and Win7 with VS2010 and VS2013.
Win10/VS2015 runs fine. However on Win7 with either VS2010 or VS2013 it
just locks up when attempting to run the instrumented binary. No idea
whether it's the OS or the compiler that's causing the issues. Have you
tried compiling/running it on different configurations and any idea what
might be causing the issues?
Also on my Windows 7 setup, instrument.exe fails with the following error
message:
[0811/161914:ERROR:dia_util.cc(64)] Failed to create Dia object.
I see in https://github.com/google/syzygy/wiki/SyzyASanHowTo that
possibly missing msdia120.dll might be an issue, but I do have VS 2013 on
that config and it doesn't even work if I copy msdia120.dll in the current
directory (also tried with msdia140.dll without success). Any insight?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ivanfratric/winafl/pull/63#issuecomment-321830276,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABaHRTnln2uxeAcHKuwuEtGqdn98UQgoks5sXGZ0gaJpZM4OgVUX
.

I didn't have enough time to figure it out but I think it might have been the compiler (possibly instrument.exe not working correctly with code created by older compilers) because code compiled on my Win10 setup did work on Win7 but the code compiled on my Win7 setup (either VS2010 or VS2013) did not work on either.
I used instrument.exe from https://console.cloud.google.com/storage/browser/syzygy-archive/builds/official/190dbfe74c6f5b5913820fa66d9176877924d7c5/?authuser=0&pli=1 (I planned to include that one in the repo).
I can play with it more next week.

Thanks Ivan!
So I have set-up the following environment: Win7 x86 / VS2010 Express
edition, I have registered the 'msdia140.dll' that ships with the
'instrumenter.exe' binary via 'regsvr32 /s msdia140.dll'. I have been able
to instrument test_static directly from the VM.
I have also tried to launch a small fuzzing job, and indeed it'd fail - I
have investigated and the issue was that the '%zu' flag isn't well
understood by the old compiler/crt, so I've replaced it with a simple '%u'
(static instrumentation implies 32bits, so sizeof(size_t) ==
sizeof(uint32_t) anyway) (
https://github.com/0vercl0k/winafl/blob/dev-staticinstrumentation/afl-staticinstr.c#L318
).
I have also added a small section on how to register msdia140.dll (might
want to include it in the binaries too?):
https://github.com/0vercl0k/winafl/tree/dev-staticinstrumentation#registering-msdia140
.
Hopefully it'll now work perfectly everywhere :).
Cheers
2017-08-12 2:03 GMT-07:00 ivanfratric<EMAIL_ADDRESS>
I didn't have enough time to figure it out but I think it might have been
the compiler (possibly instrument.exe not working correctly with code
created by older compilers) because code compiled on my Win10 setup did
work on Win7 but the code compiled on my Win7 setup (either VS2010 or
VS2013) did not work on either.
I used instrument.exe from https://console.cloud.google.
com/storage/browser/syzygy-archive/builds/official/
190dbfe74c6f5b5913820fa66d9176877924d7c5/?authuser=0&pli=1 (I planned to
include that one in the repo).
I can play with it more next week.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ivanfratric/winafl/pull/63#issuecomment-321967817,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABaHRUTokOqtgeUqWUz63OMD2rXvFWhfks5sXWpmgaJpZM4OgVUX
.

Yes, works perfectly for me now, please submit a PR!

Done :).