add dotnet daily build workflow

https://github.com/compiler-explorer/infra/pull/887#discussion_r1032829794

https://github.com/compiler-explorer/compiler-workflows/actions/runs/3555653570 building now

docker: Error response from daemon: pull access denied for compilerexplorer/dotnet-builder, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

we need this repository too?

No, it's the misc-builder. I'll update and fix. Sorry I didn't spot that in the PR

Take 2: https://github.com/compiler-explorer/compiler-workflows/actions/runs/3555675183

https://github.com/compiler-explorer/compiler-workflows/pull/13

https://github.com/compiler-explorer/compiler-workflows/actions/runs/3555742076

built ✅

amazing!


fix/changed Share to Twitter to X in articles

✨ Codu Pull Request 💻

👉 Please remove the below and replace with your own values, leaving the headers where they are. 👈
Closes #440
Pull Request details:

Changed the "Share to Twitter" to "Share to X" in articles

Any Breaking changes:

None

Associated Screenshots:

@NiallJoeMaher please can you add hacktoberfest and hacktoberfest-accepted flag on this PR, so it can count in my hacktoberfest contributions 🙏🏻


Project specific tests: Microphone

[x] describes and justify tests
[x] explain how to do them
[x] explain what results were

@ffund would it be okay if I used the CMA-4544PF-W microphone instead of the CMEJ-9745-37-p microphone for my individual parts report? The specifications for each are almost identical, however while working with both I have found that the CMA-4544PF-W is easier to work with because the terminal leads are longer than the other microphone. I can mention in my report that I worked with two microphones but ultimately decided to use one over the other. Also, I can  also make it clear that the AD2 data, datasheet screenshots, and software tests are coming from the CMA-4544PF-W microphone.  I am just asking because the CMEJ-9745-37-p was the first choice for my design originally and the CMA-4544PF-W was not.

@computer-lov that's fine, no problem.

I am placing this issue under review. The bullet points in this issue above are covered in section 2 and 3 in my individual parts report.
Link:
https://docs.google.com/document/d/1B9sd3u-u8swBZ98E6752jMQrhfnkgwvYMWnpLR8MzK4/edit?usp=sharing

Reviewed and done


Configuration sub menu is not documented

Document the menu in the Wiki.

Documented this in the wiki. Let me know if something is missing or I should go deeper.


Send the born digital packages into Archivematica

They're sitting in S3: https://console.aws.amazon.com/s3/buckets/wellcomedigitisation-infra/born_digital_migration/?region=eu-west-1&tab=overview
Fixes required:
Split apart:

[x] PPSML/1820
[x] SAMED
~SAADC/1911~
[x] SABIO/2013
~SABMF/1916~
[x] SABSO/1761
[x] SACRC/2290
[x] SAIEA/1322
[x] SAIEA/1755
[x] SASSM/1967
~WF/1148~
~WF/1223~

Known errors:

[ ] GRLIDN/F/35 (#4374)
[x] A bug in "Assign file UUIDs and checksums" (#4375)

Other fixes:

[x] Move SAIEA 1481 to SAIEA/1481/1
[x] Move SAIEA/1897 to SAIEA/1897/1
[x] Move PPIDD/1732 to PPIDD/1732/1
[x] Move SASRH_1580 to SASRH_1580_1

Done!


Investigate - "Error: Automatic publicPath is not supported in this browser"

Consumer is seeing "Error: Automatic publicPath is not supported in this browser" when consuming polywallet npm package.
Steps to Reproduce

Build a default NextJS app
Import polywallet from npm

Possible Solution

Add stuff to webpack config

Can confirm adding publicPath to webpack fixes this specific error however it results in a separate error too.


Problem merging claims when array with JSON

When having a claim of type IdentityServerConstants.ClaimValueTypes.Json (IdentityServer4) with an array of json-object the merging does not take array or JSON into consideration. The following happens:
UserInfoService.getClaims: claims received: { client_chains: Array(2)
0: {Id: 60, Name: "CHAIN 1"}
1: {Id: 59, Name: "CHAIN 2"}
client_stores: Array(1)
0: {Name: "STORE", Id: 1, IsAdmin: true} }

Becomes:
ResponseValidator._processClaims: user info claims received, updated profile:
{ client_chains: {
Id: (2) [60, 59]
Name: (2) ["CHAIN 1", "CHAIN 2"]
}
client_stores: {
Id: 1
IsAdmin: true
Name: "STORE" } }

It should not remove the Array on client_chains and client_stores (as this could have multiple entries on some users) and should not merge together properties on a array with json-objects.

problem seems to be here:
    _mergeClaims(claims1, claims2) {
        var result = Object.assign({}, claims1);

        for (let name in claims2) {
            var values = claims2[name];
            if (!Array.isArray(values)) {
                values = [values];
            }

            for (let i = 0; i < values.length; i++) {
                let value = values[i];
                if (!result[name]) {
                    result[name] = value;
                }
                else if (Array.isArray(result[name])) {
                    if (result[name].indexOf(value) < 0) {
                        result[name].push(value);
                    }
                }
                else if (result[name] !== value) {
                    if (typeof value === 'object') {
                        result[name] = this._mergeClaims(result[name], value);
                    }
                    else {
                        result[name] = [result[name], value];
                    }
                }
            }
        }

        return result;
    }

Problem can be fixed by adding a setting mergeClaims and doing
response.profile = this._settings.mergeClaims ? this._mergeClaims(response.profile, claims) : Object.assign({}, response.profile, claims);

Although i dont know if the wanted behaviour is right in _mergeClaims? If that is changed it might break others solutions?

Can you show me the JSON in the id_token or the response from the user info endpoint?

I'm running into a similar issue in v1.9.1, I believe the issue was non-existent on 1.6.1 as I only noticed the problem after recently upgrading. My userinfo endpoint result is:
{
  "sub": "123456",
  "name": "Test",
  "family_name": "User",
  "given_name": "Test User",
  "preferred_username": "test",
  "profile": "http://dev.example.com/admin/profile/test",
  "picture": "http://dev.example.com/public/image/123456",
  "email"<EMAIL_ADDRESS>  "email_verified": true,
  "phone_number": "+61424182433",
  "phone_number_verified": false,
  "social": [
    {
      "provider": "facebook",
      "linked": false,
      "access_token": null
    },
    {
      "provider": "linkedin",
      "linked": false,
      "access_token": null
    },
    {
      "provider": "twitter",
      "linked": false,
      "access_token": null
    },
    {
      "provider": "google",
      "linked": false,
      "access_token": null
    },
    {
      "provider": "fitbit",
      "linked": false,
      "access_token": null
    },
    {
      "provider": "strava",
      "linked": false,
      "access_token": null
    }
  ]
}

the social claim gets merged and ends up looking like:
{
  "provider": [
    "facebook",
    "linkedin",
    "twitter",
    "google",
    "fitbit",
    "strava"
  ],
  "linked": false,
  "access_token": null
}

Has to do with the changes in this PR/commit: #754 https://github.com/IdentityModel/oidc-client-js/commit/510d2c569bbe3ba63ef35c188f96ed7e56c7431f

@Cronkan

@brockallen It's the same as @dejan9393 but when different values they get grouped in arrays.
The array itself containg objects is replaced by one object, with grouped properties.
{
    "chains": [
        {
            "id": 111,
            "name": "OneChain"
        },
        {
            "id": 222,
            "name": "TwoChain"
        }
    ],
    "stores": [
        {
            "id": 1,
            "isAdmin": true,
            "name": "STORE"
        }
    ]
}

Becomes
{
    "chains": {
        "Id": [
            111,
            222
        ],
        "Name": [
            "OneChain",
            "TwoChain"
        ]
    },
    "stores": {
        "Id": 1,
        "IsAdmin": true,
        "Name": "STORE"
    }
}

Appear to be having a similar issue that @dejan9393 had, but with v1.10.1.
My social claim is currently returning the same as his post merge.

Any update on this issue?

I experiencing the same issue in 1.10.1, after upgrading from 1.6.1.
The problem with mergeClaims that it alters the claims in such a way that you cannot rebuild it to the original format, basically it' losing data. Here is one example:
claims:
[
    {
      "GUID": "6ae5ae43-7540-470d-a081-2cb6abb82e4f",
      "Name": "Official",
      "Suspended": false,
      "Type": 2,
      "LinkUserUID": 43,
      "LinkOpUID": null
    },
    {
      "GUID": "f20b4d46-8632-4e23-ac78-483b1101b17e",
      "Name": "RO",
      "Suspended": false,
      "Type": 2,
      "LinkUserUID": 2,
      "LinkOpUID": null
    },
    {
      "GUID": "94ebf070-03b5-410c-ac33-e62442e7c652",
      "Name": "A+T",
      "Suspended": false,
      "Type": 2,
      "LinkUserUID": 1,
      "LinkOpUID": null
    },
    {
      "GUID": "9f6552ae-d526-4793-b2e9-676d98e883fe",
      "Name": "A+",
      "Suspended": false,
      "Type": 3,
      "LinkUserUID": 1,
      "LinkOpUID": null
    },
    {
      "GUID": "4966ad58-a662-44d9-9136-1b079ae264fb",
      "Name": "A",
      "Suspended": false,
      "Type": 4,
      "LinkUserUID": null,
      "LinkOpUID": 1
    },
    {
      "GUID": "15ac9280-7bbe-4a52-8aad-850439bf2058",
      "Name": "L",
      "Suspended": false,
      "Type": 1,
      "LinkUserUID": null,
      "LinkOpUID": 1
    }
  ]
}

After response.profile = _this2._mergeClaims(response.profile, claims) it becomes:
{
    "GUID": [
        "6ae5ae43-7540-470d-a081-2cb6abb82e4f",
        "f20b4d46-8632-4e23-ac78-483b1101b17e",
        "94ebf070-03b5-410c-ac33-e62442e7c652",
        "9f6552ae-d526-4793-b2e9-676d98e883fe",
        "4966ad58-a662-44d9-9136-1b079ae264fb",
        "15ac9280-7bbe-4a52-8aad-850439bf2058"
    ],
    "Name": [
        "Official",
        "RO",
        "A+T",
        "A+",
        "A",
        "L"
    ],
    "Suspended": false,
    "Type": [
        2,
        3,
        4,
        1
    ],
    "LinkUserUID": [
        43,
        2,
        1,
        null
    ],
    "LinkOpUID": 1
}

If I try to map back to the original, it's not possible. See for example the arrays Type,LinkUserUID they have the length 4 instread of 6, so it's not possible to correlate them with arrays GUID,Name`

Can confirm this is still an issue at this time.
Our "fix" was using string keys/serialise the data as an object instead of an array on the backend, then use Object.values(claimObjectValue) to get a straight array back again in js.
This will not be a possible fix for everyone - nor do we like it ourselves.

Yeah so my fix was to just disable mergeClaims, but nothing happened to my PR so it's a bit outdated now. Why is it even needed @brockallen ?

Hello, is there any progress on this topic? I can confirm, that the bug is there and claims are wrongly merged.

I added my proposition of the fix. Please check my pull request with simplified merge logic: https://github.com/IdentityModel/oidc-client-js/pull/1261
To authors:
Please take a look at that issue asap, because it's a big blocker for the functionality. Thank you! :)

We've analysed the function further here. I put the function up as an interview question to annotate it, and had it vetted by a couple of colleagues. There are more issues than just the merging of arrays.
PR #862 Evades the issue by just doing a shallow merge - which is a good option to have, but doesn't fix the code in question
PR #1261 Makes the function a shallow merge, combining but not deduplicating values in an array if they collide
We might be wrong, but the following snippet;
if (!result[name]) {
    result[name] = [];
}

Also causes attributes with falsy values (0 and false) in claims1 to be overwritten - which I don't think is something you want either.
So neither PR available to "fix" this is really complete in that sense.
The algorithm here to merge objects, retain non-duplicate values, seems fairly custom to fill a specific role but I think just a well-vetted deep merge should suffice. Maybe having an option to pass a merge function - with the current implementation being the default - could provide a good backward- and forward-compatible fix.
But I think it is up to @brockallen to determine what the actual behaviour should be / what use case it is supposed to fill.

That is why I noted that this merge introduced a bug back on https://github.com/IdentityModel/oidc-client-js/commit/510d2c569bbe3ba63ef35c188f96ed7e56c7431f
Can we please get this reverted or at least have the ability to switch it off @brockallen?
We are currently having to maintain a private fork, but it seems others would benefit from that version too if this can’t be resolved here.... which would be ideal!

We've analysed the function further here. I put the function up as an interview question to annotate it, and had it vetted by a couple of colleagues. There are more issues than just the merging of arrays.
PR #862 Evades the issue by just doing a shallow merge - which is a good option to have, but doesn't fix the code in question
PR #1261 Makes the function a shallow merge, combining but not deduplicating values in an array if they collide
We might be wrong, but the following snippet;
if (!result[name]) {
    result[name] = [];
}

Also causes attributes with falsy values (0 and false) in claims1 to be overwritten - which I don't think is something you want either.
So neither PR available to "fix" this is really complete in that sense.
The algorithm here to merge objects, retain non-duplicate values, seems fairly custom to fill a specific role but I think just a well-vetted deep merge should suffice. Maybe having an option to pass a merge function - with the current implementation being the default - could provide a good backward- and forward-compatible fix.
But I think it is up to @brockallen to determine what the actual behaviour should be / what use case it is supposed to fill.

Yes, sorry for the delay. I've added the mergeClaims option. It defaults to false, meaning this behavior will revert to the way it used to. Having looked at it all, I don't think the original PR should have even been merged (#754) -- that was my fault (probably due to a lack of time/scrutiny here).

Yes, sorry for the delay. I've added the mergeClaims option. It defaults to false, meaning this behavior will revert to the way it used to. Having looked at it all, I don't think the original PR should have even been merged (#754) -- that was my fault (probably due to a lack of time/scrutiny here).


PuppetWeb loses event listeners when resetting

Why setImmediate needed when removing listeners of the bridge in PuppetWeb.quit(). It seems a bug when resetting puppet. It causes the bridge to lose some event listeners like logout.
Wechaty version: 0.14.4
public initWatchdogForPuppet(): void {
    log.verbose('PuppetWeb', 'initWatchdogForPuppet()')

    const puppet = this
    const dog    = this.puppetWatchdog

    // clean the dog because this could be re-inited
    dog.removeAllListeners()

    puppet.on('watchdog', food => dog.feed(food))
    dog.on('feed', food => {
      log.silly('PuppetWeb', 'initWatchdogForPuppet() dog.on(feed, food={type=%s, data=%s})', food.type, food.data)
      // feed the dog, heartbeat the puppet.
      puppet.emit('heartbeat', food.data)
    })

    dog.on('reset', async (food, timeout) => {
      log.warn('PuppetWeb', 'initWatchdogForPuppet() dog.on(reset) last food:%s, timeout:%s',
                            food.data, timeout)
      try {
        await this.quit()
        await this.init()
      } catch (e) {
        puppet.emit('error', e)
      }
    })
  }

public async quit(): Promise<void> {
    log.verbose('PuppetWeb', 'quit()')

    const off = this.state.off()
    if (off === 'pending') {
        const e = new Error('quit() is called on a PENDING OFF PuppetWeb')
        log.warn('PuppetWeb', e.message)
        this.emit('error', e)
        return
    } else if (off === true) {
        log.warn('PuppetWeb', 'quit() is called on a OFF puppet. return directly.')
        return
    }

    log.verbose('PuppetWeb', 'quit() make watchdog sleep before do quit')
    this.puppetWatchdog.sleep()
    this.scanWatchdog.sleep()

    this.state.off('pending')

    try {
      await this.bridge.quit()
      // register the removeListeners micro task at then end of the task queue
      setImmediate(() => this.bridge.removeAllListeners())
    } catch (e) {
      log.error('PuppetWeb', 'quit() exception: %s', e.message)
      Raven.captureException(e)
      throw e
    } finally {
      this.state.off(true)
    }
  }

public async initBridge(profile: Profile): Promise<Bridge> {
    log.verbose('PuppetWeb', 'initBridge()')

    if (this.state.off()) {
      const e = new Error('initBridge() found targetState != live, no init anymore')
      log.warn('PuppetWeb', e.message)
      throw e
    }

    const head = config.head
    // we have to set this.bridge right now,
    // because the Event.onXXX might arrive while we are initializing.
    this.bridge = new Bridge({
      head,
      profile,
    })

    this.bridge.on('ding'     , Event.onDing.bind(this))
    this.bridge.on('error'    , e => this.emit('error', e))
    this.bridge.on('log'      , Event.onLog.bind(this))
    this.bridge.on('login'    , Event.onLogin.bind(this))
    this.bridge.on('logout'   , Event.onLogout.bind(this))
    this.bridge.on('message'  , Event.onMessage.bind(this))
    this.bridge.on('scan'     , Event.onScan.bind(this))
    this.bridge.on('unload'   , Event.onUnload.bind(this))

    try {
      await this.bridge.init()
    } catch (e) {
      log.error('PuppetWeb', 'initBridge() exception: %s', e.message)
      await this.bridge.quit().catch(console.error)
      this.emit('error', e)

      Raven.captureException(e)
      throw e
    }

    return this.bridge
  }

When puppet's watchdog receives reset, pupput.quit() and puppet.init() will be called. But there is setImmediate(() => this.bridge.removeAllListeners()) in quit(). It means this.bridge.removeAllListeners() will be called after puppet.init() called. That is, it will remove the new bridge's listeners.
Steps to reproduce

Start a wechaty bot.
Kill chrome process.
PuppetWeb will receive reset and chrome will recover after one minute. And then you won't receive logout and message any more.

It works well after I remove setImmediate

Hello @hkusb!
Thanks for reporting this.
I had just checked the source code and I believe this bug had been removed for the latest version of Wechaty/PuppetPuppeteer.
Could you please try with the Wechaty v0.18 or above version?
Please let me know the result, and if the problem still exists, please file an issue at the PuppetPuppeteer Repository at https://github.com/Chatie/wechaty-puppet-puppeteer because it had been moved to its new home!
BTW: I should warn you before you get started is that there has many BREAKING CHANGES between the v0.14 and v0.16. You can get more information from the release notes at https://github.com/Chatie/wechaty/releases/tag/v0.16.0 and our blog at https://blog.chatie.io/migrating-wechaty-v0.14-to-v0.18-guide-from-puppeteer-to-padchat-en/

Update:
For your convenience, I had removed the setImmediate in v0.14 branch, it should have been fixed with Wechaty v0.14.12 or above versions.
Please feel free to let me know if there have any other problems with it.

@hkusb Could you please confirm that whether this issue is resolved by my modification?

Sorry, I've just seen it. It works very well for me. And I'm sorry for that I've not tried it on v0.18. I'll try it later.

Sorry, I've just seen it. It works very well for me. And I'm sorry for that I have no time to try it on v0.18 recently. I'll try it later.

Thank you for the confirmation.
I'll close this issue and please file a new issue if there's any problem with the version v0.18 or above.


Unable to login to premium servers.

I'm not able to use Pakkit with premium servers.
I have granted the checkbox to read my .minecraft data and it doesn't require me ever again.
The error I got in the spigot server is: lost connection: Failed to verify username!
And in the client side is: Connection closed by server
Fact: I have more than one logged-in accounts on my profile.json, so, the problem may come from there.

If you have a new launcher version it might be because they moved credentials to launcher_accounts.json, does that file exist for you?

If you have a new launcher version it might be because they moved credentials to launcher_accounts.json, does that file exist for you?

ls -la | grep .json

-rw-r--r-- 1 Nurio 197121   1007 Jan 24 10:59 launcher_accounts.json
-rw-r--r-- 1 Nurio 197121    386 Jan 24 10:19 launcher_msa_credentials.json
-rw-r--r-- 1 Nurio 197121   4763 Jan 24 11:00 launcher_profiles.json
-rw-r--r-- 1 Nurio 197121    221 Jan 24 10:19 launcher_settings.json
-rw-r--r-- 1 Nurio 197121    524 Jan 23 08:25 launcher_ui_state.json
-rw-r--r-- 1 Nurio 197121    131 Jan  1 01:41 realms_persistence.json
-rw-r--r-- 1 Nurio 197121    108 Jan 24 10:56 usercache.json

ls -la | grep .json

-rw-r--r-- 1 Nurio 197121   1007 Jan 24 10:59 launcher_accounts.json
-rw-r--r-- 1 Nurio 197121    386 Jan 24 10:19 launcher_msa_credentials.json
-rw-r--r-- 1 Nurio 197121   4763 Jan 24 11:00 launcher_profiles.json
-rw-r--r-- 1 Nurio 197121    221 Jan 24 10:19 launcher_settings.json
-rw-r--r-- 1 Nurio 197121    524 Jan 23 08:25 launcher_ui_state.json
-rw-r--r-- 1 Nurio 197121    131 Jan  1 01:41 realms_persistence.json
-rw-r--r-- 1 Nurio 197121    108 Jan 24 10:56 usercache.json

Yes, OK, that's the problem then

Yes, OK, that's the problem then

I'll try to fix this soon

I'll try to fix this soon

Is it fixed yet?

Not yet, but its in the works

This PR will be closed when its fixed.

Do you mean issue?

Yes I do

https://github.com/PrismarineJS/node-minecraft-protocol/pull/826 upstream should fix it if it gets merged


Use Reference type for cluster-scoped references

Description of your changes

We are currently using corev1.ObjectReference for many cluster-scoped
resources. This includes more information than needed and encourages
using helper methods that may depend on other fields in the type that we
do not intend to be utilized. This updates cluster-scoped reference
fields to use the Reference type, which only has a name field.
Signed-off-by: hasheddan<EMAIL_ADDRESS>Partial solution for #49
Note that this will also require an update to crossplane-tools as mentioned in the issue.
An example of why this change is necessary is that we fail to get a provider when we use a helper function like meta.NamespacedNameOf() and the user has provided an extraneous namespace in the providerRef.
Slack thread: https://crossplane.slack.com/archives/CEG3T90A1/p1593112864471900
Checklist

I have:

[x] Run make reviewable to ensure this PR is ready for review.
[x] Ensured this PR contains a neat, self documenting set of commits.
[ ] Updated any relevant documentation, examples, or release notes.
[ ] Updated the RBAC permissions in clusterrole.yaml to include any new types.

I need to update interfaces here also

Done :heavy_check_mark:

@muvaf updated :+1:


Add model_config to model_spec and cache

This PR defines types for different model configurations (column, sphere, box), and adds model_config into model_spec and cache. This makes it easier to setup configuration-dependent functionalities.

bors try

bors r+


net/frr: Add plain password authentication to OSPF

Some legacy devices needs plain authentication, quite simple

@mimugmail thanks!


feat: Webhook Validation

Description
Validates webhooks from the relay so that only valid webhooks are processed
How Has This Been Tested?
N/a needs integrations tests (future PR)
Due Dilligence

[x] Breaking change
[x] Requires a documentation update
[ ] Requires a e2e/integration test update

Struggling with some of the request issues with the middleware, will continue looking tomorrow.


E2: Add PlayerEnteredVehicle and PlayerLeaveVehicle hook/event functions

I have a way to work-around (E2 hook implementation) for these two hooks, but it requires E2 to run every tick (it is such CPU waste). Honestly, it would perform much better if this were builtin functionality..
I am talking about:
GM:PlayerEnteredVehicle
GM:PlayerLeaveVehicle
Add new E2 hook/event functions:
runOnPlayerEnteredVehicle(number): If set to 1, the E2 chip will run when a player enters a vehicle.
runOnPlayerLeaveVehicle(number): If set to 1, the E2 chip will run when a player leaves a vehicle.
Optionally, provide these two overloads to only run for specified Vehicle entity:
runOnPlayerEnteredVehicle(entity, number): If set to 1, the E2 chip will run when a player enters the specified vehicle.
runOnPlayerLeaveVehicle(entity, number): If set to 1, the E2 chip will run when a player leaves the specified vehicle.
And then add a few more E2 functions to be able to get the information from the hook/event:
number=playerEnteredVehicleClk(): Returns whether the execution was run because of "runOnPlayerEnteredVehicle".
number=playerLeaveVehicleClk(): Returns whether the execution was run because of "runOnPlayerLeaveVehicle".
entity=lastPlayerEnteredVehicle(): Returns the last player who entered vehicle.
entity=lastEnteredVehicle(): Returns the last vehicle the player entered.
entity=lastPlayerLeaveVehicle(): Returns the last player who left a vehicle.
entity=lastLeaveVehicle(): Returns the last vehicle the player left.
React to this issue:
Vote 👍 to support; otherwise 👎
edited (twice; READ IT):
Please vote wisely, and think twice:

Do you really want E2s to run every tick on your server just to be able to work with those events?
Do you really want E2s to depend on Pod Controller (which require you to give PP access before it can be linked to your vehicle), just to be able to work with those events?

If your answer is "no" (negative) to either of the questions (you are expected to vote 👍); otherwise, we count on you as 👎. Also, if you are not supporting this, it means you are promoting/encouraging bad/inefficient E2 code.
Read the comments below!
So, I myself support this for several obvious reasons.
Later, I may opensource the E2 (runOnTick) implementation so you can try it yourself..
I am working on this. Expect PR soon.

pod controller has an output for this, you can tick chips on input changes
use some wires dammit.
👎

@TomyLobo Yeah, correct. But - The thing is, I don't want E2s to depend on Pod Controller (it also adds to the time for setup/installation: spawn pod, link it, wire it, gosh...), so there I cases where I want E2 to work independently.

Oh it already hit 8 support-votes. Those who don't support this addition to E2, let us hear your arguments please.
I'll work on this, expect the PR soon.

pod controller has an output for this, you can tick chips on input changes
use some wires dammit.

Also, your argument just doesn't fit there. Let me point out an example: What if I can't use Pod Controller because of prop-protection, you should know that linking pod controller to someone's vehicle requires PP access.
As you could probably think of this, do you want to give PP to someone just so they can link Pod Controller to your vehicle? (😆 LOL...)
@TomyLobo So yeah, thanks for increasing my arguments here, now I have two. You may want to correct your vote into +1.

Still waiting for a good "not support" reason, let me hear your arguments; referring to people who voted -1.
So far I didn't hear any good reason for "not supporting this". :)

do you want to give PP to someone just so they can link Pod Controller to your vehicle?
If I have to, then I will. Nobody should be linking anything to my vehicle without permission.

The approach being taken here is too aggressive. How many of those people who you asked to vote +1 actually considered the technical implications of adding this, as opposed to simply clicking on a link on Discord? A developer's opinion has significantly more weight and consideration than that of a user, you know. You can't just say, "but 8 is greater than 4!"
If you would like to have your ideas seriously considered, then my suggestion is to lighten your tone and speak in a more formal, propositional manner, as opposed to making it sound like a call to arms every time a feature you would like is not available. It is nothing personal; just adhere to general guidelines and maintain a level of sanity and respect. Thank you.

If I have to, then I will. Nobody should be linking anything to my vehicle without permission.

Really? Wow a bad one. With now-a-days shitty prop-protection in most build servers, I don't think you would..

If you would like to have your ideas seriously considered, then my suggestion is to lighten your tone and speak in a more formal, propositional manner, as opposed to making it sound like a call to arms every time a feature you would like is not available. It is nothing personal; just adhere to general guidelines and maintain a level of sanity and respect. Thank you.

Fine - Okay then, please let me tell you an example to the previous statement to what you have just said:
Lets say you do give PP to random guys, it means they could use tools like advdupe (i.e. area copy your contraption without your knowledge) and even upload/download to your E2s (i.e. "remoteupload" extension), and practically use any tool on any of your entities... But to make it all even worse: After that, you find that your random friend disconnects right away from the server (since he/she had just stolen some of your stuff), because as I have said, thanks to shitty prop-protections (yeah "Nadmod" is being one of them; just to name one of them), now when a player is gone you can't even "unfriend" the random guy.
And there you have it, smell to frustration to me.  If he/she is any smart, he would be using a temporary Steam account too, meaning you are completely screwed.. Without going any further, I will just stop here, because you are obviously and clearly not on the "bright" side here. Hopefully that "lightens" you now :)

Its funny how you are always completely dismissive of opposing viewpoints, while pushing your arguments as infallible. All in a constantly passive agressive and derogatary tone. At least you are not straight up insulting people in this thread (yet).

You may want to correct your vote into +1.

Without going any further, I will just stop here, because you are obviously and clearly not on the "bright" side here. Hopefully that "lightens" you now :)

If you are not supporting this, it means you encourage bad/inefficient E2 code.

I am against this, as you can (as already mentioned) already wire the pod controller or - if you are not using a pod controller for whatever reason - just a if(changed(Pod:driver())){}.
I fail to see why a <20 ops statement would be bad code or even make a noticable difference in actual projects.
I think E2 is already way more complex than it was ever designed to be, no need to bloat it with more functions of fringe use (this seems to apply to almost all issues and PRs created by you).

if you are not using a pod controller for whatever reason - just a if(changed(Pod:driver())){}.

Yes, but the lowest ops count might be runOnKeys(Player,1) followed by checking if they pressed "E", followed by a short timer to give the source engine time to insert them into the vehicle, followed by a check to see if they are sitting in the vehicle you want. That way, there's no runOnTick or interval to check the driver constantly.

@Divran So, you want to join the "no-support" team, with adosikas and 👎 company, okay cool (but so far they are losing, no good arguments on their side). Let me continue this topic then:

Yes, but the lowest ops count might be runOnKeys(Player,1) followed by checking if they pressed "E", followed by a short timer to give the source engine time to insert them into the vehicle, followed by a check to see if they are sitting in the vehicle you want.

Would consider that a bad "hack". Oh, bad one, are you wondering why I said "bad"? No problem, let me lighten you to what you have just said:

Completely didn't consider custom key binds: Not everyone have their +use command bound to the default - E key.
Completely didn't consider addons: Players can enter a vehicle via context menu and clicking "Enter Vehicle" (Rubat's addon provides this functionality, it uses net messages which can be send via clientside GLua from any distance).
Completely didn't consider Wire User entity (... LOL, gotcha! 😆).
I forgot what I wanted to say here, but whatever, I have already pointed out 3 valid arguments against using the "runOnKeys" E2 implementation for this type of events.

In short: What you have described will most likely produce the unexpected behavior - I know that. I have already tried it via "runOnKeys" way, and it just doesn't work as good as "runOnTick" way.
So, I will repeat it, like I have already said:
The only right way of doing it (within current E2 code) is to use runOnTick (or very short interval, or depend on Pod Controller as input) implementation. Loop through the vehicles "watch list", check if entity:driver() has changed and then fire the appropriate callback function.
Also, that's just a lot of "boilerplate" code too, seriously.
It is obvious that "no-support" is losing the battle here, just saying, but come on give some proper arguments for "no-support" finally. Think twice before posting your arguments.
Referring to the "no-support" team: Surrender the battle?

I think this has gone too far, can someone please close and lock this issue; this is toxic and getting nobody anywhere.
Please stop, the core developers of WM have said no. It's not worth upsetting everyone over it, your protest was written down, and examined. That's enough.


Removing exclamation marks from docs

I want to remove the marks so folks are more likely to try out and use OSBA and we can get more feedback.
This patch keeps the "alpha" wording in.
Replaces #344

No CI, docs only.


ODO cannot access S3 with S3ResponseError: 403 Forbidden

I am using odo library to transfer a pandas dataframe to S3. However I am getting following error :
    import pandas as pd
    df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])
    odo(df,'s3://path_to_s3_folder')
    S3ResponseError: S3ResponseError: 403 Forbidden
    <?xml version="1.0" encoding="UTF-8"?>
    <Error>AccessDenied<Message>Anonymous access is forbidden for this operation</Message><RequestId>F5958774D56AD29E</RequestId><HostId>zOH8JOxpSgB5Scgc/YrtHO1+e9lXoKAF89IhRSeAiSoGHAJxyjXKBVFIYETeO4gSLZOUgXmwKLM=</HostId></Error>

Now I have the AWS credentials setup correctly as I can see in my ~/.aws/credentials file
    cat credentials
    [default]
    aws_access_key_id = XXXXX
    aws_secret_access_key = XXXXXXXXXX

The aws cli works correctly for me and I can run aws ls and cp commands correctly (I guess this means I do have the required permissions).
    aws s3 ls s3://path_to_s3

Also boto3 is able to access s3 resources and does not give an error.
    import boto3
    s3 = boto3.resource('s3')
    for bucket in s3.buckets.all():
        print(bucket.name)

What would be possible wrong/missing in the configuration ?

I went further:
from odo import resource
from os import environ

env = os.environ

resource(
    "s3://path/to/file/*.csv.gz",
    aws_access_key_id=env["AWS_ACCESS_KEY_ID"],
    aws_secret_access_key=env["AWS_SECRET_ACCESS_KEY"]
)

Data is there, can access it via HTTP, but got the same error message as OP.


improve version from Makefile

Codecov Report

Merging #101 (6be3869) into main (84dbf1a) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #101      +/-   ##
==========================================
- Coverage   54.80%   54.77%   -0.03%
==========================================
  Files          37       37
  Lines        2332     2333       +1
==========================================
  Hits         1278     1278
- Misses        981      982       +1
  Partials       73       73

Flag
Coverage Δ

unittests
54.77% <0.00%> (-0.03%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cmd/flowlogs2metrics/main.go
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


a community testnet defiads node

I started setting up a defiads server (using the wonderful https://bitclouds.sh service) so that there will at least be an always-on testnet server for us to connect to.
Unfortunately, there seems to be something broken that I am having a hard time debugging.
defiads@alphard:~/defiads$ target/release/defiads --log-level TRACE &
[1] 20739
defiads@alphard:~/defiads$ Starting defiads, connected to testnet network.
Observe progress in the log file: /home/defiads/.defiads/testnet/defiads.log
Warnings and errors will be also printed to stderr.

defiads@alphard:~/defiads$ tail -f ~/.defiads/testnet/defiads.log
23:58:37 [ INFO] Wallet balance: 0 satoshis 0 available
23:58:37 [ INFO] reaching out for DNS seed...
23:58:37 [TRACE] (13) mio::poll: [/home/defiads/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.6.19/src/poll.rs:787] registering with poller
23:58:37 [TRACE] (13) mio::poll: [/home/defiads/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.6.19/src/poll.rs:787] registering with poller
23:58:37 [TRACE] (14) mio::poll: [/home/defiads/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.6.19/src/poll.rs:787] registering with poller
23:58:37 [ INFO] received 114 DNS seeds
23:58:37 [ INFO] reaching out for defiads seed...
23:58:37 [ INFO] received 0 defiads seeds
23:58:37 [TRACE] (17) mio::poll: [/home/defiads/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.6.19/src/poll.rs:787] registering with poller
23:58:37 [ INFO] listen to <IP_ADDRESS>:21866
23:59:38 [ WARN] can not poll content as no defiads peers are connected

Normally (for example, when running this on a laptop), the tail -f  command shows that there is a lot of activity as the SPV node comes into sync with the bitcoin network. Yet, for some reason it seems to be stalled.
I know next to nothing about rust and the underlying bitcoin-rust toolchain that is being used here. Any ideas/help is much welcome!

As a quick followup, there is a chance that this is not a rust issue or a defiads issue, but instead a sysadmin issue. It seems quite odd though that the syncing process works fine on a laptop but not on a brand new VPS.

also, for additional reference, here is some output that is seen when running the same commands on a laptop. Hope it is helpful:
00:17:58 [ INFO] new chain tip at height 1607065<PHONE_NUMBER>0002c2e81cea77828f9961785e7fb509c9eedfbd535350b175954c
00:17:58 [ INFO] new chain tip at height 1607066<PHONE_NUMBER>0002ed14479898efc958ceb8c4b2b8df8b0d1c0b00b8da0392f7c3
00:17:58 [ INFO] new chain tip at height 1607067<PHONE_NUMBER>00032dd607b522d5226455d1005ae5ff00ecfe19ad3ace5758c4e6
00:17:58 [ INFO] received 1067 headers new tip=000000000000032dd607b522d5226455d1005ae5ff00ecfe19ad3ace5758c4e6 from peer=bitcoin-3
00:18:22 [DEBUG] (18) defiads::blockdownload: asked 138 blocks from peer=bitcoin-1
00:18:23 [DEBUG] (18) defiads::store: processing block 1606930<PHONE_NUMBER>0b45d796e8fa0d5a3232c21559c7121d11ac6902e3f714513fc95b
00:18:23 [DEBUG] (18) defiads::blockdownload: still waiting for blocks from peer=bitcoin-1
00:18:23 [DEBUG] (18) defiads::store: processing block 1606931<PHONE_NUMBER>0001fbfc139b3a18b3f92aadefd9eda4d54b4d8d6b819c1f732ee0
00:18:23 [DEBUG] (18) defiads::blockdownload: still waiting for blocks from peer=bitcoin-1
00:18:23 [DEBUG] (18) defiads::store: processing block 1606932<PHONE_NUMBER>000377a4af79b8ddfac887249a84d17d0e8b25aabdbd2239a15408
00:18:23 [DEBUG] (18) defiads::blockdownload: still waiting for blocks from peer=bitcoin-1
00:18:23 [DEBUG] (18) defiads::store: processing block 1606933<PHONE_NUMBER>000365188883daec6dca9191aef41e5ddf5f7ae3d965fbbdc293b8
00:18:23 [DEBUG] (18) defiads::blockdownload: still waiting for blocks from peer=bitcoin-1
00:18:23 [DEBUG] (18) defiads::store: processing block 1606934<PHONE_NUMBER>00034fb0b9bd384bf380625169838f18ea9a04e69392a7257f5ea1
00:18:23 [DEBUG] (18) defiads::blockdownload: still waiting for blocks from peer=bitcoin-1
00:18:23 [DEBUG] (18) defiads::store: processing block 1606935<PHONE_NUMBER>0003cfef75315b343f9279391385015eea6b644f7bc182b774fdf3

Note that the SPV syncing process is progressing whereas in the VPS it seems stalled :-/

Still attempting to resolve this issue. I tried to revert back to the release that was tagged 0.1.0, and the same problem persists. I'll try downgrading rust next to match the version on the laptop (where defiads does appear to work). If the issue persists, then it must, or so it seems, be some failure in sysadmin skills on my part, such as needing to manually open some ports?

Ok, neither of the above two things fixed the issue. Additionally setting ufw firewall policies to allow the appropriate ports did not help.
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
18333/tcp                  ALLOW IN    Anywhere
21866/tcp                  ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
18333/tcp (v6)             ALLOW IN    Anywhere (v6)
21866/tcp (v6)             ALLOW IN    Anywhere (v6)

I've also tried this on two different VPS providers now, so the problem does not seem specific to a particular VPS provider.

Long day's journey into night and I think I may have (partially) resolved this issue. For lack of anything else to try, and not knowing enough bout rust to profile things, I wondered if the VPS simply didn't have enough memory. So, after trying to run at test defiads server on a VPS with 8gb of memory (as opposed to 1gb and 2gb that were available on the other VPS instances I was trying), and alas, it seems to be working.
So, while I have no idea what the "bare minimum" memory requirements are for defiads right now, it does seem that having a server with 8gb of memory seems to be enough.
I'll work on getting a publicly accessible testnet server up and running for us and will close this issue (and submit updates to the documentation) once it has been done.

Ok, we now have a community testnet server thanks to a slightly custom setup from the people at bitclouds.sh
If you choose to run a defiads node, please follow the instructions in the README.md file and run the node with the command target/release/defiads --defiads-peers <IP_ADDRESS>:21866 as this will instruct your node to reach out to the community testnet node for syncing.
If you would like to help support the operation of the server, you can query how much time the server has been funded for by taking the following steps:

curl https://bitclouds.sh/status/avior-1 this will tell you how much time remains before the server will be decommissioned.
curl https://bitclouds.sh/topup/avior-1/10000 will provide you with an invoice for 10,000 satoshis. When paid, more time will be bought for the server (current prices are approx 66 satoshis/hr).
re-run curl https://bitclouds.sh/status/avior-1 to see the that the time remaining has been increased.
Thanks!


Signalling settings

New page of control panel information.
Have taken the old information from the official documentation and updated it with all of the new + removed out of date elements.

Made all proposed changes. Let me know if it's up to snuff!


TypeError: interaction?.isChatInputCommand is not a function

While running the slash Command it's not working
This saying -
Message to Console
An [unhandledRejection] has occurred.
TypeError: interaction?.isChatInputCommand is not a function
Source: process.on('unhandledRejection') @ 9:46:47 PM GMT+0530•Today at 9:46 PM
This the code I am using inside a command handler: commands/tictactoe.js
const { SlashCommandBuilder, Client, CommandInteractionOptionResolver, Options } = require("discord.js");
const TicTacToe = require("discord-tictactoe");
const game = new TicTacToe({ language: "en", commandOptionName: "user"}); // change here
module.exports = {
name: "tictactoe",
description: "Play a game of tictactoe",
data: new SlashCommandBuilder()
.setName("tictactoe")
.setDescription("Play a game of TicTacToe!")
.addUserOption((option) => option.setName("user").setDescription("Select user to play with!").setRequired(false)),
/**
* @param {Client} client
* @param {CommandInteraction} interaction
* @param {CommandInteractionOptionResolver} options
*/
async  run(interaction, client, options) {
game.handleInteraction(interaction)
}
}

Hello @suman9725!
Which version of discord-tictactoe and discord.js are you using?

Discord.js : 14.15.3
discord.tictactoe: 4.2.0
Actually its's working but after 2nd move its is not accepting my move, its saying bot is thinking and not taking my move


iOS video share

In's not actualy an issue, just want to ask u. is it possible to share video file via your plagin? Becouse we tried to share video file on android and it works. But in iOS it's always an error. We think that in objectiv-c code there is some class or method witch converts bytes array only to image format

@EugeneCh1 how you share video file on Android ? is there any tutorials ?
As you want, I would like to know how to take/share videos on iOS....any hits ?

I just changed NativeShare script, hear is it:
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;
using System.IO;
/*

https://github.com/ChrisMaire/unity-native-sharing
*/

public class NativeShare : MonoBehaviour {
public void ShareScreenshotWithText(string text)
{
    string VideoPath = Application.persistentDataPath + "/" + "yourvideoname.mov";
   // if(File.Exists(screenShotPath)) File.Delete(screenShotPath);

    //Application.CaptureScreenshot(ScreenshotName);

    StartCoroutine(delayedShare(VideoPath, text));
}

//CaptureScreenshot runs asynchronously, so you'll need to either capture the screenshot early and wait a fixed time
//for it to save, or set a unique image name and check if the file has been created yet before sharing.
IEnumerator delayedShare(string screenShotPath, string text)
{
    while(!File.Exists(screenShotPath)) {
	    yield return new WaitForSeconds(.05f);
    }

    Share(text, screenShotPath, "");
}

public void Share(string shareText, string imagePath, string url, string subject = "")
{

#if UNITY_ANDROID
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
	intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
	AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
	AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + imagePath);
	intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject);
	//intentObject.Call<AndroidJavaObject>("setType", "image/png");
    intentObject.Call<AndroidJavaObject>("setType", "video/mp4");

    intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText);

	AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
	AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");

	AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, subject);
	currentActivity.Call("startActivity", jChooser);

#elif UNITY_IOS
CallSocialShareAdvanced(shareText, subject, url, imagePath);
#else
Debug.Log("No sharing set up for this platform.");
#endif
}
#if UNITY_IOS
public struct ConfigStruct
{
public string title;
public string message;
}
[DllImport ("__Internal")] private static extern void showAlertMessage(ref ConfigStruct conf);

public struct SocialSharingStruct
{
	public string text;
	public string url;
	public string image;
	public string subject;
}

[DllImport ("__Internal")] private static extern void showSocialSharing(ref SocialSharingStruct conf);

public static void CallSocialShare(string title, string message)
{
	ConfigStruct conf = new ConfigStruct();
	conf.title  = title;
	conf.message = message;
	showAlertMessage(ref conf);
}

public static void CallSocialShareAdvanced(string defaultTxt, string subject, string url, string img)
{
	SocialSharingStruct conf = new SocialSharingStruct();
	conf.text = defaultTxt;
	conf.url = url;
	conf.image = img;
	conf.subject = subject;

	showSocialSharing(ref conf);
}

#endif
}

Did you make this work on iOS? I can't make it work.

@matiasjaure No, i didn't. Only for android

i make this work by another code  http://unitylist.com/r/c53/unity-native-share

@EugeneCh1 I made it work with video on ios by changing a few lines in iOSNativeShare.mm
`#import "iOSNativeShare.h"
@implementation iOSNativeShare{
}
#ifdef UNITY_4_0 || UNITY_5_0
#import "iPhone_View.h"
#else
extern UIViewController* UnityGetGLViewController();
#endif
+(id) withTitle:(char*)title withMessage:(char*)message{
return [[iOSNativeShare alloc] initWithTitle:title withMessage:message];

}
-(id) initWithTitle:(char*)title withMessage:(char*)message{
self = [super init];

if( !self ) return self;

ShowAlertMessage([[NSString alloc] initWithUTF8String:title], [[NSString alloc] initWithUTF8String:message]);

return self;

}
void ShowAlertMessage (NSString *title, NSString *message){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title

                      message:message

                      delegate:nil

                      cancelButtonTitle:@"OK"

                      otherButtonTitles: nil];

[alert show];

}
+(id) withText:(char*)text withURL:(char*)url withImage:(char*)image withSubject:(char*)subject{
return [[iOSNativeShare alloc] initWithText:text withURL:url withImage:image withSubject:subject];

}
-(id) initWithText:(char*)text withURL:(char*)url withImage:(char*)image withSubject:(char*)subject{
self = [super init];

if( !self ) return self;

NSString *mText = text ? [[NSString alloc] initWithUTF8String:text] : nil;

NSString *mUrl = url ? [[NSString alloc] initWithUTF8String:url] : nil;

NSString *mImage = image ? [[NSString alloc] initWithUTF8String:image] : nil;

NSString *mSubject = subject ? [[NSString alloc] initWithUTF8String:subject] : nil;

NSMutableArray *items = [NSMutableArray new];

if(mText != NULL && mText.length > 0){

	[items addObject:mText];

}

if(mUrl != NULL && mUrl.length > 0){

	NSURL *formattedURL = [NSURL URLWithString:mUrl];

	[items addObject:formattedURL];

}
if(mImage != NULL && mImage.length > 0){

	if([mImage hasPrefix:@"http"])
	{
		NSURL *urlImage = [NSURL URLWithString:mImage];

        NSError *error = nil;
        NSData *dataImage = [NSData dataWithContentsOfURL:urlImage options:0 error:&error];

        if (!error) {
            UIImage *imageFromUrl = [UIImage imageWithData:dataImage];
            [items addObject:imageFromUrl];
        } else {
            ShowAlertMessage(@"Error", @"Cannot load image");
        }
    }
    else if ( [self isStringValideBase64:mImage]){
        NSData* imageBase64Data = [[NSData alloc]initWithBase64Encoding:mImage];
        UIImage* image = [UIImage imageWithData:imageBase64Data];
        if (image!= nil){
            [items addObject:image];
        }
        else{
            ShowAlertMessage(@"Error", @"Cannot load image");
        }
    }
    else{
		NSFileManager *fileMgr = [NSFileManager defaultManager];
		if([fileMgr fileExistsAtPath:mImage]){

			NSData *dataImage = [NSData dataWithContentsOfFile:mImage];

			UIImage *imageFromUrl = [UIImage imageWithData:dataImage];
            if(imageFromUrl != NULL)
            {
                [items addObject:imageFromUrl];
            }
            else
            {
                NSURL *videoURL = [NSURL fileURLWithPath:mImage];
                if(videoURL != NULL)
                {
                    [items addObject:videoURL];
                }
                else
                {
                    ShowAlertMessage(@"Error", @"Cannot find image");
                }
            }
		}else{
			ShowAlertMessage(@"Error", @"Cannot find image");
		}
	}
}

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:Nil];

if(mSubject != NULL) {
    [activity setValue:mSubject forKey:@"subject"];
} else {
    [activity setValue:@"" forKey:@"subject"];
}

UIViewController *rootViewController = UnityGetGLViewController();
//if iPhone
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
      [rootViewController presentViewController:activity animated:YES completion:Nil];
}
//if iPad
else {
    // Change Rect to position Popover
    UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activity];
    [popup presentPopoverFromRect:CGRectMake(rootViewController.view.frame.size.width/2, rootViewController.view.frame.size.height/4, 0, 0)inView:rootViewController.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
return self;

}
-(BOOL) isStringValideBase64:(NSString*)string{
NSString *regExPattern = @"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$";

NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger regExMatches = [regEx numberOfMatchesInString:string options:0 range:NSMakeRange(0, [string length])];
return regExMatches != 0;

}
pragma mark - C API
iOSNativeShare* instance;
void showAlertMessage(struct ConfigStruct *confStruct) {
instance = [iOSNativeShare withTitle:confStruct->title withMessage:confStruct->message];
}
void showSocialSharing(struct SocialSharingStruct *confStruct) {
instance = [iOSNativeShare withText:confStruct->text withURL:confStruct->url withImage:confStruct->image withSubject:confStruct->subject];
}
@end`

@Skjalgsm , thanks so much for sharing your update for video! Is there any chance you can post this as a pull request?
Thanks!

Is this repo active?
On Thu, 14 Sep 2017 at 20:30, Eric Bates<EMAIL_ADDRESS>wrote:

@Skjalgsm https://github.com/skjalgsm , thanks so much for sharing your
update for video! Is there any chance you can post this as a pull request?
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ChrisMaire/unity-native-sharing/issues/25#issuecomment-329570002,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAitDbBdReJJKK2ysbIk7mXkctM2yo6Nks5siXDJgaJpZM4Mfhmz
.

@Skjalgsm, doesn't look like it. Would you consider making a fork with your updates?

Hey, sorry, I'm not doing any mobile projects (and I'm not set up to test anything) so I've sort of let it lapse, but if a pull request gets submitted, I'll accept it.

@ChrisMaire , thats awesome. Thank you!
@Skjalgsm ,
Im getting an error in the last part of the iOSNativeShare.m file. xcode is telling me that the strut doesnt contain the member url. Any ideas on this? Thanks!!
void showSocialSharing(struct SocialSharingStruct *confStruct) {
instance = [iOSNativeShare withText:confStruct->text withURL:confStruct->url withImage:confStruct->image withSubject:confStruct->subject];
}

@end

@eblabs looks like ChrisMaire accepted a PR yesterday that, by looking at the code, should fix the video issue. So try that first :)

Thanks @Skjalgsm , I think I was struggling to assemble the various updates posted in comments. This should do the trick! Thanks for all the help everyone:)

Hi, I've taken over this repository, due to the age of the issue I'll be closing this issue
I've rewritten most of the plugin to be easier to use, and there is a high possibility that your issue has been fixed
Please download and see if your issue is still present. If it is please create a new issue and I'll get to it as soon as I can


Spinner not appearing until stop called

I'm having a flush error it seems -- the spinner doesn't show up until done is called. I'm calling start outside a promise and stop inside a promise for context.
Best,
Jon

Please, give me a code example so that I can investigate on the issue.

@helloIAmPau Let me dig up the code -- I'm using it in a couple projects and can't remember which one the bug was in. :)

I fixed the wait by moving some require statements below the spinner start. False alarm :)

thank you for the notification!
bye :+1:


ddev launch error: "command not found"

Describe the bug
When I run the command "ddev launch", instead of launching the projekt in my browser, it throws this error:

/home/janisint/folder/folder2/myproject/.ddev/commands/host/launch: line 61: xdg-open: command not found
Failed to run launch ; error=exit status 127

To Reproduce
Steps to reproduce the behavior:

Download the latest version of ddev (1.17.2)
Start any project with ddev launch
Issue "ddev launch"

Expected behavior
After issuing "ddev launch", the launch command should be executed correctly and open the browser.
Version and configuration information (please complete the following information):

Host computer OS and Version: Windows 10 | WSL with Ubuntu 20.04
Docker Desktop version: 20.10.5
ddev version: 1.17.2
config.yaml contents for the misbehaving project (the part before the comments):

name: myproject
type: php
docroot: ""
php_version: "7.4"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
mariadb_version: "10.2"
mysql_version: ""
provider: default
use_dns_when_possible: true
composer_version: ""

Hi @janisint - You need to install xdb-open per the docs. Please see https://ddev.readthedocs.io/en/stable/#installation-or-upgrade-windows-wsl2 - step #2512

sudo apt-get update && sudo apt-get install -y xdg-utils to install the xdg-utils package that allows ddev launch to work

Thank you very much, this resolved the issue!


Update _by_text method API

Update find_element_by_text and find_elements_by_text API to use By.TEXT or By.PARTIAL_TEXT as in the new Selenium API.

Solved in the commit above.


chore(packages/core): add support for pretty ascii usage

Fixes #7344

Description of what you did:

My PR is a:

[ ] 💥 Breaking change
[ ] 🐛 Bug fix
[ ] 💅 Enhancement
[x] 🚀 New feature

Please confirm that your PR fulfills these requirements

[x] Multiple commits are squashed into one commit.
[x] The commit message follows Conventional Commits, which allows us to autogenerate release notes; e.g. fix(plugins/plugin-k8s): fixed annoying bugs
[x] All npm dependencies are pinned.

/lgtm
we have been testing this code separately for a while now.


IHaskell on iPython 3

hi! I installed IHaskell successfully through cabal (from instructions in README).
I am unable to see Haskell under the "new" menu of iPython 3

Am I supposed to start Haskell under Clusters? If so, I did but I still don't see Haskell under the "new" menu.
Also when I run ipython console, I get:
Using system-wide dev version of IPython.
/usr/local/lib/python2.7/site-packages/IPython/kernel/manager.py:95: UserWarning: Setting kernel_cmd is deprecated, use kernel_spec to start different kernels.
  warnings.warn("Setting kernel_cmd is deprecated, use kernel_spec to "
Unknown flag: --profile

I am unable to get any sort of console, the message appears and things seem to have hung.

ihaskell-0.5 on Hackage does not support IPython 3; I am planning on making a release soon, though.
If you want IPython 3 support, build from Github, and run ihaskell install to install the kernel.
Apologies for the confusion -- I am working on getting IPython 3 fully supported, with documentation and Hackage release, but it is quite a bit of work and so may take another week or so until it's really in a good shape.
Reopen if installing from Github and running IHaskell install does not fix things.

Awesome! I can now use haskell notebooks by running IHaskell notebook. Thank you @gibiansky :+1:


OpenWatcom 32-bit Windows target

compilers:

    - description: OpenWatcom 32-bit Windows target
      match-args: "-bt=nt"
      match-compiler-exe: "(.*/)?wcc386(\\.exe)?"
      include-dirs: "${compiler-exe-dir}/../h ${compiler-exe-dir}../h/nt"
      defines-text: "
#define __X86__ 1
#define __386__ 1
#define M_I386 1
#define _M_I386 1
#define _M_IX86 500
#define __NT__ 1
#define __WINDOWS_386__ 1
#define __FLAT__ 1
#define M_386FM 1
#define _M_386FM 1
#define __WATCOMC__ 1280
#define _INTEGRAL_MAX_BITS 64"

The macro definition
#define __WINDOWS_386__ 1
is wrong. It should be replaced by
#define __NT_386__ 1
Also macro
#define __WATCOMC__ 1280
is version specific that it should be replaced by something like
#define __WATCOMC__
to identify existence of compiler, the value is compiler version.

Should it also declare _WIN32 like MSVC and MingW do? I never got that clear

Yes, you should add macro
#define _WIN32
which is necessary for WIN32 applications

Because Clion is not free I am not interested in such work for no gain.

Superseeded by https://github.com/JetBrains/clion-custom-defined-compiler-examples/pull/7.


Outline JSDoc @memberOf tag support

Would it be possible for the Outline to detect the structure of a Javascript class through JSDoc tags such as '@class', '@memberOf', '@property', '@method', etc? If I paste in this example from Use JSDoc, the VSCode Outline ignores the JSDoc tags and only detects the methods.
/** @class Observable */
create(
    'Observable',
    {
        /**
         * This will be a static member, Observable.cache.
         * @memberof Observable
         */
        cache: [],

        /**
         * This will be an instance member, Observable#publish.
         * @memberof Observable.prototype
         */
        publish: function(msg) {},

        /**
         * This will also be an instance member, Observable#save.
         * @memberof Observable#
         */
        save: function() {},

        /**
         * This will also be an instance member, Observable#end.
         * @memberof Observable
         * @instance
         */
        end: function() {}
    }
);

Duplicate of https://github.com/Microsoft/TypeScript/issues/7237
IntelliSense also does not currently work properly for those jsdoc tags


DeleteCollectionAsync is not deleting the collection, even if collection exists.

Describe the bug
I reckon, the function 'DeleteCollectionAsync'
in "\semantic-kernel\dotnet\src\Connectors\Connectors.Memory.Qdrant\QdrantMemoryStore.cs" is having the logical error.
If collection exists then I reckon, we should delete them. The function '_qdrantClient.DoesCollectionExistAsync' returns true, if the collection exists. However, the conditional statement is having the not check so not deleting the collection, even if it exists.

@Jawahar-Mariappan , thanks for bringing this up, we are looking into it.

Fixed in #1025


support multiple sasl_passwd entries

poke again?

rebased my commit properly. :)

can this be reviewed?

+1

Hi @gnowxilef ; sorry for the excessively long delay here. I think the code as it stands is good, but I'd like to see the tests in test/integration/sasl_auth/serverspec/sasl_auth_spec.rb updated to confirm that this does the right thing. - ie, populate with one, none and many entries, confirm the file comes out as expected. Sound doable?

hi @thommay ; added tests to the cookbook :)

can this be merged?

+1

@thommay can this PR be merged?

poke again @thommay or @tas50

poke again @thommay or @tas50

We've reworked the way the configuration occurs in Postfix and given the user the ability to pass in a lot more arbitrary data. At this PR may not be necessary. I'm going to close it out at this point. If you think the functionality is still valid take a look at the current code in master and update the PR to reflect the changes there.

i might not be seeing it, but i don't see a place where you can specify more than one saslauth user/password.


Tab order

Fixes

Fixes #989 by @zackkrida
Description

This PR automatically focuses the filters sidebar when the user presses Tab key when the Filters button is pressed.
I will also add automatic focusing of the sidebar when the button is clicked. Do we really need this? I think to add it, we would need to do something like Vue.nextTick, because when you click the filters button, the sidebar is not yet rendered.
When the user presses Tab key when on the last focusable item on the sidebar, the focus moves to the first focusable element in the main element. When the user pressed ShiftTab on the first focusable element in the sidebar (whether it's a checkbox or the 'Clear filters' button), the focus goes to the Filters button.
Also, when the user presses Tab on the last focusable element in the main search page (one of the Meta Search buttons, or the scroll to top button), the focus moves to the first focusable element in the layout instead of moving to the filters sidebar again.
Testing Instructions

Open the app on desktop. Try Tabbing from the Filters button, and tabbing through the filters sidebar to the main element. Try All content, Image and Audio views.
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

There's one last quirk but I'm not sure how to address it or if it needs to be addressed. IF you have the filter sidebar open and tab over to the results, then shift tab back up, you never reach the filter sidebar, instead you jump straight to the header and have to tab to the filter button and then tab into the filter sidebar.
I'm not sure whether this needs to be changed, but it might be more contextually confusing if you remembered that the order went "filter button -> filter options -> results" but then going backwards the filter options are skipped. In fact, it might lead you to assume the filter options were closed and then have a moment of confusion when you land on the filter button again and find that it's still reporting itself as pressed.
But that's just a guess. I'm not sure if that's what users would expect or not.

I was afraid that I missed one of the scenarios. Thank you for describing it!


KEDA integrate with readiness and liveness probes

If a container continues consuming messages but is failing/ throwing exceptions. Should KEDA continue scaling these containers?

The hope here is that if a deployment state is unhealthy for any reason, the autoscaling will be configured in a way that scaling out will stop.  There is likely related work needed for Azure Functions specifically to make sure it exposes a liveness and readiness probe endpoint to drive this for KEDA scenarios with functios.

@Aarthisk do you want to keep this in the Current milestone?

@asavaritayal Asavari, yes. I am investigating this right now.

Update from standup: A bit more work than we expected, @Aarthisk to chat with Fabio on if this is feasible or what is feasible.  Needs discussion on if this is a blocker.
Should probably just check that this works for any container that's in a broken state, can figure out functions runtime in future

I believe only work here is on the Azure Functions Runtime to correctly expose a liveness and readiness endpoint.  Other deployments that do should just work today.  Keeping to track the work on that team but not KEDA specifc

Is there another GitHub issue for that?

Created one here https://github.com/Azure/azure-functions-host/issues/5259

This might be interesting feature for v2, not Functions related, but generally any deployment with Liveness probes

Bringing this back up - Should we do anything here?
Kubernetes will just scale the workload for us by using KEDA, but it's up to the workload to implement health checks. If we start monitoring these as well, I think it might go a bit far, no?

Not sure if my use case is totally related to this issue but I'll let you decide.
I have an environment where we ingest logs from external entities and store them in a database. We have another service running that reads the logs and fires alerts based on the data in the db. Some of the alerts are triggered by a stop in related events. If any part of the system becomes non-functional then events stop getting into the database and all alerts that look for a cessation of events trigger at that time.
We have several components in the system, if any of which go down then the whole pipeline stops. The components are an input proxy that sends data to a kafka broker, logstash that consumes the kafka stream and sends it to Elasticsearch. We need a way to scale the alerting deployment to 0 if the liveness probes fail for any of the other deployments.
Any insight appreciated :)

I think it's somewhat related and if we would be plugging in the Kubernetes events for a workload that we could identify it. What do you think @zroubalik?
Sounds like an interesting case though and another one is that we can scale workloads down if the downstream service is having issues.

Bringing this back up because I have a use case that might make sense here.
I have implemented a deployment with health checks and readiness probes. Basically, I have the pod marked as not ready when it is in use. This prevents the pod from getting more than 1 job to run.
This is reflected when I get do kubectl get deployments -l app=runner and it shows 1/1 ready. As soon as it gets a job, the pod starts returning 5xx and kubernetes now shows 0/1 ready.
Where keda comes in is to always make sure there is 1 ready pod for the deployment. It would be fantastic to be able to use the readiness prob, as it's native and well documented.


Use north-south-rotated SVGs of states

summary:
State maps in the right-side inset as well as in the little circle emblems, appear oddly rotated compared with what you'd expect for that state.
This is especially noticeable with Washington and Oregon which have significant east-west and north-south borders.
expected result:
States are oriented north/south in their own maps. On the state-by-state level, the Web Mercator projection is probably fine for all states except Alaska.
actual result:
States are oriented according to the geoAlbers projection (as they are shown in the map with the entire USA), which causes states outside of the center to be at a jaunty angle.
I initially thought this was a kind of nice bit of character, but then I realized it was more likely accidental.
environment (device, browser, mobile / web):
any
link:
https://covidactnow.org/us/wa
screenshot (you can copy/paste images directly in):

I was thinking of doing another pass to make sure the states are nicely
centered, and also fix the little icons that have the states incorrectly
rotated.
On Fri, Apr 10, 2020 at 9:27 PM Zack Rosen<EMAIL_ADDRESS>wrote:

Closed #439
https://github.com/covid-projections/covid-projections/issues/439.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/covid-projections/covid-projections/issues/439#event-3223645149,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZPVU7OQ2G7QOC242BU6KDRL7WT7ANCNFSM4MCXRG6A
.


Fix unit tests

Unit tests at the end of code modules are out of sync w.r.t. current implementation, so tests do not even compile. They should be updated to be compatible with current code.

Hi, I wanted to get my feet wet with this project so I picked a unit test file and fixed its compilation errors.
I would like to make sure I have fixed it correctly and run the tests incrementally, that is, finish fixing a file and run it.
I currently can't do that since it demands all tests to compile, I haven't found online a way to make it work, any advice or experience with this issue?

Not really. I think Cargo requires that all the unit tests compile before you can even try to run them. I did not try to verify this anywhere, so I could be wrong too.
One option is to just comment out unit tests in other modules, so you can incrementally fix them.
An easier exercise could be to fix the documentation code examples, as in #26 .

Thank you again @Bremys . Atostek wishes to thank you for your contribution. We could send you a token of our appreciation. If you agree, please send your physical mail address via email, preferably with some proof that it is actually from you (the Github account), to<EMAIL_ADDRESS>.


Add Stardog chart repo

The Artifact Hub is another place you can list your repos. To do that, you login (or create an account), create an organization, and list your repository. You can link it to a user or organization.

My apologies. Thanks for pointing that out. Fixed it to reference the chart repo.


Higher quality voice clip

Changes the voice clip used with a new, higher quality voice clip, specifically from Catching 190.000 implings for one lucky imp | Xtreme Onechunk Ironman #21.
Somewhere along the line, Limpwurt has started saying just "Last Time on This Shit", and this sounds like the best one where he says "On the last time..."
I tried to clean it up as best as I could, but there's a lot of reverb in there and I'm not skilled enough to do that in audacity without a noticeable dip in quality.
EDIT: This may also be slightly louder, I didn't think to compare the two voice clips' volume, so if I need to drop it a few db let me know.

Thanks man, this sound is much better!


error from importing the GOSTnets package, likely related to numpy dependency

I am getting an error from importing the GOSTnets package that points to numpy "Import Error: numpy.core.multiarray failed to import" (screenshot attached).

I have numpy installed but I wasn’t sure if maybe it was a dependency issue and the wrong version. I therefore tried to reinstall an older version by setting a version 1.19.3 for the numpy install, but then I get a different error "Building wheel for numpy (pyproject.toml) did not run successfully" (second screenshot attached).
A screen shot of a computer
Description automatically generated with medium confidence
<EMAIL_ADDRESS>

Adding second error message with screenshot


Wrong index in json file?

Hi, thanks for providing the code and dataset to reproduce, but in the JSON files, there are a lot of image indexes that don't have the corresponding images in the image folders.
So, could you please provide an accurate dataset?
Best,
Tin

The complete dataset links have been added now in the main readme.

The complete dataset will be released soon.


DB cache_on errors older CI

Hello!
We have got a system running on Pryo2.2 with CI 3.0-dev for a few years now and wanted to turn on the DB cache_on option in database.php. Now when trying that it spits out an error from codeigniter.php, looking on the internet and also this github the only solution is to update/reinstall CI but since our system has become so big and has patches in it to get it working right on PHP 7.2 this isn't a option for us (we tried it but that would take days).
Fatal error: Uncaught Error: Class 'CI_Controller' not found in /var/www/project/system/codeigniter/core/CodeIgniter.php:229
Stack trace: #0 /var/www/project/system/codeigniter/database/DB_cache.php(43): get_instance()
    #1 /var/www/project/system/codeigniter/database/DB_driver.php(1355): CI_DB_Cache->__construct(Object(CI_DB_mysqli_driver))
    #2 /var/www/project/system/codeigniter/database/DB_driver.php(345): CI_DB_driver->_cache_init()
    #3 /var/www/project/system/codeigniter/database/DB_driver.php(829): CI_DB_driver->query('SHOW TABLES FRO...')
    #4 /var/www/project/system/codeigniter/database/DB_driver.php(871): CI_DB_driver->list_tables()
    #5 /var/www/project/system/cms/libraries/MX/Router.php(78): CI_DB_driver->table_exists('core_domains')
    #6 /var/www/project/system/cms/libraries/MX/Router.php(51): MX_Router->locate(Array)
    #7 /var/www/project/system/codeigniter/core/Router.php(226): MX_Router->_validate_request(Array)
    #8 /var/www/project/system/codeigniter/core/Router.php(382): CI_Router->_set_r in /var/www/project/system/codeigniter/core/CodeIgniter.php on line 229

Error in CodeIgniter.php:
require BASEPATH.'core/Controller.php';
/**
 * Reference to the CI_Controller method.
 *
 * Returns current CI instance object
 *
 * @return object
 */
function &get_instance()
{
    return CI_Controller::get_instance();
}

Coming from DB_cache.php
/**
 * Database Cache Class
 *
 * @category	Database
 * @author		EllisLab Dev Team
 * @link		http://codeigniter.com/user_guide/database/
 */
class CI_DB_Cache {
    public $CI;
    public $db;	// allows passing of db object so that multiple database connections and returned db objects can be supported
    public function __construct(&$db)
    {
        // Assign the main CI object to $this->CI and load the file helper since we use it a lot
	$this->CI =& get_instance();
	$this->db =& $db;
	$this->CI->load->helper('file');
    }

Now am I hoping that anyone here is willing to help me figure out what is causing the problem since we have been working on it for more then a day now. It looks like it's erroring from the first ran query "SHOW TABLES FROM DB" this is only happening when I turn on the cache_on setting. I don't know if Pyro is the problem or because Pyro used CI version 3.0-dev and the caching wasn't working at the time, can't really find any solution on google.
If I need to add more info then I will be happy to do so.
Greetings Roy

are you sure it's the SHOW TABLES SQL? because it says "Class 'CI_Controller' not found" - so i rather think it does not find the class.

are you sure it's the SHOW TABLES SQL? because it says "Class 'CI_Controller' not found" - so i rather think it does not find the class.

The file is requered 8 lined above it so it is loaded. Even when the required is put in the function it self it says that it isn't loaded. It runs the SHOW TABLES query and FROM there it at sometime will need the this->ci and then it dies.

but your db user is allowed to issue that failing SQL statement? May be the error message is just misleading as i read here https://eftakhairul.com/weird-error-fatal-error-class-ci_controller-not-found-in-codeigniter-framework/ it was a similar error message but a completely different problem. I dont know if debugging it will help you?

but your db user is allowed to issue that failing SQL statement? May be the error message is just misleading as i read here https://eftakhairul.com/weird-error-fatal-error-class-ci_controller-not-found-in-codeigniter-framework/ it was a similar error message but a completely different problem. I dont know if debugging it will help you?

If I turn the cache_on setting off everything works at it is suppost to. Also running the SHOW TABLES query.

I know people want to help, but this is not the place.


Create iOS app for administering BX-bot

Create iOS app for administering the bot.
iOS devices will use the REST API provided by bxbot-ui-server:
https://github.com/gazbert/bxbot-ui-server
This work will be done in a new GitHub project.

Closing.
Will use React Native instead.


Trouble using At.js in TypeScript project

Hi, your lib seems fantastic but I didn't succeed unsing it in my Ionic2 project (I use Ionic2, Angular2 & TypeScript) :(

I installed jquery, jquery.caret et at.js from npm : npm install jquery jquery.caret at.js --save (I've got versions 2.2.4, 0.2.1 & 0.5.1 respectively)
I imported typings for jquery : typings install dt~jquery --ambient --save (it seems there is none for caret & at.js)

But after that I get troubles :

I'm unable to import them (typescript import) just like jquery (import * as jQuery from "jquery";) so I copied them to my project to import the file (import * as caret from "../../lib/jquery.caret/jquery.caret.min";)
When I use them, nothing happens :

jQuery(this._elementRef.nativeElement).find('textarea').atwho({
    at: '@',
    data: ['one', 'two', 'three']
});

Do you have any idea on what's going on and how to solve this ?

I forgot to add CSS so I didn't saw anything happen...
Now I manually updated to latest versions (caret 0.3.1 & atwho 1.5.0) and it seems to work...
But it's still very badly integrated (libs copied manually in the project...).
Do you know why I can't import them like any other lib ?
Thank you

Sorry, I don't know how TypeScript integrating libs.
I would be appreciate if you could try to figure it or give me some information, for it's take time to setting a demo project and simulate your scene.
close it for now for it's not a very serious problem.


Broadcasting dispite being disabled

Describe the bug
A broadcast is thrown into the chat about opening a crate chest. This message is disabled though.
  OpeningBroadCast: false
  BroadCast: '%prefix%&6&l%player%&r &7is opening a &7&lBasic Chest&7.'

Versions (please complete the following information):

Minecraft Server Version: 1.19.2
Plugin Version: 1.11.11

*Do NOT say Latest use /version crazycrates in the console.
Pastebin any errors in console
Link: no error
Issue
I want to have the broadcast disabled but can't anymore
Screenshots

Red=ServerLogo
Green=Player

Download latest jenkins build

If the website is up, I can look at it if there are any recent changes since the stable was released.

https://ci.crazycrew.us/view/Snapshots/job/CrazyCrates/

Oh address is changed

Works indeed. Thnx. That was really quick. :)

%player% instead of %Player%, same for %prefix%
Can you test quick crate after these changes are made?

I noticed that those placeholders were made lowercase since 1.11.11. So I changed them accordingly before updating to 1.11.11. So the screenshot proves the placeholders worked fine in 1.11.11 (stable). Is that what you wanted to know?

I just wanted to know if there was an error in console something about out of index something

No errors. It was just a plain text on the console like
[Serverlogo] Playername123ABC is opening a Survival Crate Chest.

yay


Please fix the Sketchheads activity.

My bot can't recognize the Sketchheads activity since its the only one that doesn't work.
and also, Discord just shut down Doodle Crew.
Code Sample:
client.on('messageCreate', async message => {
  if (message.content === '+gametest') {
      if(message.member.voice.channel) {
   client.discordTogether.createTogetherCode(message.member.voice.channel.id, 'sketchheads').then(async invite => {
    return message.channel.send(`${invite.code}`);
});

Terminal Error:

      throw new SyntaxError('Invalid option !');
            ^

SyntaxError: Invalid option !

#46

@BlueStacks1884 The Sketchheads activity will be available in this package once v1.3.3 releases. Sketchheads has been added to the latest version of the master branch of this repository, but the NPM package hasn't been updated to reflect these changes yet.

Hello, the project has been updated, this option is now available with version 1.3.3
npm i discord-together@latest


Feature/url export

I was not able to build or test the changes. Please review and test.
Also, I noted that several files use DOS line endings, no line feed before EOF, and encoding bytes, which git does not like. Is this on purpose?

I took a quick look at the code and it looks good so far, I will try to deploy it to my phone in a few hours.


Fix for faulty data migrations

Replaces https://github.com/inventree/InvenTree/pull/4979
References:

https://github.com/inventree/InvenTree/pull/4898
https://github.com/inventree/InvenTree/pull/4961
https://github.com/inventree/InvenTree/pull/4977

Implements a new fix which does not require any custom SQL, and adds a unit test.
Additionally this migration has been tested multiple times backwards / forwards / upside down

This looks the "proper" way to do it. :+1:
I have tested this, starting at two different points (one of which caused problems with the other implementation), and from scratch, all worked.

It works on ubuntu + mariadb; I only have access to my production/staging environment with SE  Linux in a few hours but it should be good.

@matmair any further input on this or happy for me to merge?

I have tested this in multiple instances now - should fix the issue finally