Markdown as default post format

This is convenient since html isn't highly being used for blog posting any more, most traditional blogging engines and platforms have switched to markdown as there default format. If this was a valid change, wouldn't you only have to change the radio value on settings.tmpl?

Yes, this is probably a change I need to change in some future version. The change is ultimately just a few lines, but the tests have to be updated as well.

@9uuso nice 👍

The initial work has now been done, I should land a commit on the dev branch in a few days.

@9uuso great to hear this, can't wait till it's fully featured in vertigo

This feature is now merged in dev branch. Feel free to try it out.
I'll close this ticket once I'll merge the branch into master.

branched merged


[WebApp] Latest update

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/1551

Codecov Report

Merging #1405 into master will decrease coverage by 0.96%.
The diff coverage is 63.72%.

@@            Coverage Diff             @@
##           master    #1405      +/-   ##
==========================================
- Coverage   52.61%   51.65%   -0.97%
==========================================
  Files        3299     3336      +37
  Lines       83894    86104    +2210
==========================================
+ Hits        44145    44476     +331
- Misses      39749    41628    +1879

Impacted Files
Coverage Δ

...ure/mgmt/web/models/slow_requests_based_trigger.py
57.14% <ø> (ø)
:arrow_up:

...zure-mgmt-web/azure/mgmt/web/models/worker_pool.py
50% <ø> (ø)
:arrow_up:

...zure-mgmt-web/azure/mgmt/web/models/site_limits.py
57.14% <ø> (ø)
:arrow_up:

azure-mgmt-web/azure/mgmt/web/models/capability.py
57.14% <ø> (ø)
:arrow_up:

...e-mgmt-web/azure/mgmt/web/models/sku_info_paged.py
80% <ø> (ø)
:arrow_up:

...b/azure/mgmt/web/models/app_service_environment.py
12.5% <ø> (ø)
:arrow_up:

...t-web/azure/mgmt/web/models/api_definition_info.py
80% <ø> (ø)
:arrow_up:

azure-mgmt-web/azure/mgmt/web/models/str_paged.py
80% <ø> (ø)
:arrow_up:

...gmt-web/azure/mgmt/web/models/backup_item_paged.py
80% <ø> (ø)
:arrow_up:

azure-mgmt-web/azure/mgmt/web/__init__.py
100% <ø> (ø)
:arrow_up:

... and 266 more

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 a893677...f21d7d9. Read the comment docs.

@yugangw-msft ?

Replaced by #1461


Capture image date/time (Possible enhancmenet)

I was just wondering if there's any kind of flag when running the batch detector to include the image date and time (the date/time the image was taken) as part of the JSON output?  I looked quickly and didn't see anything that seemed to do that.
If something like that does not exist, then I would like to ask it be considered as an enhancement also making sure that date/time information is copied as part of convert_output_format.py.  Our researcher here, and I could imagine other researchers, finds this information very helpful as they do various analyses as part of their post-processing procedures.

We don't do this right now, but you're right that since we have to read the images anyway, it wouldn't really slow processing down significantly (I think?), and I can see a number of scenarios where it would be convenient.
One of the reasons we haven't done this is that most MegaDetector users read their MD results into Timelapse, which already reads date/time information from images.  If you are planning to use Timelapse, I think you don't need anything extra from the MegaDetector inference scripts.
FYI, we have a separate script (read_exif.py) to fetch all metadata for all images in a folder; I typically combine this after the fact with MegaDetector results.
So you have a couple of paths by which you may not actually need new functionality, but I'll leave this open for now, in fact I'll tag this as "good first issue", this is relatively self-contained.


BottomSheet should be useable to show on top of the screen

Steps to Reproduce

I would like to show this kind of context menu on top of the screen. After trying out Scaffold/AppBar (didnt work because I didnt get the background transparent) and Dialog I ended up using the BottomSheet.
That works well but unfortunately, like the name indicates the context menu shows on the bottom.
Well it would be great if the BottomSheet could loose the Bottom and be just a Sheet and has some alignment parameter for top/bottom and be usable more generically. It seems like the change of the source should be small. And yes I could just do it but it seems like a very common Android use-case.
Also the ButtonSheet is currently showing a transparent overlay which cannot be changed and avoids any input in that area, besides dismissing the sheet itself. If the user wants to select multiple objects this would not be usable (see the pictures above where the user can select multiple objects to share)
`
[√] Flutter (on Microsoft Windows [Version 10.0.16299.64], locale en-US, channel alpha)
• Flutter at c:\sdks\flutter
• Framework revision e8aa40eddd (6 weeks ago), 2017-10-17 15:42:40 -0700
• Engine revision 7c4142808c
• Tools Dart version 1.25.0-dev.11.0
[√] Android toolchain - develop for Android devices (Android SDK 27.0.1)
• Android SDK at C:\Users\ride4\AppData\Local\Android\sdk
• Platform android-27, build-tools 27.0.1
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[√] Android Studio (version 3.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[√] IntelliJ IDEA Community Edition (version 2017.2)
• Flutter plugin version 19.1
• Dart plugin version 172.4343.25
[√] Connected devices
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)
`

I don't understand the effect you would like. Can you show some screenshots of what you mean and what you want/don't want? Also maybe why AppBar or Scaffold didn't work?

It's about showing BottomSheet at the top, like this part in the screenshot above

What's the difference between that and an AppBar?

This would actually be useful in the app we're working on.
We have a popup button at the top of the screen which triggers the bottom sheet to appear. Since the buttons are at the top it would be better if the 'bottom screen' was a 'top screen' which dropped down from the top.

cc @willlarche to ask material if this widget idea is one they want to support.
If this idea becomes an official material widget, it makes sense for us to implement it. otherwise, probably best for this to be done as a separate package.

Thanks for the designs! It's a cool idea. It's not a way we currently recommend using the bottom sheet so we wouldn't consider adding it as official functionality. But I think you have some options for a user experience that accomplishes your needs! Take a look at the following components:

Banner
Dropdown menu  (Not recommended for iOS)
Bottom app bar

Another possibility is just having the state of the actions in the app bar change when the user hits an action. But I don't think you'll be able to do as many as I see in your screenshot.
@hillelcoren , bottom app bar might work particularly well for you. By moving all the interaction to the bottom of the screen, the bottom sheet will appear in the same region as the action that triggered it. The user will not have to move their hand to use it, just their thumb.

Hi @ride4sun , I also looking for the CAB (Context Action Bar) in Flutter without success. If I find it, will post here, ok?

Hey @ride4sun , I loved your WhatsApp interface in Flutter!!!!! Using redux to me is awesome!!!! Do you have open code for this project in github to inspire newbie like me?

Thx, that would be great.
On Sat, Jun 2, 2018, 06:51 Colque<EMAIL_ADDRESS>wrote:

Hi @ride4sun https://github.com/ride4sun , I also looking for the CAB
(Context Action Bar) in Flutter without success. If I find it, will post
here, ok?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/13205#issuecomment-394089110,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHYc66N2f5H0Pe1Ws-e4_C9YMw6yiM1Fks5t4phmgaJpZM4QrJAy
.

You can use this workaround package for now.

Hello @ColquePaxi, here is a workaround package for CAB


duplicates of hashes

Hello! I use Hashids 1.0.6 and received duplicates of hashes.
$hashids = new Hashids ('fabrika', 8);
echo $hashids->encode(53); // 3o1pkgy5
echo $hashids->encode(97); // 3o1pkgy5

Hi @vakorovin,
The first encode produces 3o1pkgy5, while the second produces 3o1pKgy5.
Notice that K is capitalized.

Oh! Thank you!

Had the same type of issue, helped me a lot. 👍  This link to understand how it could conflict when using unique in sql on a field that is not case sensitive
Hope it will help someone else 👍


Price indicator for event in list view

Ideally, it would be great to have a price indicator on the event card in the home page.
The price indicator could be 1-5 stacked dollar signs, or simply "Free" tag.

There are a few challenges to this:

Event API does not provide price info other than "Free"
"Free" tag does not exist on all free events

These are not minor challenges so if there is time in the end of the project this could be worked on.


Lost superserviceID and superserviceKey

I override config.nuve.superserviceID and config.nuve.superserviceKey in the licode_config by accident . How can I get them back without install the hole thing again?
I cant find it... its not in the mongoDb and i cant find it in the files.
Pls help.
ty

By reinstalling Nuve you should get those back.
On Saturday, July 18, 2015, cracker0dks<EMAIL_ADDRESS>wrote:

I override config.nuve.superserviceID and config.nuve.superserviceKey in
the licode_config by accident . How can I get them back without install the
hole thing again?
I cant find it... its not in the mongoDb and i cant find it in the files.
Pls help.
ty
—
Reply to this email directly or view it on GitHub
https://github.com/ging/licode/issues/326.

--
Sent from Gmail Mobile

ok that worked. I thought i could get it without.
Thanks :)


Authors / Contributors metadata?

It seems Bikeshed metadata only knows about Editor (and Former Editor) but not about Author or Contributor
It seems the most recent pubrules (https://www.w3.org/pubrules/doc/rules/?profile=WD#front-matter) uses the terms Editor and Author interchangeably, but suggests listing "contributors" in an acknowledgements section.
At times it is useful to list various classes of a spec's co-authors on the title page and distriguish among them e.g. as "Editors" and "contributors / authors".
Thus I suggest adding metadata item of (at least) "Author" to bikeshed.

While the Editor line has some special parsing rules to handle common stuff, you can add whatever additional information you want via custom metadata.
Just put in !Contributors: some person's name here; do it multiple times to get several people listed under the "Contributors" group.
(Note that you can also use Editor Term if you want the spec to say "Authors" instead of "Editors".)

Ok, we'll try it out, thanks :)

@tabatkins

...you can add whatever additional information you want via custom metadata.
Just put in !Contributors: some person's name here; do it multiple times to get several people listed under the "Contributors" group.

I tried that and the results are suboptimal.  This source:
!Contributors: Arnar Birgisson, w3cid 87332, Google<EMAIL_ADDRESS>!Contributors: Alexei Czeskis, w3cid 87258, Google<EMAIL_ADDRESS>!Contributors: Hubert Le Van Gong, w3cid 84817, PayPal<EMAIL_ADDRESS>
..produced this rendered html:
Contributors:
    Arnar Birgisson, w3cid 87332, Google<EMAIL_ADDRESS>    Alexei Czeskis, w3cid 87258, Google<EMAIL_ADDRESS>    Hubert Le Van Gong, w3cid 84817, PayPal<EMAIL_ADDRESS>
Rather than what I wanted, which would be properly-linked rendered HTML as the "Editor" metadata produces, as in:
Contributors:
    Arnar Birgisson (Google)
    Alexei Czeskis (Google)
    Hubert Le Van Gong (PayPal)

It would be helpful if BS would treat "Contributor:" metadata entries the same as "Editor:".  Thanks.

Per @frivoal suggestion, a way to opt a custom metadata into particular parsing rules. Start with Editor-parsing, see what else I need to do.


AIMaterial missing GetTexture and GetTextureCount methods

Environment

LWJGL version: 3.2.3
LWJGL build #: X
Java version: 1.8
Platform: Windows
Module: lwjgl-assimp

Description
Hello!
I am studying OpenGL wtih learnopengl site and I'm stuck on chapter about loading models with Assimp.
And to be exact I'm stuck at this particular snippet.
vector<Texture> loadMaterialTextures(aiMaterial *mat, aiTextureType type, string typeName)
{
    vector<Texture> textures;
    for(unsigned int i = 0; i < mat->GetTextureCount(type); i++)
    {
        aiString str;
        mat->GetTexture(type, i, &str);
        Texture texture;
        texture.id = TextureFromFile(str.C_Str(), directory);
        texture.type = typeName;
        texture.path = str;
        textures.push_back(texture);
    }
    return textures;
}

I couldn't find GetTextureCount and GetTexure methods in AIMaterial struct in your implementation of Assimp wrapper.
I also checked this Assimp demo
But it doesn't follow parent-child mesh loading model as it is recommended by LearnOpenGL. So I don't know what to do now. Could you please give me an advice?

Hey @Pinkolik,
LWJGL provides bindings to C APIs only, it does not expose C++ APIs. The corresponding functions are aiGetMaterialTextureCount and aiGetMaterialTexture in the Assimp class. These functions take an AIMaterial struct as their first parameter.


Distribute compiled dictionaries from neologd-ipadic

In v0.3.1, compiled dictionaries from neologd-ipadic have not been distributed because the licenses of Neologd and IPADIC collide.
To solve this, we will employ Naist-jdic instead of ipadic.

This will be resolved with https://github.com/daac-tools/vibrato/issues/98


Allow togging rapid features in map data panel

I was looking for the toggle to hide the pink building datasets in the map data panel but could not find it.
One can toggle it from the rapid button.
I wonder if this should be duplicated to the map data panel so all data toggles are in the same place

Makes sense!  Yes I've also found it frustrating that the Rapid layer isn't shown with the other data layers.


feat: add GossipsubMaxIHaveLength config

Description
In the comments here:
https://github.com/ChainSafe/js-libp2p-gossipsub/blob/9e572159b502940f3e7d9fa5db0863541fb88eda/src/constants.ts#L199-L203
It is stated that it should be configured if needed:

You should adjust this value from the default if your system is pushing more than 5000 messages in GossipsubHistoryGossip heartbeats

But it's not configurable. constants.GossipsubMaxIHaveLength is used all over the code.
Expected behaviour
I think it should either be a config, or the comment should be updated. As a side note, based on my investigations, this is not part of the spec anyways.

Happy to accept a PR for this feature


Gossip + Memberlist sync

In some cases, e.g. using SeedNodeProvider, we might be too eager to start sending gossip requests.
e.g.
Node A tells Node C that Node B exists
Node C, now has node B in its memberlist, and immediately starts sending gossip
This is fine, but node C and node B might not yet have established a remote connection. and the gossip might timeout due to this.
not a major issue, but results in needless excessive logging

Various solutions could be interesting here.
e.g. memberlist could know how long it has known about other members. and gossip could be told to not gossip to nodes that are younger than x seconds.
or memberlist could have knowledge on the remote status of each member. e.g. know if we are connected to this node yet


We should be removing sources not deleting them

@devoncarew PTAL
We were causing sources to accumulate which was causing analysis inefficiency.
Please see #219

lgtm!


fix: buttonText instead of caption

#25
I changed dev schema and fieldSubmit

Please fix fieldSubmit.spec.js too. It contains caption

Coverage remained the same at 86.515% when pulling f47f704d1b4c38e48e41b8efae6c27dccc939126 on lionel-bijaoui:LB_submit_buttonText into f4f1f186ded9461833eff2c7f37054dc700be3e9 on icebob:master.

Thanks. Merged


[Statistics] Setup Matomo

Is your feature request related to a problem? Please describe.
We want to visualize some usage statistics so that Bayern and Nürnberg can make "better bussiness" decisions.
Describe the solution you'd like
A Matomo service is set up. Ask @svenseeberg for help.
Describe alternatives you've considered
❌
Additional context
See chat here.

Is done. Credentials can be found in passbolt


Bug when view of calendar changed

Context:

Browser Chrome
Browser-version 123.0.6312.58
Schedule-X version:
"@schedule-x/calendar": "^1.27.0",
"@schedule-x/shared": "^1.27.0",
"@schedule-x/theme-default": "^1.27.0",
"@schedule-x/vue": "^1.23.0

Describe the bug
when error occured, i've got empty calendar

here in devtools i found this

I think error occured when view of calendar changed to month or to another view
also when i try to select day of month i got this

error in console

To Reproduce
// plugin to make calendars reactive

class CalendarsUpdaterPlugin {
  name: string = "calendars-updater"
  $app!: CalendarAppSingleton

  init($app: CalendarAppSingleton): void {
    this.$app = $app
    console.log("$app", this.$app)
    this.$app.config.calendars.value = {
      ...store.calendarBookings?.reduce(
        (acc, v) => ({
          ...acc,
          [v.id]: v.calendar,
        }),
        {}
      ),
    }
  }

// i tried use this function but output of this.$app is undefined
  updateCalendars(calendar: any): void {
    console.log("config", this.$app) // **output is undefined**
    console.log("calendar plugin", calendar)
    this.$app.config.calendars.value = {
      ...store.calendarBookings?.reduce(
        (acc, v) => ({
          ...acc,
          [v.id]: v.calendar,
        }),
        {}
      ),
    }
  }
}

const calendarApp = createCalendar({
  plugins: [new CalendarsUpdaterPlugin()],
  views: [viewDay, viewWeek, viewMonthGrid, viewMonthAgenda],
  defaultView: viewWeek.name,
  locale: "ru-RU",

  calendars: {},
  events: [],
  dayBoundaries: {
    start: "07:00",
    end: "21:00",
  },
...
})

// update events
watch(
  () => store.calendarBookings,
  (newValue: any, oldValue: any) => {
    calendarApp.events.set(newValue)
  }
)

Steps to reproduce the behavior:

select view of calendar (month, week, day)
click on datepicker
doesn't display days of month

I think I'll need a minimal reproduction environment to help out here. I tried reproducing this in the vue-example repo: https://github.com/schedule-x/vue-example. But I didn't manage to replicate your error.
Could you please set up a minimal reproduction example in Stackblitz, GitHub repo or similar?

@tomosterlund I found solution for this issue.
The problem was with plugin.
  plugins: [new CalendarsUpdaterPlugin()],
  views: [viewDay, viewWeek, viewMonthGrid, viewMonthAgenda],
  defaultView: viewWeek.name,
  locale: "ru-RU",

  calendars: {},
  events: [],
  dayBoundaries: {
    start: "07:00",
    end: "21:00",
  },
...
})

i just read this Issue since i got the same error now setting this up. Unfortunately the fix doesnt work for me. On first page load, the calendars are added correctly, but when trying to fetch and update agein without reloading the page again, i get the this.$app is undefined error.
`import { CalendarAppSingleton } from '@schedule-x/shared'
class CalendarsUpdaterPlugin {
name: string = 'calendars-updater'
$app!: CalendarAppSingleton
init($app: CalendarAppSingleton): void {
  this.$app = $app
}

updateCalendars(calendars: any): void {
  console.log('Updating calendars', calendars, this.$app);

  const updatedCalendars = { ...this.$app.config.calendars.value };

  Object.keys(calendars).forEach((calendarKey) => {
    updatedCalendars[calendarKey] = calendars[calendarKey];
  });
  this.$app.config.calendars.value = updatedCalendars;
}

}
export default CalendarsUpdaterPlugin;`
Do you have any clue how to fix this?

I still need a minimal repro environment to work on this. If you can share one over for example Code Sandbox or similar, I can have a look

Closing this due to inability to reproduce. Feel free to open this issue again with a reproduction example


Loading class fails with _.toMap is not a function

(node:20881) UnhandledPromiseRejectionWarning: TypeError: _.toMap is not a function
    at ClassLoader.loadClasses (/Users/dselman/dev/javacto/node_modules/jvm/lib/core/ClassLoader.js:147:34)
    at /Users/dselman/dev/javacto/node_modules/jvm/lib/core/Jar.js:138:23
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Fixed in 64bc877a. Thanks for the report! Release tagged at 0.4.0


The top-right of the MultiSelect component doesn't seem to close the box

Detailed description
There is small dropdown arrow on MultiSelect component. It seems to open/close the MultiSelect component before any option is selected/unselected.
After clicking inside dropdown to select an option, the top-right button seems to stop working. Clicking on that button while drop-down is closed will not close the box.
Steps to reproduce the issue

Go to http://react.carbondesignsystem.com/?selectedKind=MultiSelect&selectedStory=default&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Factions%2Factions-panel
Open/close the MultiSelect component by clicking on top-right button.
Open the component and select any option from MultiSelect.
Clicking on top-right button doesn't close the box. To close the box one must click outside the MultiSelect component.

We are also running in to this. It seems like the handleOnStateChange function is actually always called twice after a user selected a value in the MultiSelect. I added two console.logs and created a video to demonstrate this. You can see that at the beginning there is one Setting isOpen to log per click but after a selection there are two, where the second call is undoing the first one.
This is actually not limited to the icon on the right but applies to clicking anywhere in the ListBox.Field


Proband issues

What is the definition of Proband? Should we use a different term?
What should we do about families with 2 affected children (ie. 2 Probands)

I have been using the NCIT definition here:

Definition:  The affected family member who seeks medical attention for a genetic disorder thereby bringing the family under study.

For March I recommend changing this term to "Anchor" and using this individual as the anchor for family relationships. The Anchor would be the DS participant with the earliest ID in the family, so there will only one Anchor per family. See example here.
If it is important to be able to have two Probands per family, we can plan for that post-March.
Feedback/suggestions for March, and post-March?

Thanks Pierrette!
My mental definition is closer to NHGRI'ss:

A proband is an individual who is affected by a genetic condition or who is concerned they are at risk. Usually, the proband is the first person in a family who brings the concern of a genetic disorder to the attention of healthcare professionals.

I was swayed a little bit the other direction in the conversation. Given that either term would require clarification, I think it's reasonable to continue to use "Proband". I think we should make our operating definition clear in the UI, no matter if we change or not @jthib077 .
Another thing we could potentially expand to later is to include concepts like "Affected sibling" if we find that would add clarity.

Consider adding a Person class that doesn't change across studies. Participant would be about their role in a particular study.
For now, leave as done for Oct 2022 and plan for refactor post March (Matt's PR https://github.com/include-dcc/include-linkml/pull/85)

Hey Robert, would it suffice to add these specifications for the Proband field within the exposed Data dictionary in the Help center? https://help.includedcc.org/docs/harmonized-portal-data
I think many fields in the portal may need more clarification but from a UI/UX perspective, it might be inconsistent to provide a definition for one field and not for others directly in the UI. It might be better to point users to the data dictionary for this type of clarification.

That's a reasonable starting point. We can see what users think or if there's confusion and move from there if needed. There are some handy mouseover options in other spaces that might be options.

v4: Dual Probands also causing issues with duplicate families - see Slack thread with @jthib077 :

We figured that the reason we had duplicate participants is because of portal logic to build the Families based on the relationships we have. This happens mainly because we have a few edge cases where we have 2 probands for one family. The way that we build the family roles is by anchoring on 1 proband and “exploding” the family to say this participant has this relationship with proband of the family.
Roughly what happens with two probandsi s that we “explode” the family twice since there are 2 probands this participant has this relationship  with proband 2 of the family. In other words, if there are two, it is possible a family member may have a different relationship proband 1 and proband 2 so how do we know how to define the role in the family
Can you explain what the family relationship model is from your point of view? Just so we have a better understanding of how we can handle this issue. Because naturally, we need to have some sort of anchor to define the family relationships. Are the family relationships always in reference to the proband?
e.g. below of affected family where 	pt-nj89gesq, and pt-ant7fm3e , are probands and siblings.  https://portal.includedcc.org/data-exploration/participants?sharedFilterId=ff2935e2-2c6b-46a7-a6ca-3b3e7feab38b

  "release_id": "re_20231117_1",
        "sex": "male"
        "family_type": "other",
        "study_id": "HTP",
        "age_at_data_collection": 111,
        "is_proband": true,
        "outcomes": [],
        "nb_biospecimens": 68,
        "down_syndrome_diagnosis": [
            "Down syndrome (MONDO:0008608)"
        ],
        "families_id": "F0084",
        "family": {
            "family_id": "F0084",
            "relations_to_proband": [
                {
                    "role": "sibling",
                    "participant_id": "pt-gyypzmx8zq"
                },
                {
                    "role": "proband",
                    "participant_id": "pt-nj89gesq"
                }
            ]
        },
        "fhir_id": "pt-nj89gesq"

In new Family Model, we will put proband(s)' participant ID into Family along with which disease is under study. Control families won't have any probands. Relationships will be provided separately, not anchored by a proband.


The test directories now use standard temp path.

Changes Hadoop support to use java.nio.file.Files.createTempDirectory. This changes the path and
names for the temp directories.

Looks good to me, and confirmed to work with coppersmith's thermometer tests :+1:

Thank you @dkristian


apis_metainfo: drop browsingviews.py

With the integration of browsing in 91464d0 we do now have a couple of views from the former browsing module in apis_metainfo, namely in browsingviews.py: GenericListView, BaseCreateView and BaseUpdateView. They are only used by the Uri views in apis_metainfo/views.py. I suggest to integrate the three views into the respective Uri views and delete the browsingviews.py module.  The BaseCreateView and BaseUpdateView are easy, though I suggest to drop the additional context data. The GenericListView is a bit more complex, I suggest to replace it with a simple django_tables2.SingleTableView with a sensible defaults of fields in the table. If needed I could reimplement the filter and additional columns functionality for the view.

The listview should contain the root_object as a column; the listview should provide the filtering by URI contains


[TypeSpec] Add an option to force System.Text.Json converter to be applied to models

For swagger, we can apply the value of converter to x-csharp-usage, e.g. https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/eventgrid/Azure.Messaging.EventGrid/src/autorest.md#apply-converters-and-update-namespace-for-system-event-data-models.
This is not possible in Typespec and is a blocker for migrating the .NET Event Grid system events from swagger to Typespec.

Well we could do it by using the CodeGenModel attribute to append usages to a model.
But this feature is not implemented for DPG yet. My point here is that to support this, we do not need anything updated on typespec side or TCGC side, we could do it all on the dotnet side.

We now believes that converter should not belong to usage therefore in the typespec world we no longer support the converter usage.
But in the meantime, we will create a decorator in TCGC's csharp namespace to let you mark a specific model needs a JSON converter.
On the other hand, since we are going to introduce the public serialization story, the converter should no longer be introduced for new models - if we are trying to solve a backward compatibility issue, we could always do that using customized code, I believe it is the case here.

Hi @JoshLove-msft considering the existence of this new public serialization feature, new libraries never need the converters any more.
And in your case, if you would like to migrate old libraries with converters (because you cannot remove the attribute otherwise breaking change), we could use customization code to add back the converters.
Therefore the generator will not implement it any more, and we plan to remove the usage converter when it is possible.
Close this as a "wont fix"

we need to implement this in both autorest.csharp and microsoft/autorest

Any update on this? This is needed for the Event Grid migration. /cc @m-nash @lmazuel

I think https://github.com/Azure/autorest.csharp/issues/4887 will resolve this

@ArthurMa1978, @m-nash:   Can we please prioritize this for delivery no later than the second week of August?

@hasJsonConverter in csharp namespace

This can be enabled by adding @useSystemTextJsonConverter to the model, example can be found.


Can this be integrated in a android app, and how to use it on the  internal code?(preferably not packing the python script)

Checklist

[x ] I'm asking a question
[ x] I've looked through the README and FAQ for similar questions
[ x] I've searched the bugtracker for similar questions including closed ones

Question

WRITE QUESTION HERE
i want to use the youtube-dl in an android app, and i prefer not packing the python script, is any other way to use it? also how it is used on internal code for downloading?

I guess it depends on how you are developing this app. For instance if you are using NodeJs, npm has a couple youtubedl packages that you can use (https://www.npmjs.com/package/youtube-dl, https://www.npmjs.com/package/ytdl-core)

I guess it depends on how you are developing this app. For instance if you are using NodeJs, npm has a couple youtubedl packages that you can use (https://www.npmjs.com/package/youtube-dl, https://www.npmjs.com/package/ytdl-core)

im working with him, its python, we are making a youtube derivate

in python, you should be able to just do from youtube_dl import YoutubeDL. Make sure you build with the package included

@JChris246 note that ytdl-core does not seem to be using youtube-dl.


tests: properly propagate the AZURE_STORAGE_KEY variable

Closes #3189

E2E: https://github.com/EnterpriseDB/cloudnative-pg/actions/runs/6769065595


Feat: Improve Logging for Go Server

This MR improves the logging for the Go server by allowing users to log out the full request or response bodies in the setup function, aiding in debugging connectivity issues and other errors with the client-server data flow.

@johnybx Would love to get your review of this. Think more optional, more verbose logging will be helpful for people and us trying to debug issues in the future.

Hi,
I had just 2 small comments otherwise it looks great :+1:. I tested it and yes this would be very useful for debugging multiline comments :grin:.
BTW just so that you know, my last two PRs were literally first lines of go code which I ever wrote so maybe I will not notice everything :slightly_smiling_face:


feat: named exports

To allow a more straightaway import of the JSONSchema, this PR adds a named export of the schema to the package.
I also added a default export (".": "./dist/index.js"), but I'm also wondering if we should add other exports (and also types) or if this is sufficient for not breaking the package import in other contexts

This may fix the issue but also means changing how we import geometry in @comapeo/schema; so I'm favoring using createRequire in modules that import geometry for now, and we can go back to this later.
closing


Tls13 prototype ssl opt test error

Fixing two test case failure in ssl_opt.sh in tls13-prototype branch. Both test suites use non-exist certs/ca.crt. The first test case seems a redundant one.
21 TLS 1.3 TLS_AES_256_GCM_SHA384, ECDHE-ECDSA, SRV auth ............... SERVER START TIMEOUT
...
26 TLS 1.3, TLS_AES_256_GCM_SHA384 with ECDHE-ECDSA (server auth only) with ticket  SERVER START TIMEOUT

# TLS 1.3 TLS_AES_256_GCM_SHA384, ECDHE-ECDSA, SRV auth
../programs/ssl/ssl_server2 server_addr=<IP_ADDRESS> server_port=16104 allow_sha1=1 debug_level=5 force_version=tls1_3 key_exchange_modes=ecdhe_ecdsa ca_file=certs/ca.crt crt_file=certs/server.crt key_file=certs/server.key
Number of signature algorithms: 10

  . Seeding the random number generator... ok
  . Loading the CA root certificate ... failed
  !  mbedtls_x509_crt_parse returned -0x3e00

Last error was: -0x3E00 - PK - Read/write of file failed

  . Cleaning up... done.
SERVER START TIMEOUT

# TLS 1.3, TLS_AES_256_GCM_SHA384 with ECDHE-ECDSA (server auth only) with ticket
../programs/ssl/ssl_server2 server_addr=<IP_ADDRESS> server_port=16104 allow_sha1=1 debug_level=5 force_version=tls1_3 key_exchange_modes=all tickets=1 ca_file=certs/ca.crt crt_file=certs/server.crt key_file=certs/server.key
Number of signature algorithms: 11

  . Seeding the random number generator... ok
  . Loading the CA root certificate ... failed
  !  mbedtls_x509_crt_parse returned -0x3e00

Last error was: -0x3E00 - PK - Read/write of file failed

  . Cleaning up... done.
SERVER START TIMEOUT

@lhuang04 The certificates seem to exist, see here. It's therefore not clear to me why the test is failing for you - indeed, it passes on my machine.
That said, the location tests/certs is wrong for the test data - it should be tests/data_files as in upstream Mbed TLS. I'll open a PR to fix this, and then we can take it from there.

@lhuang04 The certificates seem to exist, see here. It's therefore not clear to me why the test is failing for you - indeed, it passes on my machine.
That said, the location tests/certs is wrong for the test data - it should be tests/data_files as in upstream Mbed TLS. I'll open a PR to fix this, and then we can take it from there.

@lhuang04 Could you check whether https://github.com/hannestschofenig/mbedtls/pull/106 fixes the problem for you?

@lhuang04 Could you check whether https://github.com/hannestschofenig/mbedtls/pull/106 fixes the problem for you?

Issue are solved by #106. Thank you for fix.

Issue are solved by #106. Thank you for fix.


Check createDatasourceFromFile error

Previously the error result of createDatasourceFromFile in the loop in createDatasourcesFromFile was dropped.  This meant any errors from datasource creation would be ignored.  This change makes the loop check and propagate any errors.

Thanks, good catch! Could you update all the usages of the image in the repo and bump the patch version tag by 1? Then I can just build and push the image and then merge the PR.

@brancz like that?

Perfect! I'll get it up and then merge.


QEMU booting in endless looping at post-03

When I implemented until Newlines section at post-03 and then boot the QUME, cause endless loop like following.
https://github.com/phil-opp/blog_os/assets/56914289/03a52d19-f310-4ff2-920e-fd90f6165d69
I think if I add a volatile type implementation, they won't work.
Could you tell me how to resolve?
Thank you.
Environment
macOS Sonoma

QEMU emulator version 8.2.1
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers

Following is source code(vga_buffer.rs)
use volatile::Volatile;

#[allow(dead_code)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum Color {
    Black = 0,
    Blue = 1,
    Green = 2,
    Cyan = 3,
    Red = 4,
    Magenta = 5,
    Brown = 6,
    LightGray = 7,
    DarkGray = 8,
    LightBlue = 9,
    LightGreen = 10,
    LightCyan = 11,
    LightRed = 12,
    Pink = 13,
    Yellow = 14,
    White = 15,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(transparent)]
struct ColorCode(u8);

impl ColorCode {
    fn new(foreground: Color, background: Color) -> ColorCode {
        ColorCode((background as u8) << 4 | (foreground as u8))
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
struct ScreenChar {
    ascii_character: u8,
    color_code: ColorCode,
}

const BUFFER_HEIGHT: usize = 25;
const BUFFER_WIDTH: usize = 80;

#[repr(transparent)]
struct Buffer {
    chars: [[Volatile<ScreenChar>; BUFFER_WIDTH]; BUFFER_HEIGHT],
}

pub struct Writer {
    column_position: usize,
    color_code: ColorCode,
    buffer: &'static mut Buffer,
}

impl Writer {
    pub fn write_string(&mut self, s: &str) {
        for byte in s.bytes() {
            match byte {
                0x20..=0x7e | b'\n' => self.write_byte(byte),
                _ => self.write_byte(0xfe),
            }
        }
    }

    pub fn write_byte(&mut self, byte: u8) {
        match byte {
            b'\n' => self.new_line(),
            byte => {
                if self.column_position >= BUFFER_WIDTH {
                    self.new_line();
                }

                let row = BUFFER_HEIGHT - 1;
                let col = self.column_position;

                let color_code = self.color_code;
                self.buffer.chars[row][col].write(ScreenChar {
                    ascii_character: byte,
                    color_code,
                });
                self.column_position += 1;
            }
        }
    }
    fn new_line(&mut self) {}
}

use core::fmt;

impl fmt::Write for Writer {
    fn write_str(&mut self, s: &str) -> fmt::Result {
        self.write_string(s);
        Ok(())
    }
}

pub fn print_something() {
    use core::fmt::Write;
    let mut writer = Writer {
        column_position: 0,
        color_code: ColorCode::new(Color::Yellow, Color::Black),
        buffer: unsafe { &mut *(0xb8000 as *mut Buffer) },
    };

    writer.write_byte(b'H');
    writer.write_string("ello! ");
    write!(writer, "The numbers are {} and {}", 42, 1.0/3.0).unwrap();
}

Added(2024 April 08)
Cargo.toml
[package]
name = "os"
version = "0.1.0"
edition = "2021"

[dependencies]
bootloader = "0.9"
volatile = "0.2.6"
spin = "0.5.2"

[dependencies.lazy_static]
version = "1.0"
features = ["spin_no_std"]

Could you try checking out and running the post-03 branch of this repo? If that works, there is probably some typo in your code.

@phil-opp
I've tried to run that branch code, however it also doesn't work for me.
Thank you.

Same endless boot issue?

That's weird. We have a CI job that tests the code regularly and it worked with the same QEMU version on macOS this night.
Could you please try running post-06 too? It has some exception handlers set up so we might see an exception message instead of the endless rebooting.

I just ran into something similar. I found I had a newer version of volatile installed (0.5.2). When I downgraded to 0.2.6 and recompiled, the looping in QEMU went away.

I just ran into something similar. I found I had a newer version of volatile installed (0.5.2). When I downgraded to 0.2.6 and recompiled, the looping in QEMU went away.

That's very interesting, could you please send the changes in your code that occurred when downgrading from 0.5.2 to 0.2.6.
I am looking at the diff between the two versions, and although they are different, they should optimize down to nearly the same thing.

I just ran into something similar. I found I had a newer version of volatile installed (0.5.2). When I downgraded to 0.2.6 and recompiled, the looping in QEMU went away.

add my Cargo.toml. (also added to the top)
volatile version is 0.2.6.
[package]
name = "os"
version = "0.1.0"
edition = "2021"

[dependencies]
bootloader = "0.9"
volatile = "0.2.6"
spin = "0.5.2"

[dependencies.lazy_static]
version = "1.0"
features = ["spin_no_std"]

And even if i run git clone <blog_os> and checkout to post-03 and build and run it, occur the same issue.
what QEMU version do you use?  I started with finished (working) code from post-03 (in red) and un-did some things to bring the looping bug back (in green).
I'm running QEMU  v8.2.91 on Windows 11:
$ qemu-system-x86_64 --version
QEMU emulator version 8.2.91 (v9.0.0-rc1-12050-gb494cb57ce)
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers

Thank you very much, @MichaelZalla. It seems that Rust's code-generator generates different assembly instructions for the two different versions of volatile.

Ok, so, here's the situation, I figured out why your implementation @MichaelZalla boot-loops.
This is your main.rs:
#[panic_handler]
fn panic_handler(_info: &PanicInfo) -> ! {
    vga_buffer::print_something();

    loop {}
}

#[no_mangle]
pub extern "C" fn _start() -> ! {
    panic!("Some panic message");
}

The cycle of your program is as such:
|-> boot
|    \/
|   main
|    \/
|   your main function panics
|    \/
|   panic_handler
|    \/
|   vga_buffer::print_something
|    \/
|   death (figuring out why)
|____|

If you moved the vga_buffer::print_something function into your main, nothing breaks. Which is interesting

+1 still happening.

I have found the issue! It is with this line in print_something:
write!(writer, "The numbers are {} and {}", 42, 1.0 / 3.0).unwrap();
I don't know what is happening, but without that line it works.

I have found the issue! It is with this line in print_something: write!(writer, "The numbers are {} and {}", 42, 1.0 / 3.0).unwrap();
I don't know what is happening, but without that line it works.

Yes, that line will cause it, however, It seems that there is an issue with actually WRITING to volatile memory in the new version

+1
But I am also experiencing the same behaviour when writing with core::ptr::write_volatile instead of relying on the volatile crate.

@MichaelZalla @AtomicGamer9523 @UnexDev
While implementing the volatile writes without the use of the volatile crate I am pretty sure I figured out what's going wrong here.
Explanation
repr(transparent)
struct Buffer {
  chars: [[VolatilePtr<'static, ScreenChar>; BUFFER_SIZE_X]; BUFFER_SIZE_Y]
}

You now declared Buffer.chars to hold static pointers to ScreenChar. But we do not initialize this part of memory ourselfs and just cast 0xb8000 to be our VGA buffer:
lazy_static! {
    pub static ref WRITER: Mutex<Writer> = Mutex::new(Writer {
        column_pos: 0,
        color_code: ColorCode::new(Color::White, Color::Black),
        buffer: unsafe { &mut *(0xb8000 as *mut Buffer) },
    });
}

Therefore what lies there is our ScreenChar values. NOT pointers to them. This means ptr::write_volatile will fail as self.pointer.as_ptr() is actually not a valid pointer but ScreenChar(s) that are interpreted as a pointer as we told it to.
In my implementation I had
repr(transparent)
struct Buffer {
  chars: [[&'static mut ScreenChar; BUFFER_SIZE_X]; BUFFER_SIZE_Y]
}

which resulted in the same behavior because the actual values are interpreted as references.
Why does volatile v0.2.6 work?
The Volatile struct in version 0.2.6 of the volatile crate has the same size as its wrapped type:
/// A wrapper type around a volatile variable, which allows for volatile reads and writes
/// to the contained value. The stored type needs to be `Copy`, as volatile reads and writes
/// take and return copies of the value.
///
/// The size of this struct is the same as the size of the contained type.
#[derive(Debug)]
#[repr(transparent)]
pub struct Volatile<T: Copy>(T);

That means for this version interpreting the values in the VGA buffer as Volatile<ScreenChar> as its memory representation looks the same as ScreenChar.
Alternative using core::ptr
I removed the volatile crate and instead implemented the volatile reads and writes on Buffer.
#[repr(transparent)]
struct Buffer {
    chars: [[ScreenChar; BUFFER_SIZE_X]; BUFFER_SIZE_Y],
}

impl Buffer {
    /// Writes character `c` to `row`,`col` in the VGA buffer.
    fn write(&mut self, row: usize, col: usize, c: ScreenChar) {
        unsafe {
            // UNSAFE: all pointers in `chars` point to a valid ScreenChar in the VGA buffer.
            ptr::write_volatile(&mut self.chars[row][col], c);
        }
    }

    /// Reads a character from the VGA buffer at position `row`,`col`.
    fn read(&self, row: usize, col: usize) -> ScreenChar {
        unsafe {
            // UNSAFE: all pointers in `chars` point to a valid ScreenChar in the VGA buffer.
            ptr::read_volatile(&self.chars[row][col])
        }
    }
}

TLDR
Buffer.chars needs to hold representations of ScreenChar (that look like a plain ScreenChar), NOT pointers or references to them.
This is not an issue with the newer version of the volatile crate. To make this work with newer versions you would need to create a Volatile instance on every write or waste space by creating a second buffer with Volatile objects. Alternatively implement volatile reads/writes using core::ptr::write_volatile and core::ptr::read_volatile.

TLDR
Buffer.chars needs to hold representations of ScreenChar (that look like a plain ScreenChar), NOT pointers or references to them.
This is not an issue with the newer version of the volatile crate. To make this work with newer versions you would need to create a Volatile instance on every write or waste space by creating a second buffer with Volatile objects. Alternatively implement volatile reads/writes using core::ptr::write_volatile and core::ptr::read_volatile.

Oh my God, that makes so much sense now. Thank you for finding this, I was already starting to loose hope.

Unfortunately I am not sure if this also resolves the original problem as from what I understand the boot loop occurs even with volatile v0.2.6. From what I am seeing the above code should work.

Finally have some free time on my hands. Started working on a fix / explanation here.


Add warning when purging environment will delete resources created by API/UI.

v0.39.0-rc1
Purging environments delete resources created by API/UI but there is no warning that we will be using docker-machine to remove them.
Would like a warning or something in the UI to let users know.

@westlywright an additional blurb when deleting environment about this would be good.

Version - master UI 3/17
Text is cut off at end.

Version - master 3.20
Verified fixed


Find volume of a cuboid

Description
Volume of cuboid = Length × Width × Height
Length : 2
Width  : 3
Height : 4

Volume : 24

Hey @harshraj8843
It seems that this program already been submitted.
Please check the list of programs here: https://github.com/codinasion/program/blob/master/data/programs.json
Thanks for your contribution :hugs:


Language does not refresh properly after clearing search

Hi, I have been trying to update the text that appears and noticed that after clearing the search the language text is not pulled through properly.
Below you see what I changed the text to...

After a successful search, I click the cross to clear the results and I get the following, which returns the code place-holder.

In bundle.min.js
$( ".search-result-meta" ).html( "type-to-start-searching" );
In en.json
"type-to-start-searching": "Type 4 or more letters above to start searching",

In js messages are hardcoded now. In next version they'll be in the language files.
https://github.com/blthemes/DevTheme/issues/4

https://github.com/blthemes/Blekathlon/releases/tag/3.8.1

Thanks for all you have done in this release.


Reorganize NixOS profile modules ("archetypes"?)

Project description
Goals:

resolve an ambiguity in our terminology
organize the NixOS modules better, to manage expectations and improve flexibility

NixOS has its own definition for "profile", which is not to be confused by Nix's definition of "profile". Let's start by renaming "profile" to "archetype" to solve the ambiguity.
An archetype module is a module that contains configuration that goes into effect unconditionally.
This is in contrast with most other modules, whose functionality is gated behind an "enable" option and a config = mkIf cfg.enable or similar.
This is also in contrast with a "configuration module" which is managed by the user and is typically not intended for reuse (although I wouldn't complain if someone didn't call their reusable configuration module an archetype module).
Note that despite being classifiable by technical-ish means, these definitions do not exist within the implementation of the module system. They're entirely for us humans to characterize what is the purpose of a module.
Proposal:

Create a new directory nixos/modules/archetypes and move all modules that consist of unconditional config to this directory.
Split modules that contain both options and unconditional config, if the "options" logic can exist as regular modules without the unconditional config.

Future work:

Refactor the archetypes to form a better hierarchy. Think of system characterizations like minimal, desktop, container, etc. I do not have an opinion on what should go where. Let's not blow up the scope of this issue. Step by step.
Note that nixos-hardware also contains many archetypes. We may consider moving those as well, but I'll leave that out of scope as well for the time being.

archetype

Nix already comes with a fair share of obscure terms (derivation, instantiation, attribute set, channel), but NixOS has somehow managed to keep that down: there's basically just options, modules and types (let's ignore NIXOS_LUSTRATE for a moment here ;).
I'm sure this is subjective, but "archetype" (while being perfectly accurate, with access to a dictionary) feels really obscure. If the Nix/NixOS profile clash is a problem (personally I've never even realised this), I'd suggest to think of something more common. Maybe preset or template.

Template is also taken, but preset is a good candidate. It focuses more on the role of the module than how they're implemented, which is good. It's less differentiated from default which already has a specific meaning in modules but that could be a good thing as well, as they are closely related concepts.


Update release tags

Is your feature request related to a problem? Please describe.
iTwin.js employs release tags to convey API stability to consumers of the library. Notably, we discourage consumers from using beta APIs in production and from using alpha APIs at all. The goal is for the APIs to evolve based on testing and feedback until they can be promoted to public, or abandoned.
Unfortunately, API release tags frequently remain static, leading consumers to either ignore non-public APIs assuming they are not ready for broader adoption; or ignore release tags, consuming non-public APIs in production and risking stability if the API changes in the future.
Describe the solution you'd like
We need to evaluate our non-public APIs and update their release tags appropriately to match their current levels of maturity.
Note: any API that is already in broad production use or intended for third-party consumption is a strong candidate for promotion to public. For each such API, file a new issue and a PR to adjust the tags. While doing so, ensure documentation is up to date and sufficient.
Describe alternatives you've considered
None.
Additional context
A related issue is needed for marking APIs as deprecated for 3.6 prior to 4.0 release.

@paulius-valiunas @wgoehrig Our OpenTelemetry APIs are intended for use by applications, yet they remain alpha. Please evaluate.

@calebmshafer what's up with FeatureGates? We only use it in one example snippet, and it's @internal so apps shouldn't use it.
@swwilson-bsi uses it in RobotWorldEngine but example code should not use @internal APIs.

@pmconne I suggest we completely remove that API if that only use in the sample and currently marked internal. We can add it back later if we feel there is a need in the future.

Feature Gating should probably be done at the app/product level imo

@paulius-valiunas @wgoehrig Our OpenTelemetry APIs are intended for use by applications, yet they remain tagged as alpha, indicating applications should not use them. Please evaluate.

We should have promoted them to beta a while ago. @wgoehrig what do you think, should we go straight to public? The only thing I'm worried about is how different package managers would treat the peerDependenciesMeta field - some might install opentelemetry packages automatically even when the user doesn't want them. But I guess we can change that later, even if the typescript API is public.

@paulius-valiunas I agree with going to beta. Not sure if we have enough experience with it, and the issue you raised, to go to beta. However, it would be good to document them and let people know they're open to start using.

@wgoehrig @paulius-valiunas @nick4598 another API that I'd like to take a look at is the hubAccess that's currently marked as beta in IModelHost. It's critical to almost all workflows and we've been fairly liberal with making breaking changes to it for the v2 checkpoint work. However, we need to get to a place where that is stable from release to release. Any idea where we stand for that one? Maybe warrants its own item to start ironing it out?

@paulius-valiunas for 4.0 can we remove the IModelHost.tileCacheService and clean up those APIs now that we have teh replacements out there?

@wgoehrig @paulius-valiunas @nick4598 another API that I'd like to take a look at is the BackendHubAccess and hubAccess that's currently marked as beta in IModelHost. It's critical to almost all workflows and we've been fairly liberal with making breaking changes to it for the v2 checkpoint work. However, we need to get to a place where that is stable from release to release. Any idea where we stand for that one? Maybe warrants its own item to start ironing it out?

I created a separate item to track this: https://github.com/iTwin/itwinjs-core/issues/4885

@paulius-valiunas for 4.0 can we remove the IModelHost.tileCacheService and clean up those APIs now that we have teh replacements out there?

yup, at least that was my plan initially. Here's an issue for that: https://github.com/iTwin/itwinjs-core/issues/4887

@pmconne anything specific you want to do with this Issue still or can we close this general one out?

We have API usage reports from appui and some of the apps to go through.
Also, telemetry is still alpha.

I am removing from these outdated reports references to APIs that have migrated out of itwinjs-core repo.

Removed outdated items, categorized, and sorted.
Categories with my best guesses at who should review + address them:

accudraw @bbastings
appui @NancyMcCallB @raplemie
devtools - @calebmshafer do you know who owns this?
display @markschlosseratbentley @pmconne
crash reporting @swwilson-bsi? @nick4598?
frontend
backend
markup @bbastings?
ecdb @ColinKerr? @khanaffan? ECJsonTypeMap.
geocoord @AlainRobertAtBentley
geometry @dassaf4
i18n @calebmshafer who owns this now?
map-layers @eringram @mdastous-bentley
presentation @grigasp
quantity @ColinKerr @calebmshafer is there a separate issue for quantity formatting package yet?
rpc @swbsi
telemetry @paulius-valiunas
tools @bbastings

categorized.txt

I think there's some confusion between OpenTelemetry and iTwin.js TelemetryClient. @calebmshafer who should pick up the latter one? I see it's unchanged since early 2.x, does anyone still use it? Does anyone still own it? :D

I think there's some confusion between OpenTelemetry and iTwin.js TelemetryClient.

That happens when the same name is used for two different things. :)

does anyone still use it?

According to the usage reports, both appui and pineapple do.

According to the usage reports, both appui and pineapple do.

ok good point... but they only use the TelemetryManager and I can't find any actual implementation of TelemetryClient. If that's actually true, the manager isn't actually doing anything so we should probably just remove it.

I think our OpenTelemetry references should mostly be named to tracing today as that's what they're exposing (at least from my look at the API). Since we implement Logging and Tracing separately, I think they should be handled separately in the API.

Technically you're right, but in practice they're much more intertwined. Our logs are attached as span events to OpenTelemetry traces, and our traces wouldn't be useful at all without logs attached to them. I like to think of our OpenTelemetry as an augmentation of our logging system rather than a completely separate concept. Also, "tracing" is not very clear either, it could be confused with trace level logging or something similar. I think enableOpenTelemetry is good as it is - even if people don't know what OpenTelemetry is, the "open" in the name will probably spark their curiosity and they'll look it up. Everything else already has "tracing" in its name.

@calebmshafer there were several questions for you (and some for others) in my categorized checklist. I have moved that checklist to the issue description. Please review.

crash reporting
@wgoehrig thoughts on where this one is at currently and what is left for us to start promoting this, to at least beta?

It might sound crazy but we could instrument frontends to send telemetry data through OpenTelemetry, and then TelemetryManager or its replacement would just be the frontend equivalent of enableOpenTelemetry.

@paulius-valiunas good point, I tend to agree with the points you made here. Mind breaking that out into its own Issue with some of the details you have here and the proposal to align both of our different telemetry APIs?

i18n

@pmconne mind sending me separately the usages of those APIs? Want to understand how the unregister methods are being used.

quantity

@pmconne, no I have not created one yet. I will do that now, although it will branch in many directions I assume and will not move for 4.0 release out of alpha. However, will need to be addressed in 4.x to move forward (and a goal we should have with major release).

viewState.getStandardViewMatrix

StandardView.getStandardViewMatrix

Should be
+StandardView.getStandardRotation
Any verdict on Viewport.synchWithView()? Will it be promoted or is there a public alternative?

Mind breaking that out into its own Issue with some of the details you have here and the proposal to align both of our different telemetry APIs?

I didn't have much to go by because I'm unfamiliar with the TelemetryManager API and its usage, but I guess this is a start: https://github.com/iTwin/itwinjs-core/issues/5278

@pmconne, what are we expected to do with APIs that are and should be @internal, but are in the list?

what are we expected to do with APIs that are and should be @internal, but are in the list?

Suggest alternative ways to achieve what the offending code is trying to do, such as using a different, public API.
For example, some teams were doing weird stuff with internal APIs to make canvas decorations be included when reading a viewport's image. I suggested they file an issue for a new public API that would support this feature. For the rest of the internal APIs they were using, I provided the following adjustments:
- for (const [id, model] of iModel.models.loaded)
+ for (const modelState of iModel.models)

- viewport.changeModelDisplay(iModel.models.loaded, false)
+ viewport.replaceViewedModels([])

- viewport.view.createScene
+ viewport.createScene

- viewport.view.forEachTileTreeRef
+ viewport.forEachTileTreeRef

- viewState.getStandardViewMatrix
+ StandardView.getStandardViewMatrix

- viewport.viewingSpace.getPixelSizeAtPoint
+ viewport.getPixelSizeAtPoint

- MockRender.App.startup
- MockRender.App.shutdown
+ NoRenderApp.startup
+ IModelApp.shutdown

@calebmshafer, as this issue was tied with 4.0 milestone release that is completed a long ago, are you OK for closing this issue and marking as done?

yes, I'm good with closing. We already opened new issues for some of the outstanding changes that are needed.


Disable  un-used MQTT-messages

Is there a possibility to mark out all the MQTT topics you don't use/need?
E.g. my boiler does not support cooling, but OTGW Firmware does send out the MQTT messages:
> OTGW/value/otgw-ECFABC05B55B/cooling_enable
> OTGW/value/otgw-ECFABC05B55B/cooling

I tried to disable them in mqttha.cfg, but no succes
Thank you

The reason they are send out is that they are part of the status byte message, I have no way of know if a system has them or not, they are just part of the protocol.
I am not planning to leave them out at this point or making it configurable. Besides a bit of bandwidth waste.

Hello Ruud,
I'd liked to reopen this issue, or maybe open a new issue.
Due to the large ammount of OTGW messages it looks like Domoticz is running out of memory which ends in a Domoticz Crash.
The problem is that slowly the memory increases, and, after 12 hours, a crash. This process cycles every 12 hours.
I use OTGW-Domoticz-MQTT-Client from proditaki to get the MQTT messages from OTGW Firmware via my MQTT-broker in Domoticz.
Yesterdag morning I stopped the OTGW MQTTClient hardware, and the memory issue stopped.
Proditaki asked me to address the issue here.
I think limiting the messages to only the one used by the specific boiler/thermostat will solve this problem.
Thank you

Isn't this more of a Domoticz (or OTGW-Domoticz-MQTT-Client) issue?   reducing the amount of messages won't 'solve' domiticz bug, but just slow down the point time it takes to run out of memory?

It's only with this hardware. That's why I started with a issue at OTGW-Domoticz-MQTT-Client from proditaki.
He asked me to issue this here.

@PvdGulik, I hate to tell you but this looks like a memory bug in Domoticz or the plugin as @DaveDavenport already mentioned. Even if the messages would be reduced it might not fix your issue but just postpone it.
For now, you can reduce the amount messages by

unchecking the MQTT OT msg Enable option on the config page.
going to the File explorer, downloading mqttha.cfg, removing all entities you don't want in Domoticz*, uploading it via file explorer with the original filename (overwriting the original) and rebooting the OTGW nodeMCU

*looking at how @proditaki implemented the plugin, he is parsing the Home Assistant Discovery. So whatever is NOT in the HA autodiscovery, will not show up in your Domoticz and won't accelerate the Domoticz Memory Bug.

First I tried is the "unchecking the MQTT OT msg Enable option on the config page"
I'll report tomorrow the result.
Next step will editing mqttha.cfg.
Keep you informed.

Well, that didn't solve anything, same result ;-(
I'll try editing mqttha.cfg

Oke, I've edited mqttha.cfg. I disabled all with // at the beginning of the line.
Then only actived the ones I use and rebooted. Also in Domoticz all the devices created which I don't use are disabled.
After reboot Domoticz and OTGW NodeMCU, still 34 Sensors and Switch which I don't use in Domoticz are updated on regular basis. 15 of them are updated every 3 seconds.... Why?
These are:
1345 | OTGW MQTT Client | 0027001A | 26 | OTGW MQTT Client - OTGW_Central_Heating | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1346 | OTGW MQTT Client | 0027001B | 27 | OTGW MQTT Client - OTGW_Domestic_Hot_Water | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1347 | OTGW MQTT Client | 0027001C | 28 | OTGW MQTT Client - OTGW_Flame | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1348 | OTGW MQTT Client | 0027001D | 29 | OTGW MQTT Client - OTGW_Cooling | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1349 | OTGW MQTT Client | 0027001E | 30 | OTGW MQTT Client - OTGW_Central_Heating_2 | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1350 | OTGW MQTT Client | 0027001F | 31 | OTGW MQTT Client - OTGW_Diagonostic_Indicator | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1413 | OTGW MQTT Client | 0027005E | 94 | OTGW MQTT Client - OTGW_Return_water_temperature | Temp | LaCrosse TX3 | 1.0 C | - | - |   | 2021-03-27 12:32:52
  |   | 1344 | OTGW MQTT Client | 00270019 | 25 | OTGW MQTT Client - OTGW_Fault | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1351 | OTGW MQTT Client | 00270020 | 32 | OTGW MQTT Client - OTGW_Central_Heating_enable | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:00
  |   | 1352 | OTGW MQTT Client | 00270021 | 33 | OTGW MQTT Client - OTGW_Domestic_Hot_Water_enable | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:00
  |   | 1353 | OTGW MQTT Client | 00270022 | 34 | OTGW MQTT Client - OTGW_Cooling_enable | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:00
  |   | 1354 | OTGW MQTT Client | 00270023 | 35 | OTGW MQTT Client - OTGW_OTC_enable | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:00
  |   | 1355 | OTGW MQTT Client | 00270024 | 36 | OTGW MQTT Client - OTGW_central_heating_2_enable | Light/Switch | Switch | Off | - | - |   | 2021-03-27 12:33:01
  |   | 1436 | OTGW MQTT Client | 00270075 | 117 | OTGW MQTT Client - OTGW_Status_Master | General | Custom Sensor | 0 # | - | - |   | 2021-03-27 12:33:00
  |   | 1437 | OTGW MQTT Client | 00270076 | 118 | OTGW MQTT Client - OTGW_Status_Slave | General | Custom Sensor | 0 # | - | - |   | 2021-03-27 12:33:01
  |   | 1410 | OTGW MQTT Client | 0027005B | 91 | CV water aanvoer (OTGW) | Temp | LaCrosse TX3 | 52.5 C | - | - |   | 2021-03-27 12:33:01
  |   | 1423 | OTGW MQTT Client | 00270068 | 104 | OTGW MQTT Client - OTGW_Relative_Modulation_Level | General | Percentage | 0% | - | - |   | 2021-03-27 12:32:58
  |   | 1406 | OTGW MQTT Client | 00270057 | 87 | OTGW_Control_setpoint | Temp | LaCrosse TX3 | 6.0 C | - | - |
I don't use them, are updated every 3 seconds. Why? And is this why I have a Domoticz_memory problem?

I think @proditaki needs to look at the domoticz plug-in. As your memory issue is not cause by the messages itself. Reducing the number of message will only delay the problem.
The root cause needs to be addressed.
The sensors and switches are generated based on the specification.  As the setup is generic and standard based. It generates topics based in the messages that are being send.
It’s also different for each thermostat and boiler. So making it less generic or more configurable over complicates the whole setup.
The amount of messages and frequency should not be an issue, filtering can be done downstream.
I push on change approach. The real problem with that is when you lose connectivity or values do not change for a long time. Than you could be out of sync.


How to run NFs on two cores at the same time.

Hi,
I have run Netbricks on a single core. I notice that the original netbricks paper shows running the same NFs on two cores at the same time. I tried two methods:

set -c 0 -c 1. But only one pipeline is running
start another Netbricks on another core with --secondary command line. It shows

Any suggestions and comments are appreciated!
Best,
Yang

@YangZhou1997 good catch. we'll add this back (it got lost as we've updated/refactored the code), nd it should be pretty easy. Will ping you on this thread when we get to it.

@zeeshanlakhani Just wondering how the multi-core feature goes.
Or, you can explain to me a bit about the scheduler part (I did not understand it well) and I might try to fix it.

@YangZhou1997 we’re at atc/hotedge this week, but we’ll fix it. We plan to rewrite the scheduler too, separately, but we’ll get a fix in.

@YangZhou1997 I have a small cleanup branch that should allow you to progress. Maybe we can discuss further on gitter: https://gitter.im/williamofockham/NetBricks?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge.
An example run for two cores:
./build.sh run macswap -p 0000:00:08.0 -p 0000:00:09.0 -c 0 -c 1 --pool-size=256
Current Cargo Incremental Setting: CARGO_INCREMENTAL=0
Current Rust Backtrace Setting: 1
name: netbricks, secondary: false, pool size: 256, cache size: 32
primary core: 0, cores: [0, 1], strict: false
ports:
	name: 0000:00:08.0, rxq: [0], txq: [0], rxd: 128, txd: 128, loopback: false, tso: false, csumoffload: false
	name: 0000:00:09.0, rxq: [1], txq: [1], rxd: 128, txd: 128, loopback: false, tso: false, csumoffload: false
DPDK args: None
Dope Runtime
Failed to detect # of NUMA nodes from: /sys/devices/system/node/possible. Assuming a single-node system...
EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/netbricks/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:00:08.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 1af4:1000 net_virtio
PMD: pmd port 0 configured successfully
EAL: PCI device 0000:00:09.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 1af4:1000 net_virtio
PMD: pmd port 1 configured successfully
Receiving port port: ba:dc:af:eb:ee:f1 (0) rxq: 0 txq: 0
Running 1 pipelines
Receiving port port: ba:dc:af:eb:ee:f2 (1) rxq: 0 txq: 0
Running 1 pipelines

Our environment setup makes secondary a bit more difficult (even on pure NB), but maybe we can work that out over chat.

Though, we seem to have an issue using multiple cores on the same port. Looking into that now.

@YangZhou1997 in attempting to run multiple cores for the same port, you should try to do it via toml config (and not the cli, even as per regular NetBricks), via the rx_queues and tx_queues params. Please give it a try and let us know. We've had some issues w/ multi-core due to our dev env on virtualbox, and we'd like to make sure it works away from vb (as it should).

@zeeshanlakhani Thanks for the info! I will have a try, and post the results here

@YangZhou1997 cool. let us know.

Not sure if I understand "via toml config".
Do you mean setting up two rx_queues (on one port) used by two cores. Just as shown in the following code snippet:

If so, it seems that I need to change the cli to configure two rx_queues for two cores? What do I need to do with toml config?

Just realized we actually don't have an example of this in the repo. You can use a file to configure your app in addition to command line args. Here's an example toml file,
name = "my-app"
secondary = false
primary_core = 0
cores = [0, 1]
strict = false
pool_size = 512
cache_size = 32

[ports]
  name = "dpdk:eth_af_packet,iface=lo"
  rx_queues = [0, 1]
  tx_queues = [0, 1]
  rxd = 128
  txd = 128
  loopback = false
  tso = false
  csumoffload = false

This config should run let you use two cores. And you run it with ./myapp -f myapp.toml
As @zeeshanlakhani mentioned, we are having trouble testing this because in our VirtualBox environment, we don't have the multiqueue driver support necessary to test running pipelines with multiple cores. Let us know if this works for you.

In addition, as @drunkirishcoder alluded to, we should add a config-driven example on this repo as well. 👍

@drunkirishcoder Thanks for the reminder.
Just a small typo of your example toml file: [ports] should be [[ports]], then everything works perfectly -- I can run Netbricks on two cores with two queues and get nearly double throughput.
Many thanks!

great news @YangZhou1997

Specifying multiple queues in config file makes it work


Improve the error for a failed package version download

If a pub lockfile refers to a version of a hosted dependency that doesn't exist, "pub get" will print "Could not find package <name> at https://pub.dartlang.org", even if other versions of that package do exist.
At the very least this error should mention that the specific package *version* couldn't be found, but ideally it would unlock the package and try to solve the graph without it. This would then gracefully handle package versions that have been removed from pub.dartlang.org for any reason.

This issue has been moved to dart-lang/pub#1004.


[SUPPORT] how to start schema evolution

Describe the problem you faced
Using pyspark, how can I write two different schemas to a table, except for the primary key and the comparison key, and read the combined schema data
Environment Description

Hudi version : 0.12.1

Spark version : 3.2.2

Hive version : 2.1.0

Hadoop version : 3.0.0

Storage (HDFS/S3/GCS..) : HDFS

Running on Docker? (yes/no) : no

@15663671003 You can consider using https://hudi.apache.org/docs/configurations/#hoodiedatasourcewritereconcileschema
or
https://hudi.apache.org/docs/next/record_payload/#partialupdateavropayload
based on your requirements.
Let us know if you have any questions on this. Thanks.

@15663671003 Can you please let us know if provided solutions helped for you. Thanks.

@15663671003 Closing this issue. Please reopen or create a new one for any further queries/issues. thanks,


Update solarwinds.html

spelling correction - "backendsu" changed to "backends"

This is auto-generated from the source material in istio/istio/mixer/adapter/... So please fix it there, and the fix will be picked up when we regenerate the reference docs.
Thanks.

Thanks @geeknoid. Will do.


Reflection: add PE/COFF magic checking for inspection

When we inspect a binary, verify that it is a PE/COFF binary before
trying to interpret it as a PE/COFF binary.  This prepares the code
for extraction of the file inspection and will permit cross-platform
builds to introspect foreign binaries.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @jckarter @alexshap

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - 0cf91f343e3089afddeab33f8b2afe6659880892

@swift-ci please test macOS platform


Use llvm-ubuntu-18.04 for ubuntu 22.04 to align with Triton

We don't need this PR anymore I guess. It has been covered by #84


generate block right away in the non-optimistic case

Motivation
Closes #4482
Changes

when optimistic filtering is OFF, generate a block right away regardless of layer order
when hare output empty block, or a non-optimistic generated block, certify the hare output right away

note that block execution is still kept sequential

bors try

note that block execution is still kept sequential

this is enforced by mesh, because results from tortoise are sequantial. maybe we can drop this elsewhere, so that it doesn't do unnecessary things?

note that block execution is still kept sequential

this is enforced by mesh, because results from tortoise are sequantial. maybe we can drop this elsewhere, so that it doesn't do unnecessary things?

there are 2 threads that could execute a block:
A. block generator (calling ProcessLayerPerHareOutput)
B. syncer (calling ProcessLayer)
in a steady state, case A will be ahead of tortoise verification results. B is just a backup in case the node get disconnected during hare consensus. the sequential execution here (in processLayers) only serves to ensure that blocks are executed in-situ sequentially. there is no reason to treat optimistic/non-optimistic differently here.

in a steady state, case A will be ahead of tortoise verification results.

tortoise will output that layer is not verified but there is a hare output, and it will be enough for mesh to allow execution without persisting validity. during optimistic filtering something else happens, block is executed and applied field is saved to database, after that mesh calls tortoise and re-checks that target block is already applied

actually this change still has the same problem. you need to notify tortoise to vote on the non-optimistic block before previous blocks are applied. otherwise it will be the same behavior as was seen

@dshulyak the code in this PR will call AddBlockWithTXs() as soon as hare terminates. that calls trtl.OnBlock(). i thought that is enough to make tortoise to vote on a block?

@dshulyak the code in this PR will call AddBlockWithTXs() as soon as hare terminates. that calls trtl.OnBlock(). i thought that is enough to make tortoise to vote on a block?

OnBlock will notify tortoise that full data is available locally. but tortoise will vote according to OnHareOutput

in a steady state, case A will be ahead of tortoise verification results.

tortoise will output that layer is not verified but there is a hare output, and it will be enough for mesh to allow execution without persisting validity. during optimistic filtering something else happens, block is executed and applied field is saved to database, after that mesh calls tortoise and re-checks that target block is already applied

in case A the optimistic case, at the time of execution, the block is not generated yet. tortoise has no way to include it in the results.
the workflow for optimistic case is:
hare terminate -> txs get executed -> block gets generated -> trtl.OnBlock() -> applied field is saved -> mesh get results from trtl and ensure state consistent.
i don't' understand what need changed here.

@dshulyak the code in this PR will call AddBlockWithTXs() as soon as hare terminates. that calls trtl.OnBlock(). i thought that is enough to make tortoise to vote on a block?

OnBlock will notify tortoise that full data is available locally. tortoise will vote according to OnHareOutput

ok. thanks. i'll make that change.

@dshulyak please take another look.
the code is changed to such that for empty block ID and non-optimistic block tortoise is notified as soon as hare terminate.

bors try

bors try

bors try

TestPartition_50_50 consistently fails at layer 22 :(
will need more debugging to understand.

there might be a gap in events that are watched by a test, tortoise and mesh worked out correctly
maybe somehow mesh notifies about layer that are awaited by test before the actual test finishes

bors try

bors try

try
Build failed:

systest-status

test passed. failed due to an unknown kubernetes error
=== CONT  TestPartition_50_50
    logger.go:130: 2023-06-10T15:23:04.083Z	INFO	TestPartition_50_50	namespace was deleted	***"namespace": "test-rpoz"***
--- PASS: TestPartition_50_50 (925.24s)
=== CONT  TestFallback
    logger.go:130: 2023-06-10T15:23:04.135Z	INFO	TestFallback	using	***"namespace": "test-qzao"***
rpc error: code = NotFound desc = an error occurred when try to find container "5c50d9e8ccbdb0e30cf118da4776fb3ac0c8a2bca52ef8ab4848ce31aeaae6dd": not foundtest_job_name=systest-7f6b952-1686409567 ./wait_for_job.sh
Waiting for job/systest-7f6b952-1686409567 to complete or fail

bors try

bors merge


Is this project still active ?

Hi,
Is there an ETA for this operator ? It would be great if we can have an officially supported operator for AWS services. Looking forward for it !

We're working on the MVP, see #22.

@mhausenblas Is there a team at Amazon dedicated to this project? I understand that it's early, but nothing has been committed to master since January and discussions appear to have got no further than a proposed list of things to include in the MVP. Is work actually happening internally and just not being exposed, or is the project on hold?

@benlangfeld have a look at the mvp branch. In fact, good timing, we're very close to merging into the main branch.


"AsmWaitForever" is undefined

Never mind.  I found it (in the local [to GuardMon] HyperPlatform tree).  Thanks!

Perhaps, you had to clone submodules recursively. Either way closing this.


update requirements and environment files for patchmatch 0.1.5

Update pypatchmatch to 0.1.5 (see request from @Kyle0654 here https://discord.com/channels/1020123559063990373/1034740515209486387/1052465462757310464 )

Removed basicsrs workaround for environment files, now that we know problem was caused by Windows long path issue.

Biggest comment is that combining these two changes together in one commit may make it more difficult to unwind if something doesn't work. Otherwise LGTM.

I removed the changes to gfpgan. The PR just deals with patchmatch as it should have in the first place.


Artifacts number is 0 when executing with maven-deploy-plugin

Hello team!
During using your plugin I found a strange behavior together with maven-deploy-plugin. Could you assist, please?
In the project, we're using on the same goal deploy two plugins artifatory-maven-plugin and maven-deploy-plugin(this plugin is used for deploying additional manifest files via mvn deploy:deploy-file). After the execution artifacts number is 0, I assume it's because of some concurrent behaviors. As I understand there is no way to execute the plugin on other goals and phases.

Wow, this is promising...


Kernel finished running cells notification

Is it possible to have the option for a notification when the kernel is idle after running some cells? Sorry if this feature already exists, couldn't find anything about that anywhere. This would be very useful when running multiple cells that take a long time to execute.

@grudloff That's in interesting suggestion, we don't have anything like that currently. What type of notification were you thinking? Like an informational popup in VS Code? Or something on the filename tab of the running ipynb file?

@grudloff Have an additional question, when do you find yourself wanting to see this notification/information? When you have focus on the notebook or when you are potentially looking at another file waiting for the notebook to finish?

@grudloff That's in interesting suggestion, we don't have anything like that currently. What type of notification were you thinking? Like an informational popup in VS Code? Or something on the filename tab of the running ipynb file?

This would be a Windows only feature I believe, but I was thinking of the scenario of being away from VS Code and getting a taskbar icon flashing when finished.

@grudloff Have an additional question, when do you find yourself wanting to see this notification/information? When you have focus on the notebook or when you are potentially looking at another file waiting for the notebook to finish?

I was thinking more on the scenario of being completely away from VS Code, although it certainly would be useful when one is working on other files in the meantime.

Awesome. Thanks for the additional info @grudloff .

It may be useful that this (or something very similar) is implemented for debugging. When one is away from VS Code a taskbar icon flashing occurs if execution is stoped.

I like an OS notification, like the ones Google Colab sends using Chrome.
Adding the ability to run a custom script is even better though:
custom_script.sh <the_notebook_path> <the_time_the_executions_took> <current_file_in_focus> <is_vscode_focused>

The poor man's solution:
`import winsound
winsound.Beep(2093, 180)
winsound.Beep(2093, 180)
winsound.Beep(3136, 180)
winsound.Beep(3136, 180)
winsound.Beep(3520, 180)
winsound.Beep(3520, 180)
winsound.Beep(3136, 540)
winsound.Beep(2794, 180)
winsound.Beep(2794, 180)
winsound.Beep(2637, 180)
winsound.Beep(2637, 180)
winsound.Beep(2349, 180)
winsound.Beep(2349, 180)
winsound.Beep(2093, 540)`

Similar thing for JupyterLab: https://github.com/mwakaba2/jupyterlab-notifications

The poor man's solution:
import winsound

winsound.Beep(2093, 180)
winsound.Beep(2093, 180)
winsound.Beep(3136, 180)
winsound.Beep(3136, 180)
winsound.Beep(3520, 180)
winsound.Beep(3520, 180)
winsound.Beep(3136, 720)
winsound.Beep(2794, 180)
winsound.Beep(2794, 180)
winsound.Beep(2637, 180)
winsound.Beep(2637, 180)
winsound.Beep(2349, 180)
winsound.Beep(2349, 180)
winsound.Beep(2093, 720)

Does this work on remote kernels?

The poor man's solution:
import winsound

winsound.Beep(2093, 180)
winsound.Beep(2093, 180)
winsound.Beep(3136, 180)
winsound.Beep(3136, 180)
winsound.Beep(3520, 180)
winsound.Beep(3520, 180)
winsound.Beep(3136, 720)
winsound.Beep(2794, 180)
winsound.Beep(2794, 180)
winsound.Beep(2637, 180)
winsound.Beep(2637, 180)
winsound.Beep(2349, 180)
winsound.Beep(2349, 180)
winsound.Beep(2093, 720)

Does this work on remote kernels?

That is an excellent question! Thank you!
You should test it out and let us know!

We recently added Audio Cues for when cells finished running, check it out, it might help. I don't think we will add a vscode notification for this, but this might be enabled with extension API in the future.

Direct link: https://code.visualstudio.com/docs/editor/accessibility#_audio-cues

Related on Stack Overflow: How can I get notifications in VS Code like in Google Colab when a Jupyter Notebook Cell is done executing?

Sometimes we need a popup notification rather than an audio ring.


Fix agg step when only groupings exist

When only groupings exist, the phase was not set which causes failure in plan print. This PR fixed this issue.

Verified locally.

@marin-ma

Verified locally. LGTM.


add webpack plugin

const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
  plugins: [
    new CopyWebpackPlugin([
      {
        from: 'node_modules/monaco-editor/min/vs',
        to: 'vs',
      }
    ])
  ]
};

this what I have used in webpack. I can't find way to use webpack plugin with rewired

I tried this but it is not working for me.

@Khaleel did you manage to get it working?

No. However I worked another solution from stack which was helpful. Here is the link
https://stackoverflow.com/questions/51923251/how-can-i-add-the-copywebpackplugin-to-create-react-app-without-ejecting

I had issue about copying IIFE containing javascript file to dist folder. react-app-rewired and CopyWebpackPlugin worked for me.
You can check the following repository for the solution:
https://github.com/ryoldash/cra-webpack-config

So, I normally don't use CRA, but rather start off with a custom webpack.config.js 🤷 .
That said, using CRA and react-app-rewired I also ran into this issue.

NOTE: I didn't use customize-cra to get this working.
I had use a specific version of<EMAIL_ADDRESS>, which needed to be locked to the version CRA depended on.

package.json
    "resolutions": {
        "webpack": "4.42.0"
     }

I got plugins to work ... well kind of. I was using the webpack.DefinePlugin to define global variables at build time.
However, I had no luck outside of using webpack's built in plugins.
In my case I just needed basic behaviour (i.e. writing a .json file ) so I read webpack's docs and just wrote my own in a few minutes 🤷
Reference: Webpack - Writing Plugins
Plugin definition
scripts/write-json-webpack-plugin.js:
class WriteJsonWebpackPlugin {
    constructor(filename = 'build/version.json', options = {}) {
        this.filename = filename;
        this.options = options;
    }
    apply(compiler) {
        compiler.hooks.done.tap('Version Webpack Plugin', (
            stats
        ) => {
            fs.writeFileSync(this.filename, JSON.stringify({
                ...this.options
            }, false, 4))
        })
    }
}

Plugin usage
config-overrides.js:
const WriteJsonPlugin = require('./scripts/write-json-webpack-plugin')

// ...

module.exports = config => {

// ...

    return {
        ...config,
        plugins: [
            ...config.plugins,
            new webpack.DefinePlugin({
                APP_TEST: 'Hello World'
            }),
            // NOTE: this assumes your output directory is 'build'
            new WriteJsonPlugin('build/test.json', {
                appTest: 'Hello World'
            })
        ]
    }
}

Hope this helps anyone else encountering this issue.


dependency fix did not fix build

The fix in e04bfa3ac155e7e0addf56cc57d9acddf3d231df did not unfortunately fix the build failing, and now the build fails elsewhere in the script. See failed run.

seems that steamcmd has completely broken how it is installed. lovely. will need to fix later


BugFix: React/JSX errors on /transform-property #376

Issue: https://github.com/CodeForPhilly/vacant-lots-proj/issues/376
It seems like the issue was a p tag that wasn't a parent (changed to a div instead) and a p tag not closed before starting an ul.

@all-contributors please add @liathirsh for code


how to stop speaker from getting to sleep

I could play some sounds on raspberry pi 0w to a bluetooth speaker but the speaker gets into sleep mode and i want to avoid it. Each time, i need to press the speaker button to put it back on and connect it manually.
any body knows how to stop speaker from getting to sleep?

found solution within bluealsa parameters


Named aggregations allowing multiple aggregations per field in one query

Problem

Currently, it's not possible to do things like _count the same field twice with different filters. It's also not possible to set the name of the _count field on the returned result, which I think is a blocker to the former.
Having the ability to aggregate multiple times on one field would be useful for quickly building summary queries while avoiding having to make multiple queries and then join them together.
Suggested solution

Something similar to Django's annotations would be useful. Maybe one of the following syntaxes could work.
db.recipe.findMany({
  include: {
    _count: {
      select: {
        "fruit_recipe_count": { field: "ingredients", where: {category: "Fruit"} } // count of fruit recipes labelled as "fruit_recipe_count"
        "veg_recipe_count": { field: "ingredients", where: {category: "Vegetable"} } // count of vegetable recipes labelled as "veg_recipe_count"
      }
    }
  }
})

db.recipe.findMany({
  include: {
    "fruit_recipe_count": {
      _count: {
        select: {
          ingredients: { where: {category: "Fruit"} } // count of fruit recipes labelled as "fruit_recipe_count"
        }
      }
    },
    "veg_recipe_count": {
      _count: {
        select: {
          ingredients: { where: {category: "Vegetable"} } // count of fruit recipes labelled as "veg_recipe_count"
        }
      }
    }
  }
})

this would be great to have

I'm in, currently building a project where this would be nice to have (currently doing an array filter on the client), but seems the server bearing the brunt of this would be better, especially with larger datasets.

also hitting this limitation, would like to use multiple aggregations in a single query to power a summary page of stats I have about a single model. only way to bypass the limitation is to run multiple queries as far as I can see

This would be an amazing feature to have! I was trying to retrieve the count of a model's relation twice with different where clauses within the same query (e.g. a Rating relation queried twice with positive set to true or false to retrieve positive/negative ratings on content items).
Without using raw/multiple queries, a workaround that may be suitable to others and myself involves creating two relations that map to the same model similar to the issue here (in my case, two relations, RatingPositive and RatingNegative, that map to the same Rating model). I'm not sure if this is something I'll end up doing since it'll require database changes and some major recode. However, I really want to avoid using raw/multiple queries in my case.
I hope this feature eventually gets implemented!

Named aggregations would be a wonderful feature. Currently, the lack of this feature forces me to use raw sql or multiple queries, both of which are suboptimal when using an ORM in my opinion. I really hope this feature gets implemented.

hi
i have request a chart of summary visit per day  by type ..
it would be great, if this features available soon..

...or array with a name property will also be nice.
db.recipe.findMany({
  include: {

_count: [
     {
       _name: 'fruit_recipe_count',
        select: {
          ingredients: { where: {category: "Fruit"} } // count of fruit recipes labelled as "fruit_recipe_count"
        }
      },
     {
       _name: 'veg_recipe_count',
        select: {
          ingredients: { where: {category: "Vegetable"} } // count of fruit recipes labelled as "veg_recipe_count"
        }
      }

  }
})

Any update on this one ?

This would be an awesome feature to have!! +1

Please Add this feature

Adding my upvote to make this feature an important addition!

please include this property

This would be great if it was included, basically a necessity for a project I am working on

this is a must have :)

Came to see that this is 2-year ache :)
What do you do to work around this? Two queries?

Does anyone have an optimized way to do it?

What is going on here? Will this be done eventually or just custom sql?

This seems a very upvoted feature request. Any chance for this to be taken into account now?