Serving Rich Metadata / Schema.org integration

I was wondering if anything had ever been decided about allowing the pws to utilize schema.org defined content. It looks like pws does get json-ld files but it doesn't seem like anything is being done with them currently. I just wanted to open a conversation about improving the content discovery experience and possible ways to do that using the existing tools people already use on their sites (RDFa, Microdata, OpenGraph, Twitter Cards...). I know there might be some possible security concerns around the use of actions but it might be a good way to present existing data. There was some talk about it in #482 but I thought it should be revisited.

We started down that road and got a bit waylaid by the energy required to ship something ;-)
The json+ld or schema.org is still an interesting direction we'd like to explore, the real question is "What's the best way to use/expose this data?" The obvious discussion would be around ranking/grouping related URLs.
Right now, we're working towards a simple distance ranking approach (we don this on iOS, it's coming to Android soon) It's not perfect but it's reasonable in that the things closest to you are highest in the list.
As the number of nearby beacons grows, we're going to have to change the UI and one of the key ideas is to 'recommend' the top X beacons but below it have 'folders' or related beacons. We haven't really started doing much thinking on that yet but if you've got some ideas (or alternative suggestions, please do feel free to chime in)
BTW, an alternative approach is to have the URL not point to a web page but a JSON blob. This would allow the PW scanner, but more importantly other scanners to be created for very specific/targeted use cases. This becomes even more interesting when WebBluetooth offers scanning, meaning that a 'classic HTML' beacon can show you an app, that then allows you to have a targeted, local experience using JSON/Schema.org based objects. Exciting stuff as it allows the experimentation to occur outside of the Physical Web (which makes us very happy as we don't want to be the bottleneck)

I've noticed not a lot of websites/CMS' are using JSON- LD, but more are using various forms of open graph, schema.org, or various other tags. I like the idea of being able to filter based on schema.. so show only places/places that are open, or only coupons.

A +1 on the wishlist from me for this. I'd really like to see the integration schema.org (as used elsewhere such as google now and actions in the inbox) so that physical web just becomes integrated into my now cards "hey you're at location X here's the info"

Let's discuss this a bit more. Now, you're thrilled to find just a few beacons, the actual number is small enough that a sorted list by distance is very effective for up a few dozen beacons. We very much want to explore ways of adding more information but we want to do it in a way that is very transparent and open so other scanners (and more importantly PWS's) can also support it as well. The key thing is to do it in a way that is optional so we don't break any scanner/PWS that is slower to adopt.
My suggestion would be to extend the PWS to return these additional meta tags. This would allow the client to then optionally offer a UX to sort/filter these items in different ways. For example, you could image a list with folders or a completely different one with a search field (defaulting to all)
The key thing is that we hammer out what the PWS does and what the client does as. This requires letting go of a little control so the PWS and client each have a clear roll but it's possible for both of them to not support it and the system doesn't fail.

It seems that the secret sauce and driver of a unique PW experience would usually be the hierarchy of the data. The PWS would remain agnostic to the hierarchy, keeping core to its goal of being a proxy service that sends preview information for the URL to the client. The client can then mix and mash to its heart's content.
It seems that OpenGraph would be the next move after JSON-LD, with the highest adoption percentage: http://trends.builtwith.com/docinfo/Open-Graph-Protocol (35% of the top 100k sites)
For consistency, it could be an array similar to JSON-LD:
{
  "metadata": [
    {
      "json-ld": [
        {
          "url": "https://www.southwest.com",
          "@context": "http://schema.org",
          "@type": "Organization",
          "logo": "http://www.southwest.com/assets/images/globalnav/logos/swa_logo_dark.svg"
        }
      ],
      "open-graph": [
           "audio": "http://flightsoundtrack.com",
           "video": "http://flightvideo.com",
           "image": {
                 "url":"http://flightimage.com",
                 "type":"image/jpeg",
                 "width": "400"
           }
      ],
      "description": "Official Southwest Airlines website, the only place to find Southwest Airlines fares online. Book lowest airfare deals, view flight schedules, get flight status, and book rental cars and hotels.",
      "title": "Southwest Airlines | Book Flights, Airline Tickets, Airfare",
      "url": "https://www.southwest.com/",
      "rank": 1000,
      "displayUrl": "https://www.southwest.com/",
      "groupid": "c963260bea7bb36c",
      "id": "https://www.southwest.com/",
      "icon": "https://url-caster.appspot.com/favicon?url=https%3A%2F%2Fwww.southwest.com%2Fassets%2Fimages%2Ffavicon.ico"
    }
  ]
}

Likewise with oEmbed, twitter cards, microdata, etc.

I have been building some things with PW recently, and those things are focused on local home iot use cases. I am adding an increasingly wide arrange of devices that may or may not have pre-existing interfaces, by way of adding beacons.
In my use cases, I observe:

I want it to be easy and cheap to introduce actionable notifications. I'm already using serviceworker, so the API being a mirror of serviceworker makes sense here.
In cases where I'm deploying beacons that point at pre-existing sites (e.g. a router client summary page), I can't add new standards metadata to the sites. I'd prefer to rely on existing and common metadata formats in their regular locations and formats (e.g. manifest.json).
When I'm building new things, I'd prefer to be able to test them out "as normal" in my existing browser tooling, which makes re-using the PWA toolchain a better match than introducing new manifests that will need new tools.

Finally, I'm not necessarily sure that "35% of the top 100k sites" is the right metric for PW use cases. I don't really want CNN.com as a PW as I walk around the streets of {cityName}. I don't think PWs have so much of the knowledge graph requirements. There's implicit knowledge (locality) and a requirement for ease of integration (simple actions forwarding), rather than search type problems.
My $0.02.

@raggi Good points. I haven't heard of many home iot use cases for physical web- I'd love to see it in action. I disagree with not including existing search engine structured data- because there are already a lot of existing sites using it, and a great value of the physical web is that one does not need to build new content to access it. I really like some of the stuff in JSON-LD- actions and richer data. Since the PWS is just scraping the data rather than running the site, I think it is a good fit. I do like the idea of a service worker-ish API- perhaps for a Web Bluetooth scanning API.
@scottjenson What are your thoughts on this- and are there any intentions for the team to move forward with any of these in the near term?

I guess I just want to back up and ask "to what end?" Are we discussing sorting/grouping of found beacons? @raggi seems to want to encorporate actions into the list. These are two very different directions.
So far, we've been trying to keep this simple and small: a list of of web pages. We experimented early on with actions but felt like we were opening up a pandora's box as how you display those actions can vary so much.
Case in point: a museum experiene. What should be done in the PW and what should be done with the website itself? Now that WebBluetooth is starting to ship, it's reasonable to say that the museum web page should be the place to experiment with how you navigate/notify the user. We feel this is the right 'web way', e.g. let each page experiment and avoid forcing a single solution into the the PW list.
Besides, we strongly hope there are multiple PW scanners out there (not just Google) If we keep adding more and more for each scanner to do, we risk fragmenting the various scanners. By pushing as much out of the scanner and into each web page, we hope to enable multiple scanners.

I was pointed here from a discussion on chromedev Slack. It was suggested to me that this was one possible good way to handle actions. I don't mean to cause a conflation. For my use cases, I'd just like something simple, but I'm sure there are others.

So do you want to handle actions w/in the PW scanner? (nearby or Chrome or Opera?) Curious what type of actions you're talking about. If it is a simple set of commands a simple web page would work. of course, if you want to do something fancier, it wouldn't. I guess I'm trying to figure out what brand of fancy you're after.

So I am wrapping up things like Nest, Sonos, various Z-Wave devices, etc.
Concrete examples pop out:
Thermostat
[ +   /    - ]

Music
[ +  |>  ||  - ]

Gate
[ OPEN ]

What I'm doing with my wrappers is enabling people who are inside my property to make comfort changes without having to open up authenticated services to everyone. The proxies perform basic actions with specific privilege and prevent abuse by rates and other such limits, sometimes by pinging me.
The actions are all basic - just buttons to post to an url.
Right now, I can pop up pages that a user has to visit, then add notifications via a serviceworker with actions, but that seems inappropriate as it's hard to detect when they go away. Users don't have a good way to control this. Proximity is the correct use case for the visibility of these cards.

Very cool stuff! I'm not against your thinking here, but I am trying to figure out how a PW scanner would be part of this. For example, you'd like to only show controls to people w/in your property. That's reasonable. However, how would the PW scanner be able to enforce this?
Another approach would be to have a "Raggi-House" web page that the user would open up and then show the commands that are appropriate for your location w/in the house. This gives the user a single web page but the actual UI would vary. This puts all of the power in your hands and keeps the PW out of it.

That's not really what I want, and there are many reasons for this:

I want users who attach to my wifi / approach my beacons to get the options regardless of what software they have installed.
I do not want to publish urls to users, or have them type anything, ever.
I do not want to aggregate all services into a single app - I deploy different apps in different ways, some stuff I build (most of what I have right now), but other stuff I just grab and deploy behind and ssl proxy (e.g. one of the sonos web UI's I lean on). I'd like to keep it this way, not having to write a ton more code. This is more viable in the global business of IOT too, though - there will never be a single controller that can do everything and there should be no need, if we make discovery automagic.

The PW scanner is not a core part of where I'm headed. I want Chrome to do this entirely natively in future, and I believe it's already doing that with eddystone beacons. As per the above, I also don't want users to have to install anything. They should arrive and be afforded certain conveniences immediately, with 0 install, including 0 install of a service worker.

You might have been asking about how a PW scanner would know whether you're inside or outside my property - the "security" aspect of this? The most basic privilege I have setup is that most write-able services won't allow POSTS from outside my lan, so, you'll need to have my fairly well known wifi password. Physical security related stuff most people can't write to, the web app auths you when you try, and if you're unknown then (eventually) I'll get pinged. PW doesn't need to handle any of my security stuff, what it needs to do is present the user with 0-install capabilities and discovery.

Most of your bullet points are exactly what the Physical Web is about so I'm confused. The whole point is that you can 'walk up and use anything' with the Physical Web. This conversation started up around JSON+LD (or schema.org (or both)) to augment the PW list.
My attempt on this thread is to figure out how you'd like to augment that list. However, it appears you'd rather not use the PW at all and do everything in Chrome, that's perfectly fine, I'm just not sure what we're talking about then.
As we're on the PW github, what do you want the PW to do?

I'm only talking about my use case. I was pointed here by Kevin as I was talking about actions in PW notifications on the chrome dev slack.
I do not understand your distinction between "we're PW on github" vs. Chrome. When I go to chrome docs on it's physical web stuff, it points me to this repo. As a user, they are not different.

If I understand correctly, Scott is speaking about whether it is fully within a browser (in Chrome) vs in the touchpoint of a PW scanner(where metadata has been scrapped but the user has not visited the site yet). I think with your need for something that doesn't require a lot of building out is at the heart of the physical web. Schema.org action would work well for that-https://schema.org/Action
Or you could use something like phy.net's api(https://my.phy.net/api/docs) and change the url that your beacon is pointing to after action is taken. This solution would work now- the two urls could have "pause" and "play" icons and language to match it.
Bringing it back to the bigger picture- There is a lot of data that websites provide that the physical web is currently missing. I think if we stick with standards that augment the experience rather than define the experience, then it would not be hurt by fragmentation- like adding a photo from Schema or OpenGraph

@kevinahuber thank you, I'm just trying to understand what is being asked in this issue. If were were to expose more data in the PW list, what should it be? I'm just trying to nail down a specific ask. In general, we've found that most things that people ask for are fairly specific and hard to generalize across all users. This has lead us to the conclusion that we actually shouldn't do too much at the PW scanner level and get users to web pages, where they can get a tailored experience.
If, however, this is a truly generalizable case that should be explored, I'm all for it. I just haven't heard it articulated yet.

@scottjenson I think a picture would be a fantastic add to the PW- Opera is already pulling a picture. Based on cliche sayings, a picture is worth a lot more words than we can fit in a title and description.
Looking at the makeup of a lot of sites (including those on the physical web)- OG image is the most prevalent, intentional image that is placed in a website. We could use JSON-LD as well, but a lot less pages have JSON-LD images. I think it should not pull just any image. Many pages have social media icons first, so that could be a bit dicey.

That's an interesting idea. I'll have to take a look at how opera does it. The trick is going to be getting the image to be placed in a way that is generically useful to as many folks as possible. Do you think Opera's approach is the most useful?

The BeaconSage beacon browser pulls the favicon and then falls back to OG image.

Our production Physical Web Server already works quite hard at getting an image, starting with the favicon and then using the the web manifest and then (I believe) the Apple Home Screen Icon as well. This hasn't been documented yet but it gives a wide range of options to present a high rez image.
What I hear you saying is that adding the OG image would be a helpful addition?

@scottjenson Yea, I think so. But I think we should differentiate the image from an icon- the images tend to be wider and much higher res so it could be displayed larger.
My bit on the PWS- If we work to make that more robust, and pull a lot of information, this will allow "clean fragmentation" to occur. So different people can build different clients, and mix and match which structured data they use. So one could favor using just an icon, and sub in an image at an icon size if available (like BeaconSage). Others can use action- and more specific ones can perhaps show hours or detailed information JSON-LD. SBut the underlying operations among PWS('s) will be consistent.
I also think since privacy is a core concern of the physical web, we should build out the PWS to scrape this information rather than rely on individual browsers to pull them to fill in the gaps (defeating the purpose of a proxy). The hefty process in the PWS is requesting the page, rather than the parsing action, so it should get as much as it can while it has it. I would think doing stuff like pulling all og information (like all of JSON-LD is currently done) would be beneficial, then we can let individual clients decide how they present it. Likewise, we could build this out to pick up itemprop, twitter cards, etc. I'd love to be a part of building this out, if we think this is a good path.
TL;DR: og:image is a huge add, but I think the largest add to the Physical Web experience as a whole would be to build out scraping as much structured data as we can, so that more robust clients can be created in compliance with the goals of the physical web without recreating what others have done before them and potentially introducing bugs that won't display all pages on the physical web.


Add CLI debug flag

Currently we need to run
export PYTHX_DEBUG=true

in order to enable debug mode.
Improve UX by moving the function into a debug flag. ie: pythx --debug <cmd>

Fixed with #28


razzle.config.js in project template should be easier to extend

Right now, if I want to tweak configuration in the generated razzle.config.js, I have to rewrite it, more or less, and this operation is not exactly trivial to newbies.
I propose that we ship with a razzle.config.js that already has its own local modify function, so that it's easier to instruct beginners on how to extend it with custom code.

Example razzle.config in a project:
const path = require('path');
const makeLoaderFinder = require('razzle-dev-utils/makeLoaderFinder');

const babelLoaderFinder = makeLoaderFinder('babel-loader');

const jsConfig = require('./jsconfig').compilerOptions;

const pathsConfig = jsConfig.paths;
let voltoPath = './node_modules/@plone/volto';
Object.keys(pathsConfig).forEach((pkg) => {
  if (pkg === '@plone/volto') {
    voltoPath = `./${jsConfig.baseUrl}/${pathsConfig[pkg][0]}`;
  }
});

const { modifyWebpackConfig, plugins } = require(`${voltoPath}/razzle.config`);

const customModifyWebpackConfig = ({ env, webpackConfig, webpackObject }) => {
  const config = modifyWebpackConfig({
    env,
    webpackConfig,
    webpackObject,
  });
  const babelLoader = config.module.rules.find(babelLoaderFinder);
  const { include } = babelLoader;
  const corePath = path.join(
    path.dirname(require.resolve('@react-leaflet/core')),
    '..',
  );
  const esmPath = path.join(
    path.dirname(require.resolve('react-leaflet')),
    '..',
  );

  include.push(corePath);
  include.push(esmPath);
  return config;
};

module.exports = { modifyWebpackConfig: customModifyWebpackConfig, plugins };

can i work on this?

@akshatgarg12 Yes, please do. The idea is to change this file: https://github.com/plone/volto/blob/master/packages/generator-volto/generators/app/templates/razzle.config.js to have a really simple customModifyWebpackConfig (which doesn't have to do anything other then returning the unchanged config), so that, for future generated projects, its easy and obvious what they have to do. Make sure to test this file by copying and overwriting your razzle.config.js file in a Volto project you generate on your machine.


Is there any shortcuts?

Can I use shortcuts after running server? For example to switch to buffer network or to include tags?
Because I don't like mouse so much. It's slow to deal with it :)

Thats actual very useful as I struggle to use the mouse after controlling everything with the keyboard. I use vim-like layer in the browser and hints , however it doesn't work with org server


⚠ Turnos 24x7 has degraded performance

In d7ed88e, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 1148 ms

Resolved: Turnos 24x7 performance has improved in bff48f8.


"Cannot find base config file ./.svelte-kit/tsconfig.json" after running bun install

Describe the bug
The warning "Cannot find base config file ./.svelte-kit/tsconfig.json" only appears when bun install is used instead of yarn or npm install. Not a big problem, though, because yarn dev still runs, and after the initial warning message, a tsconfig.json seems to be added automatically by SvelteKit.
Reproduction

npm create svelte@latest my-app
cd my-app
bun install
yarn dev (or npm run dev)

(Can't use StackBlitz because it bun isn't installed.)
Logs
No response
System Info
System:
    OS: Linux 5.17 Fedora 34 (Workstation Edition) 34 (Workstation Edition)
    CPU: (4) x64 Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
    Memory: 1.23 GB / 7.63 GB
    Container: Yes
    Shell: 5.8.1 - /usr/bin/zsh
  Binaries:
    Node: 16.16.0 - ~/.nvm/versions/node/v16.16.0/bin/node
    Yarn: 1.22.10 - ~/.npm-global/bin/yarn
    npm: 8.11.0 - ~/.nvm/versions/node/v16.16.0/bin/npm
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.67
    @sveltejs/kit: next => 1.0.0-next.445
    svelte: ^3.46.0 => 3.49.0
    vite: ^3.0.8 => 3.0.9

Severity
annoyance
Additional Information
No response

It looks like it currently only runs postinstall on your own project, but not your project's dependencies, so that seems like the issue: https://twitter.com/jarredsumner/status/1555008750120865792. This is an issue in bun and not in SvelteKit, so I'm going to go ahead and close this


Problem with to-string-loader and postcss-loader

I have a problem when use these two loaders together.
There is a repo with minimal setup. Rule:
    {
        test: /\.css$/,
        use: [
            'to-string-loader',
            {
                loader: 'postcss-loader',
                options: {
                    plugins: () => [
                        require('autoprefixer')({browsers: 'last 3 Chrome versions'})
                    ]
                }
            }
        ]
    },

Do:

npm install
./node_modules/.bin/webpack --config webpack.conf.js
change src/base.css, e.g. clear it
./node_modules/.bin/webpack --config webpack.conf.js

Following error is thrown:
ERROR in ./~/postcss-loader/lib?{}!./src/base.css
Module build failed: TypeError: Cannot read property 'postcss' of null
    at Processor.normalize (/home/sergey/projects/basic__webpack/node_modules/postcss/lib/processor.js:136:12)
    at new Processor (/home/sergey/projects/basic__webpack/node_modules/postcss/lib/processor.js:51:25)
    at postcss (/home/sergey/projects/basic__webpack/node_modules/postcss/lib/postcss.js:73:10)
    at Promise.resolve.then.then (/home/sergey/projects/basic__webpack/node_modules/postcss-loader/lib/index.js:137:12)
    at process._tickCallback (internal/process/next_tick.js:103:7)
 @ ./src/base.css 2:21-98
 @ ./src/index.js

Fixed in #153


BE: Add 'validation_status' property with Incident model

Need to add 'validation_status' property with Incident model with choices "pending", "validated" and "rejected".
It's needed so that garbage data can be rejected before performing volunteer matching algorithm. The validation process will be manual.

This issue will be resolved in this PR: https://github.com/skfarhad/hazard_reporting_system/pull/33

Resolved in PR: https://github.com/skfarhad/hazard_reporting_system/pull/33


useCopy doesn't support JSONB or arrays

I am unable to build the project after trying for a couple of hours (wasm docker won't build with the scripts, at least on my machine) and it will require a few tests, but the following does what I need it to - it allows for arrays of simple types and JSONB. I spent far, far too long trying to get JSONB[] to import but in the end abandoned it. JSONB now probably has all the methods you might want that previously only had array versions, so maybe left as a challenge to the reader...
I tried to create a nix flake for building the project but wasn't able to get wasm building using the scripts.
function toCopyable(value: any, surround = '"') {
  // Escape double quotes and wrap in quotes if necessary
  if (typeof value === "string" && (value.includes(",") || value.includes('"') || value.includes("\n"))) {
    return `${surround}${value.replace(/"/g, '""')}${surround}`;
  }
  return value === null ? "\\N" : value;
}

function baseValue(value: any) {
  return typeof value === "object" && value !== null && !Array.isArray(value) ? JSON.stringify(value) : value;
}

async function applyMessagesToTableWithCopy({
  pg,
  table,
  schema = "public",
  messages,
  mapColumns,
  debug,
}: ApplyMessagesToTableWithCopyOptions) {
  if (debug) console.log("applying messages with COPY");

  // Map the messages to the data to be inserted
  const data: Record<string, any>[] = messages.map((message) =>
    mapColumns ? doMapColumns(mapColumns, message) : message.value,
  );

  // Get column names from the first message
  const columns = Object.keys(data[0]);

  // Create CSV data
  const csvData = data
    .map((message) => {
      return columns
        .map((column) => {
          const value = baseValue(message[column]);
          if (Array.isArray(value)) {
            const vals: any[] = [];
            let hasObjects = false;
            for (const val of value) {
              vals.push(toCopyable(baseValue(val), ""));
              if (typeof val === "object") {
                hasObjects = true;
              }
            }
            return `"${hasObjects ? "[" : "{"}${vals.join(",")}${hasObjects ? "]" : "}"}"`;
          }
          return toCopyable(value);
        })
        .join(",");
    })
    .join("\n");
  const csvBlob = new Blob([csvData], { type: "text/csv" });
  const sql = `
      COPY "${schema}"."${table}" (${columns.map((c) => `"${c}"`).join(", ")})
      FROM '/dev/blob'
      WITH (FORMAT csv, NULL '\\N')
    `;
  // Perform COPY FROM
  await pg.query(sql, [], {
    blob: csvBlob,
  });

  if (debug) console.log(`Inserted ${messages.length} rows using COPY`);
}

I am unable to build the project after trying for a couple of hours  (wasm docker won't build with the scripts, at least on my machine)

Just to make sure, what are the steps that you followed to build the project?
This works:
$ git clone git@github.com:electric-sql/pglite.git pglite
$ cd pglite
$ pnpm install
$ pnpm build:all

I am unable to build the project after trying for a couple of hours  (wasm docker won't build with the scripts, at least on my machine)

Just to make sure, what are the steps that you followed to build the project?

Ok, sorry I should have updated this... I have a difficult network situation and I recently migrated to nixos and am still just learning... It was an issue on my side getting to the international internet from inside the container. I can build it fine now!
The copy issue is still there however. I am almost at the end of something else for pglite and will follow that up by doing some copy to/from a postgres using psql to try and reverse engineer the escaping algorithm. I'll then try and submit a PR.
Unless this is easily exposable from somewhere in the wasm?

Hey @AntonOfTheWoods
The useCopy option is quite new, and mostly implemented to speed up the demo I'm working on, I'm not surprised it doesn't work with all types yet. This first version uses CSV, but I'm considering implementing it using the Postgres binary copy format. We can then annotate all types quite easily with the appropriate Postgres types.
Having said that your code above has prompted my thinking, we need to consider what the best implementation is 🤔

Unless this is easily exposable from somewhere in the wasm

I used the Postgres 'format' function previously for this. Take a look at the live query extension, it formats the provided query using it in order to create the view.


‘Dims3’ in namespace ‘nvinfer1’ does not name a type!!

Hello,
I got the following error while trying to compile jetson codes:
/home/shervin/Desktop/jetson-inference/tensorNet.h:159:12: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 mInputDims;
I would thankful if you could provide some comments on how to resolve the issue

Which JetPack version are you using?  Is this compiling onboard the Jetson?
On Jun 24, 2017 3:39 AM, ShervinAr<EMAIL_ADDRESS>wrote:
Hello,
I got the following error while trying to compile jetson codes:
/home/shervin/Desktop/jetson-inference/tensorNet.h:159:12: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 mInputDims;
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDKxECG56PfgPuICUJaiYerP_CWNTbks5sHL0zgaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@dusty-nv  Thanks for your response. It is JetPack 3.0 and  TensorRT 2.1. I am compiling the codes on my host machine (Ubuntu 16.04) and not on Jetson board.

Shervin, Jetson does not support TensorRT 2.1 yet.  It will be available in an upcoming release, at which time the GitHub repo will be fixed too.
On Jun 24, 2017 8:17 AM, ShervinAr<EMAIL_ADDRESS>wrote:
@dusty-nvhttps://github.com/dusty-nv Thanks for your response. It is JetPack 3.0 and TensorRT 2.1. I am compiling the codes on my host machine (Ubuntu 16.04) and not on Jetson board.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-310835199, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK6s8GOghQw8LirFbUy4pTZb0XKvvks5sHP5GgaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@dusty-nv Dustin, so I should switch back to TensorRT 1.0?

For the time being, yes.
On Jun 24, 2017 8:20 AM, ShervinAr<EMAIL_ADDRESS>wrote:
@dusty-nvhttps://github.com/dusty-nv Dustin, so I should switch back to TensorRT 1.0?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-310835369, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK3tu_MuvIMLGS6xeH_JQ8qv-NMD4ks5sHP8ggaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@dusty-nv  many thanks but it seems like TensorRT 1.0 have no available version for Ubuntu 16.04 on a host machine!
Is it possible to install and run TensorRT 1.0 (which only supports Ubuntu 14.04 on a host machine) on an
Ubuntu 16.04 host?

You don't need TensorRT for the host, it compiled and runs onboard Jetson.
On Jun 24, 2017 8:41 AM, ShervinAr<EMAIL_ADDRESS>wrote:
@dusty-nvhttps://github.com/dusty-nv many thanks but it seems like TensorRT 1.0 have no available version for Ubuntu 16.04 on a host machine!
Is it possible to install and run TensorRT 1.0 (which only supports Ubuntu 14.04 on a host machine) on an
Ubuntu 16.04 host?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-310836343, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK3yOI_T77316mAZt2jUZNDanSYLDks5sHQPygaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

Also I bet if you tried the 14.04 version on 16.04, it may still work ok?
On Jun 24, 2017 8:44 AM, Dustin Franklin<EMAIL_ADDRESS>wrote:
You don't need TensorRT for the host, it compiled and runs onboard Jetson.
On Jun 24, 2017 8:41 AM, ShervinAr<EMAIL_ADDRESS>wrote:
@dusty-nvhttps://github.com/dusty-nv many thanks but it seems like TensorRT 1.0 have no available version for Ubuntu 16.04 on a host machine!
Is it possible to install and run TensorRT 1.0 (which only supports Ubuntu 14.04 on a host machine) on an
Ubuntu 16.04 host?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-310836343, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK3yOI_T77316mAZt2jUZNDanSYLDks5sHQPygaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@dusty-nv  I would like to compile the code on the host too. Is there any way to do that with the provided GitHub repo codes?

@dusty-nv  I switched back to tensorRT 1.0 on the Host (Ubuntu 16.04) and compiled jetson codes on the host but got errors again:
/home/shervin/Desktop/jetson-inference/tensorNet.h:159:12: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
nvinfer1::Dims3 mInputDims;

Some people have gotten it to work on desktop with minor changes, but I don't officially support it because the gstreamer/camera stuff is different between Jetson and desktop too.
It looks like you need to dig into the NVInfer.h header on desktop and see what's up with Dims3 declaration vs. Jetson.
On Jun 24, 2017 8:47 AM, ShervinAr<EMAIL_ADDRESS>wrote:
@dusty-nvhttps://github.com/dusty-nv I would like to compile the code on the host too. Is there any way to do that with the provided GitHub repo codes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-310836567, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK1qeP3eUSu-ZPWsL2PFsh-GM-UDNks5sHQU3gaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@ShervinAr  Have you solved this issue? I`m having same problem.

@aprentis  I have switched to an earlier version of Jetpack and the errors are gone

With TensorRT 2, it looks like the Dims3 class has been conceptually replaced with DimsCHW in the NvInfer.h header.  In the jetson-interface code, you'd subsequently have to update any requests for the dimension values (e.g., 'Dims.c' would become 'Dims.c( )') since all dimensions are stored in a single array vs. what I assume were discrete member variables previously.

Today i upgraded to Jetpack 3.1 on my Jetson TX2 and got the same issue, in fact quite a few other errors:
Earlier the same codebase was compiling and working fine on Jetpack 3.0. I guess this is due GIE(TensroRT) updates.
Is there a quick fix that can unblock me? Thanks in advance.
[ 35%] Building CXX object CMakeFiles/jetson-inference.dir/tensorNet.cpp.o
In file included from /home/nvidia/boxer/jetson-inference/tensorNet.cpp:5:0:
/home/nvidia/boxer/jetson-inference/tensorNet.h:159:12: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::Dims3 mInputDims;
            ^
/home/nvidia/boxer/jetson-inference/tensorNet.h:164:13: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
   nvinfer1::Dims3 dims;
             ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp: In constructor ‘tensorNet::tensorNet()’:
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:32:10: error: ‘mInputDims’ was not declared in this scope
  memset(&mInputDims, 0, sizeof(nvinfer1::Dims3));
          ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:32:32: error: ‘Dims3’ is not a member of ‘nvinfer1’
  memset(&mInputDims, 0, sizeof(nvinfer1::Dims3));
                                ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp: In member function ‘bool tensorNet::ProfileModel(const string&, const string&, const std::vector<std::__cxx11::basic_string<char> >&, unsigned int, std::ostream&)’:
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:85:58: error: ‘createInferBuilder’ was not declared in this scope
  nvinfer1::IBuilder* builder = createInferBuilder(gLogger);
                                                          ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:85:58: note: suggested alternatives:
In file included from /home/nvidia/boxer/jetson-inference/tensorNet.h:9:0,
                 from /home/nvidia/boxer/jetson-inference/tensorNet.cpp:5:
/usr/include/aarch64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
 inline IBuilder* createInferBuilder(ILogger& logger)
                  ^
/usr/include/aarch64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:153:34: error: no matching function for call to ‘nvinfer1::ICudaEngine::serialize(std::ostream&)’
  engine->serialize(gieModelStream);
                                  ^
In file included from /home/nvidia/boxer/jetson-inference/tensorNet.h:9:0,
                 from /home/nvidia/boxer/jetson-inference/tensorNet.cpp:5:
/usr/include/aarch64-linux-gnu/NvInfer.h:2322:23: note: candidate: virtual nvinfer1::IHostMemory* nvinfer1::ICudaEngine::serialize() const
  virtual IHostMemory* serialize() const = 0;
                       ^
/usr/include/aarch64-linux-gnu/NvInfer.h:2322:23: note:   candidate expects 0 arguments, 1 provided
/home/nvidia/boxer/jetson-inference/tensorNet.cpp: In member function ‘bool tensorNet::LoadNetwork(const char*, const char*, const char*, const char*, const std::vector<std::__cxx11::basic_string<char> >&, uint32_t)’:
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:217:59: error: ‘createInferBuilder’ was not declared in this scope
   nvinfer1::IBuilder* builder = createInferBuilder(gLogger);
                                                           ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:217:59: note: suggested alternatives:
In file included from /home/nvidia/boxer/jetson-inference/tensorNet.h:9:0,
                 from /home/nvidia/boxer/jetson-inference/tensorNet.cpp:5:
/usr/include/aarch64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
 inline IBuilder* createInferBuilder(ILogger& logger)
                  ^
/usr/include/aarch64-linux-gnu/NvInfer.h:2742:18: note:   ‘nvinfer1::{anonymous}::createInferBuilder’
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:234:56: error: ‘createInferRuntime’ was not declared in this scope
  nvinfer1::IRuntime* infer = createInferRuntime(gLogger);
                                                        ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:234:56: note: suggested alternatives:
In file included from /home/nvidia/boxer/jetson-inference/tensorNet.h:9:0,
                 from /home/nvidia/boxer/jetson-inference/tensorNet.cpp:5:
/usr/include/aarch64-linux-gnu/NvInfer.h:2755:18: note:   ‘nvinfer1::{anonymous}::createInferRuntime’
 inline IRuntime* createInferRuntime(ILogger& logger)
                  ^
/usr/include/aarch64-linux-gnu/NvInfer.h:2755:18: note:   ‘nvinfer1::{anonymous}::createInferRuntime’
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:242:77: error: no matching function for call to ‘nvinfer1::IRuntime::deserializeCudaEngine(std::stringstream&)’
  nvinfer1::ICudaEngine* engine = infer->deserializeCudaEngine(gieModelStream);
                                                                             ^
In file included from /home/nvidia/boxer/jetson-inference/tensorNet.h:9:0,
                 from /home/nvidia/boxer/jetson-inference/tensorNet.cpp:5:
/usr/include/aarch64-linux-gnu/NvInfer.h:2667:33: note: candidate: virtual nvinfer1::ICudaEngine* nvinfer1::IRuntime::deserializeCudaEngine(const void*, std::size_t, nvinfer1::IPluginFactory*)
  virtual nvinfer1::ICudaEngine* deserializeCudaEngine(const void *blob, std::size_t size, IPluginFactory* pluginF
                                 ^
/usr/include/aarch64-linux-gnu/NvInfer.h:2667:33: note:   candidate expects 3 arguments, 1 provided
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:281:2: error: ‘Dims3’ is not a member of ‘nvinfer1’
  nvinfer1::Dims3 inputDims  = engine->getBindingDimensions(inputIndex);
  ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:282:37: error: ‘inputDims’ was not declared in this scope
  size_t inputSize  = maxBatchSize * inputDims.c * inputDims.h * inputDims.w * sizeof(float);
                                     ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:309:3: error: ‘Dims3’ is not a member of ‘nvinfer1’
   nvinfer1::Dims3 outputDims = engine->getBindingDimensions(outputIndex);
   ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:310:38: error: ‘outputDims’ was not declared in this scope
   size_t outputSize = maxBatchSize * outputDims.c * outputDims.h * outputDims.w * sizeof(float);
                                      ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:328:5: error: ‘struct tensorNet::outputLayer’ has no member named ‘dims’
   l.dims = outputDims;
     ^
/home/nvidia/boxer/jetson-inference/tensorNet.cpp:335:2: error: ‘mInputDims’ was not declared in this scope
  mInputDims      = inputDims;
  ^

Today i upgraded to Jetpack 3.1 on my Jetson TX2 and got the same issue, in fact quite a few other errors:
Earlier the same codebase was compiling and working fine on Jetpack 3.0. I guess this is due GIE(TensroRT) updates.

I've got the same situation.
It looks like some changes in update broke the jetson-inference...

Hi guys, now that JetPack 3.1 is public, give me a day or two and I will update the repo.  Trying to do it backwards compatible with the previous version (i.e. with #ifdefs), but we'll see.
On Jul 25, 2017 6:48 AM, AndrewVGr<EMAIL_ADDRESS>wrote:
Today i upgraded to Jetpack 3.1 on my Jetson TX2 and got the same issue, in fact quite a few other errors:
Earlier the same codebase was compiling and working fine on Jetpack 3.0. I guess this is due GIE(TensroRT) updates.
I've got the same situation.
It looks like some changes in update broke the jetson-inference...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-317701145, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK_6xATJ9PMHvE42mcllDvzXoC6euks5sRcgQgaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@dusty-nv You have always been very helpful. Thanks for all the kind help.
Looking forward to your updated repo.

@dusty-nv Thanks ! I'm also stuck with jetpack 3.1 on TX2 !

In the same boat.
JetPack 3.1, Tx1 .

Hi guys, support for TensorRT2 is working now in master with commit e40bd6
For backwards compatibility, it's still building for previous JetPack's still on TensorRT1 using some macros I added. There were no outward-facing changes to the vision primitive APIs themselves.

Missed this in my pull by minutes.
Thanks Dusty, this compile went cleanly.
Latest Jetson/JetPack and TX2 as I just started this morning.
Kent

@dusty-nv thanks.
No problem compiling now.
However, when I want to run imagenet-console specifying a custom net (which worked under TX1/TensorRT 1 with jetson-inference) :
~/jetson-inference_trt-2.1/build/aarch64/bin/imagenet-console $input output.jpg \
--prototxt=$caffeModel/prototxt \
--model=$caffeModel/caffemodel \
--labels=$caffeModel/labels.txt \
--input_blob=data \
--output_blob=$(cat $caffeModel/output_blob.txt) \
--batch_size=2

I've got the following error :

imagenet-console: cudnnEngine.cpp:605: bool nvinfer1::cudnn::Engine::deserialize(const void*, std::size_t, nvinfer1::IPluginFactory*): Assertion `size >= bsize && "Mismatch between allocated memory size and expected size of serialized engine."' failed.
Do you know i the problem comes from TensorRT or jetson-inference ?
Thanks a lot !!

In my case, compilation works.
I can test the imagenet_console...
But running imagenet_camera runs into an error:
`ubuntu@tegra-ubuntu:~/jetson-inference/build/aarch64/bin$ ./imagenet-camera googlenet
imagenet-camera
args (2):  0 [./imagenet-camera]  1 [googlenet]
[gstreamer] initialized gstreamer, version <IP_ADDRESS>
[gstreamer] gstreamer decoder pipeline string:
nvcamerasrc fpsRange="30.0 30.0" ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12 ! nvvidconv flip-method=2 ! video/x-raw ! appsink name=mysink
imagenet-camera:  successfully initialized video device
width:  1280
height:  720
depth:  12 (bpp)
imageNet -- loading classification network model from:
-- prototxt     networks/googlenet.prototxt
-- model        networks/bvlc_googlenet.caffemodel
-- class_labels networks/ilsvrc12_synset_words.txt
-- input_blob   'data'
-- output_blob  'prob'
-- batch_size   2
[GIE]  attempting to open cache file networks/bvlc_googlenet.caffemodel.2.tensorcache
[GIE]  loading network profile from cache... networks/bvlc_googlenet.caffemodel.2.tensorcache
[GIE]  platform has FP16 support.
[GIE]  networks/bvlc_googlenet.caffemodel loaded
[GIE]  CUDA engine context initialized with 2 bindings
[GIE]  networks/bvlc_googlenet.caffemodel input  binding index:  0
[GIE]  networks/bvlc_googlenet.caffemodel input  dims (b=2 c=3 h=224 w=224) size=1204224
[cuda]  cudaAllocMapped 1204224 bytes, CPU 0x100ce0000 GPU 0x100ce0000
[GIE]  networks/bvlc_googlenet.caffemodel output 0 prob  binding index:  1
[GIE]  networks/bvlc_googlenet.caffemodel output 0 prob  dims (b=2 c=1000 h=1 w=1) size=8000
[cuda]  cudaAllocMapped 8000 bytes, CPU 0x100e20000 GPU 0x100e20000
networks/bvlc_googlenet.caffemodel initialized.
[GIE]  networks/bvlc_googlenet.caffemodel loaded
imageNet -- loaded 1000 class info entries
networks/bvlc_googlenet.caffemodel initialized.
default X screen 0:   1920 x 1080
[OpenGL]  glDisplay display window initialized
[OpenGL]   creating 1280x720 texture
loaded image  fontmapA.png  (256 x<PHONE_NUMBER> bytes
[cuda]  cudaAllocMapped 2097152 bytes, CPU 0x100f20000 GPU 0x100f20000
[cuda]  cudaAllocMapped 8192 bytes, CPU 0x100e22000 GPU 0x100e22000
[gstreamer] gstreamer transitioning pipeline to GST_STATE_PLAYING
Socket read error. Camera Daemon stopped functioning.....
gst_nvcamera_open() failed ret=0
[gstreamer] gstreamer failed to set pipeline state to PLAYING (error 0)
imagenet-camera:  failed to open camera for streaming
`

Hmm camera works over here, it looks like your gstreamer CSI camera is having difficulty opening the stream.  Can you recompile the program with a different #USE_CAMERA define near the top of imagenet-camera, >= 0 for V4L2 USB webcam.  Also does imagenet-console work for you?
On Jul 26, 2017 2:11 PM, Shakti Dhar<EMAIL_ADDRESS>wrote:
In my case, compilation works.
I can test the imagenet_console...
But running imagenet_camera runs into an error:
`ubuntu@tegra-ubuntu:~/jetson-inference/build/aarch64/bin$ ./imagenet-camera googlenet
imagenet-camera
args (2): 0 [./imagenet-camera] 1 [googlenet]
[gstreamer] initialized gstreamer, version <IP_ADDRESS>
[gstreamer] gstreamer decoder pipeline string:
nvcamerasrc fpsRange="30.0 30.0" ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12 ! nvvidconv flip-method=2 ! video/x-raw ! appsink name=mysink
imagenet-camera: successfully initialized video device
width: 1280
height: 720
depth: 12 (bpp)
imageNet -- loading classification network model from:
-- prototxt networks/googlenet.prototxt
-- model networks/bvlc_googlenet.caffemodel
-- class_labels networks/ilsvrc12_synset_words.txt
-- input_blob 'data'
-- output_blob 'prob'
-- batch_size 2
[GIE] attempting to open cache file networks/bvlc_googlenet.caffemodel.2.tensorcache
[GIE] loading network profile from cache... networks/bvlc_googlenet.caffemodel.2.tensorcache
[GIE] platform has FP16 support.
[GIE] networks/bvlc_googlenet.caffemodel loaded
[GIE] CUDA engine context initialized with 2 bindings
[GIE] networks/bvlc_googlenet.caffemodel input binding index: 0
[GIE] networks/bvlc_googlenet.caffemodel input dims (b=2 c=3 h=224 w=224) size=1204224
[cuda] cudaAllocMapped 1204224 bytes, CPU 0x100ce0000 GPU 0x100ce0000
[GIE] networks/bvlc_googlenet.caffemodel output 0 prob binding index: 1
[GIE] networks/bvlc_googlenet.caffemodel output 0 prob dims (b=2 c=1000 h=1 w=1) size=8000
[cuda] cudaAllocMapped 8000 bytes, CPU 0x100e20000 GPU 0x100e20000
networks/bvlc_googlenet.caffemodel initialized.
[GIE] networks/bvlc_googlenet.caffemodel loaded
imageNet -- loaded 1000 class info entries
networks/bvlc_googlenet.caffemodel initialized.
default X screen 0: 1920 x 1080
[OpenGL] glDisplay display window initialized
[OpenGL] creating 1280x720 texture
loaded image fontmapA.png (256 x<PHONE_NUMBER> bytes
[cuda] cudaAllocMapped 2097152 bytes, CPU 0x100f20000 GPU 0x100f20000
[cuda] cudaAllocMapped 8192 bytes, CPU 0x100e22000 GPU 0x100e22000
[gstreamer] gstreamer transitioning pipeline to GST_STATE_PLAYING
Socket read error. Camera Daemon stopped functioning.....
gst_nvcamera_open() failed ret=0
[gstreamer] gstreamer failed to set pipeline state to PLAYING (error 0)
imagenet-camera: failed to open camera for streaming
`
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/98#issuecomment-318137051, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK0778koj-1F02c-YtHuL-QJHG0ATks5sR4FKgaJpZM4OEQaW.

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

@dusty-nv
Yes, the imagenet-console works fine.

@dusty-nv  never mind. My problem was due to a pre-existing .tensorcache dating from tensorRT v1 times !
imagenet-console works smoothly with provided networks.

I am not able to run it in nvdia discrete graphics and face the similar issue:
When i run in 1060 i have this issue
error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a typenvinfer1::Dims3 dims.
I am trying to build this yolo network on tensoRT.

Hi, the repo is verified against TensorRT 1.0, 2.1, and 3.0 RC using JetPack on TX1/TX2.
You may need to make changes to the includes or paths in CMakeLists.txt to get it building for desktop.


Automatic PR from RestAPI-PR1956

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

Codecov Report

Merging #1693 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1693   +/-   ##
=======================================
  Coverage   55.36%   55.36%
=======================================
  Files        4190     4190
  Lines       99539    99539
=======================================
  Hits        55108    55108
  Misses      44431    44431

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 adc3a3b...fd4098e. Read the comment docs.

Empty PR


Request reply unit test

HI all,
i am trying to test request replay inside a unit test with in memory kafka. It looks like request is handled but no response received.
Can someone look what is wrong in my code?
I have debug message subscriber, OnMessage method is called but no response is received with publisher.
Or can someone share some working request replay unit test?
public class KafkaMockupTest : IDisposable
    {
        private readonly KafkaBroker _broker;
        private readonly IKafkaTestingHelper _testingHelper;
        private readonly MessageSubscriber<MyTestCommand> _messageSubscriber;
        private readonly IPublisher _publisher;

        public KafkaMockupTest()
        {
            var services = new ServiceCollection();

            // Loggers are a prerequisite
            services.AddSingleton<ILoggerFactory, NullLoggerFactory>();
            services.AddSingleton<MessageSubscriber<MyTestCommand>>();
            services.AddSingleton(typeof(ILogger<>), typeof(NullLogger<>));

            services
                // Register Silverback as usual
                .AddSilverback()
                .HandleMessagesOfType<IMessage>()
                .HandleMessagesOfType<MyTestCommand>()
                .HandleMessagesOfType<MyCommandResponse>()
                .WithConnectionToMessageBroker(config => config.AddMockedKafka())
                // Configure inbound and outbound endpoints
                .AddKafkaEndpoints(endpoints => endpoints.Configure(config =>
                {
                    config.BootstrapServers = "PLAINTEXT://tests:1111";
                })
                    .AddOutbound<MyTestCommand>(endpoint => endpoint.ProduceTo("test-topic"))
                    .AddInbound(
                    endpoint => endpoint.ConsumeFrom("test-topic").Configure(config =>
                    {
                        config.GroupId = "my-test-consumer";

                    }))
                )
                //.AddScopedSubscriber<MessageSubscriber<MyTestCommand>>()
                .AddDelegateSubscriber((MyTestCommand message, IServiceProvider s) =>
                    s.GetRequiredService<MessageSubscriber<MyTestCommand>>().OnMessageReceived(message))
                .AddIntegrationSpy();

            var serviceProvider = services.BuildServiceProvider();
            _broker = serviceProvider.GetRequiredService<KafkaBroker>();
            _testingHelper = serviceProvider.GetRequiredService<IKafkaTestingHelper>();
            _messageSubscriber = serviceProvider.GetRequiredService<MessageSubscriber<MyTestCommand>>();
            _publisher = serviceProvider.GetRequiredService<IPublisher>();

        }

        [Fact]
        public async  Task SampleTest()
        {

            await _broker.ConnectAsync();

            // Act
            var messageToSend = new MyTestCommand();
            var response = await _publisher.PublishAsync<MyCommandResponse>(messageToSend, true);

            await _testingHelper.WaitUntilAllMessagesAreConsumedAsync();

            // Assert

            Assert.Single(response);

            _testingHelper.Spy.OutboundEnvelopes.Should().HaveCount(1);
            _testingHelper.Spy.InboundEnvelopes.Should().HaveCount(2);
            var message = (MyTestCommand)_testingHelper.Spy.InboundEnvelopes[0].Message;

            Assert.True(message.Succeed);

            }

        public void Dispose() => _broker?.Dispose();
    }

public class MyCommandResponse : IMessage
    {
        public Guid CorrelationId { get; set; }

        public bool Succeed { get; set; }
    }

public interface IMessage
    {
        public Guid CorrelationId { get; set; }
    }

public class MyTestCommand:IMessage
    {
        public Guid CorrelationId { get; set; }
        public bool Succeed { get; set; }
    }

public class MessageSubscriber<T>
    {
        public List<T> ReceivedMessages { get; } = new List<T>();
        public Task<MyCommandResponse> OnMessageReceived(T message)
        {
            ReceivedMessages.Add(message);

            return Task.FromResult(new MyCommandResponse { Succeed = true, CorrelationId = Guid.NewGuid()});
        }
    }

Just a comment i also added .PublishOutboundMessagesToInternalBus(), but same result

Request response over Kafka is not supported. Not transparently at least.
You cannot just publish a command and expect a result from the Publish method when going over Kafka. To be fair, that feature was implemented in a very early version of Silverback but I think it didn't even land into version 1.0 because it required a lot of assumptions to be made, in order for it to work really transparently.
Anyway, here is how you can achieve the same via Silverback, explicitly using two consumers.
public class KafkaMockupTest : IDisposable
    {
        private readonly KafkaBroker _broker;

        private readonly IKafkaTestingHelper _testingHelper;

        private readonly RequestSubscriber<MyTestCommand> _requestSubscriber;

        private readonly ResponseSubscriber<MyCommandResponse> _responseSubscriber;

        private readonly IPublisher _publisher;

        public KafkaMockupTest()
        {
            var services = new ServiceCollection();

            // Loggers are a prerequisite
            services.AddSingleton<ILoggerFactory, NullLoggerFactory>();
            services.AddSingleton(typeof(ILogger<>), typeof(NullLogger<>));

            services.AddSingleton<RequestSubscriber<MyTestCommand>>();
            services.AddSingleton<ResponseSubscriber<MyCommandResponse>>();

            services
                // Register Silverback as usual
                .AddSilverback()
                .WithConnectionToMessageBroker(config => config.AddMockedKafka())
                .HandleMessagesOfType<IMessage>()
                // Configure inbound and outbound endpoints
                .AddKafkaEndpoints(
                    endpoints => endpoints.Configure(
                            config =>
                            {
                                config.BootstrapServers = "PLAINTEXT://tests:1111";
                            })
                        // Request side (produce request, consume response)
                        .AddOutbound<MyTestCommand>(endpoint => endpoint.ProduceTo("test-request-topic"))
                        .AddInbound(
                            endpoint => endpoint.ConsumeFrom("test-response-topic").Configure(
                                config =>
                                {
                                    config.GroupId = "my-test-consumer";
                                    config.AutoOffsetReset = AutoOffsetReset.Earliest;
                                }))
                        // Response side (consume request, produce response)
                        .AddInbound(
                            endpoint => endpoint.ConsumeFrom("test-request-topic").Configure(
                                config =>
                                {
                                    config.GroupId = "my-test-consumer";
                                    config.AutoOffsetReset = AutoOffsetReset.Earliest;
                                }))
                        .AddOutbound<MyCommandResponse>(
                            endpoint => endpoint.ProduceTo("test-response-topic")))
                // Request subscriber
                .AddDelegateSubscriber(
                    (MyTestCommand message, IServiceProvider s) =>
                        s.GetRequiredService<RequestSubscriber<MyTestCommand>>().OnMessageReceived(message))
                // Response subscriber
                .AddDelegateSubscriber(
                    (MyCommandResponse message, IServiceProvider s) =>
                        s.GetRequiredService<ResponseSubscriber<MyCommandResponse>>().OnMessageReceived(message))
                .AddIntegrationSpy();

            var serviceProvider = services.BuildServiceProvider();
            _broker = serviceProvider.GetRequiredService<KafkaBroker>();
            _testingHelper = serviceProvider.GetRequiredService<IKafkaTestingHelper>();
            _requestSubscriber = serviceProvider.GetRequiredService<RequestSubscriber<MyTestCommand>>();
            _responseSubscriber = serviceProvider.GetRequiredService<ResponseSubscriber<MyCommandResponse>>();
            _publisher = serviceProvider.GetRequiredService<IPublisher>();
        }

        [Fact]
        public async Task SampleTest()
        {
            await _broker.ConnectAsync();

            // Act
            var messageToSend = new MyTestCommand();
            await _publisher.PublishAsync(messageToSend);

            await _testingHelper.WaitUntilAllMessagesAreConsumedAsync();

            // Assert
            _testingHelper.Spy.OutboundEnvelopes.Should().HaveCount(2);
            _testingHelper.Spy.InboundEnvelopes.Should().HaveCount(2);

            _requestSubscriber.ReceivedMessages.Should().HaveCount(1);
            _responseSubscriber.ReceivedMessages.Should().HaveCount(1);
        }

        public void Dispose() => _broker?.Dispose();
    }

    public class MyCommandResponse : IMessage
    {
        public Guid CorrelationId { get; set; }

        public bool Succeed { get; set; }
    }

    public interface IMessage
    {
        public Guid CorrelationId { get; set; }
    }

    public class MyTestCommand : IMessage
    {
        public Guid CorrelationId { get; set; }

        public bool Succeed { get; set; }
    }

    public class RequestSubscriber<T>
    {
        public List<T> ReceivedMessages { get; } = new List<T>();

        public Task<MyCommandResponse> OnMessageReceived(T message)
        {
            ReceivedMessages.Add(message);

            return Task.FromResult(new MyCommandResponse { Succeed = true, CorrelationId = Guid.NewGuid() });
        }
    }

    public class ResponseSubscriber<T>
    {
        public List<T> ReceivedMessages { get; } = new List<T>();

        public void OnMessageReceived(T message)
        {
            ReceivedMessages.Add(message);
        }
    }

Thanks for clarification & answer.


fix(dataset): DAO update

SUMMARY

The dataset DAO.update method was not committing even when asked to. This PR fixes it.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

N/A
TESTING INSTRUCTIONS

N/A
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

🏷  preset:2022.17


[Feature] - DataHub on EKS (open source data catalog)

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

What is the outcome that you are trying to reach?
Ability to deploy DataHub on EKS

Describe the solution you would like
Data-on-EKS support for [DataHub[(https://datahubproject.io/)

Describe alternatives you have considered
N/A

Additional context

https://datahubproject.io/
https://github.com/datahub-project/datahub

@samuelbaruffi If you need any help with this case, I would love to help you or contribute somehow

@Santhin Are you still up for building the Datahub blueprint? All the documentation is here  https://datahubproject.io/docs/deploy/aws

This blueprint is now available under https://awslabs.github.io/data-on-eks/docs/blueprints/data-analytics/datahub-on-eks

@bbgu1 @vara-bonthu - Just curious what the open search issue referenced at : https://github.com/awslabs/data-on-eks/blob/main/analytics/terraform/datahub-on-eks/datahub-addon/values/datahub_values.yaml#L243  is?

datahub:
# force older version until the OpenSearch issue with latest version is resolved
version: v0.8.45

Perhaps a link to said issue on Github so that I can follow it?

@mbuotidem  it wasn't an OpenSearch issue.   Datahub-helm has an issue with systemUpdate job getting started before the datahub-auth-secrets is created and the workaround was to disable systemUpdate, which causes a few indices missing in OpenSearch for the latest version of gms to work.   I just created a PR to update the version to the latest and remove that comment, by creating the secret first instead of waiting for auto-generation.


Switch from StructOpt to Clap

StructOpt being deprecated? Switch do the features which are now integrated into Clap.

I would like to work on this.


Fetch system-probe metadata from the system-probe process

What does this PR do?
Fetch system-probe metadata from the system-probe process.
I also split the cmd/system-probe/api/client to its own package to avoid circular import.
Describe how to test/QA your changes
Test that all system-probe metadata correctly reflect the system-probe configuration when using our official helm chart and datadog-operator.
To see the payload: from the core-agent container agent diagnose show-metadata inventory-agent
For team epbf:

Check that the metadata above are correctly sent when deploying with helm chart (test that enabling all product possible in system-probe are correctly represented in the metadata paylaod).
Check that the config command for system-probe still works like before.

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


Add support for Windows ARM64

This adds proper support for building for Windows ARM64 devices. using MSVC.
It does actually work right now, but only by complete accident, and with no SIMD enabled - this enables everything properly.
As part of this, I updated the version of sse2neon used to one compatible with MSVC - the particular hash I used is the exact one that Blender uses, which is known working (there were some issues with the base 1.7.0 release).
Commands used:
mkdir build
cd build
cmake -G"Ninja" ..
cmake --build .
ctest

All tests pass. This is using VS2022, I wouldn't really use VS2019 for ARM64 platforms if I'm honest.
I didn't test any of the GPU things, although GLUT may work, as I added ARM64 support to FreeGLUT a few years ago.
Addresses #1859 (so probably of interest to @num3ric also)

Love it, thanks for the work! Hopefully the CLA & failing tests can be resolved.

I'll have a dig into those tests and try and figure it out - I don't have those platforms to hand, so will be some guesswork involved.
For the CLA, I'm trying to find out who our internal person is that is responsible for EasyCLA so thay can approve it under our corporate account - I'll find out at some point soon I'm sure

Have fixed a small buildfile issue - I am hoping this may resolve the mac issues (sse2neon accidentally got disabled in some configurations).
I have also fixed some additional issues I encountered while debugging (namely it wasn't actually using sse2neon properly outside of the cmake test, oops).
I have been building with python off, there seems to be some sort of Access Violation Exception, but I'm not sure what it is caused by - for now, the rest of the test suite passes so it should be fine.

CLA now done!

Have you tried (cross-)compiling -A ARM64 from an x64-based PC? Unfortunately #1859 isn't fully addressed here, since compiling this PR still fails for me unless I add:
    if(MSVC)
        set(CMAKE_SYSTEM_PROCESSOR ${MSVC_CXX_ARCHITECTURE_ID})
    endif()

If not, I get OCIO_ARCH_X86 1 and CpuInfo.cpp fails per issue.
PR looks good otherwise though!

I had not, mainly on the account of me not having a suitable x64 machine to hand 😄
I'll get one set up for development and give it a go

Commit pushed, should allow cross-compilation. Tested with the command line:
cmake -A arm64 .. -DOCIO_BUILD_PYTHON=OFF

On a Windows x64 machine - the binaries produices appear to run correctly on my ARM64 machine

@anthony-linaro , thanks for the contribution. Regarding reviews, the project requires a minimum of two reviewers.
This PR makes significant changes to the build system which are not fully tested by our CI, so we definitely need more people to test. This includes validating that the various Mac builds were not affected.
Are you looking for this to go in OCIO 2.4.x or could it wait until 2.5 next fall?

Thanks for the reply @doug-walker - ideally sooner rather than later, so 2.4.x - this would mean Windows ARM64 would be properly compatible with the VFX Reference Platform 2025, rather than having to wait another year.
VFX reference platform compatibility is something that has been requested by a few external partners, and it would probably be a disappointing answer for me to give them, if I told them they need to wait another year, or maintain an out-of-tree patch

+1 on prioritization, to get rid of patches on our next engine release.
Also confirming on my end that this PR successfully resolves #1859.

@anthony-linaro , @num3ric , as a reminder, our 2.4.1 release is going out on Wednesday.  I know you indicated you wanted this PR included, but unfortunately we don't feel that it is ready to merge.

BTW @anthony-linaro  I tested the branch with Windows 11 running in a parallels VM on macbook pro M2 and I'm not super experienced with Arm based Windows development. Let me know if you think that my test environment is not ideal or if you think that I'm overlooking something.

@doug-walker That's disappointing to hear, with a more expeditious review, I could have worked through the issues, but understandably circumstances can prevent this. Will there be another 2.4.x release?
@cozdas I can't repro this, which version of VS are you using? I used these build instructions to use the VS generator:
cmake .. -DOCIO_BUILD_PYTHON=OFF
cmake --build . -- config Release

I also tried without the second line, opening the produiced sln file in VS2022, choosing "Release", and building like that, still with no issues.

Doug - That's disappointing to hear, with a more expeditious review, I could have worked through the issues, but understandably circumstances can prevent this. Will there be another 2.4.x release?
Cozdas - I can't repro this, which version of VS are you using? I used these build instructions to use the VS generator:
cmake .. -DOCIO_BUILD_PYTHON=OFF
cmake --build . --config Release

I also tried without the second line, opening the produiced sln file in VS2022, choosing "Release", and building like that, still with no issues.

@cozdas I did have the same compilation errors in visual studio before 04a723a. Are you sure you're on the latest version of this PR?

Since it worked for you, I re-tried after updating the toolchain, visual studio and cmake to the latest version and re-tried and it compiled on my end too. Basic core tests work too.

Do we know who else needs to review this for it to get merged?


switch /_cube-checker to https://cube-validator.lindas.admin.ch

Is your enhancement related to a problem? Please describe.
https://visualize.admin.ch/_cube-checker only checks for a small subset of the visualize requirements while the https://cube-validator.lindas.admin.ch is the new official tool provided by LINDAS.
Describe the solution you'd like
switch to cube-validator
Describe alternatives you've considered
stick with legacy cube-checker
Usecases and impact
easily check if datasource conforms with visualize requirements
Additional context
will be online soon once Ludovic is back at work

see demo for the URL pattern https://cube-validator.zazuko.com/validate/https:%2F%2Flindas.admin.ch%2Fquery/https:%2F%2Fenvironment.ld.admin.ch%2Ffoen%2Fubd010701%2F8

@bprusinowski @adintegra https://cube-validator.lindas.admin.ch/ is up now 👍

Thanks for the info @Rdataflow. A question for consideration: At the moment the internal cube checker is just a URL which is essentially decoupled from the rest of the application. Because of this, do you think having a redirect (i.e. our understanding of this request) provides a real benefit for users (as they could just go there directly)?
Alternatively, we could retire this functionality and update the documentation to point users to the new cube checker.
What are your thoughts on this?

@adintegra not sure I get you correctly...
see currently upon opening an invalid cubeIRI a notification with the cube-checker appears... something I think still makes sense in the future even with cube-validator at lindas

linking to https://test.visualize.admin.ch/_cube-checker?cubeIri=https://environment.ld.admin.ch/foen/nfi/nfi_T-changes/cube/2077-1
therefore my question: what was your proposition what may happen if a user browses an invalid or non-existsing cube i.e. https://test.visualize.admin.ch/browse?dataset=https%3A%2F%2Fenvironment.ld.admin.ch%2Ffoen%2Fnfi%2Fnfi_T-changes%2Fcube%2F2077-1&dataSource=Test
and sure: retiring and dropping cube-checker from codebase incl docs makes sense now that cube-validator is official

Thanks for the added explanation @Rdataflow – all makes sense now!

link points to cube Validator now on TEST


Open multiple independent fields!

Describe the bug
If the Game Field reaches a bigger size there are more then one fields open which are not connected with each other.
For example at the field 30x16 -> I open the Filed 0x16 and it opens also the field 16x15 most of the time the Problem ist horizontal.
To Reproduce
Steps to reproduce the behavior:

Go to 'Expert'
Click on 'Open Field 0x0'
See error

New insight
It seems that the field is partly identical.
The parts marked in the red rectangles are identical.
How dose this happen is the Random Funktion really Random?
Eventuell verantwortlicher Code aus logic.c
void logic_fill_c(int width, int height, char **field, int numb_of_mine)
{
	logic_place_mine(width, height, field, numb_of_mine);
	logic_place_numb(width, height, field);
}

void logic_place_mine(int width, int height, char **field, int numb_of_mine)
{
	int x, y;
	do{
		x = rand() % width;
		y = rand() % height;
		if (field[x][y] != MINE) {
			field[x][y] = MINE;
			numb_of_mine--;
		}
	} while(numb_of_mine != 0);

}

void logic_place_numb(int width, int height, char **field)
{
	int i, j;
	for (i = 0; i < width; i++) {
		for (j = 0; j < height; j++) {
			if (field[i][j] != MINE) {
				field[i][j] = logic_count_surounding_bombs(width, height, field, i, j) + '0';
			}
		}
	}
}


GridView.GroupStyle is not supported

GroupStyle is supported on GridView (and ListView). Is there a specific functionality that's not working for you?

GroupStyle.Panel isn't currently supported. Otherwise it should work with your second approach. What happens if you don't set GroupStyle.Panel?
You can see an example of grouping in the ListView sample in the Uno Gallery app.

Great!
I'll leave the issue open to track the missing GroupStyle.Panel property.


Apple LLVM 8.1 breaks node-gyp?

Today's apple update for LLVM 8.1 seems to break node-gyp.
/Users/kessilerrodrigues/.node-gyp/0.12.18/include/node/v8.h:5800:54: error: 'CreateHandle' is a protected member of 'v8::HandleScope'
  return Handle<T>(reinterpret_cast<T*>(HandleScope::CreateHandle(
                                        ~~~~~~~~~~~~~^~~~~~~~~~~~
/Users/kessilerrodrigues/.node-gyp/0.12.18/include/node/v8.h:820:29: note: declared protected here
  static internal::Object** CreateHandle(internal::Isolate* isolate,

Apple LLVM version 8.1.0 (clang-802.0.38)

You're probably out of luck.  v0.12.18 is out of support, nothing can be done about that.  Try upgrading to node.js v4.x or newer.

:(

@kessiler Just move the definition of CreateHandle in the .h file from the protected to the public definition - that should fix the build error!

@Thoro that worked, thanks!

@Thoro Thanks for the tip, this really worked

@kessiler also struggling with this very issue, trying to install livedb/hiredis on 0.12. 😕 I think it will just speed up the planned maintenance for this.

For those who are not familiar with .h files, you need to move:
    static internal::Object** CreateHandle(internal::Isolate* isolate,                                            internal::Object* value);
from under

protected:

to under

public:

Around line 820 in

v8/include/v8.h


Reduce database connections to 1 during codegen

Summary
Currently, the default connection pool of SQLx is used which defaults to 10 connections. This could be reduced to 1 since codegen only performs readonly requests.
Motivation
This can cause issues with databases that limit the amount of connections (my personal use case is ElephantSQL free tier, which limits to 5 connections).

I guess we can add a option for sea-orm-cli to limit the maximum number of connection
https://docs.rs/sea-orm/0.6.0/sea_orm/struct.ConnectOptions.html#method.max_connections


Accessibility

Hi @riskmaris ,
Great semantics😎
Though these issues are optional, considering them will significantly improve your website accessibility.

Your use of div tags can be replaced with semantics tags
There are repeating tags e.g header, you can consider fixing this

Happy coding👍

Hi @riskmaris,
The code you completed looks really great. Semantics were good and the contrast is also alright. So, there is nothing much to say then please keep up the excellent work.
Cheers :)


Parkour Warrior music starts playing again once you win the game

Describe the bug
Parkour Warrior music starts playing again once you finish all 8 leaps and win the game.
To Reproduce
Steps to reproduce the behaviour:

Get into a game of Parkour Warrior Survivor.
Finish all 8 leaps and win the game.
You will be able to hear both the game win music and Parkour Warrior music playing at the same time.

Expected behaviour
Parkour Warrior music should not play at this moment as it overlaps with a game win music.
Screenshots & Logs
N/A
System & Version Information

Java Version: 17
Minecraft Version: 1.20.1
IslandUtils Version: 1.5.0
OS: Windows
CPU: AMD Ryzen 5

Additional context
N/A

This is difficult for me to test because i am not very good at PKW: Survivor :)
This issue has come up a lot and i have an idea for a possible solution, i just need to make sure it doesn't break anything else

Should be fixed in 1.6.0


boundary: Prevent static interface functions from being optimized

If we want to replace static functions, these functions in module must
not be optimized, or we will replace the entry with wrong jmp and cause
softlockup due to endless loop.
Add "__used" for static interface functions to prevent this.

/retest

patching file kernel/sched/mod/core.c
Hunk #1 succeeded at 2737 (offset 147 lines).
Hunk #2 succeeded at 2780 (offset 144 lines).
Hunk #3 FAILED at 3216.
1 out of 3 hunks FAILED -- saving rejects to file kernel/sched/mod/core.c.rej
看起来是patch有问题

patching file kernel/sched/mod/core.c Hunk #1 succeeded at 2737 (offset 147 lines). Hunk #2 succeeded at 2780 (offset 144 lines). Hunk #3 FAILED at 3216. 1 out of 3 hunks FAILED -- saving rejects to file kernel/sched/mod/core.c.rej
看起来是patch有问题

Please commemt in English.  This issue must be fixed in this PR. (both 4.19 and 5.10)

Please commemt in English. This issue must be fixed in this PR. (both 4.19 and 5.10)

Fine. Maybe I should take a look at post patch of 4.19

/retest


[REQUIRES DISCUSSION] Don't share Store instances across ArcHosts

Always create a new StoreManager when creating a
EntityHandleManager

Remove the singletonStore StoreManager instance

Removes the need for DifferentHandleManagerDifferentStores tests, since
different HandleManagers now always have different Stores

Make storage proxy access concurrency-safe in EntityHandleManager

Bump ARCHOST_INTENT_TIMEOUT to 5s, was seeing occasional flakeage with
the 2s value.

This change provides benefit in that ActiveStore lifecycle is now directly tied to an Arc. So we can close down Store resources easily when we stop an Arc.
When I was discussing this with @cromwellian, a potential downside he noted is that we now have more copies of the data, since the data will be replicated in each Arc.

When I was discussing this with @cromwellian, a potential downside he noted is that we now have more copies of the data, since the data will be replicated in each Arc.

This should be less of an issue once we have full support for references.

If I understand correctly, this means that our StorageService now has to host a copy of data in a store for each listening ArcHost. It also means that the only way to resolve synchronous writes is to transactionalize at the SQLite level, which basically means we're never using the CRDT mechanism for what it's most efficient at.
If so, this is definitely not a direction we want to go in! What's motivating the change?

This should be less of an issue once we have full support for references.

References don't make this better. We'd still be requiring backing stores per ArcHost to provide the entity data.

If I understand correctly, this means that our StorageService now has to host a copy of data in a store for each listening ArcHost. It also means that the only way to resolve synchronous writes is to transactionalize at the SQLite level, which basically means we're never using the CRDT mechanism for what it's most efficient at.
If so, this is definitely not a direction we want to go in! What's motivating the change?

The StorageService still only hosts one copy of data per StorageKey, regardless of how many ServiceStore clients connect to it (each one will interact with the same binding context instance).
But in the non-Android case, this PR introduces a new Store per ArcHost+Arc; it sounds like we want to avoid that.
In the non-Android scenario, for a given StorageKey, should there be:
a) One Store per process
b) One Store per ArcHost
c) One Store per Arc
d) One Store per Arc x ArcHost
e) Something else?

I think there's actually 2 non-Android scenarios:
(1) single ArcHost with local storage
(2) multiple ArcHosts with (as yet unbuilt) shared storage.
In the former case, 1 store per storage key is what we'd want (i.e. 1 per ArcHost or 1 per process). In the latter, we'd want the same semantic we currently have with the Storage Service (that is, 1 per device, I guess?)

This PR introduces store-per-arc, which is not correct. Closing, since it's also diverged quite a bit.


Nick: Watch icecasino-ar.com

Nick requests the watch of the watch_keyword icecasino-ar\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

icecasino-ar\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Dragonrage in Charcoal HQ


Export CSS output to JSON

Hi!
Is there a way to export CSS output to JSON? It would work like so:
CSS Output:
.mb\:12: {
    margin-bottom: 1.5rem;
}

.mb\:16: {
    margin-bottom: 2rem;
}

JSON Output:
{
    "mb:12": "margin-bottom: 1.5rem;",
    "mb:16": "margin-bottom: 2rem;",
}

I'm developing an autocomplete plugin for IntelliJ IDEs, and that would be really helpful for me and also other people developing around Tailwind. I appreciate any tip you can give me.
Thanks!

Try something like this:
const encoding = 'utf8'
const fs = require( 'fs' )
const css = require( 'css' )
const path = require( 'path' )
const parse = ( code, file ) => css.parse( code, { source: file } )

let classNames = [],
    styles

/**
 *  transform css to json
 *
 * @param file
 * @param output
 * @param cb
 * @returns {any} AST object
 */
const cssToJson = function ( file, output, cb ) {

    // resolve file path
    const abs = path.resolve( file )

    // parse css code from file
    const flow = code => parse( code, file )

    // return AST object
    return typeof cb == 'function' ? fs.readFile( abs, encoding, function ( err, code ) {
        err ? cb( err ) : cb( err, flow( code ) )
    } ) : flow( fs.readFileSync( abs, encoding ) )
}

// destrcut object
const { stylesheet } = cssToJson( './node_modules/tailwindcss/dist/utilities.css' );

for ( styles of stylesheet.rules ) {

    let { selectors, declarations } = styles,
        properties = ''

    // sometimes declarations and/or selectors
    // are undefined.
    // make more tests to get the why
    if ( declarations && selectors ) {
        Object.entries( declarations ).forEach( ( [key, val] ) => {

            properties += `${val.property}:${val.value};`
        } )

        // replace backslashes
        selectors = selectors[ 0 ].replace( /\\/gm, '' );

        classNames[ selectors ] = properties
    }

}

console.log( classNames )

This gives you all the css stuff in a json file. Play with it, you'll get the idea.


[BUG] Multiple struct with same field names cause wrong TEAL (confused) code

Describe the bug
Multiple struct with same field names cause wrong TEAL (confused) code
struct StructA:
 fieldname: int
 q: int
end

struct StructB:
 r: int
 fieldname: int
end

block main:
    StructA a = itob(1)
    int x = a.fieldname
end

results in
// block main
main:
  // StructA a = itob(1) [slot 0]
  pushint 1
  itob
  store 0 // a
  // int x = a.fieldname [slot 1]
  load 0 // a
  pushint 8
  extract_uint64 // fieldname
  store 1 // x

because fieldname is in a different place in the different structs
(the pushint 8 is wrong in the TEAL code, should be pushint 0 since fieldname is the first field in StructA
To Reproduce
code above
Expected behavior
perhaps field names need the struct name as a prefix to differentiate
Additional context
Add any other context about the problem here.

Thanks for reporting. The fields lookup was accidentally scoped to the struct node class instead of the struct instance in the compiler so it same named fields overwrote the previous instance.
I have fixed this in #87 and merged to main.


Error when loading pretrained epoch

Hi,
I tried a new model on NBFNet and tried to load it. But I cannot load it, the issues seem to come from the torchdrug/patch.py. I wonder if you have a good solution on this:
Traceback (most recent call last):
File "script/run.py", line 60, in
solver = util.build_solver(cfg, dataset)
File "/shared-datadrive/shared-training/NBFNet/nbfnet/util.py", line 120, in build_solver
solver.load(cfg.checkpoint)
File "/home/azureuser/.pyenv/versions/nbfnet/lib/python3.8/site-packages/torchdrug-0.1.2-py3.8.egg/torchdrug/core/engine.py", line 231, in load
self.model.load_state_dict(state["model"])
File "/home/azureuser/.pyenv/versions/nbfnet/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1497, in load_state_dict
raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for KnowledgeGraphCompletion:
While copying the parameter named "graph", expected torch.Tensor or Tensor-like object from checkpoint but received <class 'torchdrug.data.graph.Graph'>
While copying the parameter named "fact_graph", expected torch.Tensor or Tensor-like object from checkpoint but received <class 'torchdrug.data.graph.Graph'>
And I checked the module in nn.Module is actually overwritten by PatchedModule
-> self.model.load_state_dict(state["model"])
(Pdb) nn.Module
<class 'torchdrug.patch.PatchedModule'>

@jwzhi Hi, I met the same problem. Have you solved this one?

This is mainly due to the the updated version of pytorch nn.module. For a temporary solve on NBFNet, see the post here, https://github.com/DeepGraphLearning/torchdrug/issues/89


Add additional info

Add additional info (experience, languages) under main-info block, then merge branch patch/content/primary to feature/body

Added additional info.


WORLD_SIMILARITY query is slow

SELECT
	COUNT(DISTINCT ("project"."id")) AS "cnt"
FROM
	"public"."project" "project"
	LEFT JOIN "public"."project_status" "status" ON "status"."id" = "project"."statusId"
	LEFT JOIN "public"."project_users_user" "project_users" ON "project_users"."projectId" = "project"."id"
	LEFT JOIN "public"."user" "users" ON "users"."id" = "project_users"."userId"
	LEFT JOIN "public"."project_address" "addresses" ON "addresses"."projectId" = "project"."id"
	LEFT JOIN "public"."organization" "organization" ON "organization"."id" = "project"."organizationId"
	LEFT JOIN "public"."project_qf_rounds_qf_round" "project_qfRounds" ON "project_qfRounds"."projectId" = "project"."id"
	LEFT JOIN "public"."qf_round" "qfRounds" ON "qfRounds"."id" = "project_qfRounds"."qfRoundId"
	INNER JOIN "public"."user" "user" ON "user"."id" = "project"."adminUserId"
	LEFT JOIN "public"."project_categories_category" "project_categories" ON "project_categories"."projectId" = "project"."id"
	LEFT JOIN "public"."category" "categories" ON "categories"."id" = "project_categories"."categoryId"
	AND ("categories"."isActive" = $1)
	LEFT JOIN "public"."main_category" "mainCategory" ON "mainCategory"."id" = "categories"."mainCategoryId"
	LEFT JOIN "public"."project_power_view" "projectPower" ON "projectPower"."projectId" = "project"."id"
	LEFT JOIN "public"."project_instant_power_view" "projectInstantPower" ON "projectInstantPower"."projectId" = "project"."id"
WHERE
	"project"."statusId" = $5
	AND "project"."reviewStatus" = $2
	AND (
		WORD_SIMILARITY ("project"."title", $3) > $4
		OR WORD_SIMILARITY ("project"."description", $3) > $4
		OR WORD_SIMILARITY ("project"."impactLocation", $3) > $4
		OR WORD_SIMILARITY ("user"."name", $3) > $4
	)

This query takes a long time to be executed.

@jainkrati It's the functionality added by Pedro, as you remember we didn't make index for it.

Simply adding indexes like below doesn't make the query utilize them,
 CREATE INDEX if not exists trgm_idx_project_title ON project USING GIN (title gin_trgm_ops);
 CREATE INDEX if not exists trgm_idx_project_description ON project USING GIN (description gin_trgm_ops);
 CREATE INDEX if not exists trgm_idx_project_impactLocation ON project USING GIN ("impactLocation" gin_trgm_ops);
 CREATE INDEX if not exists trgm_idx_user_name ON public.user USING GIN (name gin_trgm_ops);

Further investigation is required.

It's a complain about its functionality
https://github.com/Giveth/giveth-dapps-v2/issues/4120

Needs further investigation on possible solutions.

@jainkrati It's needed to evaluate the query execution time change with old values reported here
https://github.com/Giveth/impact-graph/issues/1534#issue-2280447642
@maryjaf and @mhmdksh, I guess Krati asked you to team up and do this test.

I have only access on sebastian server to run the postman collection
And I have run it
There is no time out  and 500 error in the result and the status code for all test was 200

But I had set the response time as an assertion in the tests and it equals 1000 ms, this assertion has failed because the response time is more than 1 second like as you see in above pic.
We need to check what is the expected average response time for setting in the assertions and then i'll change 1000ms to a expected time

@aminlatifi I see there is another issue related to pg extension for search. I would say, it would be best if you can take this issue along with the other and spend 1 hour everyday to make progress.

Pls test on staging @mhmdksh @maryjaf and then push to production if all looks good

I have only access on sebastian server to run the postman collection And I have run it There is no time out and 500 error in the result and the status code for all test was 200

But I had set the response time as an assertion in the tests and it equals 1000 ms, this assertion has failed because the response time is more than 1 second like as you see in above pic. We need to check what is the expected average response time for setting in the assertions and then i'll change 1000ms to a expected time

I did  the load test
but I don't have an access to connect to db, if it should be tested by me please set an access for me
@mhmdksh @aminlatifi

@maryjaf The DB access has been granted to you, please feel free to test on staging

to you, please feel free t

@mhmdksh For test, we must look at the digital ocean metrics to see how long it takes to run each instance of word similarity type search.

to you, please feel free t

@mhmdksh For test, we must look at the digital ocean metrics to see how long it takes to run each instance of word similarity type search.

@mhmdksh I am doing that with Maryam

@maryjaf Can we deploy it on the production?

Yeah, I moved it to done and it's ready for deploying on production

lets close it @maryjaf @divine-comedian


Notify the user when a domain starts to resolve its own DNS

Nowadays the tool correctly stores the description when a domain could not be resolved, filling in the website description on the app with the information below:
Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe7803bcc10>: Failed to establish a new connection: [Errno 111] Connection refused

There is some way or even then a possibility to add a feature that considers a "new change" when a tracked domain also starts to resolve its DNS?
This scenario would be great when the user:

Would create a new domain, only to know when this "previous known domain" (which isn't available on the internet yet) starts to resolve his DNS.
When an already tracked domain which was working and being tracked correctly, isn't resolving anymore but should resolve in future (and the user wanna be notified about that)

I will leave an example of the both scenarios:
1 -
this_domain_was_not_published_yet_but_will_be_sun.com -> doesn't have an ip.
$ host this_domain_was_not_published_yet_but_will_be_sun.com
Host this_domain_was_not_published_yet_but_will_be_sun.com not found: 3(NXDOMAIN)

Would be great to know when this domain comes up!
2 -
I have already tracked the domain "example.com" which has the domain <IP_ADDRESS>
Let's suppose that this domain had some issues and is not being resolved anymore.
Would be great to know when this domain comes up, again, also!
Thank you, folks

you can use some website like dnschecker and just watch that entry

I guess you want a trigger when the app starts resolving, which is also effectively a change

yeah, exactly 😀

Yeah I agree with @zeroc00I, this would be a very nice feature to add. It could also be useful to monitor other DNS records like MX (e.g., domain X added/removed/changed MX DNS record).

For now it's out of scope of this application, please just monitor some other website that is tracking this data.


Fixes redirection to existing feeds

Hey over here :wave:
When a feed already exists and is returned, the resource location is URL-encoded, and thus the check against the provided location does not pass.
Here is a naive patch to fix this behavior and avoid the page not to be redirected to the existing content.
Bye :bow:

Thanks this looks great!


Add editor methods to lock/unlock block movement

This adds lock/unlock movement methods to the block space editor to support limited autorun in https://github.com/code-dot-org/code-dot-org/pull/24196.

Codecov Report

Merging #145 into master will increase coverage by 0.02%.
The diff coverage is 80%.

@@            Coverage Diff             @@
##           master     #145      +/-   ##
==========================================
+ Coverage   55.16%   55.18%   +0.02%
==========================================
  Files          96       96
  Lines       11443    11452       +9
==========================================
+ Hits         6312     6320       +8
- Misses       5131     5132       +1

Impacted Files
Coverage Δ

core/ui/block.js
63.61% <100%> (ø)
:arrow_up:

core/ui/block_space/block_space.js
57.7% <100%> (+0.4%)
:arrow_up:

core/ui/block_space/block_space_editor.js
68.65% <71.42%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

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