ConvNext appears to look worse, concerned

I'm training a model on illustrations with the new ConvNext modules and it's not giving me the results I expected from training with the same parameters and data before the ConvNext change. Previously it used to create lines and shapes of solid color, but now there aren't any smooth lines that appear when checking the output, it's like fuzzy scribbles instead.
Previous version without ConvNext: https://i.imgur.com/qeF0dNn.png
Current version with ConvNext: https://i.imgur.com/S3ierK5.png
These outputs are typical for the old and new code when I trained different models with differing parameters. Without ConvNext I get lines and shapes, with ConvNext I get lots of fuzzy but hard lines/edges.
It seems like maybe it's very slowly becoming less fuzzy over time but considering the amount of time that has to be put into training this I want to be sure that it's definitely going to work and that it has produced results with these changes.

@torridgristle hmm, maybe i jumped the gun a bit
do you want to try https://github.com/lucidrains/denoising-diffusion-pytorch/commit/eb6e1b508e920efd840f2fa13e80d60ce19ed2c1 and see if this helps? if you still don't get great results, i could rollback. i'm also doing a run on oxford102 dataset to see for myself

looking decent at 9k iterations, will let it run overnight

it is starting to look ok for me at 41k

yea looks fine, at least for the oxford102 flowers


training loss

what is the training loss look like？how many epochs have you trained and what is the loss value？I trained it for about one day in a 1080ti machine，x 0.1  learning rate in the middle of the day，but the loss for L is 2.5，the loss for C is 1.5，is  the loss too big？

Hi @zhly0, I remember I had similar number as yours too during training, I think it's fine.

@zisianw，Thanks。


show more information about the deploy

in addition to showing build logs when build happens, potentially display created revision, and wait for readiness of the service?

made progress in https://github.com/cppforlife/knctl/commit/25db7f567fbc69085f6dbe0b0a7c7eaa00e14f59

resolved by https://github.com/cppforlife/knctl/issues/32


Fabric Interop SDK must handle multiple proposal response instances in a view

This is the SDK fix corresponding to the driver fix in #172 and the chaincode fix in #350 .

Fixed in #354 .


auto update  should not equal reload page

I use autoUpdate registerType and the app will reload when new version deployed, but why reload? auto update should only download new version and update local cache, not reload page, reload page is a  terrible experience . whether reload page should control by developer.  I just want the worker auto download new version, and auto update while user visit the app next time.

@bimohxh it is the way the New sw will control again the page once new version cache ready, check sw lifecycle

@userquin  I don't think so. just look this code https://github.com/vite-pwa/vite-plugin-pwa/blob/ea1a58bf6219233bddac1b663a8bf49c8e6c888e/src/client/build/register.ts
 if (!event.isUpdate && event.isExternal)
          window.location.reload()
        else if (event.isUpdate)
          auto && window.location.reload()
        else if (!autoDestroy)
          onOfflineReady?.()

  wb?.addEventListener('controlling', (event) => {
            if (event.isUpdate)
              window.location.reload()
          })

@bimohxh I wrote previous code, if you dont reload the window the new sw will not control the page that is being controlled by the current sw version (old one), check sw lifecycle for more info: https://web.dev/service-worker-lifecycle/

@userquin  thanks.  my question is why  must controll the page at current session , why not controll at next time user enter the app?  the auto mode process now is like:
user enter page --> mybe wait 5 seconds pwa find and  download new version ---> auto reload
this is not  friendly, my idea process is:
user enter page --> mybe wait 5 seconds pwa find and  download new version ---> user enter page next time -> auto update in new version.
I  also use pwa  plugin @vue/cli-plugin-pwa  at vue2, which  provides a  config like:
import { register } from 'register-service-worker';
register(`${process.env.BASE_URL}service-worker.js`, {
    ready() {},
    ....
   updated() {
      console.log('New content is available; please refresh.');
      // window.location.reload();
    }

as you can seee, I can decide whether need reload page at updated envet.

@bimohxh then use prompt for update strategy, other logic is when there are other clients and the update comes from them.

@userquin  but the prompt strategy  will also disturb user, I just want to update  app unconsciously, so  I need auto strategy.  thanks any way,  I will remove  window.location.reload from the souce code  if  no options will be provided.

@bimohxh if you only want the sw to get updated you will need to remove any virtual from your code, Safari users will have problems using the PWA (previous sw will control the app and no the new one): check https://github.com/vite-pwa/vite-plugin-pwa/issues/438#issuecomment-1370171111

check the warning here: https://vite-pwa-org.netlify.app/guide/auto-update.html#automatic-reload


fix: pull image in docker builder

Co-Authored-By: Leonardo Di Donato<EMAIL_ADDRESS>Signed-off-by: Lorenzo Fontana<EMAIL_ADDRESS>What type of PR is this?
/kind feature
Any specific area of the project related to this PR?
/area pkg
What this PR does / why we need it:
Pull the driverkit-builder docker image (docker processor).
Which issue(s) this PR fixes:
NONE
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
update: pull the driverkit-builder docker image while building with docker processor

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign leodido
You can assign the PR to them by writing /assign @leodido in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: a5a461d17caa64d6253009107029e1381cbc9674

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fntlnz
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [fntlnz]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Thawte (erroneously?) removed from certificate bundle

#2442 updated the certificate bundle and appears to have dropped Thawte from the bundle. Thawte still shows up for me both in the Mozilla bundle and the mkcert.org standard bundle. Mozilla appears to have been unchanged recently: https://hg.mozilla.org/releases/mozilla-release/log/a2ffa9047bf4/security/nss/lib/ckfw/builtins/certdata.txt
So I'm not sure how this happened, but it's broken using requests for Rackspace's cloud API, and I'm sure other sites as well.

@Lukasa generated the certificate with mkcert.org if I recall correctly but I'm not sure the list of certificates he used. It seems we just need to add thawte

Actually looks like it's here but I see that there seem to be other certificate roots here and here
~/s/requests git:master ❯❯❯ curl -s https://mkcert.org/labels/ | python -m json.tool | ag 'thawte'
        "thawte Primary Root CA",
        "thawte Primary Root CA - G2",
        "thawte Primary Root CA - G3",

Shows that mkcert only seems to know about the Thawte root that we are including.

Yeah, I'm seeing three Thawte certificates in our bundle and three Thawte certificates in Mozilla's bundle. Which certificate exactly are you expecting to see, @jimrollenhagen?

Hmm, I just saw Thawte certs being removed in b86330d1f15f04e77093800efb8c6bd6909e8c8e, I missed that we still have some in the bundle. Let me poke some more and loop back around.

So in that commit the following certificates were removed (by label/sha256 fingerprint):

GTE CyberTrust Global Root / a5:31:25:18:8d:21:10:aa:96:4b:02:c7:b7:c6:da:32:03:17:08:94:e5:fb:71:ff:fb:66:67:d5:e6:81:0a:36
Thawte Server CA / b4:41:0b:73:e2:e6:ea:ca:47:fb:c4:2f:8f:a4:01:8a:f4:38:1d:c5:4c:fa:a8:44:50:46:1e:ed:09:45:4d:e9
Thawte Premium Server CA / ab:70:36:36:5c:71:54:aa:29:c2:c2:9f:5d:41:91:16:3b:16:2a:22:25:01:13:57:d5:6d:07:ff:a7:bc:1f:72
Verisign Class 3 Public Primary Certification Authority / e7:68:56:34:ef:ac:f6:9a:ce:93:9a:6b:25:5b:7b:4f:ab:ef:42:93:5b:50:a2:65:ac:b5:cb:60:27:e4:4e:70
Verisign Class 3 Public Primary Certification Authority - G2 / 83:ce:3c:12:29:68:8a:59:3d:48:5f:81:97:3c:0f:91:95:43:1e:da:37:cc:5e:36:43:0e:79:c7:a8:88:63:8b
ValiCert Class 1 VA / f4:c1:49:55:1a:30:13:a3:5b:c7:bf:fe:17:a7:f3:44:9b:c1:ab:5b:5a:0a:e7:4b:06:c2:3b:90:00:4c:01:04
ValiCert Class 2 VA / 58:d0:17:27:9c:d4:dc:63:ab:dd:b1:96:a6:c9:90:6c:30:c4:e0:87:83:ea:e8:c1:60:99:54:d6:93:55:59:6b
RSA Root Certificate 1 / bc:23:f9:8a:31:3c:b9:2d:e3:bb:fc:3a:5a:9f:44:61:ac:39:49:4c:4a:e1:5a:9e:9d:f1:31:e9:9b:73:01:9a
Entrust.net Secure Server CA / 62:f2:40:27:8c:56:4c:4d:d8:bf:7d:9d:4f:6f:36:6e:a8:94:d2:2f:5f:34:d9:89:a9:83:ac:ec:2f:ff:ed:50
Equifax Secure eBusiness CA 1 / cf:56:ff:46:a4:a1:86:10:9d:d9:65:84:b5:ee:b5:8a:51:0c:42:75:b0:e5:f9:4f:40:bb:ae:86:5e:19:f6:73
America Online Root Certification Authority 1 / 77:40:73:12:c6:3a:15:3d:5b:c0:0b:4e:51:75:9c:df:da:c2:37:dc:2a:33:b6:79:46:e9:8e:9b:fa:68:0a:e3
America Online Root Certification Authority 2 / 7d:3b:46:5a:60:14:e5:26:c0:af:fc:ee:21:27:d2:31:17:27:ad:81:1c:26:84:2d:00:6a:f3:73:06:cc:80:bd
TDC Internet Root CA / 48:98:c6:88:8c:0c:ff:b0:d3:e3:1a:ca:8a:37:d4:e3:51:5f:f7:46:d0:26:35:d8:66:46:cf:a0:a3:18:5a:e7
NetLock Business (Class B) Root / 39:df:7b:68:2b:7b:93:8f:84:71:54:81:cc:de:8d:60:d8:f2:2e:c5:98:87:7d:0a:aa:c1:2b:59:18:2b:03:12
NetLock Express (Class C) Root / 0b:5e:ed:4e:84:64:03:cf:55:e0:65:84:84:40:ed:2a:82:75:8b:f5:b9:aa:1f:25:3d:46:13:cf:a0:80:ff:3f
Firmaprofesional Root CA / c1:cf:0b:52:09:64:35:e3:f1:b7:1d:aa:ec:45:5a:23:11:c8:40:4f:55:83:a9:e2:13:c6:9d:85:7d:94:33:05
AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. / a6:c5:1e:0d:a5:ca:0a:93:09:d2:e4:c0:e4:0c:2a:f9:10:7a:ae:82:03:85:7f:e1:98:e3:e7:69:e3:43:08:5c
Verisign Class 3 Public Primary Certification Authority / a4:b6:b3:99:6f:c2:f3:06:b3:fd:86:81:bd:63:41:3d:8c:50:09:cc:4f:a3:29:c2:cc:f0:e2:fa:1b:14:03:05

There were others that were added too. Proposal: We should revert (at least some of) the deletions that took place in b86330d after confirming that none of them were intentionally removed/blacklisted from Mozilla's bundle (we don't want to add back compromised CAs).

I now believe this is a manifestation of #2455: closing to focus the discussion there.


libcrnn not found

When I run /src/demo.lua with th , it gives me this error
 ```module 'libcrnn' not found:No LuaRocks module found for libcrnn
 no field package.preload['libcrnn']
no file '/home/akash/.luarocks/share/lua/5.1/libcrnn.lua'
no file '/home/akash/.luarocks/share/lua/5.1/libcrnn/init.lua'
no file '/home/akash/torch/install/share/lua/5.1/libcrnn.lua'
no file '/home/akash/torch/install/share/lua/5.1/libcrnn/init.lua'
no file './libcrnn.lua'
no file '/home/akash/torch/install/share/luajit-2.1.0-beta1/libcrnn.lua'
no file '/usr/local/share/lua/5.1/libcrnn.lua'
no file '/usr/local/share/lua/5.1/libcrnn/init.lua'
no file '/home/akash/.luarocks/lib/lua/5.1/libcrnn.so'
no file '/home/akash/torch/install/lib/lua/5.1/libcrnn.so'
no file '/home/akash/torch/install/lib/libcrnn.so'
no file './libcrnn.so'
no file '/usr/local/lib/lua/5.1/libcrnn.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

Its looking for the .so file that is in your src directory after you've successfully built the project.

Same issue. There is .so file even then showing the same error

@JiteshPshah ,hello,I am facing the same problem ,have you run successfully ,if so,can you give me some advice, thanks a lot ^_^

Hi
Did you guys fix this?


feat(curriculumn) added Run-length Encoding lesson

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Pull Request contributing lessons discussed here:
https://github.com/freeCodeCamp/CurriculumExpansion/issues/296

Hi @anthonyzeng99, thanks for all of your hard work here.
I left some comments with some suggestions. Please take a look and let us know what you think.

@scissorsneedfoodtoo Thanks for reviewing the PR. I have implemented the suggested changes.

Awesome, thanks for taking care of that so quickly @anthonyzeng99.
Sorry, one more thing that I didn't notice last time. Please change the file name to run-length-encoding.english.md . Aside from the merge conflict, everything LGTM.
I tried to implement those changes myself and push to your branch, but unfortunately I don't have write access to nyu-ossd-s20.
Also, could you review this when you get a chance, @thecodingaviator?

I have blocked this for now. See the pinned code freeze issue

@anthonyzeng99
Looks like you have explicitly disabled edits from maintainers, which means you would need to look into the currently updated file structure and rebase this PR before we are able to QA and merge this.
Thanks.

Ping @anthonyzeng99.

Hi @anthonyzeng99
As there has been no response from your end for a while, we are closing this PR.
Feel free to request this PR to be reopened or create a new PR, if you still wish to make the changes you originally added plus any additional change requests asked of you.  Also, remember to update your fork, so you have the latest version of master in case it has changed significantly.
Happy Coding!


Cannot Scroll

Can't scroll up when shell is split

this has been fixed for me in 104aefc10cd9486e21d0895ac5c9ad7a8cd3dce6

Thanks for pointing that out, @stevenla.


ButtonGroup does not stack on screen resize if the Buttons have no breaks in labels

Provide a general summary of the issue here
The <ButtonGroup> in a horizontal orientation does not stack to a vertical orientation on screen resize, if none of the <Button> children have a break (space, dash, etc.) in their label.
🤔 Expected Behavior?
The <ButtonGroup> in horizontal orientation that has <Button> children with no spaces in their labels should stack vertically when the screen is resized to a width smaller than the ButtonGroup width.
😯 Current Behavior
The <ButtonGroup> does not stack when the screen is resized.
However, adding a single space to any of the <Button> labels does make the ButtonGroup stack.
💁 Possible Solution
No response
🔦 Context
No response
🖥 Steps to Reproduce
Codesandbox demo
Reproduction code (in case the codesandbox link no longer works):
// this does not stack
<ButtonGroup>
  <Button variant="primary">nospace</Button>
  <Button variant="secondary">nospace</Button>
  <Button variant="secondary">nospace</Button>
</ButtonGroup>

// this stacks fine
<ButtonGroup>
  <Button variant="primary">with space</Button>
  <Button variant="secondary">nospace</Button>
  <Button variant="secondary">nospace</Button>
</ButtonGroup>

Version
latest
What browsers are you seeing the problem on?
Firefox, Chrome, Safari
If other, please specify.
No response
What operating system are you using?
macOS 12.4
🧢 Your Company/Team
Adobe
🕷 Tracking Issue
No response

Reproduced this locally, seems like this section of the code always resolves with maxX being greater than the last button's calculated child.offsetLeft + child.offsetWidth by just 1. Will need to dig further to see if there is a better way to detect overflow here


referentialIntegrity=prisma: Delete parent relation failing when using composite id

Bug description
I am trying to move to referential actions when deleting but get failures. If i don't add anything to onDelete the event gets deleted but not the sessions (whats the default action when using referentialIntegrity = "prisma"?), adding onDelete: Cascade I get an error FailedPrecondition desc = Operand should contain 2 column(s) (errno 1241).
Looking at the query logged (shown below) it looks like only the id is passed to delete the session when it needs the id and event_id because of the composite id
DELETE FROM `sessions` WHERE (`sessions`.`id`,`sessions`.`event_id`) IN ((?),(?))
How to reproduce
const prisma = new PrismaClient({
  log: ['query', 'info', 'warn', 'error'],
})

// step 2 create snippet
prisma.event.create({
  data: {
    id: 'prisma',
    name: 'prisma-bug',
    sessions: {
      createMany: {
        data: [
          { id: 'g', name: 'github' },
          { id: 'i', name: 'issue' },
        ]
      }
    }
  }
})

//step 3 delete snippet
prisma.event.delete({ where: { id: 'prisma' }})

Create the DB with Prisma Migrate using the provided Prisma schema
Create an event with sessions
Delete an event, see the error (recommend adding logging to client)

Expected behavior
When using cascade on a model with a composite id the delete should use all parameters of the composite id
Prisma information
datasource db {
  provider             = "mysql"
  url                  = env("DATABASE_URL")
  shadowDatabaseUrl    = env("SHADOW_DATABASE_URL")
  referentialIntegrity = "prisma"
}

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["referentialIntegrity"]
}

model Event {
  id          String    @id
  name        String
  sessions    Session[]

  @@map("events")
}

model Session {
  id          String
  name        String
  event       Event    @relation(fields: [eventId], references: [id], onDelete: Cascade)
  eventId     String   @map("event_id")

  @@id([id, eventId])
  @@map("sessions")
}

Environment & setup

OS: Windows
Database: PlanetScale
Node.js version: 15.3.0

Prisma Version
prisma                  : 3.2.1
@prisma/client          : 3.2.1
Current platform        : windows
Query Engine (Node-API) : libquery-engine b71d8cb16c4ddc7e3e9821f42fd09b0f82d7934c (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli b71d8cb16c4ddc7e3e9821f42fd09b0f82d7934c (at<EMAIL_ADDRESS>Introspection Engine    : introspection-core b71d8cb16c4ddc7e3e9821f42fd09b0f82d7934c (at<EMAIL_ADDRESS>Format Binary           : prisma-fmt b71d8cb16c4ddc7e3e9821f42fd09b0f82d7934c (at<EMAIL_ADDRESS>Default Engines Hash    : b71d8cb16c4ddc7e3e9821f42fd09b0f82d7934c
Studio                  : 0.435.0
Preview Features        : referentialIntegrity

I have added reproduce steps (I had commented them by accident) and removed fields from the schema that didn't relate to the issue. Any other information needed @janpio ?

No, that looks good. Someone on our side will have to try this reproduction and see if we can confirm it. I would not be surprised if that was the case - thanks for all the information @TheTomTom3901!

I can reproduce and confirm this problem in 3.7.0:
C:\Users\Jan\Documents\throwaway\10000>node script.js
  prisma:tryLoadEnv Environment variables loaded from C:\Users\Jan\Documents\throwaway\10000\.env +0ms
  prisma:tryLoadEnv Environment variables loaded from C:\Users\Jan\Documents\throwaway\10000\.env +6ms
  prisma:client clientVersion: 3.7.0 +0ms
  prisma:client clientEngineType: library +1ms
  prisma:client:libraryEngine internalSetup +0ms
  prisma:client Prisma Client call: +14ms
  prisma:client prisma.event.create({
  prisma:client   data: {
  prisma:client     id: 'prisma',
  prisma:client     name: 'prisma-bug',
  prisma:client     sessions: {
  prisma:client       createMany: {
  prisma:client         data: [
  prisma:client           {
  prisma:client             id: 'g',
  prisma:client             name: 'github'
  prisma:client           },
  prisma:client           {
  prisma:client             id: 'i',
  prisma:client             name: 'issue'
  prisma:client           }
  prisma:client         ]
  prisma:client       }
  prisma:client     }
  prisma:client   }
  prisma:client }) +3ms
  prisma:client Generated request: +6ms
  prisma:client mutation {
  prisma:client   createOneEvent(data: {
  prisma:client     id: "prisma"
  prisma:client     name: "prisma-bug"
  prisma:client     sessions: {
  prisma:client       createMany: {
  prisma:client         data: [
  prisma:client           {
  prisma:client             id: "g"
  prisma:client             name: "github"
  prisma:client           },
  prisma:client           {
  prisma:client             id: "i"
  prisma:client             name: "issue"
  prisma:client           }
  prisma:client         ]
  prisma:client       }
  prisma:client     }
  prisma:client   }) {
  prisma:client     id
  prisma:client     name
  prisma:client   }
  prisma:client }
  prisma:client  +0ms
  prisma:client:libraryEngine sending request, this.libraryStarted: false +31ms
  prisma:client:libraryEngine Search for Query Engine Library in C:\Users\Jan\Documents\throwaway\10000\node_modules\.prisma\client +2ms
  prisma:client:libraryEngine loadEngine using C:\Users\Jan\Documents\throwaway\10000\node_modules\.prisma\client\query_engine-windows.dll.node +1ms
  prisma:client:libraryEngine library starting +10ms
prisma:info Starting a mysql pool with 9 connections.
  prisma:client:libraryEngine library started +973ms
prisma:query BEGIN
prisma:query INSERT INTO `10000`.`events` (`id`,`name`) VALUES (?,?)
prisma:query INSERT INTO `10000`.`sessions` (`id`,`event_id`,`name`) VALUES (?,?,?), (?,?,?)
prisma:query SELECT `10000`.`events`.`id`, `10000`.`events`.`name` FROM `10000`.`events` WHERE `10000`.`events`.`id` = ? LIMIT ? OFFSET ?
prisma:query COMMIT
{ id: 'prisma', name: 'prisma-bug' }
  prisma:client Prisma Client call: +2s
  prisma:client prisma.event.delete({
  prisma:client   where: {
  prisma:client     id: 'prisma'
  prisma:client   }
  prisma:client }) +1ms
  prisma:client Generated request: +1ms
  prisma:client mutation {
  prisma:client   deleteOneEvent(where: {
  prisma:client     id: "prisma"
  prisma:client   }) {
  prisma:client     id
  prisma:client     name
  prisma:client   }
  prisma:client }
  prisma:client  +1ms
  prisma:client:libraryEngine sending request, this.libraryStarted: true +960ms
prisma:query BEGIN
prisma:query SELECT `10000`.`events`.`id`, `10000`.`events`.`name` FROM `10000`.`events` WHERE `10000`.`events`.`id` = ? LIMIT ? OFFSET ?
prisma:query SELECT `10000`.`sessions`.`id`, `10000`.`sessions`.`event_id` FROM `10000`.`sessions` WHERE (1=1 AND `10000`.`sessions`.`event_id` IN (?))
prisma:query DELETE FROM `10000`.`sessions` WHERE (`10000`.`sessions`.`id`,`10000`.`sessions`.`event_id`) IN ((?),(?))
prisma:query ROLLBACK
  prisma:client:fetcher Error: Error occurred during query execution:
  prisma:client:fetcher ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Server(ServerError { code: 1241, message: "vttablet: rpc error: code = FailedPrecondition desc = Operand should contain 2 column(s) (errno 1241) (sqlstate 21000) (CallerID: unsecure_grpc_client): Sql: \"delete from sessions where (sessions.id, sessions.event_id) in (:v1, :v2)\", BindVars: {#maxLimit: \"type:INT64 value:\\\"100001\\\"\"v1: \"type:VARBINARY value:\\\"g\\\"\"v2: \"type:VARBINARY value:\\\"i\\\"\"}", state: "21000" })) })
  prisma:client:fetcher     at prismaGraphQLToJSError (C:\Users\Jan\Documents\throwaway\10000\node_modules\@prisma\client\runtime\index.js:35963:10)
  prisma:client:fetcher     at Object.request (C:\Users\Jan\Documents\throwaway\10000\node_modules\@prisma\client\runtime\index.js:36324:17)
  prisma:client:fetcher     at async cb (C:\Users\Jan\Documents\throwaway\10000\node_modules\@prisma\client\runtime\index.js:38658:26)
  prisma:client:fetcher     at async main (C:\Users\Jan\Documents\throwaway\10000\script.js:28:17) +0ms
PrismaClientUnknownRequestError:
Invalid `prisma.event.delete()` invocation in
C:\Users\Jan\Documents\throwaway\10000\script.js:28:42

  25 console.log(event)
  26
  27 //step 3 delete snippet
→ 28 let deleted = await prisma.event.delete(
  Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Server(ServerError { code: 1241, message: "vttablet: rpc error: code = FailedPrecondition desc = Operand should contain 2 column(s) (errno 1241) (sqlstate 21000) (CallerID: unsecure_grpc_client): Sql: \"delete from sessions where (sessions.id, sessions.event_id) in (:v1, :v2)\", BindVars: {#maxLimit: \"type:INT64 value:\\\"100001\\\"\"v1: \"type:VARBINARY value:\\\"g\\\"\"v2: \"type:VARBINARY value:\\\"i\\\"\"}", state: "21000" })) })
    at cb (C:\Users\Jan\Documents\throwaway\10000\node_modules\@prisma\client\runtime\index.js:38692:17)
    at async main (C:\Users\Jan\Documents\throwaway\10000\script.js:28:17) {
  clientVersion: '3.7.0'
}
  prisma:client:libraryEngine hookProcess received: exit +840ms
  prisma:client:libraryEngine runBeforeExit +23ms

I used the schema you provided:
datasource db {
  provider             = "mysql"
  url                  = env("DATABASE_URL")
  referentialIntegrity = "prisma"
}

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["referentialIntegrity"]
}

model Event {
  id       String    @id
  name     String
  sessions Session[]

  @@map("events")
}

model Session {
  id      String
  name    String
  event   Event  @relation(fields: [eventId], references: [id], onDelete: Cascade)
  eventId String @map("event_id")

  @@id([id, eventId])
  @@map("sessions")
}

And this reproduction script:
const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient({
  log: ['query', 'info', 'warn', 'error'],
})

// A `main` function so that we can use async/await
async function main() {

  // step 2 create snippet
  let event = await prisma.event.create({
    data: {
      id: 'prisma',
      name: 'prisma-bug',
      sessions: {
        createMany: {
          data: [
            { id: 'g', name: 'github' },
            { id: 'i', name: 'issue' },
          ]
        }
      }
    }
  })
  console.log(event)

  //step 3 delete snippet
  let deleted = await prisma.event.delete({ where: { id: 'prisma' }})
  console.log(deleted)
}

main()
  .catch((e) => {
    console.error(e)
    process.exit(1)
  })
  .finally(async () => {
    await prisma.$disconnect()
  })

Here are the failing queries with their parameters:
Query:  BEGIN
Params: []
Query:  SELECT `10000`.`events`.`id`, `10000`.`events`.`name` FROM `10000`.`events` WHERE `10000`.`events`.`id` = ? LIMIT ? OFFSET ?
Params: ["prisma",1,0]
Query:  SELECT `10000`.`sessions`.`id`, `10000`.`sessions`.`event_id` FROM `10000`.`sessions` WHERE (1=1 AND `10000`.`sessions`.`event_id` IN (?))
Params: ["prisma"]
Query:  DELETE FROM `10000`.`sessions` WHERE (`10000`.`sessions`.`id`,`10000`.`sessions`.`event_id`) IN ((?),(?))
Params: ["g","i"]
Query:  ROLLBACK
Params: []

which makes the failing query:
DELETE FROM 10000.sessions WHERE (10000.sessions.id,10000.sessions.event_id) IN (("g"),("i")); and invalid indeed

Hey there! I'm facing the same issue. Any updates on this?

Hi @appsbytom, while I was able to reproduce the issue with<EMAIL_ADDRESS>this bug should be gone by now (as tested locally with prisma@4.1.1).
I'm closing this issue now. Please let us know whether this is indeed fixed, and if it's still a problem we will reopen this issue!

@laybacktrade Can you please also take a look to confirm this is fixed? Thanks.


[feature] Add public to node sparse fields [OSF-8721]

Purpose
Public was missing from the fields selected for the my projects page.

Changes
Add public so things can be displayed as public again.
PUBLIC BEFORE:

PUBLIC AFTER:

Side effects
More awesomeness.

Ticket
https://openscience.atlassian.net/browse/OSF-8721

Is this a bug on master? If so, please promote this to a hotfix.

@sloria It is, yes. Willdo.

Rebasing was unpleasant; Closing in favor of cherry-picked #7741


Time Zone

After applying the changes mentioned here https://github.com/idleberg/Bootstrap-Listr/issues/225 (time stamp vs time ago), it changed what I needed to change - however the time zone appears to be off. It looks like it may be GMT. I'm looking to set the time zone to EST/EDT, or 'America/New_York'. Where exactly is the time zone handled for this application?
I've checked my php.ini and verified the correct time zone is set, as well as all my other PHP applications report the correct zone:
date/time support => enabled
"Olson" Timezone Database Version => 2015.5
Timezone Database => internal
Default timezone => America/New_York

Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => America/New_York => America/New_York

My server time is also set to America/New_York
[root@box ~]# date
Fri Apr 15 18:15:42 EDT 2016

Thanks for the notice, a fix is now available in the 2.3-dev branch

Awesome, thanks!


question: Windows Defender blocks download of 1.10.1 and 1.10.2 zip and msi files

Windows Defender at the latest rev (Security intelligence version: 1.419.751.0, Version created on: 2024-10-28 02:15) rejects smartthings.msi and smartthings.zip rev 1.10.2 (and also 1.10.1) as "severe" threats with "virus detected."
Also - might it be possible for this tool to get a Windows developer signature?
Thank you for a terrific and terrifically helpful software package.

Thank you for alerting us to this issue!  We're looking into it and hope to get it resolved soon.


May be unsound?

This thread:
https://users.rust-lang.org/t/about-the-soundess-of-a-non-static-any-trait/65830/12?u=ten
suggests that this crate is doing something unsound when converting from Any to Tid:

it assumes that the vtable of Any will have the same layout as the vtable of trait Trait for a Trait with a type_id method. Worst thing is, it isn't even a necessary hack for a lifetime-infected Any (it's just something the author did to improve the ergnomics between Any_1<'lt> and Any (see below), which is a pity since it means that that crate is unsound because of this silly thing when the actual subtle stuff is done correctly! :sweat_smile:)

It looks like this may be something that needs to be fixed.

I think it has been already fixed in 0.2 version.


bin install github.com/helm/helm

I got the following error with bin install github.com/helm/helm:
% bin install github.com/helm/helm
   • Getting latest release for helm/helm

Multiple matches found, please select one:

 [1] 54827640
 [2] 54827642
 [3] 54827644
 [4] 54827645
 [5] 54827647
 [6] 54827648
 Select an option: ^C

I would expect the versions x.y.z. here.

Fixed in bin v0.13.1.
Unfortunately, helm cannot be installed using bin because they don't publish their binaries in github releases.

Alternatives?

Use any of their official package manager releases? https://helm.sh/

Seems this will be possible when this PR https://github.com/marcosnils/bin/pull/179 will be merged, and for kubectl too?

Seems this will be possible when this PR #179 will be merged, and for kubectl too?

yes, this seems to be possible.


Remove the PartSetHeader where possible

Summary
Remove the PartSetHeader.
Details
As mentioned in #184, we now are propagating block data via IPFS and no longer need to do so via the PartSetHeader. After #218 and #374 are completed, we will have the necessary groundwork finished to actually remove the PartSetHeader completely. Complete removal is the next step to moving on with replacing the BlockID with the Header hash.
Action Items

[x]  #441
[x]  #456
[ ] Remove from other structs/figure out exactly where it is needed

References
part of completing #184

https://github.com/celestiaorg/lazyledger-core/pull/293 is also highly related. PartSetHeader is used extensively in consensus reactor and it might be necessary to implement block propagation first before removing PartSetHeader

and it might be necessary to implement block propagation first before removing PartSetHeader

It might also be possible to simply use the existing tendermint block propagation mechanism (maybe using erasure coded shares instead of current chunking) to unblock this and use the DAHeader instead of partsetheader where needed.

ref: #389 #423

Update: Instead of removing the PartSetHeader completely, will still use it, or something similar (#427 & #434), to propagate blocks during consensus. Regardless, we should still follow through with removal of the PartSetHeader where possible. Starting with #456.

Update: Removing the PartSetHeader from Vote and Commit would require a refactor in the consensus reactor to change how the PSH is passed. It should be noted that while the PartSetHeader is still included in Vote, it is no longer signed over since #457

I think we should continue with the removal of the PSH from the Commit after we update to a newer version of tendermint.

Yeah, I agree there is no rush and it makes sense to update to a newer tendermint version first.

we have since decided to keep tendermint as a black box, and complete removal of the PSH is no longer an option. That being said, we still have plans to experiment with removing it from the header and not signing over it #511


Unhandled rejection on error

Hi and happy new year!
I've been fighting with an unhandled rejection on useMutation and it seems it might be coming from react-query. I am able to reproduce on your sandbox and it seems to affect useQuery as well.
On the sandbox, increase the error rate to 0.95 (for example) and try adding a todo or refetching. The error is treated properly and surfaced in userland as expected, however create-react-app still catches it as unhandled and display its error overlay.
Any idea?
PS: Really great idea to have a sandbox playground for this kind of things 👍

Ah, this is because there is a mutate() call happening in AddTodo without a try catch wrapper, thus, when the mutation fails, it throws all the way up into the renderer code (which is not async) and ends up at the top level of the app. This should be wrapped in a try catch block and handled like other errors, regardless if anything is done. If you would like to submit a PR to fix that in the example, I would accept it quickly.

Thanks for explaining this. I've opened the PR you suggested.
Would you be opened to adding a noThrow boolean option to mutate that would basically avoid rethrowing here?
https://github.com/tannerlinsley/react-query/blob/6b56a14f061aaf9f515cc0c476acfff27c148cc3/src/index.js#L643
If yes, I don't mind trying to submit a PR.


When I load two models mistral and llama2, inference goes to CPU for both it seems

Would be nice if one of them was loaded in GPU even if both could not fit in GPU simultaneously.

wrong observation


build-fhs-user-env: add compatibility for pipewire alsa emulation

The NixOS pipewire module places its alsa compatiblity configuration in
/etc/alsa/conf.d/ instead of /etc/asound.conf. This commit enables
applications running in a fhs environment to use alsa on systems
running pipewire.
This is heavily copied from https://github.com/NixOS/nixpkgs/pull/129846

Motivation for this change
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

This seems to solve davinci-resolve's audio w/ Pipewire (mentioned by several people in https://github.com/NixOS/nixpkgs/pull/152113). Could we merge?

Any blockers for this? Still hitting the above issue and this seems like a simple enough fix.

This must be rebased but since this PR is quite stale and the author already deleted the branch I am closing it.


Can't use absolute urls for icons on ios

When I specify icons with an absolute url in the manifest they render with a prefixed / for apple meta tags.
I have this in manifest.js:
icons: [
    {
      src: 'https://website.com/image/upload/123/icon-192.png',
      sizes: '192x192',
      type: 'image/png'
    }
]

The manifest file would be correct:
"icons": [
  {
    "src": "https://website.com/image/upload/123/icon-192.png",
    "sizes": "192x192",
    "type": "image/png"
  }
]

But the apple tags would look like this:
<link rel="apple-touch-icon" href="/https://website.com/image/upload/123/icon-192.png" sizes="192x192">

 href="/ the slash can't be at the beginning of the url.. 😕

Thanks for reporting this, I'll try to fix it as soon as I have a bit of free time.

@oscarni I've just released v1.3.1 with the fix. Thank you for tackling this!
See https://github.com/san650/ember-web-app/releases/tag/v1.3.1


[Bug]: Create an archiving task. Click Create continuously to create two identical archiving tasks.

ODC version
ODC432
OB version
independent
What happened?
Create an archiving task. Click Create continuously to create two identical archiving tasks.

What did you expect to happen?
。
How can we reproduce it (as minimally and precisely as possible)?
。
Anything else we need to know?
No response

Fixed In Commit 8e5c660f3ec447e4d9e93bfd33f1b604e28f1c0a
------
畅晚
Wed Sep 11 10:00:03 2024 +0800

pass


Can't drag editor from explorer to open editors

Testing #41688
Shouldn't it be possible to do so? In the same way both areas can be dragged onto the editor pane.

Fixed via https://github.com/Microsoft/vscode/commit/535fc34ba442fc22bc02008c83fe4ee1ab38f23b


Expand the widget definition

Expand the widget definition with attributes axRole and axPatterns to support page visualization of the laxar-developer-tools-widget.

Implemented on master (v4.1.0).


Make reading speed more realistic

Before, the reading speed for each word was constant, which is unrealistic; a person doesn't read "the" and "utilitarianism" at the same speed. Thus, I've made the reading speed vary word to word based on a couple of factors. The speed slider will now range from 0-100, with 0 being the slowest and 100 being the fastest.
Here's the new timing scheme:

Powermark appears instantaneously.
The time delay for each word is based on the natural logarithm of the word length with an upward shift of 1. I tried looking for research into any relationship between word length and reading time, but I didn't find anything. I also tried out basing the time off of an exponent, but I didn't like it as much. Feel free to modify if you find a function you like better.
Words ending with periods receive extra delay if the second to last character is not uppercase. This makes it so things like E. coli aren't given this delay, but it does occasionally misfunction if the last word in the sentence is something like an uppercase physics symbol.
Words ending with commas receive a smaller extra delay.
Words ending with fancy quote (\u201d) will be checked to see if they have a comma or ending punctuation mark beforehand  in order to gain the respective extra delay.
The reading time for each word will be scaled linearly based on the user-inputted reading speed.

I shortened the period and comma timing, since the delay felt too long before.


udp2raw not working on OpenWRT

Good morning,
I'm trying to use udp2raw on a BPI R3 with OpenWRT 23.05.2, but.....
root@OpenWrt:~# ./udp2raw_arm
./udp2raw_arm: line 1: syntax error: unexpected word (expecting ")")

How can I solve this?
Thanks in advance

use arm64 instead of arm

There is no arm64 on the release tarball

Copy the following folder to your openwrt code and then compile
https://github.com/HiGarfield/lede-17.01.4-Mod/tree/master/package/extra/udp2raw

I'm not very practical in openwrt...how can I compile it?

What model is your wireless router?

Bananapi R3

udp2raw_aarch64_cortex-a53_bin.zip
You can install it in two ways.

Install udp2raw_e42f0e57-1_aarch64_cortex-a53.ipk; then, the dependencies will be automatically installed.
Install the dependencies  libstdcpp, libpthread, and librt, then copy the binary file udp2raw to your router.

udp2raw_aarch64_cortex-a53_bin.zip
You can use either the udp2raw binary or the udp2raw_e42f0e57-1_aarch64_cortex-a53.ipk package.

It works!
But how can I compile it by myself? Do you have a guide?

udp2raw.zip
I have prepared the Openwrt package source (Makefiles and a patch). You can compile it using Openwrt SDK.
Steps:

Unzip udp2raw.zip and place the udp2raw folder into packages.
Run the following commands:
'''
./scripts/feeds update -a
./scripts/feeds install -a
make package/udp2raw/download V=s
make package/udp2raw/prepare V=s
make package/udp2raw/compile V=s
'''

Ok it works. But where did you find udpraw.zip? I would like to compile any new version by myself
Thanks

Modified from https://github.com/sensec/openwrt-udp2raw.
To obtain the latest version, simply make modifications to PKG_SOURCE_VERSION and PKG_MIRROR_HASH in the Makefile.

Perfect.
Could be a good idea to add a wiki on https://github.com/sensec/openwrt-udp2raw
Thanks a lot

i will include arm64 version in next release.


Build failed when the directory name includes a space

Description:
Ballerina build was failed with the following error message, but it was built successfully after the space was removed from the directory name.
> Task :jballerina-tools:generateDocs FAILED
Error: Could not find or load main class org.ballerinalang.plugin.gradle.doc.DocerinaGen
Caused by: java.lang.ClassNotFoundException: org.ballerinalang.plugin.gradle.doc.DocerinaGen

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':jballerina-tools:generateDocs'.
> Process 'command '/usr/lib/jvm/java-11-openjdk-amd64/bin/java'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4/userguide/command_line_interface.html#sec:command_line_warnings

Steps to reproduce:
Add a space to the middle of the directory name where ballerina-lang was cloned. Example :  /1 week/...
OS, DB, other environment details and versions:
Ubuntu 20.04.1 LTS
JAVA 11

This issue seems to be fixed. Works fine when tried locally with a directory containing a space. Hence closing the issue.


Collection caching

Collections are currently dynamic resources, which means that they are fully calculated when a user sends a request. That works fine, but it comes at a performance cost, since the DB must be queried.
How to cache this? How does this interact with the get_extended_resource function? How to invalidate the cache? Let's discuss some considerations.
Collections can be sorted and filtered by adding query params. These of course change the dynamic properties such as  members and total_count. These should be cached seperately.
Since all changes should be done using Commits, we can perform cache invalidations while handling Commits. How does the Commit handler know which resources should be invalidated? For example, let's say I remove the firstName property with the john value from some person Resource. The person first appeared in the collections of people named john, but this collection should now be invalidated.
Invalidation approaches
Invalidate when any attribute of a resource chages
When a Collection iterates over its members, it adds the subject of the collection (including query params) to a K/V incomingLinks store where each K is a subject, and each V stands for an array of subjects that link to it. When a commit is applied to resource X, it takes subject X and opens the incomingLinks instance of that X. It then proceeds to invalidate all the V items. This will invalidate many collections that could very well result in exactly the same members, when re-run.
Use TPF index / cache
#14
If we build an index for all values, most of the expensive part is solve. It just leaves sorting - which still is expensive.

Now that a Value Index #14 has been implemented, this issue has become a lot less relevant. Only when collections are very large, it might make sense to cache things like filtering and sorting.

I'm noticing that on my laptop, some collections (such as commits) are becoming a bit slower (200 ms for 1400 entries). Makes sense, as all items are iterated and sorted on the fly.
That should happen at index time, not at runtime.

I've learned a bit more about how to optimise using sled, so let's talk about a different implementation idea:

Add a new sled::Tree called collections_cache (a KV store) that, for each time a collection is queried, stores an item.
The K is the collection URL (including query params!) + the Value of the value being sorted. This means we always sort by value, and have no indexing cost for sorting. Perhaps we should limit this value to a relatively small amount of characters. If a Collection is not sorted, it is sorted by subject. In that case, use the subject as the sortable value.
The V should be a Vec<String> of all the subjects in the collections that share this sorted value.
We use scan_prefix(collection_url) to construct the list of subjects. We can start iterating at the end or at the start, depending on the request of the user.
Since we use scan in this manner, we could allow users to pass a start_at parameter, which is a value from which the lexicographic sorting starts. This can be useful for example in constructing a list of most recent items, or render an infinite scroll list.


Error while registering account with ACME server

I'm getting errors for domains. as it is not able to generate new certificates and thus ends up loading fallback certificates. Do we need to upgrade anything?
Below are my logs for the errors.
2017/11/16 08:53:15 [error] 3256#0: 9 [lua] ssl_certificate.lua:92: issue_cert(): auto-ssl: issuing new certificate failed: deh      ydrated failure, context: ssl_certificate_by_lua, client: <IP_ADDRESS>, server: <IP_ADDRESS>:443
2017/11/16 08:53:15 [error] 3256#0: 9 [lua] ssl_certificate.lua:256: auto-ssl: could not get certificate for domain.com - usin      g fallback - failed to get or issue certificate, context: ssl_certificate_by_lua, client: <IP_ADDRESS>, server: <IP_ADDRESS>:443
2017/11/16 08:54:14 [error] 3610#0: *5 [lua] lets_encrypt.lua:40: issue_cert(): auto-ssl: dehydrated failed: env HOOK_SECRET=8c9      5ffa6d282a47d7e65e2c94c66c21b9a89a257c6f2e92bbdba648e09e7fd3d HOOK_SERVER_PORT=8999 /usr/local/bin/resty-auto-ssl/dehydrated --c      ron --no-lock --domain wagikdev.tk --challenge http-01 --config /etc/resty-auto-ssl/letsencrypt/config --hook /usr/local/bin/res      ty-auto-ssl/letsencrypt_hooks status: 256 out: # INFO: Using main config file /etc/resty-auto-ssl/letsencrypt/config

Generating account key...
Registering account key with ACME server...

Error registering account key. See message above for more information.
err: # !! WARNING !! Extra configuration directory /etc/resty-auto-ssl/letsencrypt/conf.d exists, but no configuration found in       it.

ERROR: An error occurred while sending post-request to https://acme-staging.api.letsencrypt.org/acme/new-reg (Status 400)

Details:
{
"type": "urn:acme:error:malformed",
"detail": "Provided agreement URL [https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf] does not match current ag      reement URL [https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf]",
"status": 400
}
rm: cannot remove '/etc/resty-auto-ssl/letsencrypt/domains.txt': No such file or directory
, context: ssl_certificate_by_lua*, client: <IP_ADDRESS>, server: <IP_ADDRESS>:443

Hi @sahildeliwala!
@GUI said he'll fix the issue this week.
If you need a temporary workaround, add the following line in /etc/resty-auto-ssl/letsencrypt/config:
LICENSE="https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf"
(Don't leave such config in a production env for too long, or it'll fail if Let's Encrypt terms of service ever change again)

Wouldn't it be better to use:
LICENSE="https://acme-v01.api.letsencrypt.org/terms" or
LICENSE="https://acme-staging.api.letsencrypt.org/terms" which seems to redirect to the current terms?

@fjros @brianlund Thanks for prompt response
I've tried this but certificate still has issue. It displays  "Fake LE Intermediate X1" as certificate issuer and shows privacy error in browser

From your original message, it seems you are running against the staging endpoint, so you'll always get the "Fake LE Intermediate X1" certificate.

@brianlund how can we change this to request proper certificate? do we need to setup server variable in config as well? of flags?

@sahildeliwala if you don't explicitly point to the staging endpoint, it should default to production. Do you have any configuration mentioning staging under /etc/resty-auto-ssl/ ? Has this setup been working before?

"staging" is mentioned Nowhere
contents of /etc/resty-auto-ssl/letsencrypt/config
#This file will be overwritten by resty-auto-ssl.
# Place any customizations in /etc/resty-auto-ssl/letsencrypt/conf.d
CONFIG_D="/etc/resty-auto-ssl/letsencrypt/conf.d"
LOCKFILE="/etc/resty-auto-ssl/letsencrypt/locks/lock"
WELLKNOWN="/etc/resty-auto-ssl/letsencrypt/.acme-challenges"
Contents of /etc/resty-auto-ssl/letsencrypt/config.d/config (File I created now)
LICENSE="https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf"

What about in /etc/resty-auto-ssl/letsencrypt/conf.d ?

Contents of /etc/resty-auto-ssl/letsencrypt/config.d/config (File I created now)
LICENSE="https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf"

config.d or conf.d?

Yeah sorry its conf.d/config

Ok. First thing is that I believe settings to picked up from conf.d/ the file probably need to be named config.sh (or something else with the suffix .sh), try that first.
Also could you answer if this setup used to work?

I've never have to setup any additional configs before. It would work smoothly before. this is just cause I think the url for accepting terms is changed. I've changed that but still it has issue.

Try renaming the file to config.sh - then check the debug output to see if you're still getting the same error message.

@brianlund Renaming it to .sh worked!
Thank you very much for you help.

This should be fixed in lua-resty-auto-ssl v0.11.1 that's now available on luarocks.
To fix this, the bundled version of dehydrated has been updated to v0.4.0 and the new --accept-terms options has been enabled.
I opted to enable the --accept-terms option by default to not break backwards compatibility in this patch release. However, I am wondering whether we should instead require the user to take an explicit action to accept the terms, like dehydrated has done: https://github.com/lukas2511/dehydrated/issues/346. Instead, I've added a note to the README clarifying that using lua-resty-auto-ssl means you accepts the terms:

By using lua-resty-auto-ssl to register SSL certificates with Let's Encrypt, you agree to the Let's Encrypt Subscriber Agreement.

But I'm not sure if that's sufficient or not. Feedback is welcome is anyone has any suggestions or thoughts.
Sorry for the hiccup with this, but thanks again to everyone for reporting this!


Issue loading in EMHASS Nordpool energy prices

Hello,
I'm very interested in the EMHASS Add-on for efficiently charging my home-batteries via my PV-System en when the energy prices are low directly from the Grid. Also I want to sell excessive energy back to the grid to make the ROI of my Battery system as short as possible.
I have read the EMHASS documentation and installed the EMHASS add-on. I’m using a dedicated NUC running HASSIO.
I also have installed the Nordpool integration showing the RAW-Data for today and tomorrow. I renamed this as suggested in “nordpool”. I entered the curl commands in my configuration.yaml file as described.
When starting up HA the EMHASS log is showing as follows:
  s6-rc: info: service s6rc-oneshot-runner: starting
  s6-rc: info: service s6rc-oneshot-runner successfully started
  s6-rc: info: service fix-attrs: starting
  s6-rc: info: service fix-attrs successfully started
  s6-rc: info: service legacy-cont-init: starting
  s6-rc: info: service legacy-cont-init successfully started
  s6-rc: info: service legacy-services: starting
  services-up: info: copying legacy longrun emhass (no readiness notification)
  s6-rc: info: service legacy-services successfully started
  [2023-02-28 18:30:29,180] INFO in web_server: Launching the emhass webserver at: http://<IP_ADDRESS>:5000
  [2023-02-28 18:30:29,181] INFO in web_server: Home Assistant data fetch will be performed using url: http://supervisor/core/api
  [2023-02-28 18:30:29,181] INFO in web_server: The data path is: /share
  [2023-02-28 18:30:29,183] INFO in web_server: Using core emhass version: 0.3.36
  [2023-02-28 18:32:12,574] INFO in web_server: EMHASS server online, serving index.html...
  [2023-02-28 18:32:27,495] INFO in command_line: Setting up needed data
  [2023-02-28 18:32:27,614] INFO in forecast: Retrieving weather forecast data using method = scrapper
  [2023-02-28 18:32:30,176] INFO in forecast: Retrieving data from hass for load forecast using method = naive
  [2023-02-28 18:32:30,177] INFO in retrieve_hass: Retrieve hass get data method initiated...
  [2023-02-28 18:32:30,797] INFO in web_server: EMHASS server online, serving index.html...
  [2023-02-28 18:32:32,487] INFO in web_server:  >> Performing dayahead optimization...
  [2023-02-28 18:32:32,487] INFO in command_line: Performing day-ahead forecast optimization
  [2023-02-28 18:32:32,494] INFO in optimization: Perform optimization for the day-ahead
  [2023-02-28 18:32:32,738] INFO in optimization: Status: Optimal
  [2023-02-28 18:32:32,739] INFO in optimization: Total value of the Cost function = -16.5
  [2023-02-28 18:53:28,100] INFO in web_server: EMHASS server online, serving index.html...
  [2023-02-28 18:54:09,069] INFO in web_server: EMHASS server online, serving index.html...
  [2023-02-28 18:54:18,048] INFO in command_line: Setting up needed data
  [2023-02-28 18:54:18,050] INFO in forecast: Retrieving weather forecast data using method = scrapper
  [2023-02-28 18:54:19,274] INFO in forecast: Retrieving data from hass for load forecast using method = naive
  [2023-02-28 18:54:19,275] INFO in retrieve_hass: Retrieve hass get data method initiated...
  [2023-02-28 18:54:20,616] INFO in web_server:  >> Performing dayahead optimization...
  [2023-02-28 18:54:20,616] INFO in command_line: Performing day-ahead forecast optimization
  [2023-02-28 18:54:20,623] INFO in optimization: Perform optimization for the day-ahead
  [2023-02-28 18:54:20,748] INFO in optimization: Status: Optimal
  [2023-02-28 18:54:20,749] INFO in optimization: Total value of the Cost function = -16.5
  [2023-02-28 18:54:39,450] INFO in web_server: EMHASS server online, serving index.html...

When running the EMHASS UI I get an updated optimization proposal graph and table but NOT with the energy prices as listed in the nordpool RAW-Data.

index
P_PV
P_Load
P_deferrable0
P_deferrable1
P_deferrable2
P_deferrable3
P_grid_pos
P_grid_neg
P_grid
unit_load_cost
unit_prod_price
cost_profit
cost_fun_profit

2023-02-28 19:00:00+01:00
-1.500000
3.033833
0.0
0.0
0.0
7000.0
7004.533800
0.000000
7004.533800
0.1419
0.065
-0.496972
-0.496972

2023-02-28 19:30:00+01:00
-1.500000
2.812722
0.0
1000.0
0.0
7000.0
8004.312700
0.000000
8004.312700
0.1419
0.065
-0.567906
-0.567906

2023-02-28 20:00:00+01:00
-1.500000
1.527500
0.0
0.0
5000.0
0.0
5003.027500
0.000000
5003.027500
0.1419
0.065
-0.354965
-0.354965

2023-02-28 20:30:00+01:00
-1.500000
1.086444
0.0
1000.0
5000.0
0.0
6002.586400
0.000000
6002.586400
0.1419
0.065
-0.425884
-0.425884

2023-02-28 21:00:00+01:00
-1.500000
1.440833
0.0
0.0
0.0
7000.0
7002.940800
0.000000
7002.940800
0.1419
0.065
-0.496859
-0.496859

2023-02-28 21:30:00+01:00
-1.500000
1.079778
0.0
0.0
0.0
7000.0
7002.579800
0.000000
7002.579800
0.1419
0.065
-0.496833
-0.496833

2023-02-28 22:00:00+01:00
-1.500000
3.068222
0.0
0.0
0.0
7000.0
7004.568200
0.000000
7004.568200
0.1419
0.065
-0.496974
-0.496974

2023-02-28 22:30:00+01:00
-1.500000
2.724111
0.0
0.0
5000.0
0.0
5004.224100
0.000000
5004.224100
0.1419
0.065
-0.355050
-0.355050

I probably miss something simples but after looking for many hours I hope that somebody could help me out here.
I just started using Home assistant so Im not so experienced yet in HA so any guidance is more then welcome.
Best regards,
Pieter

Hi Peter, great this is one of the reasons why emhass exists, to help minimize roi's.
In your case as the optimization is already running with no problem your issue will be with the curl command. Could you please share the exact command that you are using?
And did you check that you have correct data on your prices list from Nordpool?

Hi David,
Thanks for your reply. I use in my configuration.yaml the following curl command for the nordpool integration.
shell_command:   trigger_nordpool_forecast: 'curl -i -H "Content-Type: application/json" -X POST -d ''{"load_cost_forecast":{{((state_attr(''sensor.nordpool'', ''raw_today'') | map(attribute=''value'') | list  + state_attr(''sensor.nordpool'', ''raw_tomorrow'') | map(attribute=''value'') | list))[now().hour:][:24] }},"prod_price_forecast":{{((state_attr(''sensor.nordpool'', ''raw_today'') | map(attribute=''value'') | list  + state_attr(''sensor.nordpool'', ''raw_tomorrow'') | map(attribute=''value'') | list))[now().hour:][:24]}}}'' http://localhost:5000/action/dayahead-optim'   dayahead_optim: 'curl -i -H "Content-Type:application/json" -X POST -d ''{}'' http://localhost:5000/action/dayahead-optim'
I renamed the original name of the nordpool sensor (sensor.nordpool_kwh_nl_eur_3_10_021) into nordpool as suggested.

I hope the above helps determining what the issue is on my side.
Br Pieter

Ok two more things.
First, try to use this same syntax:
shell_command:
  trigger_nordpool_forecast: "curl -i -H \"Content-Type: application/json\" -X POST -d '{\"load_cost_forecast\":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list  + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }},\"prod_price_forecast\":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list  + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24]}}}' http://localhost:5000/action/dayahead-optim"

Mostly for the load_cost_forecast between \".
So in your case the load forecast part should look like:
\"load_cost_forecast\":{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list  + state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }}

And secondly, if you put this in Developer tools / Template what is the result?:
{{((state_attr(''sensor.nordpool'', ''raw_today'') | map(attribute=''value'') | list  + state_attr(''sensor.nordpool'', ''raw_tomorrow'') | map(attribute=''value'') | list))[now().hour:][:24] }}

I have removed the old curl command and replaced it by the one you suggested above. After restarting HA, starting EMHASS and running Day-Ahead Optmimation and refresh te cash of my browser I still see the standard prices as listed in the EMHASS config file.
When running the given string in Dev.Tools / Template I get the folowing result:

Any more tips / suggestions?

Sorry I just updated my last comment with the correct template syntax. Try that please.
I'm that the moment whe n you get a correct list of values in DevTools/Template then it will work correctly on EMHASS.

I'm getting closer. When entering the given string in Dev/Tools/Template I get the following which is, I guess, not complete as I only see prices for tomorow.

When adding the line in configuration.yaml I had to add " at the end of the curl command to get no error when checking the configuration.yaml file.
Running EMHASS still does not give me the correct energy prices. Probebly becasue the generated data is not compleet.

Yes, that is the cause. Your list needs to have the correct size.
Using that template editor check the raw_today data only, there is no data there?
That template should correctly concatenate those today + tomorrow values

When I eneter the shortened line for only RAW-Today such as:
{{((state_attr('sensor.nordpool', 'raw_today') | map(attribute='value') | list ))}}
The  i see the following output:

Which are the prices of today. I notice now that this list starts exactly with the first price listed in RAW-sensor Data. When using the full string you gave me it see in the first lines some difference. Looks like the list is a mix of the prices.
I will take a closer look and play arround a bit more tomorow. I know now where to look.
Thanks for your help till so far.
Br Pieter

I just quickly tried the prices tommorow in the dev/tool template.
{{((state_attr('sensor.nordpool', 'raw_tomorrow') | map(attribute='value') | list))[now().hour:][:24] }}
Then the outcome is only one vallue.

It depends on the action that you want to execute and the time step that you are using from the add-on configuration pane.
So if you have a 30 min time step and you want to do a dayahead-optim as in your code snippet, then emhass will need a list of 48 values.
Other users had this same problem with Nordpool, check the community forum post for emhass for solutions.
A possible solution if during the day the length of that list is not always enough for emhass then you can may be switch to use MPC. For this you have to change your endpoint name and pass some additionnal parameters, notably the prediction horizon. So for example if during the day your list have at least 24 items at any given time, the do MPC with a 12 hours prediction horizon. Check the documentation, there are examples on how to set MPC.

Thanks for your input. I will take a look.

@PieterD67, I am using Nordpool data myself. You can look at my setup here: https://github.com/davidusb-geek/emhass-add-on/issues/37

Thanks for sharing the info. Seems you have the same kind of issue as I'm seeing. The Nordpool data is retreived OK but not used by during the optimasation task in EMHASS.  I understood that David has everything running within a docker based system. Maybe this is a pure HA-OS issue. I hope too have some time this weekend to take a closer look.

Yesterday I tried to debug this. I wrote a new special test to try to reproduce the issue but with no success. In my tests the passed list of values is always correctly integrated into the optimization.
I'll keep looking.

After all the changes that you have made since creating this issue, could you please restart the add-on then don't do any data publish task, then show the complete logs of just running the day-ahead optimization task?
Also please share your add-on config.yaml. Hiding any possible sensible information.

https://github.com/davidusb-geek/emhass-add-on/issues/37#issuecomment-1454716655


dts: Add _STRING_TOKEN and _STRING_UPPER_TOKEN to string-array

This is a proposal of DTS update to allow also accessing string array elements as a tokens.

The real need for that is that I am now creating segment LCD driver (sorry, but it has to be closed source at least for now). And for the convenience the description of the segments directly responds how it is described in the documentation. So in every documentation for the LCD we have a segment table and the description then looks like this:
com1 =  "S1"  , "0B"  , "1A"  , "S2"  , "2A"  , "MIN" , "3A"  , "3P"  , "4A"  , ""    , "5A"  , "S8"  ;
com2 =  "S6"  , "1F"  , "1B"  , "2F"  , "2B"  , "3F"  , "3B"  , "4F"  , "4B"  , "MAX" , "5B"  , "5F"  ;
com3 =  "S7"  , "1G"  , "1C"  , "2G"  , "2C"  , "3G"  , "3C"  , "4G"  , "4C"  , "S10" , "5C"  , "5G"  ;
com4 =  ""    , "1E"  , "1D"  , "2E"  , "2D"  , "3E"  , "3D"  , "4E"  , "4D"  , "S5"  , "5D"  , "5E"  ;
com-list = < 1 2 3 4 >;

Then I have to glue the segments mnemonics together with the prefixes to use them in the driver. I just think that the change here does not break anything in current DT usage and the community can benefit from that change and I was surprised that we do not have it already when we have the same solution for the string value types.
When it comes for the tests - I would be happy to implement it. Just give me some hint - where the test for gen_defines.py is implemented. I would read it and I will propose some tests required.

Looks like this needs a rebase also, for the CI issues.

Rebased

TBD:

[ ] Instance versions of the macros
[ ] Test cases

I can see that libraries.devicetree.api test cannot fit lpcxpresso55s69_ns. I was not expecting that this test has to fit some physical MCU - do we really need limitation like this?

I can see that libraries.devicetree.api test cannot fit lpcxpresso55s69_ns. I was not expecting that this test has to fit some physical MCU - do we really need limitation like this?

No, we don't. Can you figure out the testcase.yaml changes needed to make this just run on some QEMU platforms in upstream CI? I can't ever manage to figure out how twister works here, but I will for sure try to help if you can't figure it out.

It seems that forcing it to run on native_posix makes the test skipped. Setting DNM flag until I fix this.

@mbolivar-nordic I have no idea why it is skipping native_posix configuration. I had tried a few configurations. I think that help from some test team would be appreciated.

@nashif, @galak, @mbolivar-nordic - It is little frustrating how this PR goes. I know I had like 2 weeks vacation during this review. But is is almost 3 months since this was created and a month since my implementing all the changes requested. Is it going to be stale PR? Is there anything we are missing to pull it in?

https://github.com/zephyrproject-rtos/zephyr/pull/49365 for using common token names.

@rkel can you add a comment here to cleanup soc/arm/xilinx_zynq7000/common/pinctrl_soc.h to use the new macros.

@nashif, @galak, @mbolivar-nordic - It is little frustrating how this PR goes. I know I had like 2 weeks vacation during this review. But is is almost 3 months since this was created and a month since my implementing all the changes requested. Is it going to be stale PR? Is there anything we are missing to pull it in?

Sorry slide through the cracks.

Great. Thank you for the support :). I will be able to go deeper through the comments in 2-3 hours since now.

Great. Thank you for the support :). I will be able to go deeper through the comments in 2-3 hours since now.

@rkel - talked to @mbolivar-nordic and this looks good.  I'll handle my changes requests as a follow up PR.

Then I am happy as it is now.


Non alphanumeric keypress returns wrong character

Hello,
When I press a non alphanumeric character in the keyboard I get different character. ex
'.' returns  '¾'	(190)
'=' returns  '»' (187)
'' returns  'Ü' (220)
my current keyboard layout is en-US, and using keydown event
Is this behavior normal?

No. It should not behave like this. There must be some mistake. Is demo app working correctly in your environment?

The demo application works fine, I think maybe I using an older version of the library, let me update it and give you feedback afterward

I still get the same problem using even the latest version, what I noticed is that KeyEventArgsExt returns wrong character but KeyPressEventArgsExt returns the correct one.

It is not a bug. The issue will be closed. The problem is the way you are using the component. To get support from community. Please post your question in StackOverflow http://stackoverflow.com/questions/tagged/mousekeyhook #close


Update bindings to 3.0.10 ModSecurity

Some great joint work with @zangobot
This PR updates pybind11 bindings to ModSecurity 3.0.10
Not all methods were implemented, but the main "interface" ones are all there

Hey @GustavoKatel @davysson! :wave:
Did you get a chance to look at this PR?
Is the project still active? :pray:


CI Pipeline building app with dependency on 3rd party symbol extension errors with "Unable to locate the server instance: MicrosoftDynamicsNavServer$BC"

Describe the issue
I have a CI pipeline in DevOps that was produced using the hands on labs.  I'm trying to get it working on an extension that has a dependency on a 3rd party extension.  It was developed via installing the 3rd party AppSource extension into the cloud environment.  Adding the dependency in the launch.json and downloading the Symbol file.
I've provided the symbols.app file to the install apps parameter in my pipeline and got the same issue reported here https://github.com/microsoft/navcontainerhelper/issues/3717
I then added the -doNotPublishApps parameter to Run-AlPipelinecommand in the DevOps-Pipeline.ps1 file and the pipeline now successfully compiles the app and produces the artifact.  However, it now errors while getting the runtime package for the newly compiled app
2024-11-15T06:33:12.4771721Z Getting Runtime Package for BC Dev Test_Hello World_<IP_ADDRESS>609.app
2024-11-15T06:33:13.6726647Z Unable to locate the server instance: MicrosoftDynamicsNavServer$BC

I reproduced the issue in a spike HelloWorld app to make sure it wasn't anything particular to the extension itself.
Scripts used to create container and cause the issue
Scripts used are from the DevOps Hands On Labs, hooked up to a CI pipeline in DevOps.
Settings.json
{
    "name":  "Hellow World",
    "memoryLimit":  "6G",
    "installApps":  "https://[REDACTED].blob.core.windows.net/[REDACTED]/latest/apps.zip",
    "previousApps": "",
    "appFolders":  "Hello World",
    "testFolders":  "",
    "installTestRunner":  false,
    "installTestFramework":  false,
    "installTestLibraries":  false,
    "installPerformanceToolkit":  false,
    "doNotSignApps":  true,
    "enableCodeCop":  false,
    "enableAppSourceCop":  false,
    "enablePerTenantExtensionCop":  false,
    "enableUICop":  true,
    "useDefaultAppSourceRuleSet":  true,
    "appSourceCopMandatoryAffixes":  "",
    "appSourceCopSupportedCountries":  "US",
    "additionalCountries":  "",
    "bcContainerHelperVersion":  "Preview",
    "vaultNameForLocal":  "DevOpsBuildVariables",
    "versions":  [
                     {
                         "version":  "ci",
                         "artifact":  "///US/Current",
                         "additionalCountries":  "",
                         "cacheImage":  true,
                         "CreateRuntimePackages":  true
                     },
                     {
                         "version":  "current",
                         "artifact":  "///US/Current",
                         "CreateRuntimePackages":  true
                     },
                     {
                         "version":  "cloud",
                         "additionalCountries":  "",
                         "artifact":  "///US/Current"
                     },
                     {
                         "version":  "nextmajor",
                         "artifact":  "///US/NextMajor"
                     },
                     {
                         "version":  "nextminor",
                         "artifact":  "///US/NextMinor"
                     }
                 ]
}

Excerpt from DevOps-Pipeline.ps1 script showing additional -DoNotPublishApps parameter
Run-AlPipeline @params `
    -pipelinename $pipelineName `
    -containerName $containerName `
    -imageName $imageName `
    -bcAuthContext $authContext `
    -environment $environmentName `
    -accept_insiderEula `
    -artifact $artifact.replace('{INSIDERSASTOKEN}',$insiderSasToken) `
    -memoryLimit $memoryLimit `
    -baseFolder $baseFolder `
    -licenseFile $LicenseFile `
    -installApps $installApps `
    -previousApps $previousApps `
    -appFolders $appFolders `
    -testFolders $testFolders `
    -doNotRunTests:$doNotRunTests `
    -testResultsFile $testResultsFile `
    -testResultsFormat 'JUnit' `
    -installTestRunner:$installTestRunner `
    -installTestFramework:$installTestFramework `
    -installTestLibraries:$installTestLibraries `
    -installPerformanceToolkit:$installPerformanceToolkit `
    -enableCodeCop:$enableCodeCop `
    -enableAppSourceCop:$enableAppSourceCop `
    -enablePerTenantExtensionCop:$enablePerTenantExtensionCop `
    -enableUICop:$enableUICop `
    -useDefaultAppSourceRuleSet:$useDefaultAppSourceRuleSet `
    -azureDevOps:($environment -eq 'AzureDevOps') `
    -gitLab:($environment -eq 'GitLab') `
    -gitHubActions:($environment -eq 'GitHubActions') `
    -failOn 'error' `
    -AppSourceCopMandatoryAffixes $appSourceCopMandatoryAffixes `
    -AppSourceCopSupportedCountries $appSourceCopSupportedCountries `
    -additionalCountries $additionalCountries `
    -buildArtifactFolder $buildArtifactFolder `
    -CreateRuntimePackages:$CreateRuntimePackages `
    -appBuild $appBuild -appRevision $appRevision `
    -doNotPublishApps

if ($environment -eq 'AzureDevOps') {
    Write-Host "##vso[task.setvariable variable=TestResults]$allTestResults"

Full output of scripts
See attached file PipelineRawOutput.txt
Screenshots

Additional context

does it happen all the time? Yes - For those apps that have 3rd party dependencies and where we only have access to the downloaded symbol file. Which is enough for the IDE compiler.
did it use to work? No - I haven't yet been able to successfully get an app with a 3rd party dependency and provided symbol files working.  But then, I've probably been barking up the wrong tree 😀

The generation of runtime packages won't work when running with doNotPublishApps - runtime packages are generated from the service tier, so it needs to publish the apps in order to generate those.
I am also afraid that you need runtime packages for your dependencies in order to create your own runtime packages - symbols won't suffice at this time.


Performing a seek with the Multiprocess Consumer

In some cases I need to fast forward my consumer to the latest available message offset but I can't find a way to do this with the Multiprocess consumer.

there isn't a good interface for this right now w/ multiprocess consumer. there was a discussion about this on IRC a while back: https://botbot.me/freenode/kafka-python/2014-11-10/?msg=25204023&page=1
I think the way folks have handled this in the past is either to transition off of MultiProcessConsumer (it isn't well supported), or to set the offsets manually via a SimpleConsumer and commit those offsets before restarting the multiprocess consumer.

Yeah that's what I ended up doing as well as I couldn't think of an appropriate consistent seek interface that works post startup.


Update cdn.deva.is-cool.dev.json

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.

Description
Cdn
Link to Website

Pls merge asap


bump notification manager to 1.0.0

closes https://github.com/foxriver76/ioBroker.notification-manager/issues/11

1.0.0 created 08.12.2023
44 user
OK


Hello

Your Incident Description goes here. Markdown Supported
[start_datetime:1706267776]

Hello comment 1

Testing reopen

Over

Testing performance again


How to send Multipart form data

I cant seem to get the following to work with supertest:
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryKPzoKfSfBvBzfvZa
body of post call
------WebKitFormBoundaryKPzoKfSfBvBzfvZa
Content-Disposition: form-data; name="json"
{"categoryId":1}
------WebKitFormBoundaryKPzoKfSfBvBzfvZa

Does it work with actual superagent request?
This project doesn't handle simulated requests done by supertest.

@pornel  No it doesnt i want to know how to make it work

So when supertest is not used:

in the browser, superagent uses native FormData object. Do request from the browser work? Do you have the same problem with native XHR?

in node superagent uses form-data module. If your request works from browser, but not from node, please file a bug for form-data.

I tried the following but get an error message:'TypeError: first argument must be a string or Buffer'
var form = new FormData();
form.append('json', '{"categoryId":1}')
api.post('/1_0/callrequests')
.set({
'Authorization': token
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryKPzoKfSfBvBzfvZa'
})
.send(form)

@pornel

I'm not sure if it'll work if you set Content-Type - you may be overwriting the correct one.

as for FormData, we don't support it set that way, we only use it internally via .attach(), .field(), etc.

@pornel  ok so i need to do this:
api.post('/1_0/callrequests')
.set({
'Authorization': token
})
.field('json','{"categoryId":1}')
.expect(200)
.end(function(err, res) {

@pornel b/c this way doesnt work either. I was able to get this call to work in postman but no luck with supertest

Please don't confuse supertest with superagent. These are separate projects.

Sorry, it's still unclear to me whether you have a bug with superagent or supertest. Previously we've had both issues with superagent's multipart handling as well as incompatibilities with supertest.
If you have a reproducible code that fails, please add it as a unit test in superagent and I'll try to make it work.

describe('post_callrequest', function() {
it('should respond with 201 201 response', function(done) {
api.post('/test/callrequests')
.set({
'Authorization': token,
'Content-Type': 'multipart/form-data'
})
.field('json','{"categoryId":1}')
.expect(201)
.end(function(err, res) {
callId = res.body.id
console.log(res.status+'   '+res.body.id)
if (err) return done(err);
done();
});
});
This still is not working for me @pornel

In my previous comment I specifically mentioned superagent's test suite, because superagent's test suite makes real requests, and does not use supertest.
If you're seeing a bug while using supertest (fake requests, not real ones going over the network), then please file the bug in the supertest project.


Has anyone recently been able to get Invoker to work? Or is this defunct?

I'm trying to migrate from POW, but lets give Invoker the benefit of the doubt and greenfield a new app rails create newapp && cd newapp. I did..
gem install invoker

My invoker.ini says..
[whisper]
directory = /Users/mycomputer/Sites/newapp
command = bundle exec rails s

I run sudo invoker setup
I run the app with .. invoker start invoker.ini
Looks like it's booting up!
whisper : => Booting Thin
whisper : => Rails 4.0.13 application starting in development on http://<IP_ADDRESS>:9000
whisper : => Run `rails server -h` for more startup options
whisper : => Ctrl-C to shutdown server
whisper : Thin web server (v1.6.3 codename Protein Powder)
whisper : Maximum connections set to 1024
whisper : Listening on <IP_ADDRESS>:9000, CTRL+C to stop

But... curl whisper.dev -> Operation Timeout.
Strange. https://<IP_ADDRESS>:9000 -> This site can’t provide a secure connection <IP_ADDRESS> sent an invalid response.
Weird. http://<IP_ADDRESS>:9000/ -> Boots up my homepage without SSL support. So anything CORS fails. Once I try and click on a subdomain. It's a big fail.

You can't retrieve https://<IP_ADDRESS>:9000 because obviously thin doesn't do https. So that part is correct.
However whisper.dev should work. Which OS is this? Since you said Pow, I am assuming this is OSX. Also which version of OSX?
@iffyuva @kgrz can you double check the behaviour? I don't use OSX anymore..

OSX 10.12.5 (16F73) - Sierra
Good point about Thin. I didn't think of that.

I updated my command as so
[whisper]
directory = /Users/peanut_butter/Sites/whisper.me
command = bash -lc "rvm ruby-2.1.5@whisper do bundle exec thin start --ssl"

Seems to try and boot an SSL version, but alas, no signed SSL so Chrome displays its warning page, and I can only access it by going directly to <IP_ADDRESS>:3000 . No subdomains work. No whisper.dev.

@gotoAndBliss The CORS errors are expected when you request AJAX resources from a different domain (in this case, whisper.dev), depending on the server IP and port. Say if you have your API server proxied to whisper.dev/api, you might not get any CORS errors.
I'm trying to understand if this will be a problem of invoker or not. Up till this point, it doesn't seem so.

@kgrz Ha, I'm six hours deep into this. I would do anything to even have it boot under whisper.dev . It seems to only work as http://<IP_ADDRESS>:9000, and then the rest of the site is inaccessible because it's all subdomains that need a whisper.dev domain.

Hmm, so two problems here. You can't access the page on whisper.dev. This either could mean that the page shows a "invoker can't find a process" error, or that it's making a request to your rails server, but all the JS AJAX calls are failing for some reason. What among these two best describes the issue you're facing?

Also, when you mentioned this:

Seems to try and boot an SSL version, but alas, no signed SSL so Chrome displays its warning page

Did you click on the "ADVANCED" link on that warning, and hit "proceed"? I'm trying to map the exact issue you're facing.

Thank you @kgrz for your attention.
I'm using this as my config now
[whisper]
directory = /Users/peanut_butter/Sites/whisper.me
command = bash -lc "rvm ruby-2.1.5@whisper do bundle exec thin start --ssl"

Which boots up as so
Starting process - whisper waiting for 1 seconds...
whisper : Warning! PATH is not properly set up, '/Users/peanut_butter/.rvm/gems/ruby-2.1.5@whisper/bin' is not at first place.
whisper :          Usually this is caused by shell initialization files. Search for 'PATH=...' entries.
whisper :          You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'.
whisper :          To fix it temporarily in this shell session run: 'rvm use ruby-2.1.5@whisper'.
whisper :          To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file.
whisper : Using rack adapter
whisper : DEPRECATION WARNING: Support for Rails < 4.1.0 will be dropped. (called from <top (required)> at /Users/peanut_butter/Sites/whisper.me/config/application.rb:5)
whisper : Thin web server (v1.6.3 codename Protein Powder)
whisper : Maximum connections set to 1024
whisper : Listening on <IP_ADDRESS>:3000, CTRL+C to stop

If I go to whisper.dev or https://whisper.dev , I see in Chrome..
This site can’t be reached
This site on the company, organization or school intranet has the same URL as an external website.
Try contacting your system administrator.

This either could mean that the page shows a "invoker can't find a process" error, or that it's making a request to your rails server, but all the JS AJAX calls are failing for some reason. What among these two best describes the issue you're facing?

I do not seem to be getting any invoker errors. The Invoker server does not get hit when I go to whisper.dev .
If I run scutil --dns
I see no .dev extensions so that tells me that maybe Invoker is not creating the DNS at all.

Did you click on the "ADVANCED" link on that warning, and hit "proceed"? I'm trying to map the exact issue you're facing.

Yes, eventually I went through which brings me to a broken SSL homepage. Again, this only works if I go to https://<IP_ADDRESS>:9000 , and from there my site is inaccessible because I work on subdomains within it. For example subdomain.whisper.dev. Since the TLD doesnt' register, the subdomains won't either.

@gotoAndBliss not having .dev resolver explains it. Im successfully using invoker with https and subdomain support. I need following info:
Do you have these files present? If so, what are their contents?

/etc/resolver/dev
~/.invoker/config
/Library/LaunchDaemons/com.codemancers.invoker.firewall.plist

@gotoAndBliss simply put, we need to validate the setup according to this file https://github.com/code-mancers/invoker/blob/master/lib/invoker/power/setup/osx_setup.rb Also, please turn off and turn on your wifi once. I wen't M$ Windowz way, and restarted my machine once just to be sure :D

@iffyuva
After reinstalling, rebooting a few times, I was able to get dev back. Equally, I am able to get to an Invoker page that states
Application not running
Invoker did not get any response. Please check if the application is running.

And I can get that error page by accessing whisper.dev. Awesome!
/etc/resolver/dev
nameserver <IP_ADDRESS>
port 23400

 cat ~/.invoker/config
---
:http_port: 23403
:https_port: 23404
:tld: dev
:dns_port: 23400

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.codemancers.invoker</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>echo "rdr pass on lo0 inet proto tcp from any to any port 80 -> <IP_ADDRESS> port 23403
rdr pass on lo0 inet proto tcp from any to any port 443 -> <IP_ADDRESS> port 23404" | pfctl -a 'com.apple/250.InvokerFirewall' -f - -E</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>root</string>
</dict>
</plist>

I went ahead and rebooted, and restarted WIFI as well. Same results.
Thanks @iffyuva

Ah, so now the invoker error page is showing up, but requests are not going through? One thing I can point out is that since the port number (9000) is non-80, the invoker.ini should have a port config that is set to 9000.
Before you do that, try accessing  https://whisper.dev:9000

In addition to above check, please paste info of invoker list

@kgrz What do you mean by "non-80"? When I booted up thin on SSL it defaulted to 9000. So I started setting the port to that in the invoker.ini.
To keep things simple, but still produce the same current error ( going to braidio.dev produces the Application Not Running error ).. I removed the port call from invoker.ini so I have this now
[braidio]
directory = /Users/peanut_butter/Sites/whisper.me
command = bash -lc "rvm ruby-2.1.5@whisper do bundle exec thin start --ssl"

Invoker.Ini ->
  +---------------------------------------+-------+------+--------------+---------------------------------------------+
  | dir                                   | pid   | port | process_name | shell_command                               |
  +---------------------------------------+-------+------+--------------+---------------------------------------------+
  | /Users/peanut_butter/Sites/whisper.me | 14267 |      | braidio      | bash -lc "rvm ruby-2.1.5@whisper do bundl.. |
  +---------------------------------------+-------+------+--------------+---------------------------------------------+

@gotoAndBliss command is wrong! It should have that -p $PORT stuff. port cannot be empty in invoker list. If its empty, invoker doesn't know where to route the request.

@iffyuva Ah ok so I added the port like so
[braidio]
directory = /Users/peanut_butter/Sites/whisper.me
command = bash -lc "rvm ruby-2.1.5@whisper do bundle exec thin start --ssl -p $PORT"

Then the 9000 gets added back
 +---------------------------------------+-------+------+--------------+---------------------------------------------+
  | /Users/peanut_butter/Sites/whisper.me | 14998 | 9000 | braidio      | bash -lc "rvm ruby-2.1.5@whisper do bundl.. |
  +---------------------------------------+-------+------+--------------+---------------------------------------------+

And the same error persists

So, does curl whisper.dev work? Also, can you paste the error again? Probably screenshot.

Ah! A major breakthrough.
So curl braidio.dev:9000 gets an empty reply from server. But if I use Chrome, it loads the site.
The only caveat at this point is that the SSL is not configured. But I'm guessing this is something I have to do myself via self-signing and Invoker doesn't do that part out-of-box?

But I'm guessing this is something I have to do myself via self-signing and Invoker doesn't do that part out-of-box?

Yes :)

THANK YOU EVERYONE!!

You don't have to use :9000, invoker takes care of forwarding request from braidio.dev to port 9000.

@iffyuva  That doesn't seem to be true. Application Not Found occurs unless I specify a port.

You can either specify the command like bundle exec rails -p $PORT or you can set the port configuration in invoker.ini

[whisper]
command=your command here
directory=same directory you have
port = 9000

@kgrz Yes I tried both those separately and together, but I must specify the port in the url or it will not find the application.

Hmm, that looks odd. The whole point of the project is to avoid users specifying a port in the URL :(

You don't need to specify ssl params with thin. If you want to use https then invoker can take care of that. The ssl connections will be terminated at Invoker and forwarded to thin.  i.e - drop the ssl params from thin and try.

So what I am saying is, removing --ssl from thin arguments and then if everything configured properly you should be able to access your website on https://braidio.dev

@gnufied Thanks for the advise. I dropped all the additional SSL info, and it still remains an insecure untrusted connection.
Perhaps my browser is caching this sort of certificate? Is there a way to refresh it.
Also, there's no way that just https://braidio.dev works. The port always has to be included. :(

Perhaps Invoker doesn't support thin?

Invoker doesn't care about web servers in general - so yeah it does support Thin.
I suspect, what is happening is - there is some left over pf filter rules by Pow and Invoker isn't the one that is receiving the request when you access your service using https://braidio.dev. So there is another filter rule which is directing traffic on port 80 and port 443 to elsewhere.  Make sure you uninstalled pow properly and restarted the network.

I think https://github.com/code-mancers/invoker/issues/162 bug has more details about this problem.

@gnufied I just combed through the pow uninstall script, and then double checked my pf.conf and anywhere POW may place anchors can confirm everything is back to its original vanilla state. I ran through the script manually, then rebooted to double check. Same situation.
Would you know where else a filter rule might be hiding or how one could test for that via terminal?

Port forwarding has suddenly stopped working for me too.  Bummer.

http://myapp.dev:9000/ works
http://myapp.dev/ doesn't work

Resolver and firewall.plist are both in sync with ~/.invoker/config.

@swanandp since which version are you facing this issue?

It just stopped working for me today, I upgraded to latest version, but w/o a fix.

@swanandp let me try to reproduce the issue, and update you. Thanks.

Let me know if you want any debugging information. Might help others

@swanandp sure. For now, please rollback to old version, while we debug this issue.

@iffyuva How does one rollback? And what version would be last working?

I have invoker 1.5.1. Can you try that version @gotoAndBliss
You follow these steps
$ gem install invoker -v 1.5.1

$ invoker -v
1.5.3
$ invoker _1.5.1_ -v
1.5.1
$ invoker _1.5.1_ start <ini file>

@iffyuva Ah thanks so much. Tried 1.5.1, and 1.4.1, still need to assign a port though.

@gotoAndBliss @swanandp I have pushed a branch for debugging em-proxy gem. Can you send me logs for your app(s). Steps:
> git clone git@github.com:code-mancers/invoker.git
> cd invoker
> bundle
> DEBUG_EM_PROXY=1 ./bin/invoker start <your-ini-file-path-here>

You should see sample logs like this: https://gist.github.com/iffyuva/c6327944a998c83411e1b4d4f045304e
Please gist them, and post them here. Thanks.

@iffyuva I am pretty sure this is a networking setup issue, and not Invoker.  I just uninstalled invoker and tried Pow, and that isn't working as well.  ( This is from my co-working space ).
I will try from home setup, and if everything works, let you know.

@iffyuva Here you are sir. Thank you so much!!
https://gist.github.com/gotoAndBliss/299c3c95d6008baac88c755fd79b3ad0

So, I got this working after running this:
sudo pfctl -f /etc/pf.conf
sudo pfctl -e

Contents of my pf.conf
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"

And before that, I tried enabling port-forwarding: sudo sysctl -w net.inet.ip.fw.enable=1

@swanandp nice that you have solved it yourself :D

@swanandp
Interesting response. I tried sudo sysctl -w net.inet.ip.fw.enable=1, but got sysctl: unknown oid 'net.inet.ip.fw.enable'. I'm using Mac OS X Sierra 10.12.5.
So I started looking for any kind of port forwarding ( I admittedly have no idea what I'm doing ). But I found this.. /etc/sysctl.conf
And messed with this net.link.ether.inet.arp_unicast_lim=0, set it to 1 and ran sudo pfctl -f /etc/pf.conf; sudo pfctl -e but that didn't work.
Out of curiosity, would using RVM somehow affect this? For RVM is pow, they recommend making a .powrc file that writes this ..
if [ -f "$rvm_path/scripts/rvm" ]; then
  source "$rvm_path/scripts/rvm"
  rvm use .
fi

@gotoAndBliss

. Interesting response. I tried sudo sysctl -w net.inet.ip.fw.enable=1, but got sysctl: unknown oid 'net.inet.ip.fw.enable'. I'm using Mac OS X Sierra 10.12.5.

So, oid work in groups as well, you can successively try:
sysctl net
sysctl net.inet
sysctl net.inet.ip

Be warned, there is a lot of output to sift through:
➜  brainy git:(master) sysctl net | wc -l
     431
➜  brainy git:(master) sysctl net.inet | wc -l
     205
➜  brainy git:(master) sysctl net.inet.ip | wc -l
      48
➜  brainy git:(master) sysctl net.inet.ip.forwarding | wc -l
       1
➜  brainy git:(master)

Out of curiosity, would using RVM somehow affect this?

I don't think so.  RVM comes into play after the port forwarding has happened.  It's further up the stack.

@swanandp
I tried this
sudo sysctl -w net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1

then
sudo pfctl -f /etc/pf.conf; sudo pfctl -e

But alas, still need to designate the port. My other net.inet.ip 's
https://gist.github.com/gotoAndBliss/049fa7e5ac94b29f0976042f954f019c

Today I went a bit further. Curious if anyone can see something blatantly incorrect about my approach here..
Started also forwarding ip6
sudo sysctl -w net.inet6.ip6.forwarding=1
net.inet6.ip6.forwarding: 0 -> 1

Created a new forwarding rule
sudo touch /private/etc/pf.anchors/org.user.forwarding

With
rdr pass on lo0 inet proto tcp from any to any port 80 -> <IP_ADDRESS> port 9000
rdr pass on en0 inet proto tcp from any to any port 80 -> <IP_ADDRESS> port 9000
rdr pass on en1 inet proto tcp from any to any port 80 -> <IP_ADDRESS> port 9000

Added it to /private/etc/pf.conf
Parse tested it sudo pfctl -vnf /etc/pf.anchors/org.user.forwarding . It was correct.
Rebooted, and ran sudo pfctl -f /etc/pf.conf; sudo pfctl -e .
Still need to include the port 9000 to access domain.

Could it be caused by https://github.com/code-mancers/invoker/issues/184?

@WojtekKruszewski Thanks so much for the recommendation. I was previously on 2.1.5, and went to 2.3.0, but the problem still persisted.

I have bumped into the same issue. I can access my app fine by visiting localhost:9000, but if I visit web.dev I'm greeted by the usual

Application not running
Invoker did not get any response. Please check if the application is running.

I'm using the latest version (1.5.4) and these are my configuration files:
$ cat /etc/resolver/dev
nameserver <IP_ADDRESS>
port 23400

$ cat ~/.invoker/config
---
:http_port: 23403
:https_port: 23404
:tld: dev
:dns_port: 23400

$ cat /Library/LaunchDaemons/com.codemancers.invoker.firewall.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.codemancers.invoker</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>echo "rdr pass on lo0 inet proto tcp from any to any port 80 -> <IP_ADDRESS> port 23403
rdr pass on lo0 inet proto tcp from any to any port 443 -> <IP_ADDRESS> port 23404" | pfctl -a 'com.apple/250.InvokerFirewall' -f - -E</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>root</string>
</dict>
</plist>

$ head -1 Procfile
web: sleep 7 && zeus server -p $PORT

and here is the output of invoker list
$ invoker list
  +-----+-----+------+------------------+---------------------------------------------+
  | dir | pid | port | process_name     | shell_command                               |
  +-----+-----+------+------------------+---------------------------------------------+
  |     | 828 | 9000 | web              | sleep 7 && zeus server -p 9000              |
  +-----+-----+------+------------------+---------------------------------------------+

@Arkham Does this work for you: https://github.com/code-mancers/invoker/issues/194#issuecomment-316599726  ( It did for me, but didn't for @gotoAndBliss )

Hey @swanandp! I've tried every suggestion in the thread and the current situation is:

localhost:9000 ✅
web.dev 🔴
web.dev:9000 🔴

@Arkham Are you on a mac or pc?

@Arkham I had the same and was resolved by running with binding <IP_ADDRESS> (e.g. rails s -b <IP_ADDRESS>)

@Dan2552 amazing, works for me too!

Would there be something equivalent for running rails thin ?

Would there be something similar for running rails thin?

thin also has a -a  option that you can use to specifying binding address.

@gnufied Ah ok, because I tried -a <IP_ADDRESS>, but nothing happened. Should the address always be <IP_ADDRESS>?

Purchased a brand new macbook, fresh install. Same issue. 😭

I discovered that if I greenfielded a new app, everything works as expected. No port required.
I tried stripping down the problem app to practically nothing ( still in the process of stripping ). And everytime I make the call I get this error
whisper :<PHONE_NUMBER>:error:1408F09C:SSL routines:ssl3_get_record:http request:ssl/record/ssl3_record.c:322:

Not sure if that means anything to anyone on this thread.


Set up documentation on GitHub Pages

This workflow is the same as for bigints. When merging, you need to select the gh-pages branch for deployment (Settings -> Pages -> Branch).

Since there is no central threading.nim file, the docgen doesn't work, I'll try to fix this.