Some problems with database

Describe the bug
I've a client with database like this
// Create nostr database connection
let db_path = home_dir.join(&"Lume/database");

#[cfg(target_family = "unix")]
let database = NdbDatabase::open(db_path.to_str().unwrap());

// #[cfg(target_os = "windows")]
// let database = RocksDatabase::open(db_path.to_str().unwrap()).await;

// Create nostr connection
let client = match database {
  Ok(db) => ClientBuilder::default().database(db).build(),
  Err(_) => ClientBuilder::default().build(),
};

Then I make a query directly to database like this
let filter = Filter::new().pubkey(public_key).kinds(vec![
  Kind::TextNote,
  Kind::Repost,
  Kind::Reaction,
  Kind::ZapReceipt,
]).limit(20);

match client.database().query(vec![filter], Order::default()).await
{
  Ok(events) => Ok(events.into_iter().map(|ev| ev.as_json()).collect()),
  Err(err) => Err(err.to_string()),
}

It will return empty events, but if I use RocksDB or SQLite, it will return exactly events that match my filter.
To Reproduce

Create a client which use nostr-db
Create a query directly to database

Expected behavior
Return exactly events that match the filter like RocksDB or SQLite
Build environment

Library: nostr-sdk
Language: Rust
Language version:
Tag/commit:
OS+version: macOs

Oh, I'm also notify if I use database rather than SQLite, I cannot receive new notification too.
let client = &state.client;

// Create a subscription for notification
let notification_id = SubscriptionId::new("notification");
let filter = Filter::new()
  .pubkey(public_key)
  .kinds(vec![
    Kind::TextNote,
    Kind::Repost,
    Kind::Reaction,
    Kind::ZapReceipt,
  ])
  .since(Timestamp::now());

// Subscribe
client
  .subscribe_with_id(notification_id.clone(), vec![filter], None)
  .await;

// Handle notifications
let _ = client
  .handle_notifications(|notification| async {
    if let RelayPoolNotification::Event {
      subscription_id,
      event,
      ..
    } = notification
    {
      if subscription_id == notification_id {
        println!("new notification: {}", event.as_json());
      }
    }
    Ok(false)
  })
  .await;

And if I use SQLite as database, the query order is not work as expect too.
let events = client.database().query(vec![filter], Order::default()) <- events will return as random order

Oh, I'm also notify if I use database rather than SQLite, I cannot receive new notification too.
let client = &state.client;

// Create a subscription for notification
let notification_id = SubscriptionId::new("notification");
let filter = Filter::new()
  .pubkey(public_key)
  .kinds(vec![
    Kind::TextNote,
    Kind::Repost,
    Kind::Reaction,
    Kind::ZapReceipt,
  ])
  .since(Timestamp::now());

// Subscribe
client
  .subscribe_with_id(notification_id.clone(), vec![filter], None)
  .await;

// Handle notifications
let _ = client
  .handle_notifications(|notification| async {
    if let RelayPoolNotification::Event {
      subscription_id,
      event,
      ..
    } = notification
    {
      if subscription_id == notification_id {
        println!("new notification: {}", event.as_json());
      }
    }
    Ok(false)
  })
  .await;

This one is not a bug. RelayPoolNotification::Event variant is sent only the first time the event is seen. When it's saved, notification is no longer sent. You can use the RelayPoolNotification::Message variant instead (it's always sent).

Regarding nostrdb, I checked the code on the rust-nostr side and seems correct. It just call nostrdb methods. If I'm not doing something wrong, the issue could be related to nostrdb.
https://github.com/rust-nostr/nostr/blob/master/crates%2Fnostr-ndb%2Fsrc%2Flib.rs
@jb55

On Wed, Jun 05, 2024 at 05:48:19AM GMT, Yuki Kishimoto wrote:

Regarding nostrdb, I checked the code on the rust-nostr side and seems correct. It just call nostrdb methods. If I'm not doing something wrong, the issue could be related to nostrdb.
https://github.com/rust-nostr/nostr/blob/master/crates%2Fnostr-ndb%2Fsrc%2Flib.rs
@jb55

I've done these queries locally on nostrdb directly (via ndb) and I
can't seem to reproduce it. may need a minimal reproducible rust example
to test with.

@jb55, here is the repo with the example to reproduce it: https://github.com/yukibtc/rust-nostr-db-issue.
It execute a reconciliation with damus relay of all notes authored by me and query {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1],"limit":5} from local database.
The SQLite return these (which seems right, according to other clients):
{"id":"296dcaf1d8f9a28e4e9f8f1cca63acff215447765248c58053a96252fb82d19b","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1716914958,"kind":1,"tags":[["e","fde4199cf10077baa9f08d146f20d5a7a1e62696749f9f2d69459e134c0480e3","","root"],["p","99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64"],["p","da18e9860040f3bf493876fc16b1a912ae5a6f6fa8d5159c3de2b8233a0d9851"],["p","e4336cd525df79fa4d3af364fd9600d4b10dce4215aa4c33ed77ea0842344b10"],["p","89ef92b9ebe6dc1e4ea398f6477f227e95429627b0a33dc89b640e137b256be5"],["p","68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"]],"content":"Publishing `0.13.0-alpha.2` that fixes some issues related to async changes.\n\nPython devs that receive \"no running event loop\" have to add `uniffi_set_event_loop(asyncio.get_running_loop())` line to the code.","sig":"c1d05d2339d10753c89535168c4d79db1df92ba3efb713957314775d53577816342b92ad57c4dbe4b7dc4b201e42246fa6aa7a18546158419971cec699c78d2e"}
{"id":"fde4199cf10077baa9f08d146f20d5a7a1e62696749f9f2d69459e134c0480e3","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1716903182,"kind":1,"tags":[["t","rustnostr"],["p","99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64","","mention"],["p","da18e9860040f3bf493876fc16b1a912ae5a6f6fa8d5159c3de2b8233a0d9851","","mention"],["p","e4336cd525df79fa4d3af364fd9600d4b10dce4215aa4c33ed77ea0842344b10","","mention"],["p","89ef92b9ebe6dc1e4ea398f6477f227e95429627b0a33dc89b640e137b256be5","","mention"]],"content":"For all devs using the Python, Kotlin or Swift rust-nostr libraries: I've published an alpha version of nostr-sdk with async/future support. Please give it a try and give me a feedback.\n\nAll rust-nostr libraries (except for protocol implementation) are async so make sense to convert bindings to async instead of keeping them blocking, but I don't know how common async programming is in those langs.\n\nThe alpha versions are:\n* Python: 0.13.0a1.dev0\n* Kotlin: 0.13.0-alpha.1\n* Swift: 0.13.0-alpha.1\n\nHere you can find some async python examples: https://github.com/rust-nostr/nostr/tree/async-ffi/bindings%2Fnostr-sdk-ffi%2Fbindings-python%2Fexamples\n \nhttps://github.com/rust-nostr/nostr/pull/379\n\nnostr:npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8 nostr:npub1mgvwnpsqgrem7jfcwm7pdvdfz2h95mm04r23t8pau2uzxwsdnpgs0gpdjc nostr:npub1useke4f9maul5nf67dj0m9sq6jcsmnjzzk4ycvldwl4qss35fvgqjdk5ks nostr:npub138he9w0tumwpun4rnrmywlez06259938kz3nmjymvs8px7e9d0js8lrdr2\n\n#rustnostr","sig":"383feff9a4fe38ad62b7719e3b80b99980b6f952b820026a708cd04e3c719099c7e841506aab7ea598991842365c603095501a4df1a3067ce96e2148c9837338"}
{"id":"1c8a456aa61262673186adadb9758e4c8bf2642224f7e0f1ead80275b6edc6b2","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1716833943,"kind":1,"tags":[["e","06269da7dbf8d9b6b1b14a9017c6a05e05c999b98e74c8e0aea1b6ba7d42911a","wss://nostr.mom/","root"],["e","f12b0d3a0bc9717084e5e7f35a6d55c1ccd74a088acfcc82bcc5d631f1ba8577","wss://nostr.oxtr.dev/","reply"],["p","38e02d76b4299acea0c847217b602bce12a9d3cea3cabdfd616c58324cff73d3","","mention"]],"content":"I'm compiling the wheels only for some python versions and arch, so maybe it's not available the one for your setup. Here you can check the support matrix: https://rust-nostr.org/nostr-sdk/02-installation.html#support-matrix\n\nIf miss your one, you can compile the wheel by yourself: \n* Clone rust-nostr repo\n* `cd bindings/nostr-sdk-ffi` (or `cd bindings/nostr-ffi`)\n* Install `rust` and `just`\n* Run `just python`\n\nThe wheel will be located in `bindings-python/dist`","sig":"50ebf998ac7175e3c883bbba488928db19852af44ba088632c9d35b8acc8a36e3f6a312216772a8cad20d8cb484b18141bad44c9f84e612e2a3e2af8e985d2bc"}
{"id":"8ba5ff1e7fa6313bf21edbff9fc930b1b85fb5cbb9333d6ac1ea61d4116c29d2","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1716830422,"kind":1,"tags":[["e","06269da7dbf8d9b6b1b14a9017c6a05e05c999b98e74c8e0aea1b6ba7d42911a","","root"],["e","5c411e3f150ee3438dfc167d0e45bf062aa00164d123357ca4386f4eab81ed7b","","reply"],["p","a008def15796fba9a0d6fab04e8fd57089285d9fd505da5a83fe8aad57a3564d"],["p","68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],["p","38e02d76b4299acea0c847217b602bce12a9d3cea3cabdfd616c58324cff73d3"]],"content":"Hey, I not tested on Alpine yet. Have you any issue?","sig":"fac2770f5c294b4b99183746f905ca63ba1be6b6a6f87435a9a76791d0afbb7855f3d2be459ee9437b41093c8dff493fa9c0b63d1016ff9f6ec5f1f53418996d"}
{"id":"06269da7dbf8d9b6b1b14a9017c6a05e05c999b98e74c8e0aea1b6ba7d42911a","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1715941473,"kind":1,"tags":[["t","rustnostr"],["t","nostr"],["p","a008def15796fba9a0d6fab04e8fd57089285d9fd505da5a83fe8aad57a3564d","","mention"]],"content":"## rust-nostr release is out! 🦀\n\n### Versions\n\nRust: v0.31\nJavaScript: v0.14\nPython, Kotlin and Swift: v0.12\n\n### Summary\n\nReworked `Tag`, added `TagStandard` enum, simplified the way to subscribe and/or reconcile to subset of relays (respectively, `client.subscribe_to` and `client.reconcile_with`), added blacklist support to mute public keys or event IDs, removed zap split from `client.zap` method, many improvements and more!\n\nFull changelog: https://rust-nostr.org/changelog\n\n### Contributors\n\nThanks to nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr for contributing!\n\n### Links\n\nhttps://rust-nostr.org\nhttps://rust-nostr.org/donate\n\n#rustnostr #nostr","sig":"6580965b8f1b84b0d4a823ed913d0809f8ef68b3a6f640b181dea94a91c28df044442d42a19e819c7c13c1929a3318d5ad0e627240b98270472ea5214f8dcd44"}

The ndb return this:
{"id":"fde4199cf10077baa9f08d146f20d5a7a1e62696749f9f2d69459e134c0480e3","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1716903182,"kind":1,"tags":[["t","rustnostr"],["p","99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64","","mention"],["p","da18e9860040f3bf493876fc16b1a912ae5a6f6fa8d5159c3de2b8233a0d9851","","mention"],["p","e4336cd525df79fa4d3af364fd9600d4b10dce4215aa4c33ed77ea0842344b10","","mention"],["p","89ef92b9ebe6dc1e4ea398f6477f227e95429627b0a33dc89b640e137b256be5","","mention"]],"content":"For all devs using the Python, Kotlin or Swift rust-nostr libraries: I've published an alpha version of nostr-sdk with async/future support. Please give it a try and give me a feedback.\n\nAll rust-nostr libraries (except for protocol implementation) are async so make sense to convert bindings to async instead of keeping them blocking, but I don't know how common async programming is in those langs.\n\nThe alpha versions are:\n* Python: 0.13.0a1.dev0\n* Kotlin: 0.13.0-alpha.1\n* Swift: 0.13.0-alpha.1\n\nHere you can find some async python examples: https://github.com/rust-nostr/nostr/tree/async-ffi/bindings%2Fnostr-sdk-ffi%2Fbindings-python%2Fexamples\n \nhttps://github.com/rust-nostr/nostr/pull/379\n\nnostr:npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8 nostr:npub1mgvwnpsqgrem7jfcwm7pdvdfz2h95mm04r23t8pau2uzxwsdnpgs0gpdjc nostr:npub1useke4f9maul5nf67dj0m9sq6jcsmnjzzk4ycvldwl4qss35fvgqjdk5ks nostr:npub138he9w0tumwpun4rnrmywlez06259938kz3nmjymvs8px7e9d0js8lrdr2\n\n#rustnostr","sig":"383feff9a4fe38ad62b7719e3b80b99980b6f952b820026a708cd04e3c719099c7e841506aab7ea598991842365c603095501a4df1a3067ce96e2148c9837338"}
{"id":"df5ec668434d8fe3216243161c0a9754e84d010735ebf3bfaad744cc42ed36cd","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1715365769,"kind":1,"tags":[["e","572c0f8f386443c5761eeb750bff15f3f2a34653e067d2904d87deec86a8cacb","","root"],["e","49974751f9df9493f3d062f0a32b5991955b983ad807663e39ccce31abea1e53"],["e","bffa827c9db46ef6660eb1311642756dc8703776e76651133c527c4d9fd164d3","","reply"],["p","e1ff3bfdd4e40315959b08b4fcc8245eaa514637e1d4ec2ae166b743341be1af"],["p","68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],["p","50d94fc2d8580c682b071a542f8b1e31a200b0508bab95a33bef0855df281d63"],["r","https://github.com/hoytech/negentropy"]],"content":"There isn't a NIP yet, but you can learn more here: https://github.com/hoytech/negentropy","sig":"6da0bdac2a4e4f3879403687cd121de724784269359ab6792be0c7113221ff06e069c022928b5e498bf5478ed6e55fda274b0786a64fb2d7d79ee2b2c70fe0de"}
{"id":"fc3eb4ad9359733dc55b5a3c5835c29eb5f47fb11ab7f536e8040191f46f6811","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1715150882,"kind":1,"tags":[["e","a6b02ce0eaa96dea65ea2957e267b7caaf350d375bf21d2e37e1dbf80a3a3971","","root"],["p","fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52"],["p","99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64"],["p","68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],["p","da18e9860040f3bf493876fc16b1a912ae5a6f6fa8d5159c3de2b8233a0d9851"],["r","https://github.com/rust-nostr/nostr/blob/master/bindings%2Fnostr-sdk-ffi%2Fbindings-python%2Fexamples%2Fbot.py"]],"content":"`client.get_events_of` it's basically an auto-closing subscription: subscribe, listen until EOSE or when timeout is reached, close subscription and return events.\n\nTo subscribe \"forever\", just use the `client. subscribe` method. All the events will be sent to a notification channel. You can find an example here: \n\nhttps://github.com/rust-nostr/nostr/blob/master/bindings%2Fnostr-sdk-ffi%2Fbindings-python%2Fexamples%2Fbot.py","sig":"2fe7ddaf8cd65bac25e49a3bbc02a257cd1089978c1254904865d2869beb0cc4661e3377679810d4e0cd9b826e6aa6b8d812a56e58e0eb258849bb93a1c03906"}
{"id":"f8c1d62434906d77ee9ddb7efb0bf6b7bb0e958a49796686f07fe05c8b5f827f","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1707229988,"kind":1,"tags":[["e","a83add9517a5afe8d3ab57fababa4fe6c38b1c28d4526d9f35c9080e17be1d97","","root"],["p","126103bfddc8df256b6e0abfd7f3797c80dcc4ea88f7c2f87dd4104220b4d65f"],["r","v0.27"],["r","Cargo.toml"],["r","v0.28"],["r","client.database"]],"content":"The v0.27 have support to negentropy but have some issues. I fixed all the issues in master branch (you can specify a git repo and commit in the Cargo.toml or wait for v0.28)\n\nTo use negentropy you need a persistent DB. Configured that with the ClientBuilder, just call \"client.reconcile\". All the reconciled event will be saved in the db: use client.database().query(filters) to query what you need.","sig":"d561dc2bce48869756000d8d53ac213b6061e1e34137908f5db5a52d2a7e08a58286542790da0088cc2e634f7b075dda4194acc085aa900142a4c9dbb37bd7d2"}
{"id":"d88e436d92257146f44c8cc7b0b7cf6412ee259b11f615f351085ac881ed2e72","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1702856454,"kind":1,"tags":[["e","d1296b09f567eee81d57e003185f97dbe9f1d4b64ea0e141f6330d84e1a5e5dd","","root"],["e","189bf17113ca6acbc605d6e6dcf2b51d30a07baf03f793bada70eb3bd9b638a5"],["e","7c87e2076403765a1358abac8da5335bb566abac566bbef819937e3421ee16c4","","reply"],["p","68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],["p","f0293508f3eb9e6fe99c2fd8ba69ff446216872a2d9f67979bfa4db8b3155806"],["p","32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"],["p","8fb9450003a599bb1b34f03fadb9b137f6c0e5a850ba205964bee4732ccce549"]],"content":"It's possible to integrate any database, also ones that not support arbitrary queries, by using the `DatabaseIndexes`.\n\nAll the current backends available for nostr-sdk (SQLite, indexeddb, RocksDB, ...) rely on it, also SQLite that has the ability to perform complex queries.\n\nThe flow under the hood is: build in-memory indexes (700_000 events are indexed in ~1.5 sec, not faster due to param/replaceable and deletion events checks), query indexes by filters and use the output (event IDs) to get full events from persistent DB.\n","sig":"5ab100d7650168e03f2ffca086fddcbbbf41e5c15b0bc635d89107995090fd237b16944e50f4dcf8c12a60141258060c3b4ae6b57a4b0bfbb8503ee20be384a1"}

nostrdb seems to have stored exactly the same events of SQLite, so probably it's just an issue with query. For example, if I query nostrdb  with {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1],"limit":5} filter, it not return the 8ba5ff1e7fa6313bf21edbff9fc930b1b85fb5cbb9333d6ac1ea61d4116c29d2 event. But if I query it by explicit asking for that ID, it return it.

On Thu, Jun 06, 2024 at 10:25:29AM GMT, Yuki Kishimoto wrote:

@jb55, here is the repo with the example to reproduce it: https://github.com/yukibtc/rust-nostr-db-issue.

I'll take a look at this soon, but at first glance I don't see any code
that waits for the notes to finish processing in the database. You would
need a subscription for this. nostrdb processess things asyncronously in
a threadpool.
so if you do a query before ingest is complete, you likely wouldn't get
results right away?

So if you do a query before ingest is complete, you likely wouldn't have the complete resultset right away?

Sorry for late reply. Yes, but I noticed that if I query directly the ID the event is returned. If I query by author, kind and limit event is not returned. So I guess the ingestion is completed.
Example
This works:
{"ids":["8ba5ff1e7fa6313bf21edbff9fc930b1b85fb5cbb9333d6ac1ea61d4116c29d2"]}

This NOT works (well):
{"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1]}

Full event that should be returned in both queries but returned only when querying by ID:
{
  "id": "8ba5ff1e7fa6313bf21edbff9fc930b1b85fb5cbb9333d6ac1ea61d4116c29d2",
  "pubkey": "68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272",
  "created_at":<PHONE_NUMBER>,
  "kind": 1,
  "tags": [
    [
      "e",
      "06269da7dbf8d9b6b1b14a9017c6a05e05c999b98e74c8e0aea1b6ba7d42911a",
      "",
      "root"
    ],
    [
      "e",
      "5c411e3f150ee3438dfc167d0e45bf062aa00164d123357ca4386f4eab81ed7b",
      "",
      "reply"
    ],
    [
      "p",
      "a008def15796fba9a0d6fab04e8fd57089285d9fd505da5a83fe8aad57a3564d"
    ],
    [
      "p",
      "68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"
    ],
    [
      "p",
      "38e02d76b4299acea0c847217b602bce12a9d3cea3cabdfd616c58324cff73d3"
    ]
  ],
  "content": "Hey, I not tested on Alpine yet. Have you any issue?",
  "sig": "fac2770f5c294b4b99183746f905ca63ba1be6b6a6f87435a9a76791d0afbb7855f3d2be459ee9437b41093c8dff493fa9c0b63d1016ff9f6ec5f1f53418996d"
}

hmm ok thanks for confirming, I will continue to look into this then.
it's strange to me because I do queries like this all the time with notedeck and I have no issues, but maybe there is an off-by-one index issue or something I haven't noticed...

ok I think I found the issue...

@jb55 awesome, thank you.
I tested the https://github.com/damus-io/nostrdb-rs/commit/3e4efab69d4dc9000d5df50525567b6f97ae47dc commit and now seems working when querying the {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1]} filter.
But I noticed issues when adding a limit.
 I will get on this one.

@yukibtc I think there are still profile query issues

@yukibtc I think there are still profile query issues

Ah, I see. I updated the https://github.com/yukibtc/rust-nostr-db-issue repo. I found another issue, that I not noticed in the past tests.

A) When querying {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1]}, nostrdb return an almost correct output, where miss only the following event:
{"id":"ff3a7e7f704fed6971ad91674f265f5ccd21ca6e0783d67d7d3ce15ae3ab7e79","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1720704190,"kind":1,"tags":[["e","f2f2899ea251d9603db3f26f789916352dd0e9fb4b02efdce4ac0ef51468cdee","wss://relay.damus.io","root"],["e","f2f2899ea251d9603db3f26f789916352dd0e9fb4b02efdce4ac0ef51468cdee","wss://relay.damus.io","reply"],["r","73f7c34fd424cae57a0da1be1f5fd31d9b8075c0"],["a","30617:68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272:rust-nostr"],["p","a008def15796fba9a0d6fab04e8fd57089285d9fd505da5a83fe8aad57a3564d","wss://relay.nostr.band/"]],"content":"Thanks, I adj. some thing and cherry-picked at 931c7bbd155af2858dffc3e00e9fcfa583e4c257","sig":"5f6ed2bff71bb49fdf5a39b070988e7dec6a3389957f8c47a3c15cea89ed37f695e3688be1d00ba0faebb6f0ed71beeeefb8cf7f91dda0b873dbf2eabfa02f78"}

The above event exists because if I query with {"ids":["ff3a7e7f704fed6971ad91674f265f5ccd21ca6e0783d67d7d3ce15ae3ab7e79"]}  is included in the output. So I guess it could be an indexing issue.

B) When using a limit, like I wrote in the past comments. For example, the {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1],"limit":3} filter return the events with the right author and kind but that are old (events of the past instead of the newer ones).

On Sat, Nov 30, 2024 at 08:44:41AM -0800, Yuki Kishimoto wrote:

@yukibtc I think there are still profile query issues

Ah, I see. I updated the https://github.com/yukibtc/rust-nostr-db-issue repo. I found another issue, that I not noticed in the past tests.

A) When querying {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1]}, nostrdb return an almost correct output, where miss only the following event:
{"id":"ff3a7e7f704fed6971ad91674f265f5ccd21ca6e0783d67d7d3ce15ae3ab7e79","pubkey":"68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272","created_at":1720704190,"kind":1,"tags":[["e","f2f2899ea251d9603db3f26f789916352dd0e9fb4b02efdce4ac0ef51468cdee","wss://relay.damus.io","root"],["e","f2f2899ea251d9603db3f26f789916352dd0e9fb4b02efdce4ac0ef51468cdee","wss://relay.damus.io","reply"],["r","73f7c34fd424cae57a0da1be1f5fd31d9b8075c0"],["a","30617:68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272:rust-nostr"],["p","a008def15796fba9a0d6fab04e8fd57089285d9fd505da5a83fe8aad57a3564d","wss://relay.nostr.band/"]],"content":"Thanks, I adj. some thing and cherry-picked at 931c7bbd155af2858dffc3e00e9fcfa583e4c257","sig":"5f6ed2bff71bb49fdf5a39b070988e7dec6a3389957f8c47a3c15cea89ed37f695e3688be1d00ba0faebb6f0ed71beeeefb8cf7f91dda0b873dbf2eabfa02f78"}

The above event exists because if I query with {"ids":["ff3a7e7f704fed6971ad91674f265f5ccd21ca6e0783d67d7d3ce15ae3ab7e79"]}  is included in the output. So I guess it could be an indexing issue.

B) When using a limit, like I wrote in the past comments. For example, the {"authors":["68d81165918100b7da43fc28f7d1fc12554466e1115886b9e7bb326f65ec4272"],"kinds":[1],"limit":3} filter return the events with the right author and kind but that are old (events of the past instead of the newer ones).

perfect thanks. will fix soon (tm)

@jb55 this issue seems fixed using v0.5 of nostrdb-rs. Can you release it to crates.io so I'll bump it also here?

published v0.5.1


The user should be able to use a single directory to store all their keys for multiple multisig transactions

If the user is preparing multiple multisig transactions at the same time, they should be able to dump all the signature files in a single directory and ldpos-commander should be able to find them based on the transaction id. That way the user doesn't need to create a separate directory for each individual multisig transaction. They just dump all the files in the same directory.
It would be nice if the commander could remember the last directory used as the default for next time the user wants to make a multisig transaction.

added in f5073f4c2ef55a54d13c2b7efb16d2bf9c58be28
Should check if the directory path should be in another location or not

added last directory in 38bfc4d56eab8d0b74de2e4c5f62239e2c5bf78b and 4d63183725378ade5e9fef2daf1b2e9af73413f7


initializing tree to user defined layout

How could I add this chunk of code to your js file that builds the tree? It is from here.
I have a shinyapp that uses shinyURL and i want to pass the current layout as a reactive object (that shinyURL picks up) so when a new user open the app they will have the same layout waiting for them.
// Toggle children.
function toggle(d) {
  if (d.children) {
    d._children = d.children;
    d.children = null;
  } else {
    d.children = d._children;
    d._children = null;
  }
}

d3.json("flare.json", function(json) {
  root = json;
  root.x0 = h / 2;
  root.y0 = 0;

  function toggleAll(d) {
    if (d.children) {
      d.children.forEach(toggleAll);
      toggle(d);
    }
  }

  // Initialize the display to show a few nodes.
  root.children.forEach(toggleAll);
  toggle(root.children[1]);
  toggle(root.children[1].children[2]);
  toggle(root.children[9]);
  toggle(root.children[9].children[0]);

  update(root);
});

nevermind. figured out that i needed to use the click function before the final update root call.


Nit: use  for variables, not

Not a big deal... might impact screen readers, but I don't know that for a fact. Just something I noticed while going through the source.

And Bikeshed now has a shorthand for that - |foo| expands to <var>foo</var>.


Raise more specific DB-API exceptions for database errors

Follow-up to https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2921/files/5b29a9e42a40f7c74ced0b7a7e9db0add52a20a1#r116762868
For example, if a query fails due to a syntax error, a ProgrammingError could be raised.

The BigQuery docs have a page on specific errors that could occur.  https://cloud.google.com/bigquery/troubleshooting-errors


 Meist ein Zeichen für eine neue Firmware?
Hier der Log-Auszug:

tradfri.0
2021-12-13 17:41:58.046
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":59}

tradfri.0
2021-12-13 17:41:58.046
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:56.135
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":59}

tradfri.0
2021-12-13 17:41:56.135
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:40.097
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":70}

tradfri.0
2021-12-13 17:41:40.096
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:38.148
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":70}

tradfri.0
2021-12-13 17:41:38.148
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:23.431
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":57}

tradfri.0
2021-12-13 17:41:23.431
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:22.398
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":57}

tradfri.0
2021-12-13 17:41:22.398
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:05.232
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":42}

tradfri.0
2021-12-13 17:41:05.231
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:41:03.957
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":42}

tradfri.0
2021-12-13 17:41:03.956
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.890
info
got all scenes in group 131075: [196614]

tradfri.0
2021-12-13 17:40:41.862
info
got all scenes in group 131074: [196611,196612,196613]

tradfri.0
2021-12-13 17:40:41.774
info
got all groups: [131074,131075]

tradfri.0
2021-12-13 17:40:41.768
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":58}

tradfri.0
2021-12-13 17:40:41.768
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.762
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":61}

tradfri.0
2021-12-13 17:40:41.761
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.755
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":55}

tradfri.0
2021-12-13 17:40:41.753
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.747
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":46}

tradfri.0
2021-12-13 17:40:41.747
warn
found unknown property with key 8

pushover.3
2021-12-13 17:40:41.702
info
Send pushover notification: {"device":"TPhone","message":"Der Adapter läuft wieder.","title":"Tradfri-Adapter","priority":-1,"html":1}

tradfri.0
2021-12-13 17:40:41.741
warn
object was: {"0":"IKEA of Sweden","1":"FYRTUR block-out roller blind","2":"","3":"2.3.073","6":3,"7":4487,"8":0,"9":77}

tradfri.0
2021-12-13 17:40:41.741
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.735
warn
object was: {"0":"IKEA of Sweden","1":"TRADFRI Signal Repeater","2":"","3":"2.2.005","6":1,"7":4354,"8":0}

tradfri.0
2021-12-13 17:40:41.734
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.730
warn
object was: {"0":"\u0002KE","1":"TRADFRI open/close remote","2":"","3":"2.2.010","6":3,"7":4549,"8":0,"9":100}

tradfri.0
2021-12-13 17:40:41.729
warn
found unknown property with key 8

tradfri.0
2021-12-13 17:40:41.722
info
got all devices: [65542,65541,65546,65547,65544,65548,65545]

tradfri.0
2021-12-13 17:40:41.693
info
Connection to gateway reestablished

pushover.1
2021-12-13 17:40:20.417
info
Send pushover notification: {"device":"TPhone","message":"<font color="red">Der Adapter funktioniert derzeit nicht.","title":"Tradfri-Adapter","priority":1,"html":1}

tradfri.0
2021-12-13 17:39:20.408
warn
Lost connection to gateway

Nutze die aktuelle Version vom Adapter 3.02
Gateway 1.17.19
Er scheint die Rollos zu aktualisieren: Firmware dort 2.3.073 und dort steht aktualisieren…
 Ich schreibe noch eine Info wenn der Fehler wieder auftritt

Habe das gleiche Problem, seit gestern.

tradfri.0
2021-12-13 17:49:09.069
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI motion sensor","2":"","3":"2.0.022","6":3,"7":4552,"8":0,"9":16}

tradfri.0
2021-12-13 17:49:09.068
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:19.616
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:19.616
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:16.799
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:16.799
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:16.754
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:16.754
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:15.023
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:15.023
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:13.334
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:13.333
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:13.299
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:13.298
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:09.148
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:46:09.147
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:46:09.125
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI motion sensor","2":"","3":"2.0.022","6":3,"7":4552,"8":0,"9":16}

tradfri.0
2021-12-13 17:46:09.123
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.492
info
(12892) received all groups and scenes

tradfri.0
2021-12-13 17:42:43.464
info
(12892) got all scenes in group 131081: []

tradfri.0
2021-12-13 17:42:43.445
info
(12892) got all scenes in group 131080: []

tradfri.0
2021-12-13 17:42:43.422
info
(12892) got all scenes in group 131079: []

tradfri.0
2021-12-13 17:42:43.397
info
(12892) got all scenes in group 131078: []

tradfri.0
2021-12-13 17:42:43.375
info
(12892) got all scenes in group 131073: [196608]

tradfri.0
2021-12-13 17:42:43.201
info
(12892) got all groups: [131081,131078,131079,131080,131073]

tradfri.0
2021-12-13 17:42:43.193
info
(12892) received all devices

tradfri.0
2021-12-13 17:42:43.186
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 CWS 806lm","2":"","3":"1.0.021","6":1,"7":10242,"8":4}

tradfri.0
2021-12-13 17:42:43.185
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.175
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI on/off switch","2":"","3":"2.3.079","6":3,"7":4549,"8":0,"9":87}

tradfri.0
2021-12-13 17:42:43.174
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.159
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:42:43.158
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.136
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:42:43.136
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.121
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI motion sensor","2":"","3":"2.0.022","6":3,"7":4552,"8":0,"9":74}

tradfri.0
2021-12-13 17:42:43.120
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.102
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 CWS 806lm","2":"","3":"1.0.021","6":1,"7":10242,"8":4}

tradfri.0
2021-12-13 17:42:43.102
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.083
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 CWS 806lm","2":"","3":"1.0.021","6":1,"7":10242,"8":4}

tradfri.0
2021-12-13 17:42:43.083
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.069
warn
(12892) object was: {"0":"IKEA of Sweden","1":"Remote Control N2","2":"","3":"1.0.024","6":3,"7":4555,"8":0,"9":100}

tradfri.0
2021-12-13 17:42:43.069
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.044
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI motion sensor","2":"","3":"2.0.022","6":3,"7":4552,"8":0,"9":87}

tradfri.0
2021-12-13 17:42:43.044
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.027
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI motion sensor","2":"","3":"2.0.022","6":3,"7":4552,"8":0,"9":16}

tradfri.0
2021-12-13 17:42:43.027
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:43.013
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI remote control","2":"","3":"2.3.080","6":3,"7":4545,"8":0,"9":87}

tradfri.0
2021-12-13 17:42:43.012
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:42.989
warn
(12892) object was: {"0":"IKEA of Sweden","1":"TRADFRI bulb E27 WS opal 1000lm","2":"","3":"2.0.029","6":1,"7":16900,"8":5}

tradfri.0
2021-12-13 17:42:42.988
warn
(12892) found unknown property with key 8

tradfri.0
2021-12-13 17:42:42.975
info
(12892) got all devices: [65553,65543,65542,65547,65544,65541,65537,65546,65549,65550,65554,65545]

Er scheint die Rollos zu aktualisieren: Firmware dort 2.3.073 und dort steht aktualisieren…

 Hier geht gerade eine Update-Orgie ab. Alle möglichen Geräte bekommen neue Firmwares. Inkl. des Gateways.

 Der ioBroker-Tradfri-Adapter muss vom Author angepasst werden.
Hier sieht man welche Geräte alle Updates bekommen haben: https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html

Fehler tritt bei jeder Bedienung auf.  Ein paar Tage müsst ihr damit leben, bis ich zeit habe sie zu fixen.

Log Level ist auf Error gesetzt. Grundsätzlich funktioniert alles, da kann man auch ein paar Tage mit leben.

Sollte in v3.1.0 gefixt sein.


[NO-JIRA-6.0] Update poms to 6.0.0-SNAPSHOT

poms are not enough IMHO. Jenkinsfile should be updated too.
I proposed to do it on the mailing list, please can I take it ?


Visually separate props form component Id and name

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
Currently, the right panel shows everything together. We should have some visual separation based on the type of items.
Moreover, we should also separate UI props from data props.

i'm going to separate some "layout" props in this PR https://github.com/mui/mui-toolpad/pull/804, but it still doesn't look great, I can still at least try to improve the spacing there.

Moreover, we can also look into separating UI props from data props.

We would need something like property categories to do something like this, so we could group them by category. But this would mean every prop would need to have its own category, which I'm not sure would make sense in every case.
So for now I just tried to make the order of the props in each component a bit more logical, but if we want to categorize and split thing I guess we can do it separately.


Can you test a hidden sku in preivew mode?

When preview stage would we access to hidden sku?
"Hide this SKU* - Indicates whether the SKU should be visible in the marketplace to customers. You may want to hide the SKU if you only want it available only via solution templates and not for purchase individually. It could also be useful for initial testing or for temporary or seasonal offers."
This doc says we do have access for initial testing, how can we get access?

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

ID: 9bdd1146-d9ba-a246-3de9-792436f00c2d
Version Independent ID: f4b0d911-516f-55b2-4e15-f011a83c2406
Content: Virtual machine SKUs tab in the Cloud Partner Portal for Azure Marketplace
Content Source: articles/marketplace/cloud-partner-portal/virtual-machine/cpp-skus-tab.md
Service: marketplace
Sub-service: partnercenter-marketplace-publisher
GitHub Login: @v-miclar
Microsoft Alias: pabutler

@santhoshbomma9 ,  Thanks for raising the issue.We will investigate the issue and update you.

@santhoshbomma9 Hide the SKU hide it from the storefronts, it will be available through CLI or when deployed via ARM template.
Hope that answers your query!
Closing this issue for now. If you've further questions, tag me in your reply and will continue the dicussion.


3.0.9 bugfix

fix: ensure variables
fix: handle exception for loaded invalid format test content
change: do not capture exception for loading har file

Codecov Report

Merging #923 into master will decrease coverage by 0.01%.
The diff coverage is 87.17%.

@@            Coverage Diff             @@
##           master     #923      +/-   ##
==========================================
- Coverage   79.17%   79.16%   -0.02%
==========================================
  Files          26       26
  Lines        2195     2213      +18
==========================================
+ Hits         1738     1752      +14
- Misses        457      461       +4

Flag
Coverage Δ

#unittests
79.16% <87.17%> (-0.02%)
:arrow_down:

Impacted Files
Coverage Δ

httprunner/make.py
84.58% <70.58%> (-1.46%)
:arrow_down:

httprunner/compat.py
90.41% <100.00%> (+1.18%)
:arrow_up:

httprunner/ext/har2case/utils.py
87.50% <100.00%> (+0.26%)
:arrow_up:

Continue to review full report at Codecov.

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


PTR (chalk) support

This is clearly a non-essential enhancement, but it would be nice if PebbleJS could support the new Time Round watch.

https://github.com/pebble/pebblejs/commit/f67c19adaaa96b1071f2e64f03a0983aeed05844

And integration into "CloudPebble.net". Pebble.js cannot run on chalk emulator (Button disabled)

Essential here

Hey, any update on this? What is still missing, and can I help with any part of it? I have one or two pebble.js apps that I'd like to run on the Pebble Time Round.

Hi,
I didn't check Cloudpebble, but using the SDK I managed to come up with a halfway decent chalk Pebble.js app: https://apps.getpebble.com/en_US/application/565c94c0eae744b790000068
cheers,
-Christian

Can also confirm - I've built two apps with pebble.js that support chalk perfectly (not on cloudpebble for some reason, but building offline works great).

Thanks @daduke and @technoboy10! I've been slowly adding Chalk support, it's great to know it's been working well for you two. There's nothing wrong with CloudPebble -- it just doesn't yet have the latest version of pebble.js yet because I would like to update the docs with all the changes and have those both up at the same time. I'll be sure to update this ticket when that's done.

Finally merged on CloudPebble! Thanks everyone.


[Refactor] Refactor the PyQHamiltonianEvolution.

Issue #368
Continuation of the #441

Hi @neogyk, a quick update: we are going to close the issue #368 and give you credit for the completion, since what you have done so far in this MR is close to finishing the issue.
However, we will not be able to merge this MR. The extended deadline of the unitaryhack has clashed with some other work that we are doing on this file, and the code that you are changing here is going to be ported elsewhere. Once we complete that port, we will also port your solution :)
That being said, I will leave this MR open for a few more days so you are welcome to add more commits if you wish, and I will reply as best as I can.


Implement proper hop-to-hop + forwarded headers

As a reverse proxy, Kong needs to forward the appropriate headers from trusted sources.

[x] X-Real-IP with the value from $realip_remote_addr.
[x] X-Forwarded-For: the value from $proxy_add_x_forwarded_for.
[x] X-Forwarded-Proto: forwarded if present, use $scheme otherwise.
[x] X-Forwarded-Host: forward if present, use request Host header otherwise.
[x] X-Forwarded-Port: forward if present, use $server_port otherwise.
[x] Forward upstream Date: header back to client with proxy_pass_header Date;.
[x] Ability to set trusted IP blocks from the config file.

[x] ability to configure set_real_ip_from directive in nginx_kong.conf template from kong.conf.
[x] ability to configure real_ip_from from kong.conf.
[x] ability to configure real_ip_recursive directive in nginx_kong.conf template from kong.conf.
[x] validate given IPs from this new configuration value.
[x] only forward the X-Forwarded-Proto header if the client IP is part of the set_real_ip_from CIDR blocks. Use lua-resty-iputils for this if we don't find a way to do it from the Nginx config level.

[x] tests

I have pushed my current work on feat/real-hop-to-hop with work and tests already done,  and checked the already-implemented features.
This gathers:
#1662
#1788
#1896
#1823
#1445
#1762
#1661
And maybe others.
@bungle has stepped forward to finish this.

Missing X-Forwarded-Path, which covers the same use-case of X-Forwarded-Host but when a path resolver is being used.

X-Forwarded-Path doesn't really belong to this scope. This issue is about standard forwarded hosts for any HTTP reverse-proxy out there that Kong does not necessarily respect. The X-Forwarded-Host header is provided regardless of the routing strategy, because it is mandatory for an HTTP request to carry a Host header.
However, X-Forwarded-Path, X-Forwarded-Method (yes, since we now also resolve via HTTP method) belong to the router, and would be new features on top of it, which I am fine with adding later on as well, but it just raises a concern, described as 2. down below.

We need to keep in mind a couple things with X-Forwarded-Host:

Making sure that switching the value to $http does not override the desired value when preserve_host is disabled/enabled on the API object. preserve_host handles the upstream Host header, but we still need to make sure that the upstream X-Forwarded-Host header is still right in both cases. This warrants a couple tests imho.
X-Forwarded-Host is provided regardless of whether the routing matched a configured hosts value on the API or not. If we provide X-Forwarded-{Path,Method), then maybe we ought to provide a special header for routing resolved via hosts as well.

Proposed solution:
As stated before, those X-Forwarded-{Path,Method} headers are not adopted out there, and are Kong-specific and related to the router. Let's implement them later, in another PR, and let's use different names for them so that it is clear they are Kong-specific and related to the routing mechanism used for a given request. Maybe something like:

X-Forwarded-Kong-Host
X-Forwarded-Kong-Path
X-Forwarded-Kong-Method

Thanks for the work, it would be great to see that in 0.10.2 as not forwarding X-Forwarded-Proto is somehow problematic :/

#2236 is merged, closing this now, thanks @bungle! :)

Confirmed working with 0.11.0rc2 with trusted_ips 👍
Made my job easier. Thanks!


feature request: full text search

zzo is a great theme, and I'm learning how to use it now.
And I notice that your doc website seem can use full text search, but hugo theme zzo can't. zzo only can search the title of text. And if I'm not mistaken, the doc website is also using hugo theme. So I think it's don't diffcult to add the function? If the function has performance requirements, can we make it to be a optional features?

I also realized it now.
The zzo theme and the zdoc theme has the same logic to implement the search feature.
I'm using Fuse for the search, and the library does not search if the text is too long.
But the beginning of the contents(maybe 100 ~ 200 text?) can be searched.
I'm not very familiar with the fuzzy search world.
I considered a few other search libraries. None of them satisfactory.
Maybe, I need to make my own library to meet all the requirements.
I'll consider more about how to better search for this theme.
I'm closing this issue now because it's a very big picture. It maybe not be implemented.
But I will always care about it.


Format Swift symbol declarations using swift-format

Bug/issue #, if applicable: 135820356
Summary
This PR adds a new --enable-experimental-declaration-formatting feature flag to the docc convert command. When this new experimental flag is enabled, Swift-DocC will utilize API from the swift-format package to format Swift symbol declarations.
Example declaration:
@attached(peer) macro Test<C1, C2>(_ displayName: String? = nil, _ traits: any TestTrait..., arguments zippedCollections: Zip2Sequence<C1, C2>) where C1 : Collection, C1 : Sendable, C2 : Collection, C2 : Sendable, C1.Element : Sendable, C2.Element : Sendable

Example declaration (using --enable-experimental-declaration-formatting):
@attached(peer)
macro Test<C1, C2>(
    _ displayName: String? = nil,
    _ traits: any TestTrait...,
    arguments zippedCollections: Zip2Sequence<C1, C2>
)
where
    C1: Collection,
    C1: Sendable,
    C2: Collection,
    C2: Sendable,
    C1.Element: Sendable,
    C2.Element: Sendable

The benefits from doing this:

swift-format can provide a canonical whitespace formatting to better present declarations across multiple lines, with added indentation when necessary
swift-format utilizes swift-syntax, so it can make well-informed decisions on how to best format complex declarations due to the high-fidelity syntax tree AST that it provides (very hard to do in non-Swift based rendering tools)
as the Swift language evolves, swift-format can be updated as appropriate and newer versions can be utilized by DocC
all renderers (including Swift-DocC-Render) can use these formatted declarations directly, without needing to re-implement their own custom formatting logic in a different programming language

Some minor drawbacks:

there will be a small added performance cost for formatting declarations when DocC previously has not done any of this logic
introduces 2 new dependencies for the SwiftDocC package

Dependencies
Introduces 2 new Swift package dependencies used in the formatting process:

swift-format
swift-syntax

Testing
Steps:

Include the new --enable-experimental-declaration-formatting flag when running docc convert on a DocC catalog with Swift symbols
Verify that the Render JSON includes additional newline and indentation in the declaration tokens for symbols in certain, more complex symbols (DocC-Render has not yet been updated to render these "preformatted" declarations yet but I can provide a quick prototype of it for visually testing content in the browser if desired)

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[X] Added tests
[X] Ran the ./bin/test script and it succeeded
[X] Updated documentation if necessary

Open questions
I'm marking this as a draft/work-in-progress PR, because I have a few questions about the implementation for this that I would like some feedback on:

Due to incompatibilities between the new Swift package dependencies, I had to bump the supported macOS platform of Swift-DocC to be able to build this branch. Is there a better way to resolve the supported platforms between packages to avoid this or do something better here?
See: https://github.com/mportiz08/swift-docc/blob/2be640012cc15aeefcda0176933b56ccec4dbc26/Package.swift#L22

Right now I'm just overwriting the normal tokens field in Render JSON when the feature flag is enabled. Are there any preferences on how I should approach the Render JSON?

Options:

leave as-is and overwrite tokens when experimental flag is used
overwrite tokens and also add a formatted: true property to the declaration JSON
add a new formattedTokens field that lives alongside tokens

After I get help with those questions, I think it would make sense to maybe do a quick post in the Swift forums and then remove the draft status from this PR :)

It would also be neat if you could format the declaration at a series of page widths (e.g. one for desktop and one for mobile) so that users on narrower screens don’t have to scroll horizontally to read the declaration!

It would also be neat if you could format the declaration at a series of page widths (e.g. one for desktop and one for mobile) so that users on narrower screens don’t have to scroll horizontally to read the declaration!

That sounds like a cool idea, although it's less clear to me how long, complex declarations should be formatted specially for small width viewports.
That could be a great future improvement if there's a clear configuration that works better for that scenario though.


Implement new channel header

Detailed Description
Implement new channel header

Closed via https://github.com/LN-Zap/zap-desktop/pull/2335


Add ability to review decks

Resolves some tasks listed in #120
Commands implemented

review command (Resolves #175)
endreview command
prevcard command (Resolves #176)
nextcard command (Resolves #95)
flipcard command (Resolves #177)

Other changes include:

Added isReviewingDeck boolean flag to Anakin
Added currentIndex indicator to UniqueCardList
Refactored DeckListPanel and CardListPanel to be part of DeckEditScreen
Added Deck Review UI, i.e. DeckReviewScreen and DeckReviewCard

But for some reason, it breaks find, clear, and delete system tests. Also breaks a ErrorDialogGuiTest

Pull Request Test Coverage Report for Build 401

28 of 214 (13.08%)  changed or added relevant lines in 21 files are covered.
46 unchanged lines in 8 files lost coverage.
Overall coverage decreased (-9.4%) to 78.051%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/seedu/address/commons/events/ui/EndReviewRequestEvent.java
0
2
0.0%

src/main/java/seedu/address/commons/events/ui/FlipCardRequestEvent.java
0
2
0.0%

src/main/java/seedu/address/model/deck/anakinexceptions/IllegalOperationWhileReviewingDeckException.java
0
2
0.0%

src/main/java/seedu/address/model/deck/anakinexceptions/NotReviewingDeckException.java
0
2
0.0%

src/main/java/seedu/address/commons/events/ui/ReviewNextCardEvent.java
0
5
0.0%

src/main/java/seedu/address/commons/events/ui/ReviewPreviousCardEvent.java
0
5
0.0%

src/main/java/seedu/address/commons/events/ui/StartReviewRequestEvent.java
0
5
0.0%

src/main/java/seedu/address/logic/parser/Parser.java
0
5
0.0%

src/main/java/seedu/address/model/deck/UniqueCardList.java
0
5
0.0%

src/main/java/seedu/address/logic/commands/FlipCardCommand.java
0
6
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/main/java/seedu/address/ui/HelpWindow.java
2
84.62%

src/main/java/seedu/address/storage/StorageManager.java
2
87.5%

src/main/java/seedu/address/logic/commands/FindCommand.java
4
80.0%

src/main/java/seedu/address/logic/parser/Parser.java
6
25.0%

src/main/java/seedu/address/logic/parser/FindCommandParser.java
6
0.0%

src/main/java/seedu/address/ui/MainWindow.java
6
56.76%

src/main/java/seedu/address/ui/CommandBox.java
9
76.47%

src/main/java/seedu/address/ui/BrowserPanel.java
11
0.0%

Totals

Change from base Build 390:
-9.4%

Covered Lines:
1714

Relevant Lines:
2196

💛  - Coveralls


Permissions of log file in production are incorrect?

Hi there,
firstly, I like this gem, thanks for the contribution!
When deploying this to staging or production, I've found that the scout_api.log file is created with the incorrect file ownership and permissions.  This resulted in the app not booting successfully.
I'm not sure if this is a problem with our custom production set up (various users and groups), or a problem with the gem.   Just thought I'd let you know.
We are running thin servers, and the scout_api.log file needed to have the same permissions as the thin logs, which it did not.  This may well be due to our custom deploy process, but we have not encountered it before.
Cheers

@ostigley - thanks for reporting this.
I don't recall hearing this issue reported yet inside the scout_apm_ruby repo. It smells like a user-switching issue ... for example, the log file was created under the root user, but then the process owner switched to another user.
One option: change the log file path to STDOUT in the scout_apm.yml file:
common: &defaults
  monitor: true
  log_file_path: STDOUT

production:
  <<: *defaults


Turn BUILD_SHARED_LIBS off by default

Turn CMake BUILD_SHARED_LIBS off by default, meaning a default build produces static libraries, instead of multiple shared libraries. We already set BUILD_SHARED_LIBS to OFF in CI builds, and as far as I'm concerned, I always set it off in my projects. If I want to make C# bindings, I just link everything into a shared library which an explicit SHARED property on the cmake target.
This does not mean we stop supporting shared libraries, just that it won't be the default, which is really what I'd expect developers to want. Let's just have the few places where it's desirable to have shared libraries set BUILD_SHARED_LIBS to ON in their builds.

Having BUILD_SHARED_LIBS  OFF might be handy for development or if building for a product to ship. However most (if not all) builds for distributions do have extra packages for the libraries as well as the client(s).
I also opt in for keeping it to ON.
However I your point @awakecoding and as dependencies and build options are getting more - what do you think about having some useful default build configurations/profiles/.. as we do ci builds in ci/cmake-preloads.

Having BUILD_SHARED_LIBS  OFF might be handy for development or if building for a product to ship. However most (if not all) builds for distributions do have extra packages for the libraries as well as the client(s).
I also opt in for keeping it to ON.
However I your point @awakecoding and as dependencies and build options are getting more - what do you think about having some useful default build configurations/profiles/.. as we do ci builds in ci/cmake-preloads.

CMake preloads lack discoverability, and are cumbersome to use. Developers are going to try using CMake directly no matter what, and not figure out there might be a CMake preload file available. Even then, a CMake preload would explicitly set options, rather than detect and adapt based on what is available on the system. In the case of shared libraries, sure, we always want to statically link everything for developer builds, but what about the dependencies?


Page break support?

Is there support for page breaks in templates? I tried by simply creating an ODT file (with repetitions) where each repetition I wanted to begin on a new page (inserting a page break to do so).
Is this something that's supported?

I think you can do this with the following template
{ d.array[i] }
*your content*
*PAGE_BREAK*
*LINE_BREAK*
{ d.array[i+1] }

Hope it will fit your needs :smile:
Carbone Studio is up (web UI for Carbone), you should take a look on https://app.carbone.io

Thanks, @devSwoop! I'll try this out.


Added support for Debian 8

Added support for Debian 8 and created Dockerfile to enable travis test.
Added missing file to the Dockerfile for Ubuntu; now Travis succeed.

Nice job. Thanks!


The generated iTunesArtwork.png shouldn't contain an alpha channel

The iOS icon is generated from a transparent 1024x1024 FB icon. We should find a way to save the iTunesArtwork.png without alpha channel.
[16:31:53]: ERROR ITMS-90717: "Invalid App Store Icon. The App Store Icon in the asset catalog in 'be-nazareth.app' can't be transparent nor contain an alpha channel."

http://gitlab.mobicage.com/rogerthat/app-configurator/merge_requests/59


NIFI-2621 - Generating unique serial numbers for certificates

Reviewed, ran the tool with 20 identical hostnames. The build passed with the new tests and checkstyle was fine. Merged to master and closed the ticket.


Update mock-test.ts

Fixes #699
Task fails when I try to debug using VS code using the tutorial here  and it gives a SyntaxError giving this error

and it when looking at what the taskJsonContents starts with it is the byte value of 65279. Adding trim fixes this issue

Fixes #699

Please bump package's version

Updated

Somehow I created the file that it didn't recognize, I created the file using powershell and it worked without this fix so I will abandon this request


For setting up sample project by gonew command

https://github.com/ddddddO/gtree/issues/227

Codecov Report
Patch has no changes to coverable lines.
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
:loudspeaker: Thoughts on this report? Let us know!.


Insider builds do not recognize source control

Azure Data Studio Version: Insider
OS Version: Windows 10

Steps to Reproduce:

Open a workspace or git folder using Insider builds

Release version 1.32 does not have this problem

Duplicate of https://github.com/microsoft/azuredatastudio/issues/17033


/home/work/tensorflow/test/tensorflow-2.4.0/tensorflow/compiler/xla/service/cpu/BUILD:695:1: C++ compilation of rule '//tensorflow/compiler/xla/service/cpu:runtime_matmul' failed (Exit 4)

use bazel build --jobs 1 --local_ram_resources=HOST_RAM0.9 --local_cpu_resources=HOST_CPUS1  --config=opt //tensorflow:libtensorflow_cc.so
my tensorflow is 2.4.0
ERROR: /home/work/tensorflow/test/tensorflow-2.4.0/tensorflow/compiler/xla/service/cpu/BUILD:695:1: C++ compilation of rule '//tensorflow/compiler/xla/service/cpu:runtime_matmul' failed (Exit 4)
gcc: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugzilla.redhat.com/bugzilla for instructions.
Target //tensorflow:libtensorflow_cc.so failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 32.611s, Critical Path: 21.70s
INFO: 39 processes: 39 local.
FAILED: Build did NOT complete successfully

Hi @suzaolin !
2.4 is bit outdated.
Could you check with below command , Master branch and Bazel 5.3.0  and let us know.
!bazel build --jobs 1 --local_ram_resources=HOST_RAM*.9 --local_cpu_resources=HOST_CPUS -c opt //tensorflow:libtensorflow_cc.so
Attached gist for reference.
Thank you!

I seem to have found the reason, my machine is out of memory @mohantym Thank you very much

@suzaolin !
Could you confirm that it is resolved in 2.10/2.11 version.
Thank you!


Semantic-UI 2.0: Specify docs directory?

Hi there,
in Semantic UI 1.0 together with Semantic-UI-Docs there has been the file

/tasks/admin/docs.json

where one could specifiy a directory to create the output of Semantic UI "build-docs" process.
Apparently, after installing Semantic UI 2.0, the above mentioned file "docs.json" doesn't seem to exist anymore.
Could you please clarify, how to specify the docs directory?
Thanks,
Sascha.

No problem, the path has been adjusted. We specify this in the Running Docs Locally section of docs.
The new file
https://github.com/Semantic-Org/Semantic-UI/blob/master/tasks/config/docs.js

Thanks a lot for your reply!
BTW, is learnsemantic.com still valid as a learning site?

My aspiration is porting over the most relevant material to main docs, but I haven't finished. I think having separate sites was confusing people, and I know from the traffic a lot of visitors never went over there.


Check in kinflate

check in

kinflate code
add an example
add script to copy code to /vendor
update /vendor

/retest

please rebase

travis ci doesn't work with vendor.
Also, I'm curious. Why do we need all these scripts copying various staging repos into vendor?

Closing in favor of #159.


EEPROM2 updates

report usage and pullup/down as strings to avoid confusion
report pins as P8_01, P9_02 in eeprom dump instead of using internal mux name

updated with debugfs readout


Change code range to hide #endif in tutorial

I'm not sure if this will work and I didn't test it using docfx!
Tutorial link: https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations#examine-the-up-and-down-methods

@badersur Looks great! Thanks for cleaning up the code sample.

Welcome :)


On MacOS had to manually create /Users/{$USER}/Library/Application Support/conductor/projects.json

Else program crashed.

Same on Linux (/home/$myuser/.config/conductor/projects.json)

Argh. Okay, on first open it writes the file - or should. I think the problem is that the folder isn't provisioned.
Should just be some initial "first boot" logic.


[Monoid] Missing Monoids - Sum/Prod/All/Any/Dual/...

I'm missing the classical monoids Sum/Prod/All/Any/Dual/...
Do you plan to add them?

No, I don't plan adding them. While idiomatic Hana is pretty functional, I don't want the library itself to be a functional programming library. It is a metaprogramming library, and it turns out that the most general concepts come from functional programming, but the resemblance ends there.
Also, from a practical standpoint, Hana only provides plus, zero and sum that work with any Monoid. Adding these Monoids would therefore not add much value to the library, at least not as I see it right now. However, if someone wanted to build a functional programming library based on Hana's concepts, he could definitely provide those Monoids as an extension to Hana. This could be useful if such a FP library defines more algorithms that work generically on any Monoid, unlike Hana which only provides the strict minimum.
Now, my answer might leave you thinking: "Why define a Monoid concept in the first place, if you're not willing to use it?" The answer is that I wanted a sound algebraic hierarchy that is more fine-grained than a simple Arithmetic concept, so that users can then use this hierarchy as they wish.

Do you have concrete use cases for these Monoids, in the context of metaprogramming with Hana? If so, I'll be more tempted to add them. But otherwise, I see it mostly as a feature that only a few FP people would use, whereas Hana is really aimed at the mainstream C++ programmer. That mainstream programmer has no use for the Dual Monoid.

Well, who know what is the strict necessary?
Maybe you are right, and we don't need them for meta-programming, as you have already defined the function sum/prod/minimum/maximum in Foldable.

I think we should stick to the minimum for now, and we can always add them to the library if/when we have use cases. I think the lack of use cases right now might be caused by the unsophistication of our view of template metaprogramming. However, we might discover much higher-level ways of expressing things if we have better tools. If that happens, I'll be happy to provide more useful features in the library.


License undeclared

I'd like to package armatus for the GNU Guix package manager, but I don't see any license declaration in any of the files.
Under what license is armatus released?

Fixed --- added BSD license.

Thanks!


Update Jose to support OTP24

In are moving our apps to OTP24 / Elixir 1.12 and as guardian is still using an outdated Jose version, we were unable to upgrade due to the a deprecated function:
Warning: crypto:hmac/3 is deprecated and will be removed in OTP 24; use use crypto:mac/4 instead

This PR updates Jose and also updates 1 function that Guardian uses from Jose that has also changed.
These seemed to have worked for our apps, but I am really not sure if it is this simple. I wanted to push this back to you guys so you can check if this is as simple as updating this or if it is more involved than that.
Looking forward to what you guys think. In the meantime I'll use my fork to test our apps with these changes. If I do encounter any issues, I'll be sure to flag them here as well.

🚀

A new release with this would be awesome, it's currently preventing us too from upgrading to OTP 24. Thanks for all your hard work!

Is this lib abandoned? A release would be great. any workarounds?

@atomkirk the updated version has actually been released: https://hex.pm/packages/guardian/2.2.0

Oh, any idea why its not updated here
https://github.com/ueberauth/guardian/releases

@atomkirk we were using tag instead of releases to kick the release pipeline, I fixed that here: https://github.com/ueberauth/guardian/pull/684
Which will make sure people use Releases instead of tags, sorry for the confusion, trying to clean up little by little.


WIP: Add a no-op server endpoint for rotating keys, and make the client use it

The PR for the full server rotation of keys was getting a bit big, so here are some cherry-picked parts.
Currently the endpoint always returns a 429 (rate limit).
Part of #347

awesome tests, LGTM pending comments!

@riyazdf @NathanMcCauley thanks for the quick review!  I've just made a new function rotateRemoteKey instead of having the boolean.  Ideally if we could cache the remote store on the client at some point, we can just remove those two functions.  :)  But for now this seems easier to read - thanks!  :D

Marking as WIP due to some discussion on #534 that may change how this works

Since so much has changed, opening new request #533 instead.


absolut_time_t prints 0

HI I have the following code snippet
absolute_time_t temp_time;
absolute_time_t prev_time
void gpio_callback(uint gpio, uint32_t events) {
        temp_time = get_absolute_time();
        printf("GPIO %d tmp:%d \n",gpio,temp_time);
}

int main()
{
   stdio_init_all();
    gpio_pull_up(2);
    gpio_set_irq_enabled_with_callback(2, GPIO_IRQ_EDGE_FALL, true, &gpio_callback);
    sleep_ms(1000);
    prev_time = get_absolute_time();
    while(true){
        sleep_ms(100);
        prev_time = get_absolute_time();
        printf("prev:%d \n",prev_time);
    }

for the print in the while loop, I am always getting 0. But in the call back I am getting value. Not able to figure out the issue
Please someone help

I think absolute_time_t might be an "opaque type"? You might get more reliable results if you use to_ms_since_boot() to convert it to a uint32_t?

@lurch thanks for the information, I have never come across opaque type. Let me research a little bit and implement.


[BUG] thread '' panicked at 'failed to invoke plugin

Steps to reproduce

git clone https://github.com/FairyScript/farm-script-issue.git
pnpm i && pnpm start  (bugs can only be found in dev mode)

src/main.tsx
const obj = {
  a: 1,
}

export function Main() {
  const [count, setCount] = useState(0)

  // obj.a //OK
  obj?.a //RuntimeError: out of bounds memory access

  return (
    <>
      ...
    </>

farm.config.ts
export default defineConfig({
  plugins: ['@farmfe/plugin-react'],
  compilation: {
    script: {
      plugins: [
        {
          name: '@swc/plugin-emotion',
          options: {},
          filters: {
            moduleTypes: ['tsx'],
          },
        },
      ],
    },
  },
})

What is expected?
file is compiled correctly
What is actually happening?
thread '<unnamed>' panicked at 'failed to invoke plugin: failed to invoke plugin on 'Some("src/main.tsx")'

Caused by:
    0: failed to invoke `@swc/plugin-emotion` as js transform plugin at @swc/plugin-emotion
    1: RuntimeError: out of bounds memory access
           at <unnamed> (<module>[169]:0x1b36e)
           at <unnamed> (<module>[202]:0x299ef)
           at <unnamed> (<module>[65]:0x5f10)
           at <unnamed> (<module>[177]:0x214b4)
           at <unnamed> (<module>[175]:0x203a5)
           at <unnamed> (<module>[64]:0x5a98)
           at <unnamed> (<module>[63]:0x4bf3)
           at <unnamed> (<module>[611]:0x5c677)
           at <unnamed> (<module>[3412]:0x12a96a)', crates\plugin_script\src\swc_plugins.rs:215:8
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Rayon: detected unexpected panic; aborting
thread 'tokio-runtime-worker' panicked at ' ELIFECYCLE  Command failed with exit code<PHONE_NUMBER>.

System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (20) x64 13th Gen Intel(R) Core(TM) i5-13600KF
    Memory: 5.01 GB / 15.72 GB
  Binaries:
    Node: 18.16.1 - C:\Program Files\nodejs\node.EXE
    npm: 9.5.1 - C:\Program Files\nodejs\npm.CMD
    pnpm: 8.6.3 - ~\AppData\Roaming\npm\pnpm.CMD
  Browsers:
    Edge: Spartan (44.22621.1992.0), Chromium (115.0.1901.183)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    @farmfe/core: ^0.10.7 => 0.10.7

Any additional comments?
https://github.com/swc-project/plugins/issues/176
it looks like a swc-issue. In vite plugin works just fine.

It may be caused by mismatched swc version used in Farm, I will update swc version that Farm uses today


add new tuning to consider (only natural note)

tuning-module.ts
// (open tuning, cross note tuning) : best to play harmonization or as rhythm guitar (playing chord with just minimal finger 1 or two)
{ tuning: "DFACEG", dots: guitarDots, description: "Dm9/11" },
{ tuning: "CGCDGC", dots: guitarDots, description: "Csus2" },
{ tuning: "DADEAB", dots: guitarDots, description: "D6sus2" },
{ tuning: "DADEAC", dots: guitarDots, description: "D7sus2" },
{ tuning: "DADFAD", dots: guitarDots, description: "Cross Note D" },
{ tuning: "DADFAB", dots: guitarDots, description: "Dm6" },
{ tuning: "DADFAC", dots: guitarDots, description: "Dm7" },
{ tuning: "DADGAD", dots: guitarDots, description: "Dsus4" },
// regular tuning, best to learn note because it's symetrical, another useful tuning is major third and minor third but right now your code cant support accidental note to add major third and minor third tuning
{ tuning: "BFBFBF", dots: guitarDots, description: "Augmented Fourths" },
// another bass standard tuning for 5th strings and 6 strings
{ tuning: "EADGC", dots: guitarDots, description: "Bass 5 Strings Standard High" },
{ tuning: "BEADG", dots: guitarDots, description: "Bass 5 Strings Standard Low" },
{ tuning: "BEADGC", dots: guitarDots, description: "Bass 6 Strings Standard" },
thanks

Thanks for this. Easy to add, I'll try and do it reasonably soon.

Closing this issue. I think it's not a good idea to add every possible tuning. Instead better to add a feature to allow users to input their own custom tuning.


Improving Runtime Permission Validators infrastructure

Current implementation can be improved step by step. This task is an epic for these steps

outdated


[don't merge before 2.072] Remove last standing WEB macro

removes the last bit of the WEB macro - shouldn't be pulled before 2.072

yay 2 dat

please resubmit... sorry


docs(tutorial/blog): update the example to use LoaderArgs and ActionArgs

Closes #4110
I removed the LoaderData type to simplify the tutorial and avoid a type error that happens after adding Prisma in the tutorial.

@silvenon feel free to review any PR your want, starting with this one 🙌

I've updated everything and given it two proof reads. I haven't updated the highlighted line suggestions for the code examples, I thought that would be easiest to do after being able to preview the actual line numbers Github will give the examples, and I also don't want to waste time editing the line highlights if there need to be more edits.

I updated the highlighted lines in the code examples. I believe the changes to implement 1.6.5 is complete.

This is the Indie Stack filled with the new code examples:
https://github.com/johnhooks/blog-tutorial
The only issue I see, the links to the posts on the admin pages don't work because they are relative to the /posts/admin route and that route isn't found. Shouldn't it look like this?
<Link to={`/posts/${post.slug}`} className="text-blue-600 underline">

@machour just out of curiosity would you like me to start in on the Jokes Tutorial and wrap that together with this or keep them separate PRs? I just peeked into that one and it needs to be updated too.

@johnhooks let's leave that for another PR.
I'd recommend waiting for feedback on this one before starting converting the Jokes tutorial, since some adjustments may be required.

noting this covers #3772 / #3773 for anyone looking at that issue/PR

Hi! We've migrated our examples to a dedicated repo. If you can get rid of those changes to reduce merge conflicts, that'd be great. You're welcome to make a separate PR over there if you'd still like the examples updated.

@machour if you guys are still interested in this, I can remove the example updates, though what would be the recommended git strategy to do so?

@johnhooks should go something like this for you inside your own repository checkout:
git fetch upstream                # get latest informations from the remix-run/remix repo (it's named upstream, and your fork is named origin)
git merge upstream main           # merge upstream into your own repo main (you'll get conflicts printed to the console)
git rm -rf examples/blog-tutorial # recursively force remove your local examples/blog-tutorial folder
git commit -m "remove examples folder"
git push

as for your changes in examples, I extracted and adapted a patch that you can apply against the new examples repository here: https://gist.github.com/machour/01a1f1aada08f29ad547b4ff22d679fe

Thanks, there is a lot I need to learn about git

@machour I think I got it resolve


Paths, JSONKeys should not be in the SBStringConstants

Listing constants in a single file is not good at scale. What will happen if you have thousands of models and hundreds of API EndPoint
I don't see PROs listing them in a single file could please explain what's the reason ?

@Dekablade01 Idea behind using them in a single file was that I always create one single constant file for each module and all the constants related to that module should be under one roof. Keeping all the constants intact in one file helps in finding & modifying them if needed at later point of time.
But thanks for providing an insight that constants specific to one particular file (which won't be used anywhere else) should remain coupled in the same file.

@Dekablade01 Refactored string constant file. Changes have been merged to develop branch & will be available in the master branch in next release.


Suggestion: Midi-QOL integration for undead fortitude

When an undead creature with undead fortitude is dropped to 0 health, it would be nice if midi passed the full damage and whether the damage was from a crit or radiant to Simbul's Creature Aide before setting the health to 0. Simbul's Creature Aide would then send back if the creature died or is set to 0 health.
I posted this on both projects because I'm not sure if this module has api support for midi to accomplish this.

Midi already provides that information in the actor update. The options field contains a damageItem object
damageItem:
actorId: "pzJ9EYxdisWdJ1lg"
actorUuid: "Actor.pzJ9EYxdisWdJ1lg"
appliedDamage: 29
damageDetail: Array(3)
0: Array(1)
0: {damage: 12, type: 'slashing'}
Array(1)
0: {damage: 17, type: 'slashing'}
hpDamage: 1
newHP: 0
newTempHP: 0
oldHP: 1
oldTempHP: 0
sceneId: "jnNYTil6bDdmq1P8"
tempDamage: 0
tokenId: "r1FVsnRdroUAK6AG"
tokenUuid: "Scene.jnNYTil6bDdmq1P8.Token.r1FVsnRdroUAK6AG"
totalDamage: 29

Version 10.0.22 will add a boolean critical flag to the damage item to allow testing for critical/radiant.
The following code will check for radiant/critical hits when passed the preUpdate options
function checkRadiantCritical(options) {
    if (!options.damageItem) return false;
    if (options.damageItem.critical) return true;
    for (let di of options.damageItem.damageDetail) {
        for (let did of (di ?? [])) {
            if (did.type === "radiant") return true; // change this to use the module settings
        }
    }
    return false;
}

I did a test and changed

static quickCheck(data, options) {
  if (UndeadFortitude.checkRadiantCritical(options)) {
      return {rollSave: false, saveDC: 0};
  } else
      return {rollSave: true, saveDc: data.baseDc + data.hpDelta
  }
}

Which auto rolls the save when needed.
Also an implementation suggestion. Rather than allowing the update to complete and the adding back one hp, can I suggest the following?

The preUpdate hook should auto fail the update unless a module generated option is set - fortitudeSaveFailed is true.
Then the rest of the hook does the checking for the save (same as it does now, but checking if the midi damageItem is present in the options) and if the save fails reapply the actor update, but this time setting options.fortitudeSaveFailed=true.

That way the target only goes to 0 hp if the save fails, and the other effects of going to 0 hp, prone/unconscious/removing concentration never happen.


[build]: Prepare for Gradle 9.0 and several deprecated things being removed.

Task List

[ ] Steps to reproduce provided
[ ] Stacktrace (if present) provided
[ ] Example that reproduces the problem (link to git repository is ideal)
[ ] Full description of the issue provided (see below)

Steps to Reproduce
./gradlew clean --stacktrace --warning-mode all --scan --info | tee ~/build.log
Expected Behaviour
The clean task should run without warnings about deprecation and Gradle 9.0
Actual Behaviour
Several mechanisms are flagged as going to be removed in Gradle 9.
Environment Information

Operating System: Any
JReleaser Version: 1.12.0
JDK Version: 21

Attaching log. A build scan with all the warnings can be found at  https://gradle.com/s/or3p5ad2a7jya  , but it may not persist forever. It's easy to reproduce by running your own gradlew clean example line with the above debug options.
This is sort of a placeholder/umbrella issue for Gradle 9.0 support. I will incrementally file issues related to this one on a more fine grained level, per deprecated feature in a bit.

Thank you @lagergren
It'd be great to have a copy of the deprecation warnings & messages in this issue to avoid relying on a 3rd party service.

Attaching a build log with complete stack traces for now.
Whenever I have cycles (a bit busy today), I will try to create individual sub issues to this "umbrella" issue, because while there seems to be a lot of warnings in the build log, they only represent a handful och different deprecation problems, occurring in many places.

[
build.log.gz
](url)

Deprecated API usages by shadow 8.1.1

https://github.com/johnrengelman/shadow/pull/876
https://github.com/johnrengelman/shadow/pull/919

Unsafe resolution of configurations via the enforcer plugin

https://github.com/gradle/gradle/issues/29503


Are truncated results expected?

I've noticed that long answers get cut off.  Is this a limitation of the OpenAI SDK or is there a bug in the code somewhere?

I am getting multiple different errors across python and javas recently, maybe something is cooking with the api.
openai.error.ServiceUnavailableError: The server is overloaded or not ready yet.
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

I removed the slider which was causing the issue, but now the requested token number is always 1 higher than the required number.
openai.error.InvalidRequestError: This model's maximum context length is 4097 tokens, however you requested 4098 tokens (11 in your prompt; 4087 for the completion). Please reduce your prompt; or completion length.

I'm still running an older version... one that I posted here in an issue, so I don't have a slider.  This is basically the same as the original.  The text written to answers.txt is also truncated.    I've not used the program for image, only text.  Maybe I should simlify things way down to just the text portion.


xSQLServerEndpoint: Parameter AuthorizedUser is mandatory in code but not a mandatory parameter

Details of the scenario you try and problem that is occurring:
In the resource xSQLServerEndpoint the parameter AuthorizedUser is mandatory in code, but not in the parameter. This leads to that a user must set this parameter even if the user does not want to grant permission at the time of creation.
This parameter should be optional, if set the permission can be granted. If not set the user can later set permission with the resource xSQLServerEndpointPermission.
The DSC configuration that is using the resource (as detailed as possible):
xSQLServerEndpoint HADREndpoint
{
    EndPointName = 'HADR'
    Ensure = 'Present'
    Port = 5022
    AuthorizedUser = 'sa'
    SQLServer = $Node."SourcePath$($currentSqlInstance)"
    SQLInstanceName = $Node."SourcePath$($currentSqlInstance)"

    PsDscRunAsCredential = $SqlAdministratorCredential
}

Version of the Operating System, SQL Server and PowerShell the DSC Target Node is running:
All
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Dev

Would like some feedback on this issue.
There is a bug with the parameter AuthorizedUser also. It doesn't make sure that the correct user is returned in the Get-method if there are more than one user that has permission to the endpoint.
Also, there is no check if the user permission is in desired state.
And the parameter name is very confusing, authorized to do what?
I would like to either

Remove this parameter from the resource so that the resource xSQLServerEndpointPermission will be used for this instead, which already has this logic in place.
Or change the parameter name to UserAllowedToConnect which can take one or more logins which then will replace xSQLServerEndpointPermission.

I will remove AuthorizedUser from this resource. I making this a breaking change. Let me know if any one feels differently.


Python version support?

@geohot What versions of python do you want to support?
If you can specify this, I will add it to automation and documentation.

3.8+


expiration date

Suggestion
when creating a request would be good to allow user to set expiration date or set that default will be per policy

@mabaugh83 the current thinking is that Provision Assist should be used with AAD expiration policies which is why we don't allow the user to set one.
I have previously created a custom expiration process in Power Automate which allows the configuration of a number of expiration days in the settings list which gets added to the date on which a collaboration space is created to determine the expiry date.
How do you envisage this working?

Many thanks for the email
The AAD expiration policies would catch via inactivity and prompt the owner to renew or delete
However, we have some folks (devs usually) that will create for test purposes and will set up jobs so the inactivity never triggers.
When they request one it would be good to ask if test purposes and set to say 60 days expiration or allow them to chose a lesser expiration date from the aad policy setting.
Please let me know if you have any questions or need more information
Many thanks
Mike
From: Alex Clark @.>
Sent: Wednesday, August 30, 2023 3:26 AM
To: pnp/provision-assist-m365 @.>
Cc: Michael Baugh @.>; Mention @.>
Subject: Re: [pnp/provision-assist-m365] expiration date (Issue #3)
@mabaugh83https://github.com/mabaugh83 the current thinking is that Provision Assist should be used with AAD expiration policies which is why we don't allow the user to set one.
I have previously created a custom expiration process in Power Automate which allows the configuration of a number of expiration days in the settings list which gets added to the date on which a collaboration space is created to determine the expiry date.
How do you envisage this working?

Reply to this email directly, view it on GitHubhttps://github.com/pnp/provision-assist-m365/issues/3#issuecomment-1698719036, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQZQMYWRSKAJG2PUIVKWJDLXX32H5ANCNFSM6AAAAAA3BKMFNY.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

@mabaugh83 thanks for this, I will add to the roadmap. I have something similar to this which I built internally as an add on for Provision Assist so maybe I can add that on.


Fix the wrap of player name.

Add wrapping of the player name text.
Reduce the player name font size a bit
Update the player name constraints to 24 characters. (Its latest implementation of this part is in #206 )

Codecov Report

Merging #208 (46e4787) into master (f5437b7) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #208      +/-   ##
============================================
- Coverage     70.34%   70.32%   -0.03%
  Complexity      909      909
============================================
  Files           145      145
  Lines          3008     3009       +1
  Branches        350      350
============================================
  Hits           2116     2116
- Misses          787      788       +1
  Partials        105      105

Impacted Files
Coverage Δ

...ress/logic/commands/strategy/AddPlayerCommand.java
0.00% <ø> (ø)

src/main/java/seedu/address/ui/StrategyPanel.java
0.00% <0.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

I'm not sure if changing the limit of player names could be allowed in V1.4 (see https://github.com/nus-cs2103-AY2122S2/forum/issues/238#issuecomment-1086605105)


Real-time translation crash

Whenever I click the button go into screen with your real time translator, my app crashes. Please help.
Or maybe can you provide any examples that works with AppNavigator?

@vfa-locltb
I upgraded version of rn & webview. check again new at version (1.1.4).

still Real-time translation crash is comming

still crashing/


Project alive?

Hey, is there any intention to breathe life into this still pending?

https://dev.to/hansonkd has no other updates ... perhaps @hansonkd got busy :(


netty old version check broke between 2.1.0 and 2.2.0

Depot 2.2.0 no longer notices that io.netty/netty-transport-native-kqueue is outdated.
deps.edn snippet:
           ^:depot/ignore
           io.netty/netty-transport                             {:mvn/version "4.1.60.Final"}
           ^:depot/ignore
           io.netty/netty-transport-native-epoll                {:mvn/version "4.1.60.Final"}
           io.netty/netty-transport-native-kqueue               {:mvn/version "4.1.60.Final"}
           ^:depot/ignore
           io.netty/netty-codec                                 {:mvn/version "4.1.60.Final"}
           ^:depot/ignore
           io.netty/netty-handler                               {:mvn/version "4.1.60.Final"}

$ clj -Sdeps '{:deps {olical/depot {:mvn/version "2.2.0"}}}' -m depot.outdated.main
...
Checking for old versions in: deps.edn
  All up to date!

$ clj -Sdeps '{:deps {olical/depot {:mvn/version "2.1.0"}}}' -m depot.outdated.main
...
Checking for old versions in: deps.edn
  io.netty/netty-transport-native-kqueue {:mvn/version "4.1.60.Final"} -> {:mvn/version "4.1.63.Final"}

Oh this is probably because of the CI job that was added that updates all the deps optimistically. I've never been a fan of updating automatically and I guess I've just been reminded why.
I'll try to revert it and do the deploy dance soon. Just need to find some time.

On the bright side, the automated update found a case that does not yet have automated tests! Regardless of whether you disable the autoupdate, writing a test case for this is probably a good idea :)

So it's almost definitely not an issue with version-clj, more like it used to provide the wrong information to us and now it's fixed which stopped it working through depot. This answer from the author is great! https://github.com/xsc/version-clj/issues/17#issuecomment-817289374
So I'll try to use this info to fix it up in depot soon, but if someone beats me to it then I'll be damn happy to merge it. I've been bug fixing all day so far and I'm back to work after some time off tomorrow, so I'll be putting this down for at least a few days 🙂 (house work and then actual rest beckon!)


iptables: Don't SNAT connections from podCIDR

For IPSec and the host firewall, in order to apply kube-proxy's reverse DNAT, we want to send traffic through the tunnel via the stack instead of doing a redirect call. Such traffic therefore goes from the lxc device to cilium_host where it is redirected to the tunneling device.
We however SNAT that traffic on its way to cilium_host. We don't need to apply SNAT there for the pod CIDR as any traffic from the pod CIDR will either leave directly through the native device (masquerading happening there) or go through cilium_host and be redirected to the tunnel.

test-runtime

test-runtime

test-me-please

test-me-please

test-4.19

test-4.19

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-runtime

test-runtime


Access Denied Error

When using I get an access denied error:
Error: java.io.FileNotFoundException: C:\2016\react\react-native-audio\AudioExample\android\app\build\intermediates\assets\debug\fonts\MaterialIcons.ttf (Access is denied)

This definitely look like an error with the installation Material Icons. Have you been able to install the material icons alone to see if you can get them up and running @javismiles  ?

@javismiles check out this thread


[Enh] Patch PDFWorker

Avoids over-relying on Whedon gem.

Sorry, I hadn't realized that you really had them as separate workers for the preview page -- any interest in deduplicating more generally ? Are we going to hit the same issue with the JBWorker ?

Sorry for the confusion, they are the same workers, I saw that the calls from the GitHub needed some tweaks. We'll need to define GitHub commands for JBWorker after deciding who can call them.

OK, thanks for confirming ! LMK if you want me to merge this and handle the other worker in another PR :smile_cat:

I've just deployed roboneuro from this branch. @mathieuboudreau can you test if it works for you now?
@emdupre we can merge this if it resolves the issue unless you have local changes that you have not pushed them yet :)

@agahkarakuzu RoboNeuro has an application error; is it just resetting?

@mathieuboudreau I think to test this you'd want to comment on the GH issue, not use the preview page. regardless, we can fix this error first and ping when it's done :heavy_check_mark:

Ah right, I remember now that RoboNeuro built the PDF correctly last time - on it thanks!

@agahkarakuzu it looks like a formatting error on my part :weary:

2021-09-24T17:03:33.382245+00:00 app[worker.1]: class DepositWorker
2021-09-24T17:03:33.382245+00:00 app[worker.1]: ^~~~~~~~~~~~~~~~~~~
2021-09-24T17:03:33.382246+00:00 app[worker.1]: /app/workers.rb:783: class definition in method body
2021-09-24T17:03:33.382246+00:00 app[worker.1]: class JBWorker
2021-09-24T17:03:33.382246+00:00 app[worker.1]: ^~~~~~~~~~~~~~
2021-09-24T17:03:33.382252+00:00 app[worker.1]: /app/workers.rb:845: syntax error, unexpected end-of-input, expecting end

Do you want to push to this branch or do you want me to ?

@emdupre I can leave it to you to fix this, then:
git push -f heroku enh/pdf-worker:master

OK this now works :shipit:
In the end I pulled in a lot of Whedon functionality -- we should likely just fork and create our own Ruby gem rather than duplicating throughout. But I'll leave that de-duplicating for a later syncing PR to align the Preview + Production workers :wrench:

I always feel weird merging my own PR, but I will if I don't hear otherwise from anyone (or if no one beats me to it !) :sweat_smile:


Add test of prim_prince module

I created the test of prim_prince.sv module.
I used lint off rule, because it was giving UNOPTFLAT warnings when was tested by original verilator.

It will be ready to merge when uhdm-verilator pass it.
I created the issue: https://github.com/alainmarcel/uhdm-integration/issues/338

I also created two simpler tests to reproduce the errors of both kinds separately.


Fix Contribution guide as PDM is no longer used

Fix the contribution guide by replacing the old command pdm install with the new poetry install as PDM is no longer used as package manager for this project

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


add figure to section 2.6

Section Number 2.6
Issue I will found usefull if in this section we will add Figure <IP_ADDRESS>-1: of IHE ITI TF vol3
Proposed Change *
Priority:low

The recommended figure is https://profiles.ihe.net/ITI/TF/Volume3/media/Figure_<IP_ADDRESS>-1.png
seems useful.
I wonder if we can just use the image as published there, while displaying it in the whitepaper? This should be possible like this
![](https://profiles.ihe.net/ITI/TF/Volume3/media/Figure_<IP_ADDRESS>-1.png)

Yes, very important figure.  Keep as is.
De : John Moehrke<EMAIL_ADDRESS>Envoyé : mercredi 10 février 2021 11:10
À : IHE/HIE-Whitepaper<EMAIL_ADDRESS>Cc : Subscribed<EMAIL_ADDRESS>Objet : Re: [IHE/HIE-Whitepaper] add figure to section 2.6 (#118)
The recommended figure is https://profiles.ihe.net/ITI/TF/Volume3/media/Figure_<IP_ADDRESS>-1.png
seems useful.
I wonder if we can just use the image as published there, while displaying it in the whitepaper? This should be possible like this

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/IHE/HIE-Whitepaper/issues/118#issuecomment-776820907 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APOZ2DFBFU6MMQ7XKFAM54DS6KVVJANCNFSM4VNKKMNA .  https://github.com/notifications/beacon/APOZ2DEV5UTIZGD7XW6BDDLS6KVVJA5CNFSM4VNKKMNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFZGVRKY.gif


Length of standfirst on explore page

On the next/explore index page, the standfirst for the top story (currently ladies of L) gets ellipsesed out -- seems like there's lots of room for the full standfirst there, can it be expanded?

The existing standfirsts as they are aren't very useful in the Explore page context. We have a lot of repeated text from article to article. I'd suggest we park standfirsts for now, and take a different approach, such as adding publication date and authors (though authors may not be possible either given what @jamesgorrie concluded in #449)
@derivadow has also cited research done to show that NOT having standfirsts/article summaries results in better performance. Obv this is something we'd want to test in the future, but given that the standfirsts aren't article summaries anyway, we can take this opportunity to hide them.

Confused of Camden here.
I feel like it's pretty standard on any editorially-driven site to have a standfirst under the headline. Even quartz does it! I'd rather rewrite existing standfirsts in wordpress for the content that comes through than just lose them all.

Is a differential solution possible? Keep (full) standfirsts for the Big 4, lose them for the rest?

@jennpb as we use promo text now, is this still an issue?


Fixed width rounding

Closes: #565
@ckormanyos This one was by request from the discussion on the ML. I am open to a better name than overloading trunc even though that's what it does; truncates to a fixed number of decimal places (with appropriate rounding).

I renamed this to trunc_to which I think more accurately describes what it does without being overly verbose