There was a problem sending your highlights: parsing time

Hi Marcus,
I ran into the following error when trying to sync my highlights from a Kobo Clara HD for the first time:
There was a problem sending your highlights: parsing time "" as "2006-01-02T15:04:05.000": cannot parse "" as "2006"
[2022-05-10.log]
Log is attached: (https://github.com/marcus-crane/october/files/8660567/2022-05-10.log)
Any idea as to what might be the problem?
Many thanks,
Kilian

Sure, the problem is that October wasn't able to find a timestamp for that bookmark as it says on the tin 😅
I didn't know that was possible so I'll have to add something to handle that case.
Out of interest, is this book purchased or sideloaded? I assume purchased because there are some keys in there like "IsPurchaseable":true
I haven't explicitly tested October with purchased books (the official Readwise extension supports them) so they may have some field present and others missing which October chokes on.

Indeed, this book was purchased. Might try temporarily removing it from the device then.
Thank you for clarifying!

Hi @Styphax,
Sorry for the delay in addressing this. I had a look at the metadata for purchased books and my assumption here was entirely wrong.
Instead, it's possible to have bookmarks without a creation date (I'm not sure how just yet) so I've released v1.1.1 which handles these edge cases and should resolve your issue.
Feel free to reopen this issue if you have further issues or file a new one.
Thanks!


Send message to group or people on server

I don't know if there is already a way to do that, but right now notices can only be posted publicly. It would be nice to be able to send them to a server's users only or privately to a group (like via the GNU social web interface). I am not sure if that is feasible, anyway, it's just a feature request.

Am 17.01.2015 um 17:14 schrieb aroquen:

I don't know if there is already a way to do that, but right now
notices can only be posted publicly. It would be nice to be able to
send them to a server's users only or privately to a group (like via
the GNU social web interface). I am not sure if that is feasible,
anyway, it's just a feature request.
—
Reply to this email directly or view it on GitHub
https://github.com/andstatus/andstatus/issues/211.

Direct messages to accounts on the same instance should work with
AndStatus. Note that this does not work between remote instances. But
this is a native OStatus issue.

I really meant posting a notice to a group and being able to restrict the visibility to the group as in the GNU social web interface. It's essentially what was requested in #166 so I am closing this.
Concerning direct messages, the interface is not extremely intuitive. Following the help, I go to my direct messages but since I have none of them at the moment the screen is empty and I have no way to send one (at least I couldn't find a way to do that) I can from the home timeline by long pressing. Anyway, thank you for your help.

AndStatus indeed doesn't have an interface to explicitly define a recipient of a Direct message. You may only send a Direct message to a User/Author of the selected message (long pressing on it).
Adding such interface (allowing e.g. type recipient username manually) should be a topic of a separate issue, I guess...


Migrate to builder with compile time checks

The used derive_builder crate does the checks on runtime. Something like the following will compile but fail at runtime creating hard to find mistakes. Especially as Telegram interactions are not always tested this easily allows for mistakes.
SendMessageParamsBuilder::default().build().expect("I will fail");

I will fail: UninitializedField("chat_id")

typed-builder does this at compile time which will result in less .unwrap(), better performance and less mistakes in production as mistakes are found at compile time. I haven't tried migrating to typed-builder so there might be something preventing it to be used.
Switching the builder system will result in a breaking change but this seems worth it for me.
Any thought on that?

@EdJoPaTo I don't have anything against this. I think we can try this crate


Secrets creation/modification entirely within console

Is your feature request related to a problem? Please describe.
I find the team-secrets creation process to be not user-friendly and in code more complex than it needs to be
Describe the solution you'd like
I'd like the whole team secrets creation and management process to happen within the console (from a user perspective).
External-secrets (not KES) already allows you to specify path-based writing of Vault secrets to namespaces,
so since our teams are 1:1 with their namespaces, we could simply generate that path in the API and write directly to Vault, then have external-secrets automatically sync it to the namespace.
Using a single Otomi-api account to handle writing to and from Vault also supports shared/external Vault instance scenarios better.
This would of course require an upgrade from kubernetes-external-secrets to external-secrets

Would be great to see that implemented. But it involves more than you think. Secrets need to be created in Vault somehow, and External Secrets only pulls secrets, so we have to:

build a vault client (openapi published?)
create an otomi-task that uses the client to create these secrets

We could even just remove the secrets feature from the console, then simply have users create their secrets in Vault and have external-secrets automatically sync those to the team namespace based on the above mentioned path-based writing.

"Automatically"? There is always work involved. K8s is a beast which eats declarations. Which actor creates those declarations do you think?
Console is the one stop solution for most things, until we hand over to the apps we promote. If simple use cases make a users life easier, than we create a story to do it in the console. Added advantage is that we can plug different secrets solutions. Vault is just one

I think this solution would provide an extremely simple and user friendly way to implement multi-tenancy in Vault rather than the complex integration that we have now with issues like otomi-admin account not being able to see secrets. All you need is one Vault admin to write secrets on behalf of the API, and one reader account for external-secrets, then apply multitenancy at the level of the path to which a given secret is written.

So, to continue on my obervation, for your approach we would have to create and maintain multiple api interfaces for the different endpoints we support: Vault, Azure Keyvault, AWS etc etc. This is simply not desirable, and especially not from a long term vision towards such integrations.

I just don’t see a man in the middle approach where otomi console is the creator of secrets in multiple exotic storage endpoints. I do understand the friction of needing to create secrets in otomi, so I propose a better solution (if possible):
Workflow:

Secret is made in app (Azure KV, Vault etc)
Webhook is called that triggers our (new) daemon
Daemon creates external-secret
Otomi just scans and reads in existing external-secrets and lists them.

This approach still makes the user use the secrets app that was intended, with all the AuthZ in place as expected.

If this gets prio we should have a discussion about the details. I have a detailed vision already that I would like to share.

Closing as Hashicorp Vault is not gonna be used with Otomi.


Bugs checking for learning rate during config parsing

There are two bugs related to parsing the learning rate from configs:

The if statements in these lines check if lr != "None" but not lr != None. Note the lack of quotes in the second example -- the default value in the function is None and not "None".
There should be a check for the case where "train" in operations and "lr" not in configs and lr == None, i.e. the learning rate has not been specified at all. Currently the model will begin fitting even though there's no learning rate.

Thanks @rfriedman22 for these catches - do you want to submit a PR for these fixes?

Sure @kathyxchen, I'll make these fixes shortly and submit a pull request!


useQuery re-render even if cached when neighbor data (but not retrieved by useQuery) is newly retrieved

Describe the bug
In some cases data from useQuery will be updated even if the data is not changed.
Reproduction step

Clone https://github.com/jet2jet/urql-test3 and npm install
npm run start
In http://localhost:3000/ , enter 1 to ID: field and click Get
Expected behavior: Render count in List section will not increase
Actual behavior: Render count will increase

Notes
I found that if data contains a scalar array (in the above reproduction tags field), the problem will occur.
In this case the program will reach to the following line that fieldValue (array instance) is not equal to input[fieldAlias]:
https://github.com/urql-graphql/urql/blob/%40urql/exchange-graphcache%406.3.3/exchanges/graphcache/src/operations/query.ts#L477
Reproduction
https://github.com/jet2jet/urql-test3
Urql version
urql v4.0.5
@urql/exchange-graphcache 6.3.3
Validations

[X] I can confirm that this is a bug report, and not a feature request, RFC, question, or discussion, for which GitHub Discussions should be used
[X] Read the docs.
[X] Follow our Code of Conduct

I haven't fully looked at this admittedly, but looking at this, are you referring to tags i.e. a scalar list of string[] / [String]?
If so, if you have two queries that, instead of defining fragments and hoisting & spreading them in a single query, load the same scalar field then the two values cannot be equal.
This is because two queries will launch two operations that will both be fulfilled by the API, even if they overlap. In turn, this means that tags: [String] will be loaded twice and the resulting value, given that it's a reference, is not normalised and can never be reference equal to itself — i.e. since it's unrealistic to expect them to be deeply compared, since we treat all scalars as opaque values, they'll never be equal once they've been fetched from the API twice.
This could of course be prevented by somehow treating API results in a special manner and assuming that they're JSON-equal, and comparing that. However, this would have a significant impact on the performance of cache reads. After all, the cache reads are expected to visit each field in the query AST and process them.
So, I don't think that this is behaviour that's unexpected, and I'd recommend you to — if you expect this to behave differently in a real app — to hoist and combine queries as much as possible and otherwise either make sure that you deep-diff parts of data where you need (which of course shouldn't be needed often) or strategically memoise rendering results or computed values.
Sorry if that's not the answer you were looking for though!

Thanks for the reply. In the reproduction, individual Todo (query TodoDetail) does not include tags, but when query TodoDetail is executed, tags in TodoList is updated.
I think there might be a case that the client want to retrieve non-detailed list for the performance reason (server dependent, maybe), so the reproduction pattern would be a possible case.

Yea, the reason is because the List of strings is seen as updated which is being queried from the list. Tbh, I would not really see this as a bug as much as a maybe-optimization but I reckon comparing those lists is more expensive than just doing a React-render that bails out anyway as it sees no changes.

I am going to close this out as we can't really make assumptions about these scalars, generally speaking the issue would be here where the array reference isn't the same, this makes sense but we can't really deep compare as this could be a Date, ...


Add group options

For https://github.com/xanzy/go-gitlab/issues/762

Added all fields from the CreateGroup API


Implement unique Zone ID verification (GTFS Rule)

Is your feature request related to a problem? Please describe.
Every Zone ID should be unique in stops.txt.
Describe the solution you'd like
Verify a Zone ID is not duplicated in stops.txt
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
GTFS Spec http://gtfs.org/reference/static/#stopstxt

I think this is actually talking about fare_rules.txt:
https://gtfs.org/reference/static#fare_rulestxt
Three fields in fare_rules.txt reference stops.txt zone_id. If there is more than one record in fare_rules.txt with the same combination of references to stops.txt zone_id, then consumers wouldn't know which price to show the user. So I believe this rule should check to make sure that the combination of origin_id, destination_id, and contains_id is unique in fare_rules.txt.
I'd also double-check the Python code to make sure this assumption is correct.

Thanks, I'll check the Python code in order to confirm that :)

Closing, this should be covered by duplicate_fare_rule_zone_id_fields.


Create IsKubernetesResourceProperty() predicate

Resolves #293

Coverage decreased (-18.4%) to 5.934% when pulling 74d2856c65e225d558b0ba64f420d5b6de08b1dc on improve/kubernetes-properties into a224542638d57c996a397d123c1c7dcf2e57c545 on master.


BUG: The same migration name can be created in multiple directories.

If using multiple migration paths, only the chosen path at migration creation time is verified for the class name being unique, not all the other migration paths.
As such, the duplication is only realised when all the migrations are interacted with, say via a phinx status call.
Possibly/probably also true for using multiple seed paths.
With a phinx.yml of
paths:
    migrations:
      - %%PHINX_CONFIG_DIR%%/db/migrations/1-Tables
      - %%PHINX_CONFIG_DIR%%/db/migrations/2-Views
    seeds: %%PHINX_CONFIG_DIR%%/db/seeds
...

And the following steps.
$ bin/phinx create Number1
Phinx by Rob Morgan - https://phinx.org. 0.8.0

using config file ./phinx.yml
using config parser yaml
using migration paths
 - /Users/richardquadling/dev/php/robmorgan/db/migrations/1-Tables
 - /Users/richardquadling/dev/php/robmorgan/db/migrations/2-Views
using seed paths
Which migrations path would you like to use?
  [0] /Users/richardquadling/dev/php/robmorgan/db/migrations/1-Tables
  [1] /Users/richardquadling/dev/php/robmorgan/db/migrations/2-Views
 > 0
using migration base class Phinx\Migration\AbstractMigration
using default template
created /db/migrations/1-Tables/20170306121851_number1.php

$ bin/phinx create Number1
Phinx by Rob Morgan - https://phinx.org. 0.8.0

using config file ./phinx.yml
using config parser yaml
using migration paths
 - /Users/richardquadling/dev/php/robmorgan/db/migrations/1-Tables
 - /Users/richardquadling/dev/php/robmorgan/db/migrations/2-Views
using seed paths
Which migrations path would you like to use?
  [0] /Users/richardquadling/dev/php/robmorgan/db/migrations/1-Tables
  [1] /Users/richardquadling/dev/php/robmorgan/db/migrations/2-Views
 > 1
using migration base class Phinx\Migration\AbstractMigration
using default template
created /db/migrations/2-Views/20170306121857_number1.php

$ bin/phinx status
Phinx by Rob Morgan - https://phinx.org. 0.8.0

using config file ./phinx.yml
using config parser yaml
using migration paths
 - /Users/richardquadling/dev/php/robmorgan/db/migrations/1-Tables
 - /Users/richardquadling/dev/php/robmorgan/db/migrations/2-Views
using seed paths
warning no environment specified, defaulting to: development
ordering by creation time

  [InvalidArgumentException]
  Migration "20170306121857_number1.php" has the same name as "20170306121851_number1.php"

status [-c|--configuration CONFIGURATION] [-p|--parser PARSER] [-e|--environment ENVIRONMENT] [-f|--format FORMAT]

#1070 Pull request solves this issue, is mergeable and passes all tests

I think independently of namespaces, even with multiple directories, the class name must be unique across all paths. Currently, the isUniqueMigrationClassName() call supplies a class and a path and only verifies that the class is unique in that path. All paths should be examined.

Added in https://github.com/cakephp/phinx/pull/1070. If there are changes requested please open a PR.


git package is broken (msys/git 2.9.1-1)

The git package is broken. In the tar there are many symlinks that can no be created on win. So the installed git is unusable.

As I remember broken links only for MAN files. Other is ok.

Even the links for all the exe-files are broken...

It can be broken if you unpack it with windows utils. If you use msys utilities - it unpack it correctly.

i did the install with pacman, and got many errors. And yes i've done it on external disk with FAT. If the FAT-fs is a problem then there should be a note about this... At this moment some packages work, and other doesnt.

MSYS2 not work on FAT partitions properly because packages have hadlinks for files that not supported on FAT fs.


Add Node#loc? to determine if a node has a given location

Following #345, it'd be helpful to have a helper method for loc.respond_to?(:foo) && loc.foo, which happens in a number of places in rubocop. I've added Node#loc?(:foo) to accomplish this, and redefined loc_is? to use loc?.
There were a couple places in rubocop-ast that just used loc.respond_to? without the and. I updated the one for ternary? because it should always be present in a ternary. I did not update MethodDispatchNode#selector because there's a lot of node types that include that and selector is not well tested for that (and I'm not sure if it's possible to have a keyword location in these cases without a value).

TBH, I wonder why we never thought of simply adding the missing locations. The "difference" between not responding to a loc and having that loc as nil is meaningless and just an annoyance. Seems to me that the location for a node of type s should always respond to the same locations no matter what.

So the problem is that the parser gem defines quite a number of different Parser::Source::* location classes, and they are used for specific situations.
For example, an if node uses Parser::Source::Map::Condition and looks like this:
#<Parser::Source::Map::Condition:0x000000013877fba8
 @begin=nil,
 @else=#<Parser::Source::Range /src/rubocop/test.rb 44...48>,
 @end=#<Parser::Source::Range /src/rubocop/test.rb 55...58>,
 @expression=#<Parser::Source::Range /src/rubocop/test.rb 31...58>,
 @keyword=#<Parser::Source::Range /src/rubocop/test.rb 31...33>,
 @node=s(:if,
  s(:send, nil, :foo),
  s(:send, nil, :bar),
  s(:send, nil, :baz))>

but its ternary form uses Parser::Source::Map::Ternary and looks like this:
#<Parser::Source::Map::Ternary:0x000000012295e228
 @colon=#<Parser::Source::Range /src/rubocop/test.rb 41...42>,
 @expression=#<Parser::Source::Range /src/rubocop/test.rb 31...46>,
 @node=s(:if,
  s(:send, nil, :foo),
  s(:send, nil, :bar),
  s(:send, nil, :baz)),
 @question=#<Parser::Source::Range /src/rubocop/test.rb 35...36>>

As well, there are a lot of places where we act without knowing exactly what node type is being evaluated, which is another reason why the locations can differ.
So it's probably not straightforward to have a consistent interface across the board.


Fix the 10 warnings when compiling the frontend

Description
Since the recent CRA changes, there are 10 warnings when compiling the frontend.
Impact
While these are just warnings, they make a lot of noise and look broken to developers, so we should fix them.
Environment and steps to reproduce

Run make run-frontend

Expected behavior
No warnings should be shown on a clean main checkout.
Current behavior
10 warnings are shown:
[9 more before this one]...
WARNING in<EMAIL_ADDRESS>Module Warning (from ./node_modules/source-map-loader/dist/cjs.js):
Failed to parse source map from<EMAIL_ADDRESS>file: Error: ENOENT: no such file or directory, open<EMAIL_ADDRESS><EMAIL_ADDRESS>4:0-24 4:0-24
<EMAIL_ADDRESS>10:16-42
 @ ./src/lib/docs.ts 6:0-50 12:9-28
 @ ./src/components/common/Resource/DocsViewer.tsx 15:0-50 54:4-21
 @ ./src/components/common/Resource/EditorDialog.tsx 29:0-38 361:45-55
 @ ./src/components/common/index.ts 24:0-40 24:0-40 25:0-66 25:0-66
 @ ./src/i18n/ThemeProviderNexti18n.tsx 10:0-46 58:68-74
 @ ./src/App.tsx 13:0-65 40:35-56
 @ ./src/index.tsx 6:0-24 9:38-41

10 warnings have detailed information that is not shown.
Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.

The dependency this uses fell out of maintenance for several months (last I looked). Rather that drop the feature this is used for (a documentation feature), I'll look into a replacement first. If there's nothing suitable then we can look into making a patch (which we can use with our patch setup).


Send request if an account is private when following

Currently the bot cannot follow private accounts

This is a closed account.
INFO - None medias recieved: account is closed or medias have been filtered.

Yes it can. But it can not receive medias from it - because the account is closed. That's what this issue about.

@ohld If it cannot receive media, then there should be no like delay. That's what I meant.

Done on <IP_ADDRESS>


Question:can i add customized material to a gltf model on Android plantform?

Describe the bug
i have a demo to load & show gltf model like android sample gltf-viewer, meanwhile i see there is another demo-- hello-triangle, which load customized material from baked_colored.filamat which generated from baked_colored.mat.
so my question is:
is there a way to add customized meatiral to my gltf model?
I have read all android sample apps, but have no idea.
THX

Yes, the gltfio lets you specify your own MaterialProvider. You can also get the entities from your gltf to go change their materials directly.

@romainguy
THX for you reply, after 2 hours study, i found:
1, there is a MaterialProvider.java in the module gtftio-android  which used in ModelViewer.kt in module filament-utils-andrid, after adding log in UbershaderProvider.java (the only impl of MaterialProvider.java),  when i compile and run andrid demo glft-veiwer, there is no log output. so I think than when loading gltf file the MaterialProvider was NOT invoked, so there is on chance to provide a customized material.
2,Yes, i can find the entity user for rendering, bug there is no interface to "get the entities from your gltf to go change their materials directly"
can U give me some clue or code-snippet to do? THX


Idea for a speedup - are there any issues with this?

So, this lags pretty badly on my computer when you make the world size much larger than 300x300, no matter how many particles there are. I think this is just because of the sheer number of cells it needs to loop through.
So i'm wondering, is there any reason you loop through every single cell? Seems super unnecessary, why not just loop through all the cells with particles in them? The way I would implement this is by having a vector in the PhysicsSolver class, to store all the cells with particles in them. This vector would get cleared at the beginning of each loop, and then in the method to add the particles to the grid, you could just push the index of the current particle in the grid to the back of this vector.
I guess there may be some issues with threading, but my approach is to 'pad' the vector of active cells until it's a multiple of the thread count.
So, is there any issue with doing this?

I feel like it might even slow it down. Every loop you still need to check which cells are full or empty so you're not saving on any computation.

I mean storing references to the active cells to keep track of them, you don't need to loop through the whole grid then

I tried something like this in the past and it speeds thing quite significantly when the grid occupancy rate is quite low but it quite quickly slows down as the occupancy increases. I currently prefer to optimize for the worst case by just keeping the spatial partitioning quite naive.

(I'm sorry if you already implemented this!) How about storing the top-left and bottom-right cell whose region includes every object (updating these values whenever a new object is added) and iterating only within that region, rather than the entire simulation space.
That way if all the objects are clustered at the bottom half of the screen, it will only iterate through the cells at the bottom half of the screen.
It would probably be something like storing 4 variables row0, col0, row1, col1, and every time a new object is added to (row, col), you'd update the variables as row0 = min(row, row0), row1 = max(row, row1), etc. You'd then probably clamp these values to exclude the borders and finally loop through like
for (int i=row0; i<=row1; i++)       // has to be <= in case row0 == row1, e,g. with 1 particle
    for (int j=col0; j<=col1; j++)

I'm not sure how much of a difference this makes but I'd assume it would help speed things with low occupancy and would not create much of an overhead even with a high occupancy.


The client is lagging

Probably the only problem is my end. All I'm currently in possession of is a very crappy laptop, no time to really play anything anyway. Wanted to catch up for when mobile comes out. Saw your client pop up, it looked super nice and clean, said it was lightweight too, so I wanted to try it out. It's laggy, even with all plugins off, though I can run the original client perfectly well and OSB runs almost good with half the plugins enabled. Am I doing something wrong or maybe something can be tweaked? I apologize if this does sound dumb, as I'm the one with a crappy laptop and an upgrade would fix everything, but I can't justify buying anything of that sort at the moment.

I've only heard one person before you having issues with the client "lagging", and he said it was only happening with the install version of the client. Try downloading the .jar (Download for all platforms) and running that.

I do not think that they will have a different behavior anymore since the launcher was updated to use the same parameters as the jar.

What was the laginnes? Was it occasional freezes or just being slow in general? Best would be if you could provide some .GIF showing the issue, with ::displayfps turned on as well.

@Kamielvf I've tried that.
@deathbeam It's slow in general. Sub-par fps and what feels like stuttering when running.

Haha, sure.
Intel Celeron CPU B800
4GB RAM
Intel HD Graphics
Wasn't kidding when I said it was bad. Can't wait for mobile.

This was most likely solved with having the abillity to configure the hardware acceleration mode. Reopen if issue is still present.


Add spec test for pumping example

I have written some tests for pumping. Please let me know, if you had other ideas or expect different tests.
Fixes #145.

hi @mohsen-ghaffari1992 - is this waiting for my review, or is there more to be done here?

hi @mohsen-ghaffari1992 - is this waiting for my review, or is there more to be done here?

Hi @wasowski, yes please.

@mohsen-ghaffari1992 , I did some cleanup. I was getting some failed tests with PumpSpec (two more precisely). I added assertions to PumpState and PumpObservableState (as I also did in the CartPole, and now I am getting crashes with negative flow or too high tank level.  Perhaps I added too many assertions, but please check. Weaken the assertions that are too strong, and investigate why the tests fail. Thanks.

Hmmm, I have rebased on "modern" symsim. Now trying testOnly symsim.examples.cocnrete.pumping.PumpIsAgentSpec and the test is hanging. Shouldn't this be fast? Do you know what is going on @mohsen-ghaffari1992 ? Are you seeing the same thing ?

I have just tested it, passes!
[A black screen with white text  Description automatically generated]
From: Andrzej Wąsowski @.>
Date: Wednesday, 29 November 2023 at 09.54
To: itu-square/symsim @.>
Cc: Mohsen Ghaffari @.>, Mention @.>
Subject: Re: [itu-square/symsim] Add spec test for pumping example (PR #163)
Hmmm, I have rebased on "modern" symsim. Now trying testOnly symsim.examples.cocnrete.pumping.PumpIsAgentSpec and the test is hanging. Shouldn't this be fast? Do you know what is going on @mohsen-ghaffari1992https://github.com/mohsen-ghaffari1992 ? Are you seeing the same thing ?
—
Reply to this email directly, view it on GitHubhttps://github.com/itu-square/symsim/pull/163#issuecomment-1831474863, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASQKWRMFZMUBDDHMEPUSVP3YG3Z5HAVCNFSM6AAAAAARO6ID5WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZRGQ3TIOBWGM.
You are receiving this because you were mentioned.Message ID: @.***>

Hmm ... This is really strange - how it can pass on your machine and fail on mine. Have you pulled? (The CI seems to be hanging on it, too). I am just trying the PumpIsSpec and this one is failing on 3 tests, repeatedly.

I cloned the repo right after your mail. What I always am doing for testing symsim is adding the memory:
export SBT_OPTS="-Xmx3G -XX:+UseG1GC -Xss2M"
From: Andrzej Wąsowski @.>
Date: Wednesday, 29 November 2023 at 10.10
To: itu-square/symsim @.>
Cc: Mohsen Ghaffari @.>, Mention @.>
Subject: Re: [itu-square/symsim] Add spec test for pumping example (PR #163)
Hmm ... This is really strange - how it can pass on your machine and fail on mine. Have you pulled? (The CI seems to be hanging on it, too). I am just trying the PumpIsSpec and this one is failing on 3 tests, repeatedly.
—
Reply to this email directly, view it on GitHubhttps://github.com/itu-square/symsim/pull/163#issuecomment-1831499330, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASQKWRM7NIMG26I3WOMJCMTYG33ZRAVCNFSM6AAAAAARO6ID5WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZRGQ4TSMZTGA.
You are receiving this because you were mentioned.Message ID: @.***>

So you say that testOnly symsim.examples.concrete.pumping.PumpIsAgentSpec on your clean clone does not fail any tests, and 6 tests pass?

I have changed AgentLaws to use a set instead of a list for observableStates. This speeds up two of the passing tests 1000 times for this model. But the failing ones remain unchanged.  I pushed this change to this PR, so now we definitely wanna merge it.

I have changed AgentLaws to use a set instead of a list for observableStates. This speeds up two of the passing tests 1000 times for this model. But the failing ones remain unchanged. I pushed this change to this PR, so now we definitely wanna merge it. But before we merge, I need the tests to pass :)

Now, I am failing in three tests as well as you!

 I noticed in Agent we have the following
lazy val allObservableStates: List[ObservableState] =
    enumState.membersAscending.toList

Do not you think this can be the reason for current issue?

Well, I do not know how this could be a cause.  I have an error that flow is too low, or water level is too high. I do not think these values can (obviously) change by doing a list conversion. It seems like the step function is crossing the max and min bounds for some values?

You right.
I should look into this example again.
From: Andrzej Wąsowski @.>
Date: Thursday, 30 November 2023 at 17.34
To: itu-square/symsim @.>
Cc: Mohsen Ghaffari @.>, Mention @.>
Subject: Re: [itu-square/symsim] Add spec test for pumping example (PR #163)
Now, I am failing in three tests as well as you! I noticed in Agent we have the following
lazy val allObservableStates: List[ObservableState] =
enumState.membersAscending.toList

Do not you think this can be the reason for current issue?
Well, I do not know how this could be a cause. I have an error that flow is too low, or water level is too high. I do not think these values can (obviously) change by doing a list conversion. It seems like the step function is crossing the max and min bounds for some values?
—
Reply to this email directly, view it on GitHubhttps://github.com/itu-square/symsim/pull/163#issuecomment-1834125188, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASQKWRJS5AURXBFU44GU6RLYHCYR3AVCNFSM6AAAAAARO6ID5WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZUGEZDKMJYHA.
You are receiving this because you were mentioned.Message ID: @.***>


⚠ Processors has degraded performance

In 84d5b3e, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 38 ms

Resolved: Processors performance has improved in db4c32f.


Node.js Test Matrix

I would love to see a test matrix which is not dependent on engines. Not all packages need or want engines and I think having an option that just always tests in lts_latest or something like that would be nice. Basically implement the aliases and use nv to get them at runtime. Thoughts?

What packages don’t need or want engines set?

Me 🤷 . Maybe I am putting on my hat of "company internal package author" as well, so maybe in OSS we could say everyone. I guess I was just thinking that adopting this on a new package should not require a breaking change.

I'd love to understand when, even in an internal company package, you wouldn't want to always specify an engines range without exception.

When we have code that didn't have it before, is widely used, and we don't have any benefit to asking folks to add it. Either way, I am not sure this line of the conversation is meaningful for this issue. I think the issue is more that this means adding this package requires a major version bump for existing packages which don't have engines.

That's true, and while it's an unfortunate cost, engines, like exports, is valuable enough imo that it's fine that it requires that breaking change. A package that omits engines technically can't ever drop support for anything that worked within that major line, even if it happens to be an ancient engine, and that's unlikely to be the desired support matrix.

Agreed, I just usually value ease of adoption over technical correctness.

How would you define the minimum version of Node.js that's supported?

I was thinking just default back to active lts at the time of the run. And to be clear, I am not saying this is a recommendation for how to manage most OSS packages, but it is just an affordance for folks adopting this so that it does not require a semver major to use it.

fwiw you can already use ljharb/actions/node/matrix and provide any semver range; i could easily make it support all the Package Support values as well if that’s desired.
(i want to make it default to use engines, but it doesn’t use it at all right now)

I will look at that one, I was hoping to avoid having my own of those as well and hoped to use this directly. Is there a meaningful difference you have in yours which we could make here and all get on board with one setup?

I use ljharb/actions on all 400+ of my projects, so they're quite battle-tested :-)

an affordance for folks adopting this so that it does not require a semver major to use it.

Yes, but then it's a semver major change for the user when the LTS version changes, because we'd drop it?
Unless we manage to record the "initial" version somewhere? (where?)

Totally, I am not sure I care strongly one way or another just more that projects in this org have a bit of consistency and that ideally we can point folks to these projects as good examples.

Between this thread and the one in https://github.com/pkgjs/create-pkg/pull/8 we have established that I am the minority opinion here. The prevailing opinion is that we should recommend strongly that folks include engines, and not having an on-ramp where it is not necessary is not something we are interested in supporting.


[ArPow] Onboard symreader to arcade-powered source-build

In progress with https://github.com/dotnet/symreader/pull/235.

PR was merged; can someone please look over the internal build to see if it looks okay?

The internal build is failing for pre-existing issues.  I logged https://github.com/dotnet/symreader/issues/236 to track the issue.

The symreader build issues have been resolved and I have verified the intermediate NuGet package is being created with the expected contents.


serialize19::ReadArchive: how to catch memory read access violation

I'm using serialize19 to create and load binary files of structured data.
But if the file format changes, e.g. because data members have been added / removed, or if the file gets corrupted in some way, the archive reader might cause a read access exception which can't be caught without messing with signal handlers.
=> is there a clean and reliable way to detect and handle this condition without application crash?
#include "serialize19/ReadArchive.h"
#include "serialize19/dynamicWrite.h"
#include "serialize19/serialize.std_string.h"

struct OldFileFormat
{
    int a{};
    int b{};
    std::string s{};
};

struct NewFileFormat
{
    int a{};
    int b{};
    int c{};
    std::string s{};
};

template<class A>
void serialize(A& a, OldFileFormat& x)
{
    serialize(a, x.a);
    serialize(a, x.b);
    serialize(a, x.s);
}

template<class A>
void serialize(A& a, NewFileFormat& x)
{
    serialize(a, x.a);
    serialize(a, x.b);
    serialize(a, x.c);
    serialize(a, x.s);
}

void main()
{
    OldFileFormat old_data{1, 2, "test"};

    const auto buffer_old = serialize19::dynamicWrite(old_data);

    // the buffer contents usually get saved into a binary file:
    // std::ofstream fout{filename, std::ios::binary};
    // fout.write(reinterpret_cast<const char*>(slice.begin()), slice.count());
    //
    // ... and later on we read the file back into a buffer slice via
    // std::ifstream fin{filename, std::ios::binary};
    // const auto file_buffer = std::vector<uint8_t>{std::istreambuf_iterator(fin), {}}
    // const auto file_buffer_slize = serialize19::BufferSlice{file_buffer.data(), file_buffer.size()});
    //
    // here we just skip this step and hand over the already existing buffer slice

    auto reader = serialize19::ReadArchive{buffer_old.slice()};
    NewFileFormat new_data;

    try
    {
        serialize(reader, new_data);
    }
    catch (const std::exception& ex)
    {
        // We want to catch all file read exceptions in a clean way but there is only a hardware exception being thrown which requires dirty signal handler
    }
}

Hi @fred777, good to hear that you are using serialize19.
Serialize19 was designed to be minimal and extendable. So we only pay for what we actually use.
Only the data you serialize is stored in the binary.
We encode the version of the data schema in a header and use the correct serialization method for that version. We basically hash our data layout. But this is far too complicated for this library.
You may store a version indicator in your format and decide which parts to load.
Example:
struct Format {
  int a{};
  int b{};
  int c{};
  std::string s{};
};
template<class A>
void serialize(A& a, Format& x)
{
    uint8_t version = 2;
    serialize(a, version);
    serialize(a, x.a);
    serialize(a, x.b);
    if (version == 2) serialize(a, x.c);
    serialize(a, x.s);
}

I would also recommend to wrap serialize19 to tweak it better for your use case.
For example use an operator instead of calling serialize manually.

Regarding the exceptions. We try to avoid them. serialize assumes that the buffer has enough capacity to read or write the data.
If you cannot ensure that you can wrap the basic archive types and throw your exception if the size is not enough.
The ReadArchive has two interesting methods you might want to guard.

withPrimitive is mandatory to guard. SliceReader would use a reinterpret_cast beyond the buffer.
withSlice will return a slice smaller than the requested n if not enough data is available.

While reading the code again, I guess we should add more documenting comments to this sublibrary.

Pull request - maybe later - I just found a solution that works for my purposes: enable SEH exceptions in VC :) Now I'm catching  either a std::bad_alloc or something generic via catch(...), depending on the type of buffer corruption.
But regarding user input / attacks, the proposed buffer size checking would at least provide a first line of defence to prevent application crashes.
At a second stage, validity of all data members needs to be verified of course.


Multiple problems

When using this inside of vs code terminals it pretty much only works if you type "thefuck" every time you do something.
Enabling experimental instant mode did not change anything.
I am on "linux" even though it's in the chromebook vm version
I tried thefuck --alias --enable-experimental-instant-mode and it says it worked, but doesn't do anything when a comman doesnt work, nor does running it after check it from any logged console output.
I also noticed that they just use "fuck" as a command to check the last one, and this never worked for me. I tried setting up it's own command, I tried running that after enabling instant mode, and tried running it when I first installed it. I like the idea of this project, but goodness, it barely works. I found it because of fireship io on youtube, and thought it would be useful, but if I am going to have to add "thefuck" before everything I do just to use it then there really isn't any point.
 Let's try to troubleshoot the issue step by step.
1-) Check your shell configuration file:
Make sure you have properly configured your shell to use "The Fuck" command. Since you're using Bash, open your .bashrc file (located in your home directory) and ensure the following line is present:
eval $(thefuck --alias)

2-) Alias for "fuck":
If you prefer using "fuck" as a command instead of "thefuck", you can modify the alias in your .bashrc file:
eval $(thefuck --alias FUCK)

This will create an alias "fuck" instead of the default "thefuck".
3-) Enable experimental instant mode:
To enable experimental instant mode, you can add the --enable-experimental-instant-mode flag to the alias definition in your .bashrc file:
eval $(thefuck --alias FUCK --enable-experimental-instant-mode)

Save the file and restart your terminal or run source ~/.bashrc to apply the changes.
Now you should be able to use the "fuck" command in your terminal.  It should correct your command and execute it.


Synthesize card sort findings

User story
As a user, I want the ReportStream website to match my mental model.
Background & context
We don't know if the site is structured in a way that allows users to find what they need and complete the task at hand.  We don't have a scalable framework for launching and housing new features. After conducting card sort tests, we need to review results and findings to consider for new IA implementation
Open questions

What implementation will be needed after the sort findings
How many open questions we may still have after the tests

Working links
Card sort research plan
##Acceptance criteria

[x] Card sort work synthesized in mural
[x] Summary added to general IA synthesis workspace

In progress

Added to general mural


feat(test): add tests for <DraftDigest.Feed>

Add tests for <DraftDigest.Feed>, <CollectionDigestFeed>, <Tag> and <TagDigest>, etc.;
Fix plural formats on <CollectionDigestFeed>;
Revise <Tag>: change disable prop to is;

merged into https://github.com/thematters/matters-web/pull/3948


Signalling with Preview5

Once trouter package is published will either include it in preview5 PR or merge directly to master (if preview5 merged in already)

I just notice. Here we are using "signalling" (double l) while for JS we are using "signaling" https://www.npmjs.com/package/@azure/communication-signaling
Let's use "signaling" to keep the consistency.

Xcode build is passing for simulator but failing on [iphone os] step - I believe this is the same issue @glorialimicrosoft faced when testing trouter on real device, signaling team is working on publishing a new package which we will need to reference once available

/azp run

@knvsl disable the xcframework check in the CI.


How can i delete anchornode and/or nodes from a scene using a button?

In order to do this you'll need to:

Create A Button - this can be done using a ViewRenderable that has an Android Button on it.  An example of this being done is creation of a ViewRenderable in Solar System SolarActivity initialization.
Place the Button in the scene - this is done by adding the ViewRenderable to a Node in the scene.  This is done in the Solar System sample in SolarActivity during Solar System creation, but can be done at any time (e.g. at creation, or in response to user input) in your app.
Get the Android View from the ViewRenderable, and use Android view functionality like findViewById to get the button you'd like to respond to.  Add an on click listener to this button.
In the onClick listener, call Node.setParent(null) on the Node you wish to remove, in order to remove it from the Scene.

@tpsiaki  imagine i haveultiple nodes in the scene.so i want to tap a node and delete that particular node from the scene.. how can i do that? or maybe a particular anchor but selecting it by tapping it

Check:
Node.setOnTapListener
I mean all you need is already implemented in the samples. Please check the
examples.
ishaang10<EMAIL_ADDRESS>schrieb am Fr., 8. März 2019, 17:20:

@tpsiaki https://github.com/tpsiaki imagine i haveultiple nodes in the
scene.so i want to tap a node and delete that particular node from the
scene.. how can i do that? or maybe a particular anchor but selecting it by
tapping it
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google-ar/sceneform-android-sdk/issues/579#issuecomment-470986385,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AVnJxQm0OMKZtrbSRMKJsz2V92p_Zzdtks5vUo3KgaJpZM4bfd3-
.

finaly solved my own issue using this....
Button button=findViewById(R.id.button);
model.setOnTapListener((hitTestResult, motionEvent1) -> button.setOnClickListener(v -> model.setParent(null)));

@ishaang10 I tried your solution but it requires tapping the node once before you can close it with the button. Is it the same for you?


Mouse scroll can be slow at times

In particular when zooming in/out with two fingers

See VisPy discussion here: https://github.com/vispy/vispy/issues/1182 - not something that will be fixed anytime soon.


Media example not working

Wrong post. it' working well.

Media exaple with youtube link given at
http://gitbrent.github.io/PptxGenJS/
does not work.
MS powerpoint throws error that content of the file is corrupted.

Hi @sangramjagtap
Thanks for the question.
Do other functions work correctly? E.g.: Tables and text work okay?
If it's just YouTube, it may be that your locality cant utilize the US-based link and maybe you could try an embed link from your usual YouTube site:

Hi @sangramjagtap
Just following up: Were you able to get YouTube media working?

Nope. videos available in my region also have same error.
I have one more question.
Height, width and coordinates are in inches. Font is in pt.
Where can I get list of all units? Which unit to apply to border,
box-shadow, table, image , etc.
Also can't we store everything in px/em/pt format?

Hi @sangramjagtap
Thanks for following up.  Is it only the YouTube videos that aren't working, or are other objects failing as well?
I tried to stick with PowerPoints units for simplicity, they're shown in the README (see below).  MicroSoft can be funny with their standards/APIs... :-)

Thanks buddy. I found issue only with youtube embed. And did not tried
other video.
Just one last question.
I have UI which allows users to create PowerPoint presentations online.
But that is plain html. Is there any solution available to directly convert
HTML into  Pptxgenjs's format?
On 21 Feb 2017 05:53, "Brent Ely"<EMAIL_ADDRESS>wrote:

Hi @sangramjagtap https://github.com/sangramjagtap
Thanks for following up. Is it only the YouTube videos that aren't
working, or are other objects failing as well?
I tried to stick with PowerPoints units for simplicity, they're shown in
the README (see below). MicroSoft can be funny with their standards/APIs...
:-)
[image: screen shot 2017-02-20 at 18 17 47]
https://cloud.githubusercontent.com/assets/7218970/23146099/706df670-f799-11e6-82a6-2b33bb03e7eb.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gitbrent/PptxGenJS/issues/37#issuecomment-281211737,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARCCHDW7-BEl1M02y2nICVnayl-1x5XCks5rei5ygaJpZM4L8D7Q
.

Hi @sangramjagtap
Sure, take a look at the table-to-slides feature.

Hey, I need your help.
There are options in MS powerpoint: "Send to back", "Bring to front".
How to achieve this in pptxgenjs?

Hi @sangramjagtap ,
Objects' "order" is determined by the order they are added to Slides: back -> front.
So, the first shape you add would be on the bottom, the next shape you add would be on top of the first one, and the third shape you add would be on the very top.

Great.
Sounds good.
On export action, Instead of downloading .pptx on browser(client side),
Can't I store it on server side?
And even on client side how would I get the full path of where the file is
downloaded?

Hi @sangramjagtap ,
The client-browser implementation can only download to the default directory (or possibly prompt where to save) other than that the sandboxing in browsers prevents much else.
The Node.js implementation can do about anything though.  Have you considered using node and/or triggering a node job via the web (you could save to a server location this way).

Q1. Can we add custom bullets like shown in below image?
Q2. Is numbering feature available in framework?

Sure, those are great suggestions.
Issue #49 has been opened to track this.

That's great Brent.
Thank you.

How to add text like this, which contains bold, italic, underline or all in combination?

Hi @sangramjagtap ,
Text objects solve this type of low-level formatting:
var pptx = new PptxGenJS();
var slide = pptx.addNewSlide();

slide.addText(
 [
  { text:'He' },
  { text:'l',  options:{underline:true} },
  { text:'l',  options:{bold:true, underline:true} },
  { text:'o ', options:{bold:true, italic:true, underline:true} },
  { text:'W',  options:{bold:true, italic:true, underline:true} },
  { text:'o',  options:{bold:true, underline:true} },
  { text:'r',  options:{underline:true} },
  { text:'ld' }
 ],
 { x:0.5, y:0.5, w:4.0, h:1.0, margin:0.1, fill:'F1F1F1', align:'c', font_size:48 }
);

pptx.save('PptxGenJS-Sandbox');

Hi @gitbrent ,
Table-to-Slides Feature-->Please help to set table's height in each slide..
Issue: Just one line is coming in every slide..while using below code:
pptx.addSlidesForTable('tabAutoPaging_' + i, {
//h:4,
master: pptx.masters.MASTER_SLIDE, addHeaderToEach: true,
addText: { text: cdata[i].Category, opts: { x: 0.37, y: 0.26, color: '00B8FF' } }
});
But headers are repeating and one line per slide while trying to set height like this
pptx.addSlidesForTable('tabAutoPaging_' + i, {
h:4,
master: pptx.masters.MASTER_SLIDE, addHeaderToEach: true,
addText: { text: cdata[i].Category, opts: { x: 0.37, y: 0.26, color: '00B8FF' } }
});
Thanks

Hi @sangramjagtap
Sure, take a look at the table-to-slides feature.

Hey there. I am trying to use the same in salesforce's lightning web component framework. It seems it does have some issue with lightning web components. Could you pls share if any code example is available to make it work in salesforce.


Requirements around responses property and object lead to bloated specification file

Specification explicitly says that responses property is required in Operation Object:

At the same time Responses Object itself has these requirements:

The default MAY be used as a default response object for all HTTP codes that are not covered individually by the specification.

The Responses Object MUST contain at least one response code, and it SHOULD be the response for a successful operation call.

And Response Object has this to say about it's properties:

This is all fine when OpenAPI specification is actually complete and properly written, but unfortunately this is not always the case, by far. It is often that you have to deal with specifications that are incomplete and lack any description of operation responses entirely. Sometimes this is done by omission, sometime responses are considered not to be important for the use case. When that is the case to make specification complete and validate against schema one has to add such bloat to every operation in there:
"responses": {
    "200": {
        "description": ""
    }
}

Which doesn't seem helpful at all. Later on while reading such spec these blocks would only provide a distraction and obstruct actual meaning behind the spec.
Hence the proposal to make responses not required property for an operation.

responses is optional in OAS v3.1.0 - thanks for the issue.


Latest version file - 2.0 - is named 1.0 on curseforge.

Not a bug but still can be an issue. Also This mod size of huge, I know it's because sql library but maybe you can cut unused parts of it?

Oh Ill fix that on curse. Thanks! Unfortunately all the size comes from the sql drivers. InvSync is only 160 ish lines of code, and even sqlib is only 300. the 12mb comes from the mysql and sqlite driver.


keep getting this error

Error: Character Name and Element are wrong

also, just, error with it proceeding to crash

This is a very old issue and has likely been fixed by the latest release or prerelease so I am going to close it. Please reopen this issue if the problem persists.


Rendering form with exclude is broken

Example:
{% bootstrap_form form exclude="ignore_field" %}

field renderer returns empty (unsafe) string when encountering the ignored field. When concatenated with safe text, the resulting string becomes unsafe and renders escaped html string into template instead rendering the form.

Good find, thanks!


Upstream healthcheck metrcis turns on targets healthchecks in both subsystem

When stream_listener is enabled, prometheus pulls stream subsystem metrics from an internal endpoint.
A Upstream/Target defined in http subsystem result in it also being visible in stream subsystem,
making unwanted healthcheckers are created and also metrics duplication.
# TYPE kong_upstream_target_health gauge
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="dns_error"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthchecks_off"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthy"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="unhealthy"} 1
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="dns_error"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="healthchecks_off"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="healthy"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="unhealthy"} 1
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="dns_error"} 1
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="healthchecks_off"} 0
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="healthy"} 0
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="unhealthy"} 0
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="dns_error"} 0
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthchecks_off"} 1
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthy"} 0
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="unhealthy"} 0
# HELP kong_upstream_target_health Health status of targets of upstream. States = healthchecks_off|healthy|unhealthy|dns_error, value is 1 when state is populated.
# TYPE kong_upstream_target_health gauge
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="dns_error"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthchecks_off"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthy"} 1
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="unhealthy"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="dns_error"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="healthchecks_off"} 0
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="healthy"} 1
kong_upstream_target_health{upstream="mock-upstream",target="<IP_ADDRESS>:8001",address="<IP_ADDRESS>:8001",state="unhealthy"} 0
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="dns_error"} 1
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="healthchecks_off"} 0
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="healthy"} 0
kong_upstream_target_health{upstream="mock-upstream",target="some-random-dns:80",address="",state="unhealthy"} 0
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="dns_error"} 0
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthchecks_off"} 1
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="healthy"} 0
kong_upstream_target_health{upstream="mock-upstream-healthchecksoff",target="<IP_ADDRESS>:15555",address="<IP_ADDRESS>:15555",state="unhealthy"} 0

Dear contributor,
We're closing this issue as there hasn't been any update to it for a long time. If the issue is still relevant in the latest version, please feel free to reopen it. We're more than happy to revisit it again.
Please have a look at our pledge to the community for more information.
Sincerely,
Kong Gateway Team


Mobile Instrument settings clip through Modulator Settings title

Fixed

i forgot to mention, but there's also this bug that exists

Ah I can probably fix that

And in the same screenshot, the dropdown menu next to Effects is too close to the sign box


Fixing nether portal spawn below y=0

I fixed my own MalisisCore issue by eliminating whole CubicChunks folder and cloning it again.
Issue #161.

Latest Mixin version supports proper zero zero comparison with @ModifyConstant which will allow to replace all of those getY Regirects with ModifyConstant, there are examples of it in core/column-as-mixin branch. While I'm probably not going to change all the existing code at once yet, it would be better to write new code using this feature.

This is not working:
@ModifyConstant(method = "<init>", constant = @Constant(intValue = 0, ordinal = 0), require = 1)
	private int portalSizeClassInitReplace0(int posY, World worldIn, BlockPos origin, EnumFacing.Axis axis) {
		return ((ICubicWorld)worldIn).getMinHeight();
	}

Neither is this:
@ModifyConstant(method = "<init>", constant = @Constant(intValue = 0), require = 1)
	private int portalSizeClassInitReplace0(int posY, World worldIn, BlockPos origin, EnumFacing.Axis axis) {
		return ((ICubicWorld)worldIn).getMinHeight();
	}

This throw an error (mixin failed):
@ModifyConstant(method = "<init>", constant = @Constant(intValue = 0, ordinal = 1), require = 1)
	private int portalSizeClassInitReplace0(int posY, World worldIn, BlockPos origin, EnumFacing.Axis axis) {
		return ((ICubicWorld)worldIn).getMinHeight();
	}

You need to update to mixin 0.6.8, and use special option, like this:
@ModifyConstant(method = "<init>", constant = @Constant(intValue = 0, ordinal = 0, expandZeroConditions = Constant.Condition.GREATER_THAN_ZERO), require = 1)
	private int portalSizeClassInitReplace0(int posY, World worldIn, BlockPos origin, EnumFacing.Axis axis) {
		return ((ICubicWorld)worldIn).getMinHeight();
	}

Just change GREATER_THAN_ZERO to whatever you need. You can also put more than one condition, like {Constant.Condition.GREATER_THAN_ZERO, Constant.Condition.GREATER_THAN_OR_EQUAL_TO_ZERO}

Done.

Currently there is still an issue with MalisisCore dependency, and I need to find a way to fix it.


some sum optimisations

to implement, e.g.
e = sum(x[:2]) == sum(x[2:])
flatten_constraint(e)

in a new 'simplify' transformation?

Another possible optimization:
Current situation:
e = wsum([3,5], [x,y])
1 + e = sum(1, e)

Improvement:
 1 + e = wsum([1,3,5],[1,x,y])

@tias what should this get simplified to?


Full video description not recorded in database

Describe the bug
Upon initiating a video download using the lb dl command, it has come to attention that the complete description/caption of the video is no longer being recorded in the description field within the database. Only the web path is stored in this field.
To Reproduce

Execute the following command in the terminal using xklb:lb dl /path/to/database.db --video https://youtu.be/example-video-id --verbose

Examine the description field in the database to confirm whether the full description is accurately recorded.

Expected behavior
The entire description of the downloaded video should be captured in the description field of the database entry.
Screenshots
N/A
Desktop (please complete the following information):

OS: Ubuntu 24.04 (Noble Numbat)
xklb version: 2.2.189

Additional context
The absence of the full description in the database obstructs users from obtaining available information about the downloaded videos, as highlighted in this reported case.

@deldesir would you happen to know when this change/regression was first noticed — sometime within the past week presumably?

@holta I don't have an exact timestamp for when the issue started, but I can confirm that the last known working state was on December 6 at 21:01. The problem was identified after this point. If there's a need for more context, I can provide additional details based on my tests, but I cannot narrow down the timeframe further.

It should be recorded in the captions table. It's been like this since about six months ago (v1.30.001 or so): https://github.com/chapmanjacobd/library/blame/9e27264b2a3783130c34d06ed79454bc5ed84f4e/xklb/fs_extract.py#L181
If you are searching the description, the captions table should be fine, but if are pulling out the description to display somewhere else you should probably use ffprobe on the downloaded file or --write-info-json to save a JSON file: https://github.com/yt-dlp/yt-dlp#filesystem-options
The description column won't be added back to the media table because it makes the table too big and querying becomes less efficient.

@chapmanjacobd That's an incredibly thoughtful response:
All 3 of your workaround suggestions are in fact extremely relevant, Thank you!
CONTEXT: Low-income educators very often have smaller/targeted video collections (in contrast to the "archivist" and "hoarding" demographics, for example).  So we did not realize the description column in the media table would slow things down unacceptably for others! :upside_down_face:


Move repo

Update references.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Remove package listings

cc @Eilon - we don't consistently list packages in most repos. I'd prefer removing this (or limiting it to listing the version in nuget.org). Thoughts?

@DamianEdwards wanted this. Why remove it?

Well, we should add it to all the repos in that case (and update the feeds when we migrate).. Right now, there are 4 repos under aspnet which have feed details.

Do the shields.io images work with dotnet.myget.org? But anyway, I don't think this needs to be an all-or-none.

Fair enough. Regardless, we shouldn't point people to untested bits. Could we change this to just the signed \ tested build + nuget.org?

Yeah I agree there are a few to many package variations listed here. Feel free to trim as needed.

Updated

One comment, then :shipit:

Merged in https://github.com/aspnet/Localization/commit/09123cb349c03c497cff10e5105f87e18da64968


Create a Homebrew formula for Notation CLI

What is the areas you would like to add the new feature to?
Notation CLI
Is your feature request related to a problem?
This feature request is derived from the Notary v2 roadmap, https://github.com/notaryproject/roadmap/issues/76.
To simplify the Notation CLI installation experience, we need to consider providing a native installation package on macOS or another Linux distro, that allows users to install Notation CLI via a simple command like brew install notation.
Uninstallation and upgrading are not confirmed in this program yet. We need to discuss if these two functionalities should be included in this .msi installer or not.
What solution do you propose?
Write this brew formula using Ruby and add it to Homebrew-core. Follow the guideline of https://docs.brew.sh/Adding-Software-to-Homebrew to complete this submission.
What alternatives have you considered?
None
Any additional context?
No response

Homebrew only allows accepting a stable release package and any alpha/RC release is not acceptable. So we still need to defer this implementation until a stable Notation CLI v1.0.0 release is available, which is mid of Apr.

Hi @mintbomb27, we plan to cut the Notation v1.0.0 release around 1 week. Are you still interested in creating a Homebrew formula for Notation?

Yes! Where shall I add it to? Shall I directly put a PR with homebrew-core? How shall I get it reviewed by you?

@mintbomb27 Thanks! I think you will need to follow https://docs.brew.sh/Formula-Cookbook and submit a PR to add Notation v1.0.0 in https://github.com/Homebrew/homebrew-core

@FeynmanZhou So I tried creating the formula for the rc7 release, and it will look like:
class Notation < Formula
  desc "CLI tool to sign and verify OCI artifacts and container images"
  homepage "https://notaryproject.dev/"
  url "https://github.com/notaryproject/notation/archive/refs/tags/v1.0.0-rc.7.tar.gz"
  sha256 "a7ea851b7bc85d65316ceda61ecb99b4cfb179d4feeb52f4ba1fcfd0784ccbcc"
  license "Apache-2.0"
  head "https://github.com/notaryproject/notation", branch: "main"

  depends_on "go" => :build

  def install
    ENV["CGO_ENABLED"] = "0"
    project = "github.com/notaryproject/notation"
    ldflags = %W[
      -s -w
      -X #{project}/internal/version.Version=v#{version}
      -X #{project}/internal/version.BuildMetadata=
    ]
    system "go", "build", *std_go_args(output: bin/"notation", ldflags: ldflags), "./cmd/notation"
  end

  test do
    notation_version = shell_output("#{bin}/notation version | awk 'FNR==3{printf $2}'")
    assert_equal "v#{version}", notation_version
  end
end

In the ldflags, Is it necessary to add the /internal/version.GitCommit flag as well? I'll have to set the url to the git repo instead of the source tarball and get it from it then.

@yizha1  - Can you move it to another milestone after 1.0.0? This cannot be done in 1.0.0 because Hombrew does not accept RC releases

@iamsamirzon which milestone do you suggest? Since it needs to be done right after 1.0.0 release, if we remove it, it seems not easy to be tracked.

@FeynmanZhou @yizha1 Now that v1.0.0 is released, can you take a look at the above Homebrew formula? I'll go ahead and create the PR at Homebrew/homebrew-core soon.

@mintbomb27 Thanks for your support. Could you pls help raise a PR to add Notation at Homebrew/homebrew-core?

Done at https://github.com/Homebrew/homebrew-core/pull/139873

@FeynmanZhou @shizhMSFT @yizha1 Would be great if anyone could approve the PR there so that it could be merged.

@FeynmanZhou @shizhMSFT @yizha1 Would be great if anyone could approve the PR there so that it could be merged.

@mintbomb27 I've reviewed the PR again and left some comments there.

@mintbomb27 The output of notation version is not desired as it prints
# notation version
notation version
Notation - a tool to sign and verify artifacts.

Version:     v1.0.0+Homebrew
Go version:  go1.21.0
Git commit:  Homebrew

Could you follow https://github.com/Homebrew/homebrew-core/pull/139873#discussion_r1303151618 and send out a PR to fix it?

Yes, I didn't make that change. @chenrui333 did. But what was the problem with the Utils.git_short_head? It actually had the git commit right?

@FeynmanZhou Can we close this issue and create a new issue to track the problem mentioned by Shiwei

Sure I can take it up.


VMs, CPU and MEMORY of STOPPED VMs are not deduced from users monitoring

Author Name: EOLE Team (EOLE Team)
Original Redmine Issue: 2646, https://dev.opennebula.org/issues/2646
Original Date: 2014-01-16

Hello,
Trying to look at “Who is taking all that resources?” of our little cluster, I saw the report per user of VMs/CPU and MEMORY:
oneadmin@nebula:~$ oneuser list
  ID NAME            GROUP      AUTH           VMS            MEMORY         CPU
   0 oneadmin        oneadmin   core             -                 -           -
   1 serveradmin     oneadmin   server_c   0 /   0      0M /      0M   0.0 / 0.0
   2 user1           users      ldap       7 /   0    5.5G /      0M   0.7 / 0.0
[...]

The problem is that @user1@ has only 3 @RUNNING@ VMs, with 512MB memory each, other are in @STOPPED@ state.
I think this report could make the difference between VMs with allocated resources and VMs without.
Maybe something like:
oneadmin@nebula:~$ oneuser list
  ID NAME            GROUP      AUTH               VMS                   MEMORY         CPU
   0 oneadmin        oneadmin   core                 -                        -                 -
   1 serveradmin     oneadmin   server_c   0     /   0      0M        /      0M   0.0       / 0.0
   2 user1           users      ldap       3 (7) /   0    1.5G (5.5G) /      0M   0.2 (0.7) / 0.0
[...]

Regards.

Original Redmine Comment
Author Name: Carlos Martín (Carlos Martín)
Original Date: 2014-01-17T16:00:26Z

It makes sense, maybe a VM in stopped or undeployed states should not be accounted for the VM quotas (nº of vms, cpu, mem).

There are real CPU and Memory values monitored by the IM drivers


NOT_TO_BE_MERGED_BUT_REVIEW_REQUESTED: DOC-1337 and page improvements

Changes to the "How to use schema" page to introduce the CookAndGenerateSchema commandlet and make some improvements to the clarity of the text in general
Contributions: We are not currently taking public contributions - see our contributions policy. However, we are accepting issues and we do want your feedback.
DOCUMENTATION TICKET
Description
Address the ticket DOC-1337 by adding content to introduce CookAndGenerateSchema commandlet and make general page improvements while on the page
Primary reviewers
If your change will take a long time to review, you can name at most two primary reviewers who are ultimately responsible for reviewing this request. @anne-edwards @mattyoung-improbable

Please stand by for a link to the page on staging to simplify the review process...

Right, the page changes are now visible on staging here: https://docs-staging.improbable.io/unreal/alpha/content/how-to-use-schema
The changes will NOT go onto docs-preview but I'm presenting them here so it's easy for @ernopp to review. When the readme portal is open for business, they'll go on there.
Please could I have your thoughts, dear reviewers (@ernopp, @anne-edwards ), and I'll get this ticket complete.
One question for Ernie:
Will the cooking commandlet eventually replace the command line method (such that we should remove the documentation about it)? At present, I have a section that reads as follows. Is it OK?
Generate schema during the cooking process#
The CookAndGenerateSchemaCommandlet command generates the schema needed by your game, and does so during the cooking process, so it is like running the full scan described above, but is faster. It will ultimately replace the command line schema generation described above, but is currently experimental and in ‘alpha’ state.

Is this OK?

@jostichbury thanks for this.
the content looks good - only thing I was wondering is why we are adding (duplicating?) the "how-to-use-schema" doc in the spatialos concepts?  I think we should keep the SpatialOS concepts explanation focused as it is now: https://docs.improbable.io/unreal/alpha/content/spatialos-concepts/schema-and-snapshots

Thanks Ernie. I'm not sure I follow, as I cannot find this level of information about building the schema elsewhere (but I'm not that familiar with all the docs and may have missed it). I have @ElleEss on the reviewer list now, so we can discuss within the TW team and decide.

Now on readme


Incremental feature broken, mounts changed files  after the glob.

Hi, we are trying the new incremental feature incremental: true in our work.

Added a file configurations/config.json to hello repo.

Deploy a pipeline with following config

{
"incremental": true,
"repo": "hello",
"glob": "configurations/config.json"
}

Everything works fine at this stage.
Modify and commit the configurations/config.json
This fails the new job because

now the mounted files are `/pfs/hello/configurations/config.json/configurations/config.json"  (Notice double config.json

cc: @jdoliner

@abhitopia sorry you hit this, seems like this should be a very reproducible issue, I'm going to take a crack at reproducing it right now.

@jdoliner - Thanks. I think the possible solution is that whatever is mounted to the pipeline as /pfs/repo is actually an intersection of output of DiffFile and GlobFile.
P.S. - I am not familiar with go language, but I am referring to #1832 and I couldn't find any intersection between glob and diff files.

@jdoliner - also, if you need help reproducing the issue, please let me know.

I wasn't able to reproduce this, is it possible that the file was actually put under the path configurations/config.json/configurations/config.json? The semantics of put-file can be a bit confusing sometimes so it's possible to wind up with paths like this.

@jdoliner - I am confident that file was put correctly. Because when I check the contents on original repo hello, they are correct as seem using list-file and 'get-file`. Its just how its mounted inside the pipeline that changes.

You can reproduce the error by following instructions here -
https://github.com/abhitopia/pachy_bug