Pagination?

Hey! I see you've got a Grid issue #22 listed.... Would that include pagination? While it may sound initially simple, and something people may want to roll their own for, the idea of having a locked header/footer potentially (and the page navigation gui) may be nice to include in the component by default. Thanks!

My focus for issue #22 is purely about column virtualization. Pagination is kind of a concern that cuts across all components (VirtualScroll, FlexTable, and Grid).
To be honest I hadn't considered pagination because it almost seems more of an alternative to virtualized rows than a compliment. (If you're paginating then you're presumably not rendering that much data in any given set.) But if there's interest I could consider adding support for that. :)

yeah I get what you mean there - to me adding pagination/header/footer stuff opens your table up to a different audience - the "grid" audience, which arguably things like DataTables have a big userbase from in the free/opensource world - people that want a drop in grid for data editing, and of course get lots of user requests for being able to navigate data in a database/spreadsheet kind of way....
with your customizable fixed width columns, and fixed row heights, you've got some key features working and demoable out of the box.... to me the one difference lots of people would want in comparison would be pagination support...

That's good feedback. I'll tag this as an "enhancement" ticket then and see if I can't get around to looking into it. :)

:bow:

+1

Hi @zenorocha. Would you mind sharing some insight into your use-case WRT pagination and react-virtualized?

It would be very nice to:

Trigger some callback on scroll reaches bottom or top (depends on setting) with some threshold (depends on setting)
Put loader element (passed to props) to top or bottom, when property isPending (or similar) set to true

It would be very nice to:

Trigger some callback on scroll reaches bottom or top (depends on setting) with some threshold (depends on setting)

This is already available using either the onRowsRendered or onScroll callback properties. It's also available as HOC in the form of the InfiniteLoader component (see docs, demo).

Put loader element (passed to props) to top or bottom, when property isPending (or similar) set to true

This is one I've considered but since it complicates the virtualization layout (even if slightly) I've left it up to users up until this point. It's possible to do achieve this by passing a rowsCount of +1 and then render a loading indicator as your last row. It's a little complicated when it comes to FlexTable or Grid components though.

I'm going to close this issue due to inactivity for now. I still feel that pagination is something that doesn't quite fit into react-virtualized since the main purpose of this library is to display lots of unpaginated data. I've also created high-order components like InfiniteLoader to help with chunking the loading of remote data.
The idea of supporting a footer loading indicator is one that may be worth reconsidering in the future. (I've actually thought about it a few times myself). The difficulty with it is that you may be loading data in the middle of a table or grid, or at the top, (not just at the bottom). This obviously complicates things if it's the case. It's possible to use VirtualScroll for this purposes and just manage the rendering of each row-of-cells manually but I realize that's a bit more work than is desirable.
If that specific feature is something people want then feel free to open a new issue and we can discuss it there, separate from pagination. :)

Adding to this as we are looking at virtualized for driving our table/list, for a file/media browser tool. Pagination is of interest of us because it allows the user to explore the data in a different way, especially if, say, for hundreds or a few thousand images, filenames or descriptions are not sufficiently useful for search. A search box, plus sorting, plus previewing, plus pagination, allows the user control over a large data set in a way I'm not sure that infinite scroll behavior would replicate. Curious what your thoughts are.

Hey @adamcee,
Thanks for adding additional context. 😄
The focus of react-virtualized is windowing. It's not a general UI library (like Material or Bootstrap). There are already a few well established UI libraries and they're also probably too ambitious for a single developer (me) to try to take on anyway. So I try to keep the focus of all of the components/HOCs in this library on windowing. Pagination is related but I think it's related in a meta way.
I assume you (and the others above) are picturing a component that uses a combination of pagination and windowing to make the data more navigable. So maybe you have 1 million rows, and they're split up into "chunks" of 500 rows each- each chunk navigable via a pagination menu, rows within a chunk windowed by List or something similar. That sounds like a pretty useful UX. However pagination UI is much more complex and opinionated than any of the existing react-virtualized UI. For example, with the exception of some very basic formatting for Table headers, the only styles react-virtualized set by default are functional. The presentational styles are all left in user land. This is very intentional. I don't want to be opinionated about presentation and I couldn't hope to satisfy everyone if I did. There are just too many ways to display things.
 There are multiple components- search input, page list, sort icons, etc- and users would probably want to use all possible combinations of them. That already sounds like it could get pretty complicated. (Useful but complicated.) And so...while it's at least loosely related to the focus of this library...I think that sort of component would be better managed by one or more add-ons. This has a couple of benefits:

It doesn't bloat the library size for existing react-virtualized users who don't want this functionality.
It keeps things focused and more maintainable for people like me.

Hello Brian,
Your last comment describes a more abstract solution for pagination with windowing support. I think having just paging support on top List or Grid would be very useful.
Having a component where user defines totalRows, pageCount , pageCacheSize. Will allow the component to divide the collection into pages and render a navigable page list, which works like an index for the associated collection. Clicking on a page number renders elements for that page, if available, otherwise fetch rows.
Let me know, your thoughts.
Alan

Hey Alan,
I agree that that sort of component is probably useful in a variety of use cases. I would argue though that it's predominately a visual component. (The "business logic" part of it would be pretty minimal.) I try to keep the focus of react-virtualized on functional rather than presentational things because I don't want to have to handle all of the features that come along with themeable UI (and things like pagination menus have tons of UI variety).
I would encourage you (or anyone) to release an add-on library that works with react-virtualized to add this behavior though. I think a lot of people could benefit from it.


Column mapping doesn't support omitted columns (such as auto-increment)

In matchSchemas, it seems auto-increment columns are not accounted for. This is causing my write (using SaveMode.Overwrite and truncate = true) to fail.
https://github.com/microsoft/sql-spark-connector/blob/b4eaff72794034a1abf263e78c4e45a4a3e97899/src/main/scala/com/microsoft/sqlserver/jdbc/spark/utils/BulkCopyUtils.scala#L244-L245

Sorry, seems this issue is not just with this check, but also with the column mapping logic

@elibwhitems Hope i understood your issue -   You are trying to save a dataframe with without a given column as that's an auto-incremented column. Right? That's not supported for now. Can u please send your sample here for refrence and repro the problem.

@shivsood, yes, that's right. The dataframe doesn't have that column because it is an auto-increment column in the SQL DB. I can try to create a minimal repro script in the next day or two

jdbc connector supporting data loads into tables with PK with Identity on.
But Spark Connector fails with columns count mismatch.

Facing the same issue with "Identity" column defined with a seen and increment.
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property?view=sql-server-ver15
Below is the error.
An error occurred while calling o237.save.
: java.sql.SQLException: Spark Dataframe and SQL Server table have differing numbers of columns
	at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.com$microsoft$sqlserver$jdbc$spark$BulkCopyUtils$$assertCondition(BulkCopyUtils.scala:526)
	at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.matchSchemas(BulkCopyUtils.scala:244)
	at com.microsoft.sqlserver.jdbc.spark.BulkCopyUtils$.getColMetaData(BulkCopyUtils.scala:207)
	at com.microsoft.sqlserver.jdbc.spark.Connector.write(Connector.scala:66)
	at com.microsoft.sqlserver.jdbc.spark.DefaultSource.createRelation(DefaultSource.scala:51)
	at org.apache.spark.sql.execution.datasources.SaveIntoDataSourceCommand.run(SaveIntoDataSourceCommand.scala:45)
	at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:70)
	at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:68)
	at org.apache.spark.sql.execution.command.ExecutedCommandExec.doExecute(commands.scala:86)
	at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:131)
	at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:127)
	at org.apache.spark.sql.execution.SparkPlan$$anonfun$executeQuery$1.apply(SparkPlan.scala:155)
	at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
	at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:152)
	at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:127)
	at org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:80)
	at org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:80)
	at org.apache.spark.sql.DataFrameWriter$$anonfun$runCommand$1.apply(DataFrameWriter.scala:668)
	at org.apache.spark.sql.DataFrameWriter$$anonfun$runCommand$1.apply(DataFrameWriter.scala:668)
	at org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:78)
	at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:125)
	at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:73)
	at org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameWriter.scala:668)
	at org.apache.spark.sql.DataFrameWriter.saveToV1Source(DataFrameWriter.scala:276)
	at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:270)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
	at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
	at py4j.Gateway.invoke(Gateway.java:282)
	at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
	at py4j.commands.CallCommand.execute(CallCommand.java:79)
	at py4j.GatewayConnection.run(GatewayConnection.java:238)
	at java.lang.Thread.run(Thread.java:748)

Solved in #52

@rajmera3 the fix didn't work

@sdebruyn - can you look at #81 and specifically the repro therein, to clarify your comment about this earlier fix not working? I want to check if it is the same thing I ran into (and have fixed in the PR).

@sdebruyn - can you look at #81 and specifically the repro therein, to clarify your comment about this earlier fix not working? I want to check if it is the same thing I ran into (and have fixed in the PR).

Sorry to comment on this old issue but it's unclear whether there is a setting that is required to resolve this issue or if it is just supposed to work? I am on 1.0.2 with spark 2.4. I see from the releases that this fix was put in to 1.0.1 but I am still experiencing this problem. I am writing to an Azure SQL db with the example code provided in the readme for append.

This seems not working still with connector version com.microsoft.azure:spark-mssql-connector_2.12:1.2.0.
the workaround for now is to add id column with a 0 as value and MSSQL will auto increment it.


[flutter_tool] Handle Windows line endings in packages_test.dart

Description
The pubspec.yaml is created with Windows line endings, which have to be parsed.
Breaking Change
Did any tests fail when you ran them? Please read [Handling breaking changes].

[x] No, no existing tests failed, so this is not a breaking change.

CI failure :'(

My initial fix for LUCI broke Cirrus, so I did things a little differently. ptal.

My initial fix for LUCI broke Cirrus, so I did things a little differently. ptal.

Really weird they are behaving differently...


Render module-reexported declarations in the re-exporting module

module Child (f, g) where …
module Parent (module Child, h) where

import Child (g)

currently we will get documentation for h and a link to Child in Parent. We should allow an option that will render g and h instead. I think we have all the information and we can keep the old behaviour with module-specific flag.

The docs say that it already works this way, but then in a foot note it says it's not actually implemented: https://www.haskell.org/haddock/doc/html/ch03s04.html#idm140354810861024 (I can't find docs for a more recent Haddock online).

Also, I think this issue is a duplicate of #584. The other issue has more details, so I'd close this one.

should be resolved by #688


Partial locale detection

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Even if locale 'fr' seems to be present in the repository, the translation is not done on the display. I have to manually set all of them in the configuration. And "Week" can't be forced into "semaine" as no option exist.
Option in the configuration card can help to force locale.
Expected behaviour
Automatic translation for fr locale
Steps To Reproduce
No response
Card Version
7.01
Home Assistant Version
2022.12.6
Configuration
type: custom:atomic-calendar-revive
    enableModeChange: true
    firstDayOfWeek: 1
    maxDaysToShow: 365
    refreshInterval: 60
    showDeclined: false
    hideFinishedEvents: true
    showRelativeTime: true
    showMultiDay: true
    showCalendarName: false
    showEventIcon: true
    showNoEventsForToday: true
    showWeekDay: true
    showHiddenText: true
    showWeekNumber: true
    calShowDescription: true
    disableCalEventLink: true
    showLastCalendarWeek: true
    entities:
      - entity: calendar.weather_for_sajas
        name: Weather for sajas
      - entity: calendar.homeassistantagenda
        name: Homeassistantagenda
    dimFinishedEvents: true
    disableCalLocationLink: false
    untilText: Jusqu'à
    noEventsForNextDaysText: Pas de rendez-vous dans les prochains jours
    noEventText: Pas de rendez-vous aujourd'hui
    hiddenEventText: Rendez-vous masqué
    showCurrentEventLine: true
    showMonth: true
    showFullDayProgress: true
    name: Agenda
    sortByStartTime: true
    showDate: true
    hideDuplicates: true
    showMultiDayEventParts: true
    disableCalLink: true
    fullDayEventText: Journée entière
    disableEventLink: true
    disableLocationLink: false
    cardHeight: 100%
    europeanDate: true
    dateFormat: LL
    showLocation: true

Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Just tested and this works as expected:

ensure you have the user language is set correctly:

Hello Steven,
Thank you for your answer. I verified the language and it is set to
Français. Updated to 7.2.0. However, the translation is not performed. I
have manually translated everything I can. But no option for week.
Following, the screenshot of my laptop. The same on my Samsung Galaxy Tab
S2 and my Asus Rog Phone 5s.
[image: image.png]
[image: image.png]
[image: image.png]
Do you know what I miss ?
Best Regards.
Le mer. 28 déc. 2022 à 15:43, Steven Marks @.***> a
écrit :

Just tested and this works as expected:
[image: image]
https://user-images.githubusercontent.com/159166/209828971-60a52361-0f2c-4918-a82e-d794502c1641.png
ensure you have the user language is set correctly:
[image: image]
https://user-images.githubusercontent.com/159166/209829094-edc8326a-308f-4f74-9439-5134b35b80dc.png
—
Reply to this email directly, view it on GitHub
https://github.com/totaldebug/atomic-calendar-revive/issues/875#issuecomment-1366702524,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI6LAXV6ZK3GPUSYQMQNC6TWPRG2NANCNFSM6AAAAAATB7IJMY
.
You are receiving this because you were mentioned.Message ID:
@.***>

I tested with all translations removed in the UI. The Dates are correctly
formatted using French language. But the other information not.
[image: image.png]
Le jeu. 29 déc. 2022 à 08:14, Frédéric Duloum @.***> a
écrit :

Hello Steven,
Thank you for your answer. I verified the language and it is set to
Français. Updated to 7.2.0. However, the translation is not performed. I
have manually translated everything I can. But no option for week.
Following, the screenshot of my laptop. The same on my Samsung Galaxy Tab
S2 and my Asus Rog Phone 5s.
[image: image.png]
[image: image.png]
[image: image.png]
Do you know what I miss ?
Best Regards.
Le mer. 28 déc. 2022 à 15:43, Steven Marks @.***> a
écrit :

Just tested and this works as expected:
[image: image]
https://user-images.githubusercontent.com/159166/209828971-60a52361-0f2c-4918-a82e-d794502c1641.png
ensure you have the user language is set correctly:
[image: image]
https://user-images.githubusercontent.com/159166/209829094-edc8326a-308f-4f74-9439-5134b35b80dc.png
—
Reply to this email directly, view it on GitHub
https://github.com/totaldebug/atomic-calendar-revive/issues/875#issuecomment-1366702524,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI6LAXV6ZK3GPUSYQMQNC6TWPRG2NANCNFSM6AAAAAATB7IJMY
.
You are receiving this because you were mentioned.Message ID:
@.***>

Is this the same if you upgrade to the latest version of the card?
I will add an option to manually set the week name anyway.

Also worth clearing the browser cache, sometimes it doesn't notice the changes and still uses the old language until quite a few refreshes.

Hi,
Clearing the browser cache doesn't change anything.
What can I test to help solving this ?
Le jeu. 29 déc. 2022 à 09:34, Steven Marks @.***> a
écrit :

Also worth clearing the browser cache, sometimes it doesn't notice the
changes and still uses the old language until quite a few refreshes.
—
Reply to this email directly, view it on GitHub
https://github.com/totaldebug/atomic-calendar-revive/issues/875#issuecomment-1367155159,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI6LAXQIM2KLCGVIRD77ZPLWPVEKPANCNFSM6AAAAAATB7IJMY
.
You are receiving this because you were mentioned.Message ID:
@.***>

One thing to check is that the card thinks it is using French, if you press f12 and go to console you should see a line for atomic-calendar-revive that shows the version and the language it thinks it has loaded.

Hi,
same issue here with German / locale "de".
The "in 11 Minutes" is translated fine. But no automatic translation for "fullDayEventText" and Week.
Console:  atomic-calendar-revive  Version: 7.2.0  de
Config:
type: custom:atomic-calendar-revive
name: Dienstplan
maxDaysToShow: 3
showWeekDay: true
showMonth: true
disableEventLink: true
disableLocationLink: true
fullDayEventText: ganztägig
untilText: noch bis
europeanDate: true
showCalendarName: true
showWeekNumber: true
noEventsForNextDaysText: keine Termine
entities:
  - entity: calendar.stefan_dienst
    name: Stefan Dienst
    color: cyan
  - entity: calendar.stefan_frei
    name: Stefan Frei
    color: lightgreen
  - entity: calendar.johanna_dienst
    name: Johanna Dienst
    color: magenta
  - entity: calendar.johanna_frei
    name: Johanna Frei
    color: lightgreen
firstDayOfWeek: 1
refreshInterval: 60
dimFinishedEvents: false

Hi @Clooos interesting that it works in chrome but not other browsers, please could you confirm what browsers you have tested in?

Hi, same issue here with German / locale "de". The "in 16 Minutes" is translated fine. But no automatic translation for "fullDayEventText" and Week.
Console:  atomic-calendar-revive Version: 7.2.0 de Config:
type: custom:atomic-calendar-revive
name: Dienstplan
maxDaysToShow: 3
showWeekDay: true
showMonth: true
disableEventLink: true
disableLocationLink: true
fullDayEventText: ganztägig
untilText: noch bis
europeanDate: true
showCalendarName: true
showWeekNumber: true
noEventsForNextDaysText: keine Termine
entities:
  - entity: calendar.stefan_dienst
    name: Stefan Dienst
    color: cyan
  - entity: calendar.stefan_frei
    name: Stefan Frei
    color: lightgreen
  - entity: calendar.johanna_dienst
    name: Johanna Dienst
    color: magenta
  - entity: calendar.johanna_frei
    name: Johanna Frei
    color: lightgreen
firstDayOfWeek: 1
refreshInterval: 60
dimFinishedEvents: false

please confirm what browser you are using

closing as there have been no updates

@marksie1988 I can confirm that I have the same bug. "Week" is not translated in the DE locale but the other ones are correctly translated to German. I am using Firefox 118.0.1, ACR 9.0.2 and HA 2023.7.3 running as a package on a Synology NAS. My user account is set to German in HA.

@marksie1988 I can confirm that I have the same bug. "Week" is not translated in the DE locale but the other ones are correctly translated to German. I am using Firefox 118.0.1, ACR 9.0.2 and HA 2023.7.3 running as a package on a Synology NAS. My user account is set to German in HA.

Edit: The bug is the same on Edge Version 117.0.2045.60

If you press f12 and look in the console, expand the atomic-calendar-revive take and paste what it says in here that might help me a little.

Please try the latest beta and let me know if that resolves the issue you are having.,

I'm tracking this in #1361


Fix loc info for content statements with leading newlines.

Given the following:

  {{#if isSingleError}}
    Single error here!
  {{else if errors}}
    Multiple errors here!
  {{else}}
    No errors found!
  {{/if}}

The ElementNode for the
 was indicating that its loc.end.column was 12. This is ultimately due to how Handlebars handles trailing newlines after the {{/if}}. We were properly detecting that the node was rightStripped and adding the number of stripped newlines to the tokenizer.line number, but we did not reset the tokenizer.column also.
The fix is to ensure that the column is reset when incrementing the line count.

This is also being fixed in Glimmer in https://github.com/tildeio/glimmer/pull/91

LGTM

After digging a bit more, I realized that almost all ElementNode locations on the same line as a mustache were incorrect.  I have updated the approach to utilize the ContentStatement's location information to reset the tokenizer's current positioning which fixes the following additional issues that I identified while digging into the {{else if foo}} issue:

{{#foo-bar}}
Foo
{{/foo-bar}}  -- elements inside blocks had incorrect start/end
{{foo-bar}}
Hi!
 -- elements after a mustache had incorrect start/end


fix: better sticky headers

Due to Chrome bug 702927 we can't sticky the thead, so instead we reuse
the code that existed but properly grab the right set of headers.
In Chrome (again...) this means the header borders are transparent (because
we're stickying the cells, not their borders, I guess), so I've also removed
the left/right borders in the thead cells to avoid a visual artifact. This
seems fine, but can be reverted if appropriate.

Looks like this:

Keeping the left/right borders on the header has this visual artifact from the second line of the header showing through for a couple pixels:

LGTM, going to merge this in favor of #123.


DO NOT MERGE - Fix crash collaboration

@eder-matheus Added missing header definition to make it compile

@eder-matheus With these changes, I get:
Found 0 macro blocks.
Using 1u default distance from corners.
Using 2 tracks default min distance between IO pins.
[ERROR PPL-0082] Mirrored position (42, 0) at layer NA is not a valid position for pin placement.
Error: io_placement.tcl, 13 PPL-0082

@oharboe Could you try this branch again: https://github.com/eder-matheus/OpenROAD/tree/ppl_groups?
I've made lots of changes that would conflict with this PR, so I'm keeping it in my fork for now.


moved 'upgrade' and 'upgrade_all' to commands/upgrade.py

This pull request is the first one for issue #255
Only upgrade and upgrade_all commands have been moved in a separate file.

Hi, any feedback about this pull request ?

This looks good besides the merge conflict.

A force push was recently done, so this PR will have to be rebased onto origin/master. Apologies for the inconvenience. See https://github.com/pipxproject/pipx/issues/270.

Hi, I have updated my branch but I don't get it why CI test is now failing.
I have tried master branch and failure is also present...

That is a known issue being dealt with across the python ecosystem. See https://github.com/pipxproject/pipx/issues/266 and the linked issue at the bottom.
When https://github.com/pipxproject/pipx/pull/269 is merged the issue will be fixed. Your PR looks good though. I’ll merge it when the other fix lands. Thanks for your patience with all of this.

I have pushed a rebased version.


Update references of chef-server-ingredient to chef-ingredient

chef-server-ingredient was replaced with chef-ingredient.

Yep


Some of my littlefs performance numbers

Dear all,
I hope these tests I did yesterday on my ARM MCU and littlefs are useful to give somebody approximate time values for some basic operations with littlefs. I have a 8192 bytes FRAM SPI memory connected.
Consider the following numbers as:
(read-size, program-size, block-size, block-count, cache-size, lookahead-size, spi-freq-MHz)
Examples come next:
No littlefs, time to low-level write 256 bytes via SPI:
(, 1) = 2 ms
(, 6) = 0.35 ms
(, 12) = 0.17 ms
Littlefs format function:
(16, 16, 256, 32, 16, 16, 1)    = 12.7 ms
(16, 16, 256, 32, 16, 16, 6)    = 8.9 ms
(16, 16, 256, 32, 16, 16, 12)  = 6 ms
(64, 64, 256, 32, 64, 16, 1)    = 10 ms
(64, 64, 256, 32, 64, 16, 6)    = 5 ms
(64, 64, 256, 32, 64, 16, 12)  = x
(256, 256, 256, 32, 256, 16, 1) = 15.6 ms
(256, 256, 256, 32, 256, 16, 6) = 5.32 ms
(256, 256, 256, 32, 256, 16, 12) = x
= x means console output a "Superblock 1 become unwritable" error.
Littlefs boot_count example:
(16, 16, 256, 32, 16, 16, 1)    = 14 ms
(16, 16, 256, 32, 16, 16, 6)    = 15 ms
(64, 64, 256, 32, 64, 16, 1)    = 17.5 ms
(64, 64, 256, 32, 64, 16, 6)    = 24.5 ms
(256, 256, 256, 32, 256, 16, 1) = 21.3 ms
(256, 256, 256, 32, 256, 16, 6) = 9.2 ms
Littlefs create a 256 bytes file:
(16, 16, 256, 32, 16, 16, 1)    = 55 ms
(16, 16, 256, 32, 16, 16, 6)    = 50 ms
(64, 64, 256, 32, 64, 16, 1)    = 53.5 ms
(64, 64, 256, 32, 64, 16, 6)    = 23.1 ms
(256, 256, 256, 32, 256, 16, 1) = 36 ms
(256, 256, 256, 32, 256, 16, 6) = 16 ms
Please let me know if these are useful to you. Also, please let me know if some configuration is not worth mentioning so we can remove it. Finally, if someone has some explanation for the error given at 12 MHz, it will be very welcome.
Have a nice day.

It would be interesting to see these numbers in terms of number of erase operations and write or read operations.   IIRC, FRAM  is extremely fast and relatively new technology.  Other technologies are bottlenecked by erase operations and write operations.

Finally, if someone has some explanation for the error given at 12 MHz, it will be very welcome.

Is it possible the 12 MHz is too fast for the FRAM part somehow? The combination of 256 B + 12 MHz results in the largest bandwidth of program data going over the bus. This could be resulting in lost bytes.

Sorry, this week I could not work on this.
MB85RS64V maximum frequency is 20 MHz so it should be able to do it.
Yes, I plan to do the same numbers for a NAND memory when I receive it. I will include some erase operations.

Maybe  6 MHz is a limitation of my hardware, was wiring this through a prototype breadboard. Will try with real PCB boards soon.


Refresh from upstream after cloning

Personal forks of repos can become seriously outdated in between uses of the tool, meaning that it's easy to accidentally create PRs against very old versions of the target repos. This can result in merge conflicts when creating PRs.
I believe that the simplest way to prevent this would be to amend turbolift clone so that it effectively does:

Create a fork
Clone the forked repo locally
Create a new local branch
New: Pull changes from upstream/main or upstream/master into the local branch, so that any changes made by the user are against the latest available version of upstream

@Dan7-7-7 just so you're aware, there are probably a few different ways of determining the name of the default branch, some simpler than others. Please make sure you've scouted a few things out before getting stuck in to anything complicated - feel free to shout if you want to bounce ideas off us!

The cloned repos already have a remote for upstream, so as a workaround we can use:
turbolift foreach git pull upstream main
turbolift foreach git push

For determining the default branch, how about: gh repo view --json defaultBranchRef --jq .defaultBranchRef.name


NPM version?

NPM has a different version? 0.7.0
New release?

Duplicate: #35

Hey please add a note to remove this confusion. Made a commit.


feat(RingTheory/Flat): generalize flat_of_isLocalized_span

Generalize Module.Flat.flat_of_isLocalized_span to take s : Set S for any R-algebra S.

Nice, feel free to push your commit directly to the branch.

maintainer delegate

@alreadydone Could you please give this another maintainer merge push? I think it went through the cracks.

@alreadydone Could you please give this another maintainer merge push? I think it went through the cracks.

Sorry, missed the message. Pinged in maintainer merge: t-algebra.

Thanks a lot!
bors merge


Remove useless polygons from StyleBoxFlat drawing

There removes the excess polygons drawn in StyleBoxFlat. Even if no border was drawn, there still was an invisible "flat" ring which served no purpose.
For example, on a rectangle box with rounded corners and the default settings, 72 triangles are saved.
The method is renamed to make more sense with its actual effect.
Backportable to 3.x

Thanks!


Error loading Points Page for Members and Officers

Describe the bug
Points page does not load for officers and members. Errors out due to 404 response from backend.
To Reproduce
Steps to reproduce the behavior:

Login to the portal with your credentials.
Click on 'Points' in the sidebar on the left.
The page displays "You have no points yet :(" regardless of whether you actually don't have points or not. On checking the network logs from the developer console, you see that the response received was a 404.

Expected behavior
The points page should load correctly and populate information about points that a user has received.
The points page should only show "You have no points yet :(" when the user actually does not have any points.
Desktop (please complete the following information):

OS: Windows
Browser: Chrome
Version: 87.0.4280.88 (Official Build) (64-bit)

Additional context
Add any other context about the problem here.

ty @AneeshJalan - for future reference, this is due to uncaught error from the 404

ty @AneeshJalan - for future reference, this is due to uncaught error from the 404


Performance Improvements using zone.js

Currently every animation step triggers an angular change detection (which leads to animation stutter on mobile).
This could be prevented with the following patch:
    constructor(private el: ElementRef,
                private zone: NgZone) {
    }

   private animate() {
        this.zone.runOutsideAngular(() => {
            this.countUp.reset();
            this.countUp.start(() => {
                this.zone.run(() => {
                    this.complete.emit();
                });
            });
        });
    }

see also: https://angular.io/api/core/NgZone

Thanks for bringing this to my attention. So that is occurring even though the Angular directive is just providing an element reference and calling the countUp methods? CountUp itself uses requestAnimationFrame. Do you have a way to show that each frame triggers change detection?

I tested it on my project with and without and reduced change detection from 572 to 42 just by adding the code above. Angular detects all changes through zone.js even tought you use angular code, except you run the code in this (this.zone.runOutsideAngular) context.
A nice way to debug this is the following ng component I use for performance tuning:
import {Component, NgZone} from '@angular/core';

@Component({
    selector: 'debug-change-detection',
    template: '
{{check()}}
',
    styles: [`
        :host {
            position: absolute;
            left: 0;
            bottom: 0;
            display: block;
        }

        .number {
            display: block;
            font-size: 40px;
        }
    `]
})

export class DebugChangeDetectionComponent {

    count = 0;

    constructor(private zone: NgZone) {
    }

    check() {
        this.zone.runOutsideAngular(() => {
                setTimeout(() => {
                    this.count = this.count + 1;
                }, 0);
            }
        );
        return this.count;
    }
}

You can also just use a {{printToConsole()}} function somewhere on the page to see the difference.

Wow, that's super helpful, thanks! I pushed a new version with these changes. 7.2.0


change docs.microsoft.com to learn.microsoft.com

Updated all references from 'docs.microsoft.com' to 'learn.microsoft.com' in .tsp files within the 'specification' directory.
Changes will be made to both the 'azure-rest-api-specs' and 'azure-rest-api-specs-pr' repositories.

API change check
APIView has identified API level changes in this PR and created following API reviews.
AnomalyDetector


Devfile.io blog and video content

/kind user-story
Which area this user story is related to?
/area landing-page
User Story
As a person interested in the devfile project, I would like to see some activity on the landing page that provides updates on the project's features and enhancements
It would be good to have a simple blog page/tab where we can socialize what has been delivered from sprint to sprint. Ideally we would also upload sprint demos to a devfile YouTube page, and include links to those videos in the blog entries.

[ ] Blog page/tab on devfile.io
[ ] devfile YouTube channel with sprint demos uploaded for content

We have a video created; however, we are waiting for someone to create a blog post before we create a blog section in devfile.io.
https://github.com/devfile/api/issues/812

closing as rotten


WXLogLevel枚举名冲突

WechatOpenSDK和WeexSDK两个组件，有相同的枚举名称WXLogLevel

我也遇到了， 然后ios开发把WXLogLevel =》 改成了WXXLogLevel

There is no good way to solve this problem，you can refer to the method of @linmowang

There is no good way to solve this problem，you can refer to the method of @linmowang

现在并没有解决啊


Question APN message format

First I apologizes if this is the wrong forum for this.
For android I have a PHP message array setup like this (works great)
$msg = array
(
       'title'			=> $title,
	'message' 		=> $message,
	'image'         	=> $image,
	'userid'  		=> $userid,
	'familyid'  		=> $familyid,
	'postid'  		=> $postid,
	'type'  		=> $type,
	'notId'        	 	=> $postid,
	'postuserid'   		=> $postuserid,
	'commentid'             => $commentid,
	'additionalData'        =>  array(
	        'userid'      => $userid,
	        'familyid'    => $familyid,
	        'postid'      => $postid,
	        'type'        => $type,
	        'postuserid'  => $postuserid,
	        'commentid'   => $commentid
	    )

);

But for apple I'm a little confused  on how to add the additionalData to the APN payload.
Looking at the apple docs now. but still a little confused. if anyone as gotten this to work could you share the payload PHP array?.
here is what I have so far:
$payload['aps'] = array(
                        	   'alert' =>  array(
                                'title' => $title,
                                'body '  => $message,
                                'content-available1': '1',
                                'badge' => '1',
                                'sound' => 'default',
                                'additionalData'           =>  array(
                              		        'userid'         => $userid,
                              		        'familyid'       => $familyid,
                              		        'postid'         => $postid,
                              		        'type'           => $type,
                              		        'postuserid'     => $postuserid,
                              		        'commentid'      => $commentid
                              		    )
                            )

                       );

@colonna-mike any key you put in the aps array will be put in data.additionalData. I just try and make sure that all the cross platform keys like message and title are available right from data.
So using your PHP as an example as the base:
$payload['aps'] = array(
                               'alert' =>  array(
                                    'title' => $title,
                                    'body '  => $message
                               ),
                               'content-available': '1',
                               'badge' => '1',
                               'sound' => 'default',

                               'userid'         => $userid,
                               'familyid'       => $familyid,
                               'postid'         => $postid,
                               'type'           => $type,
                               'postuserid'     => $postuserid,
                               'commentid'      => $commentid
                            );

One thing I noticed is that your alert array accidentally added everything in it but it should only have the title and body as per https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1
Second your content-available property was mis-spelled.
Anyway, sending that data from PHP should get your on('notification') handler called with the following JSON:
{
    title: $title,
    message: $message,
    sound: 'default',
    count: '1',
    additionalData: {
        userid: $userid,
        familyid: $familyid,
        postid: $postid,
        type: $type,
        postuserid: $postuserid,
        commentid: $commentid,
        content-available: '1'
    }
}

Make sense?

Yes it does thank you! And thank you for this plugin....

@colonna-mike de nada, going to close now. Re-open if there are issues with this.


dynamodb Query missing KeyConditionExpression

Amazon docs indicate this is the preferred way to query yet the library does not contain the field "KeyConditionExpression" in the Query struct literal.

For that matter, legacy fields like KeyConditions are marked as required. Does this file simply need to be regenerated from a more current schema?

Hi @cmdrkeene thanks for reporting this. You are correct, this is a case where the of the definitions just need to be updated.  I'll get started on pulling the updates in.

Thanks @jasdel !

Hi @cmdrkeene I just pushed the updated dynamodb updates for KeyConditionExpression. You should be able to use the new functionality now.

Marking as closed, let us know if you have any issues.


Site Environment V2

Overview
New user interface for the WebShop site environment.
Note: This PR can only be merged after #10 is resolved
Description of Changes

Add link to project page, instructions on search page
List → Grid layout for results page
Show current query
Search Results Page: Reorganize layout of back to search, next, prev buttons
Item Page: Change back → back to results
Item Sub Page: Change back → back to item page
Show "No " if corresponding content does not exist
Add favicon + title
Minor beautification to reviews page

Note: This PR does NOT make any changes to WebShop's task, dataset, or models. The intention of this PR is to make the layout of the web environment more friendly for people to complete the task.
Screenshots

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code + updated documentation (if necessary)
[ ] I have added tests to define the behavior of the feature(s) and verify it is working
[ ] New + existing unit tests pass

I attempted to download the all_products.json and all_products_1000.json files but encountered issues. The link for the all_products_1000.json file appears to be non-functional:
gdown https://drive.google.com/uc?id=1Ywh6NAfKlnAKu8_K_m_pFTKm7Ibiv_Rk
Furthermore, I experienced problems with the all_products.json file downloaded using the link below; it seems to be corrupted or incompatible, as I'm unable to open it with the json.load(f) function:
gdown https://drive.google.com/uc?id=1USleNX_dqQ-bRboTimg7pgqZ-OcamoVQ
I would greatly appreciate it if you could provide an alternative download link for either the reviews.json or a functional all_products.json file.
Thank you.


JsonQueryResultSerializer throws OperationCanceledException

Describe the bug
When making requests to a live hotchocolate server, we  get an OperationCanceledException thrown by the JsonQueryResultSerializer if the request has been cancelled.
An unhandled exception was thrown by the application.
 System.OperationCanceledException: The operation was canceled.
   at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(ReadOnlyMemory`1 source, CancellationToken cancellationToken)
   at async System.Text.Json.Utf8JsonWriter.FlushAsync(?)
   at async HotChocolate.Execution.Serialization.JsonQueryResultSerializer.SerializeAsync(?)
   at async HotChocolate.Execution.Serialization.JsonQueryResultSerializer.SerializeAsync(?)
   at async HotChocolate.AspNetCore.Serialization.DefaultHttpResultSerializer.SerializeAsync(?)
   at async HotChocolate.AspNetCore.MiddlewareBase.WriteResultAsync(?)
   at async HotChocolate.AspNetCore.HttpPostMiddleware.HandleRequestAsync(?)
   at async HotChocolate.AspNetCore.HttpPostMiddleware.InvokeAsync(?)
   at async HotChocolate.AspNetCore.WebSocketSubscriptionMiddleware.InvokeAsync(?)
   at async Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(?)
   at async RuntimeService.Startup.<>c.<Configure>b__9_1(?) in /src/src/RuntimeService/Startup.cs:line 152
   at async Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(?)
   at async Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(?)
   at async Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(?)
   at async NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(?)
   at async NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(?)
   at async NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(?)
   at async Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[](?)

Hotchocolate version 11.1.0
Expected behavior
Operation cancelled exceptions should be handled by HC. It might be similar to https://github.com/ChilliCream/hotchocolate/pull/3075?
Desktop (please complete the following information):

OS: Alpine Linux (Docker)
Version 3.13.5

How quickly do you get that error? HC has a default request execution timeout of 30 seconds, and if that timeout is exceeded, you would see an error like that.
That it's coming from something Json related isn't necessarily because it has anything to do with Json. That's just the first place the cancellationToken is checked for abort.

It takes about that much time, I can replicate it by making some requests to my server that take a small amount of time to fetch the data and stopping the requests (by closing the tab in chrome)

Ah, so you're just saying that you would expect it to be handled along the way, and not bubble all the way out? I believe that can be accomplished with middleware. Not sure what the stance is on handling it by default.

Ok will look into adding some middleware to handle.
However I don't believe this was an issue HC 10, I've only started seeing these since upgrading to 11


Unpin dependencies

Integrating this package into an existing project is pretty hard due to the dependency limitations. E.g. Fastapi gets effectively downgraded to match this packages dependencies. Please read this section regarding poetry.lock usage in libraries: https://python-poetry.org/docs/basic-usage/#as-a-library-developer
I currently do not see a reason for this dependency pinning.
Also reduced the docker image size, by adding some sensible best practices without overhauling everything.

Thank you for your contribution! @rbange


CUPS filled my drive with giant error_log file

CUPS stopped working on my Ubuntu 18.04 due to my tinkering with file permissions in /usr/lib folder. My fault. Unfortunately, in less than 24 hours, it produced 0.25TB of error log files with text like this:
E [21/Jun/2020:14:13:06 -0600] File \"/usr/lib/cups/notifier/dbus\" has insecure permissions (0100775/uid=0/gid=0).
W [21/Jun/2020:14:13:06 -0600] Notifier for subscription 88 (dbus://) went away, retrying!

Does this message have to be repeated millions of times?

this file needs 755 permissions, owner root.
You may stop logging by editing /etc/cupsd.conf: LogLevel none
Or, using rsyslog y ou may lookin for the $RepeatedMsgReduction config switch, which turns such duplicate messages into one by logging "Last line repeated n times". You can also discard unwanted messages.

Perhaps having a default with threshold for maximum number of times the same message is logged consecutively would solve the problem. Logging, which kills the system by filling the storage is not a user-friendly design. Also checking the file permission in such quick succession seems to be pointless: after the first failure, increase the wait between checks and keep increasing, if it fails again.

looks like a duplicate of #5790

Default MaxLogSize is 1m. Ubuntu changes it...


not sending local time to GBD800

Describe the bug
A clear and concise description of what the bug is.
Sending time from phone to watch not working
When I start the app and connected to my GBD800, I try to push the local Time from the app with "send to watch". Wrinting "Setting time" in the bottom of the screen app but nothing happen
Also the Home Time is N/A like the batterie percentage
I tryed to push other settings like auto light and date format seems to work
To Reproduce
Steps to reproduce the behavior:

Go to 'Setting Time Menu'
Click on 'send to watch from local time'
See "Setting time" from the bottom
Nothing happen on the watch

Expected behavior
Setting time
Screenshots
I ca if it's needed
Desktop (please complete the following information):

OS: Android from F-droid store
Browser Firefox
Version latest 14.2

Smartphone (please complete the following information):

Device: Gigaset GS290
OS: /e/OS
Browser MullBrowser
Version 2.3

Additional context
Add any other context about the problem here.

OK, thanks for reporting.
I have added the support for this watch based on report from users. Obvously I do not have all watche model to test with. I will remove the watch from the supported list for now, but will look into its specs to see if we can add support. Are you OK with testing if I sent you an APK?

Yeah off course, fyi I don't have google services installed

This may not be a compatibility issue with your watch. I observed the same issue with Android 14 with some phones. If you are just seeing "Casio" in the time screen installed of the model number, this could be the issue. I'll work on this in the new version of the app, but in theean time try with another phone, or just try a few times, until you see the model number on the screen, and then setting the time.

Here what I've got

I'll try with another phone but its an old android

Cannot reproduce.


Document theme properties

Currently, https://benefit.netlify.com/customization/theme covers what theme is responsible for, but it might be more informative to document what properties are driving specific utilities that are generated and link out to the respective docs page.
Example:
padding

Controls the generation of padding utilities p-0, p-1, etc...

Would it help to output the default theme?


panic: JPGQL_DCRA - Search at depth=3 by tags

// when
$ nats pub --count=100000 -s nats://nats:foliage@nats:4222 functions.graph.api.query.jpgql.dcra.root "{"payload":{"query_id":"QUERYID", "jpgql_query":".type1..[tags('t1') || tags('t4')]"}}"
// then
....
time="2024-11-16T13:58:37Z" level=error msg="LLAPIQueryJPGQLDirectCacheResultAggregation evaluation timeout!"

panic: send on closed channel

goroutine 426577 [running]:
github.com/foliagecp/sdk/statefun/cache.notifySubscriber(...)
	/usr/src/app/statefun/cache/cache.go:55
github.com/foliagecp/sdk/statefun/cache.(*StoreValue).Put.func1({0x422ea6?, 0xc00e61f740?}, {0x1be5de0?, 0xc007b942a0?})
	/usr/src/app/statefun/cache/cache.go:147 +0x65
sync.(*Map).Range(0xc0113c4358, 0xc00e61f7a8)
	/usr/local/go/src/sync/map.go:476 +0x228
github.com/foliagecp/sdk/statefun/cache.(*StoreValue).Put(0xc0052cd180, {0x1bdaa20?, 0xc011bcd218}, 0x1, 0xc00e61f8c0?)
	/usr/src/app/statefun/cache/cache.go:146 +0x158
github.com/foliagecp/sdk/statefun/cache.(*Store).SetValue(0xc0001b10e0, {0xc00c9dd860, 0x54}, {0xc0184431f8, 0x2, 0x8}, 0x1, 0xffffffffffffffff, {0x0, 0x0})
	/usr/src/app/statefun/cache/cache.go:700 +0x18d
github.com/foliagecp/sdk/embedded/graph/jpgql.LLAPIQueryJPGQLDirectCacheResultAggregation.func3(0xc00e61fba0)
	/usr/src/app/embedded/graph/jpgql/jpgql.go:581 +0x226
github.com/foliagecp/sdk/embedded/graph/jpgql.LLAPIQueryJPGQLDirectCacheResultAggregation({0x1c139e0?, 0xc000257830?}, 0xc010f9f360)
	/usr/src/app/embedded/graph/jpgql/jpgql.go:628 +0xbd1
github.com/foliagecp/sdk/statefun.(*FunctionType).handleMsgForID(0xc0001fb1e0, {0xc01bd77885, 0x24}, {0xc01c30b820, 0xc010b2b680, 0xc010b2b6b0, 0xc010b2b730, 0x0, 0xc00c95cc18}, 0xc010f9f360)
	/usr/src/app/statefun/function_type.go:243 +0x66b
github.com/foliagecp/sdk/statefun.(*FunctionType).idHandlerRoutine(0xc0001fb1e0, {0xc01bd77885, 0x24}, 0xc005d2d788?)
	/usr/src/app/statefun/function_type.go:155 +0x50e
created by github.com/foliagecp/sdk/statefun.(*FunctionType).sendMsg in goroutine 4657
	/usr/src/app/statefun/function_type.go:102 +0x1b1

Thank you for issuing the problem. It will be solved it in the new release version.

Проект планирует составить конкуренцию Apache Flink со Stateful Functions?

Проект планирует составить конкуренцию Apache Flink Stateful Functions?
eq https://nightlies.apache.org/flink/flink-statefun-docs-stable

Foliage does not aim to compete directly with Apache Flink, as it is designed to address different challenges. While it takes inspiration from Apache Flink (Stateful Functions) and implements some similar features, its primary focus is on distributed and asynchronous computations over large graph structures. Specifically, it targets graph-based digital twins of real-world systems for analysis and control.
Initially, we started with Apache Flink, but eventually moved away from it. Our implementation offers several advantages:

Performance: Our solution is faster.
Local Caching: Unlike Flink, we incorporate a local cache for enhanced efficiency.
Context-Aware Functions: Foliage functions operate not only within their own context but also in the context of the graph model’s objects. This graph model is an integral part of our platform and sets it apart from Flink.


internal/plugins/helm: add a Config for Helm-specific project configuration

Description of the change:

internal/plugins/helm: add a Config for Helm-specific project configuration, and add some nice print statements to the same effect as the Go plugin.

Motivation for the change: Helm projects may need to use some project name for various things in the future, and using directory name is prone to error. See https://github.com/kubernetes-sigs/kubebuilder/pull/1596 for more details. Instead of using the repo config field, since Helm has a different concept of a "repo" than a Go project, a plugin-specific config field project is defined.
@asmacdo @fabianvf this might also be nice to have in an Ansible plugin too.
/cc @camilamacedo86 @joelanford
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[x] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

Relates to #3341

just a few nits but I liked the idea 👍

Another thought just crossed my mind.
The bundle and packagemanifest generators would probably want to use this to determine the project name, right?
If so, does it make sense to put logic in those generators to handle specific plugin configurations? (e.g. it will check for Go + repo, Helm + plugin.project, or Ansible + plugin.project)
But what if another plugin has everything setup such that those generators would just work? Ideally we don't hardcode the set of supported plugins and prevent future plugins from working with OLM integration.

/hold
Until the discussion in https://github.com/kubernetes-sigs/kubebuilder/pull/1596 is acted upon upstream.

@camilamacedo86 @joelanford updated after https://github.com/kubernetes-sigs/kubebuilder/pull/1603 was merged.
/hold cancel


text-readable PDF conversion, minor CSS changes

Directly convert to a text-readable, editable and selectable PDF format of your resume.
Made minor changes to CSS to fix unnecessary gaps between sections when the page isn't filled with text content.

Thanks! This is very helpful :)


itemize settings

Hi Pascal,
I am encountering difficulties while attempting to use the \usepackage{enumitem} package within the template, which is preventing me from making adjustments to the itemize settings. I am looking to remove the white space before the bullets in the itemize environment within some text color boxes, as shown in the image below:

using:
\begin{frame}
\frametitle{research framework}
\centering
\includegraphics[width=0.825\textwidth]{figures/framework.pdf}

\begin{tikzpicture}[remember picture,overlay]
    \node[fill=white, text width=5cm, align=center, inner sep=2pt, draw=black, text=black, font=\sffamily\small] at (3.5,4) {
        \begin{minipage}{5cm}
            In both spaces:
            \begin{itemize}
                \item Conceptual Benchmark\\
                \item Performance Metric:\\
                KGE \citep{gupta2009}
            \end{itemize}
        \end{minipage}
    };
\end{tikzpicture}

\end{frame}

From my research, it appears that most solutions to this issue involve utilizing commands from the enumitem package. However, due to the current limitations of my template, I am unable to use this package.
I was wondering if you could suggest any workarounds or alternative approaches to achieve the desired formatting.
Thank you very much

Yes, the enumitem package does not work with the Beamer class, so I could not use it in the template (although it is a great package, which I use in my paper template).
The Beamer class offers commands to modify lists directly without resorting to other packages. For instance in the template I use the following modifications:
\setbeamertemplate{itemize item}{\textbullet}
\setbeamertemplate{itemize subitem}{\textendash}
\setbeamertemplate{enumerate item}[default]
\setbeamertemplate{enumerate subitem}[default]
\setbeamertemplate{enumerate subitem}{\alph{enumii}.}

The setbeamertemplate command might be all you need.
I have also found a few posts describing the conflicts between enumitem and Beamer, and explaining how to produce sophisticated lists with Beamer:

https://tex.stackexchange.com/questions/31505/trouble-combining-enumitem-and-beamer
https://tex.stackexchange.com/questions/356795/enumitem-breaks-beamers-itemize-despite-fixes
https://stackoverflow.com/questions/2611276/latex-beamer-way-to-change-the-bullet-indentation
https://copyprogramming.com/howto/checklist-in-beamer-using-enumitem-package

These posts might contain useful additional information.
Good luck, and let me know what you find.


stackdriver-trace-api samples could be more close to real use?

https://github.com/GoogleCloudPlatform/cloud-trace-java/blob/2e5dac3968380fb40925d76fa6567434c062d8af/samples/stackdriver-trace-api/src/main/java/com/google/cloud/trace/samples/stackdriver/api/StackdriverTraceApi.java#L27
Hi there!
I'm trying to re-implement the tracing capabilities of one of our micro-services, we are currently using google-api-services-cloudtrace, and want to migrate to this SDK, but it has been kind of hard to get this SDK working properly, surerly due to my lack of knowledge on it.
I'm facing two issues:

I got a service operation that I want to trace, first call to the operation doesn't throw any exceptions, but subsequent calls to the service operation throw: "Trace service is already initialized.".
Second, as part of our topology, we are using NGINX/sidecar SSL in between our client and the micro service (Jetty), running under that topology, the codes throws this exception:
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.   at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:159)   at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:136)   at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:124)   at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94)   at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:525)   at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:518)   at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.<init>(NettyChannelBuilder.java:457)   at io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:326)   at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:315)   at com.google.cloud.trace.grpc.v1.GrpcTraceConsumer.create(GrpcTraceConsumer.java:68)   at com.google.cloud.trace.service.TraceGrpcApiService.<init>(TraceGrpcApiService.java:162)   at com.google.cloud.trace.service.TraceGrpcApiService.<init>(TraceGrpcApiService.java:43)   at com.google.cloud.trace.service.TraceGrpcApiService$Builder.build(TraceGrpcApiService.java:141)   at com.llbean.purchase.history.producer.util.CloudTraceHelper.createTrace(CloudTraceHelper.java:43)   at com.llbean.purchase.history.producer.rest.InitiationResource$1.run(InitiationResource.java:76)   at java.lang.Thread.run(Thread.java:748)
in our local development environment we don't have NGINX in between, and the error isn't present.  Wondering if we should add any other jar to the gradle file? currently we have this:

compile 'com.google.cloud.trace:trace-grpc-api-service:0.4.0'
compile 'com.google.cloud.trace:core:0.4.0'
compile 'com.google.auth:google-auth-library-oauth2-http:0.7.1'
compile 'io.grpc:grpc-netty:1.6.1'
compile 'io.netty:netty-tcnative-boringssl-static:2.0.5.Final'

So based on this I think the sample is too far away from a simple use case.  Could you please help me to understand how this sample could be implemented in a real scenario?
Thanks a lot!
-F

I already figured out what was the issue... it has to do with using netty-tcnative-boringssl-static version 2.0.6.Final, if I change that to 2.0.5.Final, it works just fine.


Version change from 3.2.1 to 3.2.2

Changes

[X] Changed package version to 3.2.2.

Pending release references

Support field names specification when writing source for the FunctionCall nodes (#23)
Introduce insertAtBeginning() for ASTNodeWithChildren (#24)

Regards.

Codecov Report

Merging #26 (276bafe) into master (0bafe5c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #26   +/-   ##
=======================================
  Coverage   93.50%   93.50%
=======================================
  Files         199      199
  Lines        3802     3802
  Branches      499      499
=======================================
  Hits         3555     3555
  Misses        159      159
  Partials       88       88

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 0bafe5c...276bafe. Read the comment docs.


Add post: Changing ‘locations’ to ‘schools’ in the school placements section

 Change 'locations' to 'schools' in the School placements section of Find


added operation_settings to logistic call of parse_operating_point

logistic models call of parse_operating_point was missing the operation_settings arg so it was failing on every call to it when working with local models.

Your PR was added to version 8.0.0. Thanks for your contribution!


Bot skill levels and fix packet spam

forgot to mention, The skill level matching system used to make fair play cause mining node rarity in the quarry is based on farmhost level


Update README for Swift 3

I noticed whilst adding this pod (which is the 💣 by the way) to my project that the README instructions were out of date. I may have missed some bits.

Awesome! Thanks for the PR! :+1:
LGTM :ok_hand:
Could you just add an entry in the CHANGELOG to mention the update and credit yourself? (yes, even if it's only only documentation: documentation is as important as code after all!)

Done and done, good sir. Have a fantastic weekend 😎.


Unable to use sui-faucet on local sui network that is started using sui genesis-ceremony

Goal
After starting a local sui network using sui genesis-ceremony, start sui-faucet and get some gas coins
Issue

Lack of documentation on running sui-faucet on a local network started using sui genesis-ceremony
sui faucet returns an error when there are 0 gas coins
After an ad-hoc modification of simple_faucet.rs, sui-faucet runs but unable to request gas coins

Steps to reproduce the issue

Start up fullnodes and validators by running cargo run --bin sui-node -- --config-path <path/to/validator/or/fullnode/config/files>
Run sui client gas, there are no gas coins owned by the active address
run cargo run --bin sui-faucet -- --write-ahead-log /tmp/faucet.wal, the faucet will give error: mpsc bounded channel requires buffer > 0, the problem is caused by lines 124 and 125 of simple_faucet.rs, containing mpsc::channel(coins.len()), but there are no coins! So I manually changed it to mpsc::channel(100), the faucet then starts up
make a request to the faucet:

    curl --location --request POST <local faucet address> \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "FixedAmountRequest": {
            "recipient": "<active sui address>"
        }
    }'

Faucet log gives error

ERROR sui_faucet::faucet::simple_faucet: Timeout when getting gas coin from the queue uuid=927d9127-e430-4da9-9f8c-f150c214dd34
WARN sui_faucet::faucet::simple_faucet: Failed getting gas coin, try later!
WARN sui_faucet: Failed to request gas: NoGasCoinAvailable uuid=927d9127-e430-4da9-9f8c-f150c214dd34
WARN sui_faucet::metrics_layer: Request failed in 5.01s, code: 500

curl command gives error response  {"transferredGasObjects":[],"error":"Timed out waiting for a coin from the gas coin pool"}
If I dosui genesis -f and sui start, the start the faucet, the addresses seem to have some gas coin right off the start, so I was able to start the faucet without changing mpsc::channel(coins.len()), and the curl command gives gas coin to the active address

hi, did you start the faucet service successfully?

hi, did you start the faucet service successfully?

No. However I was able to use sui genesis -f --benchmark-ips to start a local network with an arbitrary number of machines/IP addresses, and the faucet was usable with this method.

I am facing the same issue now running the faucet were there any updates on how to run the faucet locally?

I am facing the same issue now running the faucet were there any updates on how to run the faucet locally?
I ended up using sui genesis -f --benchmark-ips instead of sui genesis-ceremony to start a local network with an arbitrary number of machines/IP addresses, they do the same thing.


Project refactoring. New jsonl adapter

I've refactored your code. Also added jsonl adapter.
I am using Tensorflow instead of rasa, so I need more generic thing for my purposes — jsonl adapter fits my needs.
Please, your code is near to become unmaintainable. So, my recommendations are:

Avoid code duplication
Avoid using dictionaries in future — use objects instead (like I've done with EMPTY_GEN -> Example(text, entities) )
Split functionality by packages
Use abstract classes and override methods
Move generic functions to init.py file

I've created PR recently with Tox integration. It provides easy integration of pylint, pycodestyle.
Use them to fix all the problems in your code. Please, run pylint until you reach at least 9.00 score.

Hope it will be released as soon as possible

I've checked, all existing samples (inside 'examples' directory) work as expected. Please, test it yourself

Example output for jsonl adapter (extension was changes manually from "jsonl" to "txt" because of GitHub uploading limitations)
output.0.txt

I don't have much time at the moment, I'll try to look at that this week. Same thing for your other pull request.
My code is indeed not very elegant, I was planning to refactor it.
Anyway, thanks a lot for the advice :)

And one more moment. I used typed arguments here which are availably only from python 3.5, so project is not compatible anymore with python 2. IMO, it's not a problem, because I've created another PR with a docker integration. Docker allows to run your code anywhere without any additional installations: just "docker run simgus/chatette -v ":/opt/somedir" /opt/somedir/master.chatette". It a bit weird, but it works with only 1 single requirement — you need to have docker to be installed.

There actually are some people that depend on a version compatible with python 2.7 (which is indeed outdated). I'll see if they are okay with using the current version (or if they can drop this requirement altogether) and thus stop supporting python 2.7, or if I need to have a specific branch for python 2.7 support.
If we completely drop support for python 2.7, I think I'll change the version number to chatette 2.0.
Docker is a good idea, though I've never used it.

Okay I reviewed it all and it seems very good.
After some thinking and discussion, it would be nice to keep supporting older versions of python (including 2.7).
So, rather than removing all the code that allowed for compatibility for both python 2.7 and 3.x from the project, I just removed from your code the type hints and used future to deal with ABCMeta in a portable way (it wasn't a lot of work). Other than that, the code is basically the same than what is in this pull request. I'll merge it into my dev branch.
I'm planning on dropping support for python 2.7 at some point (at the latest when it reaches end-of-life in 2020). As a note to myself, dropping support for python <3.5 has the advantages of:

making the code safer
making the code a little more readable
no need for compatibility code (and potential maintainability problems)
If you believe supporting python with versions <3.5 gives other problems please tell me, but it doesn't seem so problematic to me (we can still discuss it of course).


Add OSSF ScoreScard

To more know how our open-source scores
Ref

https://github.com/marketplace/actions/ossf-scorecard-action
https://www.zdnet.com/article/google-announces-scorecard-v4-in-partnership-with-github-and-openssf/

I’ll set this up.


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-k8s-24-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 869

Questions ?
Please refer to the Backport tool documentation


Long Url with titles

chang the url from simple ids to a combination with titles

close with changeset 2669b49


These relative modules were not found

These images are already there, But it says can't find them.


Observable does not complete using Sync/Async between two instances of RxJS

Smallest reproduction: https://stackblitz.com/edit/rxjs-3475-reproduction?file=index.ts
This is an issue we found in the Angular DevKit when updating projects and RxJS does not get properly hoisted (either because different versions or no peer deps).
Basically:

create an observable using Library 1
pipe a sync operator from Library 2
pipe an async operator from Library 1 (or 2)
the original SafeSubscriber is stopped, but did not complete or error, therefore the new pipeline will never next or complete the first pipeline.

Dupe of https://github.com/ReactiveX/rxjs/issues/3443. Rx doesn't support multiple instance due to internal core behavior.

@kwonoj Talking to @benlesh, it seems like this behaviour is officially supported.
You only use instanceof when whether or not you need a SafeSubscriber. All other instances you use the symbol-observable, which is the right behaviour. The problem is in SafeSubscriber, which Ben is looking at.

@benlesh mind chime in to share discussion in issue? I doubt even without instanceof check it'll work across different version / instances.

This was fixed by #3477


Editor does not replace tabs with spaces

Works just fine for me on nightly <IP_ADDRESS>31702:

This setting was switched by itself

No idea how it's possible :(

I saw that once too (not recently)


Settings pane has inverted background coloring

After updating to v0.3.0, the settings pane has an entirely white background. I'm using the standard Atom Material UI theme and syntax theme.

That's an interesting one… it's probably related to the UI theme as 0.8.0 doesn't explicitly define a background color for the settings panes.
I know this was introduced with the latest release (which I probably shouldn't have pushed). I changed a few things to make the syntax theme play better with the development version of the UI theme.
I decided to no longer support the UI theme 0.8.0 as the development version is a completely different codebase. However, I'll make an exception and try to fix this for you.
If you wish to test the UI theme's development version (I need testers), open a terminal and run:
apm uninstall atom-material-ui
git clone git@github.com:silvestreh/atom-material-ui.git
cd atom-material-ui/
apm link && apm install

Cheers!

Just pushed an updated UI theme to APM that solves this issue. Version bumped to 0.8.1.

Thanks for the quick turn-around! I'm happy to help test the new version once I get on a PC that isn't mission critical.


Why is AuthorizationHandlerContext.Resource of type object?

Why is the Resource property in the AuthorizationHandlerContext class declared as object type?
I expected this property to be of the type PathString.

The resource can be any type, depending on the resource being authorized. For example, in typical MVC scenarios it's one of these: https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.Abstractions/Filters/AuthorizationFilterContext.cs
This allows the code to get access to whatever MVC was doing to make its decision.
And of course in other scenarios it could be other types of objects.

I see. I thought it was always a PathString. I can use .ToString() on it.
var resource = new PathString(context.Resource.ToString());

@vanillajonathan it could sometimes be, it depends on what the component that calls Authorize passes in. Components can choose to pass in whatever type of resource they want so that the policies can process it to make a decision.

I see. I just foolishly assumed it was always a PathString because that is what I passed into it and what was passed into it from the example code I've seen in documentation I've read.
Thanks for the explanation. 👍


Not all timezones have hour offset, so we can not just divide offset …

In profile we have timezone select with names and offset of the timezone. Timezone hour offset converted from secconds to hour by  dividing to 3600. It's wrong. Because we have timezones with UTC +05:45, +12:45.
And as result: Pacific/Chatham (UTC +12.75). But expected:  Pacific/Chatham (UTC +12:45)

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

@andrewrbe Hey, could you please copy your PR over to https://github.com/dabilite/yii2-user/pulls ? We are doing a fork of this project right now. Thanks a lot !

@thyseus
Sure. https://github.com/dabilite/yii2-user/pull/9

Help is needed to review this.
@SamMousa @philippfrenzel @thyseus

Looks ok to me.

Merged.
Thanks!


Time taken for Controlled ODEs varies a lot with Initial State

Hello! Diffrax has been an incredible package for DEs, and I'm very impressed with all the tools available, however I've been getting a weird issue when applying to my project. I'm noticing that based on the initial states of a Coupled ODE system, the time taken for the solver can change by a factor of 25 times, and I'm unable to bring this down any further. I've been trying to solve a system of ODEs (Coherent State Langevin Equations of a Resonator and Transmon Qubit from QM), and below is an example of the code.
The system is two Complex-valued Coupled ODEs which are directly controlled by two input drives. This simulation is the base for training a RL agent, and so part of the initial state, the two drives (controls), and two frequency values for the drive are all variable parameters. For each run, I need to simulate when the transmon is in its ground state (initial state is 0) and excited state (initial state is 1) from which info is sent back to the RL model. Since I would have 100 runs in a batch on the same policy, I've tried using vmap but the time taken is still between 7.8 to 8.5ms.
The primary issue I'm noticing is that when I only simulate in the ground state, the simulation takes on the order of 200 to 300us which is perfect! But when I simulate in the excited state, the simulation takes about 7500 to 7800us, which added together gives the overall time I measure. I'm not too sure why this is occurring, as when I plot the results in the two cases (with the second code section), it doesn't appear that the solution is very stiff. Even so, I've played around with using Explicit (Tsit5) and Implicit (Kvaerno5) solvers, but Tsit5 remained the fastest. I've also checked the steps taken for each case, and it does seem that the steps taken correlates with the time taken (excited case takes 5000 steps, ground takes 190 steps). I've also played around with the initial dt0 and the PIDController params, however after tuning this is the best performance I get. Is there any better way to solve the excited state case and reduce steps taken with Diffrax? While 8ms is still decently fast, the extra order of magnitude in time taken is a big pain when I have to repeat the simulation for 200k to 300k steps for the RL training.
import time

import jax.numpy as jnp
from jax import jit, config, vmap, block_until_ready
from diffrax import (
    diffeqsolve,
    ODETerm,
    Tsit5,
    Kvaerno5,
    LinearInterpolation,
    SaveAt,
    PIDController,
)

from jaxtyping import Array

config.update("jax_enable_x64", True)
out_float_dtype = jnp.float64
out_complex_dtype = jnp.complex128

TS_ACTIONS = jnp.linspace(0.0, 1.0, 51, dtype=out_float_dtype)
TS_SIM = jnp.linspace(0.0, 1.0, 201, dtype=out_float_dtype)

def single_eval(
    res_state: Array,
    res_drive: Array,
    trans_drive: Array,
    res_freq: Array,
    trans_freq: Array,
):
    float_dtype = jnp.float64
    complex_dtype = jnp.complex128
    state_g = jnp.array([*res_state, 0.0, 0.0], dtype=float_dtype)
    state_e = jnp.array([*res_state, 1.0, 0.0], dtype=float_dtype)
    ts_actions = jnp.linspace(0.0, 1.0, 51, dtype=float_dtype)
    ts_sim = jnp.linspace(0.0, 1.0, 201, dtype=float_dtype)

    dt0 = 1e-3
    solver = Tsit5()
    max_steps = int(16**4)
    stepsize_controller = PIDController(
        rtol=1e-4, atol=1e-7, pcoeff=0.3, icoeff=0.4, dcoeff=0.1, jump_ts=ts_actions
    )
    saveat = SaveAt(ts=ts_sim, fn=lambda t, y, args: y[0] + 1j * y[1])

    drive_arr = jnp.vstack((res_drive, trans_drive), dtype=complex_dtype).T
    control = LinearInterpolation(ts=ts_actions, ys=drive_arr)

    args = jnp.array(
        [
            44400.38147835797 - 2.6677954118222127j,
            30070.71498952447 - 0.019959690218603887j,
            -0.013361622621663578,
            -9.792069634763914,
            -1795.9757810978654,
            0.0013124927820996545,
            0.48105931278166897,
            58.82111534791434,
            0.05202123087967161,
            res_freq[0],
            trans_freq[0],
        ],
        dtype=complex_dtype,
    )

    def vector_field(t, y, args):
        cr, ci, qr, qi = y
        drive_res, drive_trans = control.evaluate(t)
        (
            wc_eff,
            wq_eff,
            k1,
            k2,
            k3,
            a1,
            a2,
            a3,
            a4,
            res_drive_freq,
            trans_drive_freq,
        ) = args
        c = cr + 1j * ci
        q = qr + 1j * qi
        c_squared = cr**2 + ci**2
        q_squared = qr**2 + qi**2
        c_freq_term = drive_res * jnp.exp(-1j * (res_drive_freq - wc_eff.real) * t)
        q_freq_term = drive_trans * jnp.exp(-1j * (trans_drive_freq - wq_eff.real) * t)
        d_c = -1j * (
            (
                wc_eff.imag * 1j
                + c_squared * (k1 + 2 * a1 * q_squared)
                + q_squared * (k2 + a2 * q_squared)
            )
            * c
            + c_freq_term
            + a4 * q_freq_term
        )
        d_q = -1j * (
            (
                wq_eff.imag * 1j
                + c_squared * (k2 + a1 * c_squared + 2 * a2 * q_squared)
                + q_squared * (a3 * q_squared + k3)
            )
            * q
            + q_freq_term
            - a4 * c_freq_term
        )
        return jnp.array([d_c.real, d_c.imag, d_q.real, d_q.imag], dtype=float_dtype)

    ode_term = ODETerm(vector_field)

    sol_g = diffeqsolve(
        terms=ode_term,
        solver=solver,
        t0=0.0,
        t1=1.0,
        dt0=dt0,
        y0=state_g,
        args=args,
        saveat=saveat,
        stepsize_controller=stepsize_controller,
        max_steps=max_steps,
    )

    sol_e = diffeqsolve(
        terms=ode_term,
        solver=solver,
        t0=0.0,
        t1=1.0,
        dt0=dt0,
        y0=state_e,
        args=args,
        saveat=saveat,
        stepsize_controller=stepsize_controller,
        max_steps=max_steps,
    )
    return sol_g.ys, sol_e.ys, sol_g.stats, sol_e.stats

in_state = jnp.array([0.0, 0.0], dtype=out_float_dtype)
in_drive_res = jnp.zeros_like(TS_ACTIONS, dtype=out_complex_dtype) + 10.0
in_drive_trans = jnp.zeros_like(TS_ACTIONS, dtype=out_complex_dtype) + 0.5
in_res_freq = jnp.array([44400.38147835797], dtype=out_float_dtype)
in_trans_freq = jnp.array([30070.71498952447], dtype=out_complex_dtype)

jitted_single = jit(single_eval)

n_trials = 100
b_state = jnp.zeros((2, n_trials), dtype=out_float_dtype)
b_drive_res = jnp.zeros((51, n_trials), dtype=out_complex_dtype) + 10.0
b_drive_trans = jnp.zeros((51, n_trials), dtype=out_complex_dtype) + 0.5
b_res_freq = jnp.zeros((1, n_trials), dtype=out_float_dtype) + 44400.38147835797
b_trans_freq = jnp.zeros((1, n_trials), dtype=out_complex_dtype) + 30070.71498952447

single_g, single_e, g_stats, e_stats = jitted_single(
    in_state, in_drive_res, in_drive_trans, in_res_freq, in_trans_freq
)

start = time.time()
second_g, second_e, g_stats, e_stats = block_until_ready(
    jitted_single(in_state, in_drive_res, in_drive_trans, in_res_freq, in_trans_freq)
)
now = time.time()

batched_eval = jit(vmap(single_eval, in_axes=1))
batched_, batched__, a_, b_ = batched_eval(
    b_state, b_drive_res, b_drive_trans, b_res_freq, b_trans_freq
)
print(f"time taken for single g + e: {(now - start)*1e3}ms")
print(f"for g")
print(f"max_steps: {g_stats['max_steps']}")
print(f"num_accepted_steps: {g_stats['num_accepted_steps']}")
print(f"num_rejected_steps: {g_stats['num_rejected_steps']}")
print(f"num_steps: {g_stats['num_steps']}")
print(f"for e")
print(f"max_steps: {e_stats['max_steps']}")
print(f"num_accepted_steps: {e_stats['num_accepted_steps']}")
print(f"num_rejected_steps: {e_stats['num_rejected_steps']}")
print(f"num_steps: {e_stats['num_steps']}")

start = time.time()
batched_g, batched_e, batched_g_stats, batched_e_stats = block_until_ready(
    batched_eval(b_state, b_drive_res, b_drive_trans, b_res_freq, b_trans_freq)
)

now = time.time()
print(f"time taken for single g + e after batching: {(now - start)/n_trials*1e3}ms")
print(f"for g")
print(f"max_steps: {batched_g_stats['max_steps'][0]}")
print(f"num_accepted_steps: {batched_g_stats['num_accepted_steps'][0]}")
print(f"num_rejected_steps: {batched_g_stats['num_rejected_steps'][0]}")
print(f"num_steps: {batched_g_stats['num_steps'][0]}")
print(f"for e")
print(f"max_steps: {batched_e_stats['max_steps'][0]}")
print(f"num_accepted_steps: {batched_e_stats['num_accepted_steps'][0]}")
print(f"num_rejected_steps: {batched_e_stats['num_rejected_steps'][0]}")
print(f"num_steps: {batched_e_stats['num_steps'][0]}")

def simple_plotter_debug(ts, complex_1, complex_2, name_1, name_2, fig_name):
    fig, ax = plt.subplots(4, 2, num=fig_name)
    ax[0, 0].plot(ts, jnp.absolute(complex_1), label=f"{name_1} photons", color="red")
    ax[0, 0].legend()

    ax[1, 0].plot(
        complex_1.real, complex_1.imag, label=f"{name_1} phase", color="orange"
    )
    ax[1, 0].legend()

    ax[2, 0].plot(ts, complex_1.real, label=f"{name_1} real", color="blue")
    ax[2, 0].legend()

    ax[3, 0].plot(ts, complex_1.imag, label=f"{name_1} imag", color="green")
    ax[3, 0].legend()

    ax[0, 1].plot(ts, jnp.absolute(complex_2), label=f"{name_2} photons", color="red")
    ax[0, 1].legend()

    ax[1, 1].plot(
        complex_2.real, complex_2.imag, label=f"{name_2} phase", color="orange"
    )
    ax[1, 1].legend()

    ax[2, 1].plot(ts, complex_2.real, label=f"{name_2} real", color="blue")
    ax[2, 1].legend()

    ax[3, 1].plot(ts, complex_2.imag, label=f"{name_2} imag", color="green")
    ax[3, 1].legend()

    return fig, ax

import matplotlib.pyplot as plt

batch_g_element = batched_g[0]
batch_e_element = batched_e[0]

res_g = batch_g_element
res_e = batch_e_element
fig1, ax1 = simple_plotter_debug(
    ts=TS_SIM, complex_1=res_g, complex_2=res_e, name_1="g", name_2="e", fig_name="Res"
)
plt.show()

Apologies, I had been working with diffrax with a few modifications to handle complex dtypes as per Issue #197. Below is a working version for the current diffrax version with no modifications; I still get the same code time issues in it where the initial excited state takes far larger than steps than expected.
import time
import matplotlib.pyplot as plt

import jax.numpy as jnp
from jax import jit, config, vmap, block_until_ready
from diffrax import (
    diffeqsolve,
    ODETerm,
    Tsit5,
    Kvaerno5,
    LinearInterpolation,
    SaveAt,
    PIDController,
)

from jaxtyping import Array

config.update("jax_enable_x64", True)
out_float_dtype = jnp.float64
out_complex_dtype = jnp.complex128

TS_ACTIONS = jnp.linspace(0.0, 1.0, 51, dtype=out_float_dtype)
TS_SIM = jnp.linspace(0.0, 1.0, 201, dtype=out_float_dtype)

def single_eval(
    res_state: Array,
    res_drive: Array,
    trans_drive: Array,
    res_freq: Array,
    trans_freq: Array,
):
    float_dtype = jnp.float64
    complex_dtype = jnp.complex128
    state_g = jnp.array([*res_state, 0.0, 0.0], dtype=float_dtype)
    state_e = jnp.array([*res_state, 1.0, 0.0], dtype=float_dtype)
    ts_actions = jnp.linspace(0.0, 1.0, 51, dtype=float_dtype)
    ts_sim = jnp.linspace(0.0, 1.0, 201, dtype=float_dtype)

    dt0 = 1e-3
    solver = Tsit5()
    max_steps = int(16**4)
    stepsize_controller = PIDController(
        rtol=1e-4, atol=1e-7, pcoeff=0.3, icoeff=0.4, dcoeff=0.1, jump_ts=ts_actions
    )
    saveat = SaveAt(
        ts=ts_sim, fn=lambda t, y, args: jnp.array([y[0], y[1]], dtype=float_dtype)
    )

    drive_arr = jnp.vstack((res_drive, trans_drive), dtype=complex_dtype).T
    control = LinearInterpolation(ts=ts_actions, ys=drive_arr)

    args = jnp.array(
        [
            44400.38147835797 - 2.6677954118222127j,
            30070.71498952447 - 0.019959690218603887j,
            -0.013361622621663578,
            -9.792069634763914,
            -1795.9757810978654,
            0.0013124927820996545,
            0.48105931278166897,
            58.82111534791434,
            0.05202123087967161,
            res_freq[0],
            trans_freq[0],
        ],
        dtype=complex_dtype,
    )

    def vector_field(t, y, args):
        cr, ci, qr, qi = y
        drive_res, drive_trans = control.evaluate(t)
        (
            wc_eff,
            wq_eff,
            k1,
            k2,
            k3,
            a1,
            a2,
            a3,
            a4,
            res_drive_freq,
            trans_drive_freq,
        ) = args
        c = cr + 1j * ci
        q = qr + 1j * qi
        c_squared = cr**2 + ci**2
        q_squared = qr**2 + qi**2
        c_freq_term = drive_res * jnp.exp(-1j * (res_drive_freq - wc_eff.real) * t)
        q_freq_term = drive_trans * jnp.exp(-1j * (trans_drive_freq - wq_eff.real) * t)
        d_c = -1j * (
            (
                wc_eff.imag * 1j
                + c_squared * (k1 + 2 * a1 * q_squared)
                + q_squared * (k2 + a2 * q_squared)
            )
            * c
            + c_freq_term
            + a4 * q_freq_term
        )
        d_q = -1j * (
            (
                wq_eff.imag * 1j
                + c_squared * (k2 + a1 * c_squared + 2 * a2 * q_squared)
                + q_squared * (a3 * q_squared + k3)
            )
            * q
            + q_freq_term
            - a4 * c_freq_term
        )
        return jnp.array([d_c.real, d_c.imag, d_q.real, d_q.imag], dtype=float_dtype)

    ode_term = ODETerm(vector_field)

    sol_g = diffeqsolve(
        terms=ode_term,
        solver=solver,
        t0=0.0,
        t1=1.0,
        dt0=dt0,
        y0=state_g,
        args=args,
        saveat=saveat,
        stepsize_controller=stepsize_controller,
        max_steps=max_steps,
    )

    sol_e = diffeqsolve(
        terms=ode_term,
        solver=solver,
        t0=0.0,
        t1=1.0,
        dt0=dt0,
        y0=state_e,
        args=args,
        saveat=saveat,
        stepsize_controller=stepsize_controller,
        max_steps=max_steps,
    )
    return sol_g.ys, sol_e.ys, sol_g.stats, sol_e.stats

in_state = jnp.array([0.0, 0.0], dtype=out_float_dtype)
in_drive_res = jnp.zeros_like(TS_ACTIONS, dtype=out_complex_dtype) + 10.0
in_drive_trans = jnp.zeros_like(TS_ACTIONS, dtype=out_complex_dtype) + 0.5
in_res_freq = jnp.array([44400.38147835797], dtype=out_float_dtype)
in_trans_freq = jnp.array([30070.71498952447], dtype=out_float_dtype)

jitted_single = jit(single_eval)

n_trials = 100
b_state = jnp.zeros((2, n_trials), dtype=out_float_dtype)
b_drive_res = jnp.zeros((51, n_trials), dtype=out_complex_dtype) + 10.0
b_drive_trans = jnp.zeros((51, n_trials), dtype=out_complex_dtype) + 0.5
b_res_freq = jnp.zeros((1, n_trials), dtype=out_float_dtype) + 44400.38147835797
b_trans_freq = jnp.zeros((1, n_trials), dtype=out_float_dtype) + 30070.71498952447

single_g, single_e, g_stats, e_stats = jitted_single(
    in_state, in_drive_res, in_drive_trans, in_res_freq, in_trans_freq
)

start = time.time()
second_g, second_e, g_stats, e_stats = block_until_ready(
    jitted_single(in_state, in_drive_res, in_drive_trans, in_res_freq, in_trans_freq)
)
now = time.time()

batched_eval = jit(vmap(single_eval, in_axes=1))
batched_, batched__, a_, b_ = batched_eval(
    b_state, b_drive_res, b_drive_trans, b_res_freq, b_trans_freq
)
print(f"time taken for single g + e: {(now - start)*1e3}ms")
print(f"for g")
print(f"max_steps: {g_stats['max_steps']}")
print(f"num_accepted_steps: {g_stats['num_accepted_steps']}")
print(f"num_rejected_steps: {g_stats['num_rejected_steps']}")
print(f"num_steps: {g_stats['num_steps']}")
print(f"for e")
print(f"max_steps: {e_stats['max_steps']}")
print(f"num_accepted_steps: {e_stats['num_accepted_steps']}")
print(f"num_rejected_steps: {e_stats['num_rejected_steps']}")
print(f"num_steps: {e_stats['num_steps']}")

start = time.time()
batched_g, batched_e, batched_g_stats, batched_e_stats = block_until_ready(
    batched_eval(b_state, b_drive_res, b_drive_trans, b_res_freq, b_trans_freq)
)

now = time.time()
print(f"time taken for single g + e after batching: {(now - start)/n_trials*1e3}ms")
print(f"for g")
print(f"max_steps: {batched_g_stats['max_steps'][0]}")
print(f"num_accepted_steps: {batched_g_stats['num_accepted_steps'][0]}")
print(f"num_rejected_steps: {batched_g_stats['num_rejected_steps'][0]}")
print(f"num_steps: {batched_g_stats['num_steps'][0]}")
print(f"for e")
print(f"max_steps: {batched_e_stats['max_steps'][0]}")
print(f"num_accepted_steps: {batched_e_stats['num_accepted_steps'][0]}")
print(f"num_rejected_steps: {batched_e_stats['num_rejected_steps'][0]}")
print(f"num_steps: {batched_e_stats['num_steps'][0]}")

def simple_plotter_debug(ts, complex_1, complex_2, name_1, name_2, fig_name):
    fig, ax = plt.subplots(4, 2, num=fig_name)
    ax[0, 0].plot(ts, jnp.absolute(complex_1), label=f"{name_1} photons", color="red")
    ax[0, 0].legend()

    ax[1, 0].plot(
        complex_1.real, complex_1.imag, label=f"{name_1} phase", color="orange"
    )
    ax[1, 0].legend()

    ax[2, 0].plot(ts, complex_1.real, label=f"{name_1} real", color="blue")
    ax[2, 0].legend()

    ax[3, 0].plot(ts, complex_1.imag, label=f"{name_1} imag", color="green")
    ax[3, 0].legend()

    ax[0, 1].plot(ts, jnp.absolute(complex_2), label=f"{name_2} photons", color="red")
    ax[0, 1].legend()

    ax[1, 1].plot(
        complex_2.real, complex_2.imag, label=f"{name_2} phase", color="orange"
    )
    ax[1, 1].legend()

    ax[2, 1].plot(ts, complex_2.real, label=f"{name_2} real", color="blue")
    ax[2, 1].legend()

    ax[3, 1].plot(ts, complex_2.imag, label=f"{name_2} imag", color="green")
    ax[3, 1].legend()

    return fig, ax

batch_g_element = batched_g[0]
batch_e_element = batched_e[0]

res_g = batch_g_element[:, 0] + 1j * batch_g_element[:, 1]
res_e = batch_e_element[:, 0] + 1j * batch_e_element[:, 1]
fig1, ax1 = simple_plotter_debug(
    ts=TS_SIM, complex_1=res_g, complex_2=res_e, name_1="g", name_2="e", fig_name="Res"
)
plt.show()

I'm afraid this code snippet is larger than I can reasonably help you with! But FWIW it looks like you're doing things right -- your jit'ing, using block_until_ready, are using jump_ts alongside a linear control, etc.
It's not uncommon for the initial conditions to affect things substantially, and that might simply be how things are.
The only real suggestion I've got is to try using SaveAt(steps=True), and checking where all these extra steps are being taken. Is there some unusual pattern to them? What is the value of the vector field at these points -- again, check if there anything unexpected.

Oh my goodness, thanks for the suggestion! On checking the exact values of the vector field at the time steps taken by the solver, I noticed that I had some very high-frequency components in the equation. Turns out that I had added some extra terms which weren't necessary for the system I'm trying to simulate. Now with the corrections, the simulation takes 300us for simulating both the ground and excited state, and the steps taken are between 50 to 120 for the two states, which is much nicer to know!
Thanks for the advice!


Unhandled Exception during initialize

SmileID/SmileID.swift:95: Fatal error: 'try!' expression unexpectedly raised an error: Swift.DecodingError.keyNotFound(CodingKeys(stringValue: "prod_url", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"prod_url\", intValue: nil) (\"prod_url\").", underlyingError: nil))
Lost connection to device.

@natintosh please confirm your smile_config.json is correct or added on the project
Do not paste the contents here though 😄 It should have all tbe keys filled when you download it

test_url and prod_url were missing from the config we downloaded. But still, the exception wasn't properly handled and caused a crash. This shouldn't be the expected behaviour, if a key is missing, I think iOS SDK should gracefully handle while sharing a helping information than it rather causing a crash

That will be fixed. Thank you for raising the issue @natintosh

Fixed on #216


Pitches are not loaded correctly.

The main issue is the way the "accidentals" value should be interpreted. Currently, it is treated as a simple offset from a scale/chord position, but it seems it is not always the case.

This was greatly improved by #8


add support for the session api

This provides a simple wrapper around the v1/sessions consul API.

@gamepoet looks solid! :+1:

Merge it in! :)


chore: replace keeper methods #NTRN-268

Task: https://hadronlabs.atlassian.net/browse/NTRN-268
Related PR: https://github.com/neutron-org/neutron-sdk/pull/138
List of changes:

Replaced the use of ica keeper RegisterInterchainAccount, SendTx methods with msg server ones.

Test run: https://github.com/neutron-org/neutron-tests/actions/runs/8940208757

Test run: https://github.com/neutron-org/neutron-tests/actions/runs/8986944456


[Bug]: show table partition name with "`"

ODC version
4.2.2、4.2.3
OB version
ob 4.2.1
What happened?
If the partition name in the table's ddl contains an identifier, the displayed partition name also contains the identifier.

What did you expect to happen?
partition name do not contains the identifier.
How can we reproduce it (as minimally and precisely as possible)?
in ob mysql 4.2.1 create a parition table and the partition name in the table's ddl contains an identifier
Anything else we need to know?
No response
Cloud
No response

pass


Add extra NULL check before calling strlcpy().

This pull request is a copy of pull #5611, which I closed for bad git hygiene.

@j39m This is still not something I want to change - ippGetString cannot return NULL under these conditions, so either the ChromeOS fork of CUPS has broken something or there is some other memory corruption happening that is causing this behavior.
We really need to be able to reproduce this before any action can be taken. Is there nothing you can provide to further isolate the cause?

I'll try to reproduce this and will close this PR if nothing turns up. Sorry for the trouble.

I tried hacking at ippserver to reproduce the crash but turned up empty-handed.


Current table row headings are uninformative in tables mode

The row headings only read the AT name, so if you have VoiceOver on both OS X and iOS it will just read “VoiceOver” twice. Might want to include browser combo in first row?

Might be best to just combine the first three columns into one: “VoiceOver with Safari 9 on OS X 10.10”, “JAWS 16 with IE 11 on Windows 8.1”, “NVDA with Firefox on Windows 7”, etc.

Example in the feature/results-table branch: https://cdn.rawgit.com/MichielBijl/font-awesome/feature/results-table/tests/results.html

Fourth example on that page seems sufficiently clear. Will update all tables.

Done.


Static JS assets not copying

Hello Angular-Cli Folks!
I am having trouble getting static JS files (like jquery components for a static page) to copy over the dist folder in version 0.0.34.
Placing the JS folder in the client, or app/assets does nothing, and they are just skipped. Other non JS files are not however in these areas.
Let me know what is the right approach to have static JS files.

Hi @raghunat. Everything from the public/ directory gets copied as is to the dist/.

I'm not finding this to be the case when the -prod flag is used.  It seems like whenever a production build is done, js files inside of public are not included.

@JonGaribay I'm having this issue too. I'm using bower files on public folder, but js files are not included on dist folder when use ng serve -prod, only the .map are included

@jkuri this is still happening. Public JS files are not copied when using the -prod flag

Not sure this is exactly the same but I load an HttpInterceptor from the main.ts that doesn't seem to be getting copied when using the build for production environments.
// main.ts
import {HttpInterceptor} from './app/shared/http/http.interceptor';
Everything builds fine but when loading the web page I get:
zone.js:101 GET http://localhost:4200/app/shared/http/http.interceptor.js 404 (Not Found)
I have tried commenting out this line an am now noticing issues with other files not getting included.. So I would guess this is not specific to the main.ts module imports.
For example after commenting the interceptor out.. I now see issues with my app.components css file not getting included. Just as a heads up here, we are using sass which works perfectly in the development environment but I guess not in the production environment (not sure it is specific to the scss conversion so just thought i'd include this..)

@jkuri I am also seeing this. The javascript files in my public folder are not getting copied over.

@jkuri this issue should be reopened. I can replicate on latest master with ---prod flag set, nothing in the vendor folder is getting copied to dist.

I added in https://github.com/angular/angular-cli/pull/1129 that should address this issue. If it's accepted, it should be in the next beta.

We are having the same problem. Any idea when this will be fixed?

I agree. This seems like an obvious fix and there have been no comments in the PR about there being a problem. Why has this sat for almost a month without getting merged? It missed beta.9.