Update tutorials in the Learn / Lessons section for SS4 compatability

Right now, all the lessons are written for 3.0. We'll need 4.0 compatible lessons in place before the stable release. Video is too time consuming to upload, so we'll just upgrade the text of the tutorials, and the code in the repository.
Plan of attack

Meet with Jared/Paul/Andy for a design strategy to satisfy all of the UI upgrades required in issues described on the one-ring-rentals repository. https://github.com/silverstripe/one-ring-rentals/issues

Once designs are agreed on, a designer (looking like Andy would do this), will mock up the changes.

During design, upgrades to text can start.

Upgrades to code will be done from scratch on a new repository, e.g. one-ring-rentals-4.0. Although, this might present a good opportunity to use better semantics, e.g. silverstripe-lessons-4.0

Approach to upgrades -- follow the tutorial like a user, make changes as needed to the code, and implement incrementally on a local install of the one-ring-rentals site to ensure accuracy.

Give special attention to the comments/questions section. Many of the comments are useful feedback on pieces of information that were not described, or inaccurate. Many of the questions were never answered. Those should be used to improve the overall quality of the tutorials.

Follow a comms plan approved by Nicole and/or Ingo on how to inform the community of these changes. Overall message -- 4.0 upgrades are currently a stopgap measure. Better videos and revamped lessons section is forthcoming.

Estimated time required:
10-11 working days, spanning 11-14,  25-29 September, and 2 October
(9 days of text upgrades, 1 day of development, half a day of QA/promotion)
Tasks

[x] Upgrade lesson: "Up and running"
[x] Upgrade lesson: "Creating your first theme"
[x] Upgrade lesson: "Migrating static templates into your theme"
[x] Upgrade lesson: "Adding dynamic content"
[x] Upgrade lesson: "Working with multiple templates"
[x] Upgrade lesson: "The holder/page pattern"
[x] Upgrade lesson: "Adding custom fields to a page"
[x] Upgrade lesson: "Working with files and images"
[x] Upgrade lesson: "Introduction to the ORM"
[x] Upgrade lesson: "Working with data relationships: has_many"
[x] Upgrade lesson: "Working with data relationships: many_many"
[x] Upgrade lesson: "Introduction to frontend forms"
[x] Upgrade lesson: "DataExtensions and site config"
[x] Upgrade lesson: "Introduction to ModelAdmin"
[x] Upgrade lesson: "Controller actions / DataObjects as pages"
[x] Upgrade lesson: "Building a search form"
[x] Upgrade lesson: "Lists and pagination"
[x] Upgrade lesson: "Ajax behaviour and ViewableData"
[x] Upgrade lesson: "Dealing with arbitrary template data"
[x] Upgrade lesson: "Creating filtered views"
[x] Upgrade lesson: "Beyond the ORM: Custom SQL"
[x] Upgrade lesson: "Advanced environment configuration"
[x] Upgrade lesson: "Dependencies and modules"
[x] Upgrade lesson: "Creating great open source modules"
[x] Upgrade lesson: "Publishing your own module"
[x] Development: Frontend work for new lessons UI
[x] Development: Backend work for new lessons features (e.g. version tagging)

Lessons are added to https://github.com/open-sausages/silverstripe-lessons

Designs, approved by myself and @clarkepaul

Lookin' great overall! A few notes:

Images are broken on 3.x lessons - is this a UAT only thing? If there's images missing, can we sync them from live to get an accurate preview? http://sssites-ssorg-uat.sites.silverstripe.com/learn/lessons/v3/up-and-running-setting-up-a-local-silverstripe-dev-environment
The links to the next tutorials need to be relative to the current folder - e.g. on lesson 0, the link at the very bottom points to http://sssites-ssorg-uat.sites.silverstripe.com/learn/lessons/creating-your-first-theme, which auto-redirects to the current "stable" release (currently v3).
There seem to be broken links in v3 - the link at the bottom of lesson 0 links back to the landing page instead of the next tutorial. Maybe run a link checker through it?
The Markdown is a bit off - maybe do a once over of the rendered version? E.g. "Let's test this..." paragraph on http://sssites-ssorg-uat.sites.silverstripe.com/learn/lessons/v4/migrating-static-templates-into-your-theme-1 and http://[your-host a bit further down.
The code examples sometimes have too much whitespace, and missing closing brackets - e.g. on http://sssites-ssorg-uat.sites.silverstripe.com/learn/lessons/v4/adding-custom-fields-to-a-page-1. They also do omissions a bit weirdly: In the code example following "In this case, we're going to want three new fields", there's a use statement that's followed by // ..., then indented code. I think this might've worked before without use, but now you kinda have to add the class construct around it, otherwise people will get confused where the use statement goes.
Some code examples seem to have too much indentation, e.g. the one liners on http://sssites-ssorg-uat.sites.silverstripe.com/learn/lessons/v4/introduction-to-the-orm-1.

Does this close https://github.com/silverstripe/silverstripe-framework/issues/5972?


Move guardrails to root of the repo

Signed-off-by: James Gregg<EMAIL_ADDRESS>

Fixes #5


Flow Background Rendering Issue: Incomplete Flow Backgrounds

When using the Chart.js Sankey plugin, some flows have incomplete backgrounds, leading to visual gaps in the chart (see the bottom & top flow in the attached image). This issue seems to affect the rendering of the background for certain flows. Changing the size usually moves the issue to other flows / other parts of the same flow. Any ideas what could cause this (tried also suggestions from https://github.com/chartjs/Chart.js/issues/11310 but no luck)?

(Using chart.js 4.4.3 and chartjs-chart-sanked 0.12.1)

Does this reproduce in other browsers? This looks like a browser issue to me.

True, thanks for pointing me to this direction... both Chrome 127.0.6533.120 and Edge 127.0.2651.105 have this issue; but in Firefox 129.0.1 and Safari 17.5 it seems to work fine.
I also found out that turning off graphics acceleration of rendering helps as well. That is a bit inconvenient as majority of the users will have it enabled and use Chrome.

Closing as there is nothing I can do about this.


Remove support for IE 11

Related to https://github.com/google/shaka-player/issues/2339
Note: I do not consider that the issue is closed, because I could have forgotten some section.

@michellezhuogg can you review again?


Bolt tagging

Hello!
Sorry if this is not an issue.
Are you still tagging bolt? The last release dates Nov 27, 2014

I haven't been tagging Bolt although I should probably start doing it again. I'm starting to work through the issues again so once I get some of those fixed then I'll tag a v1.1.0 release.

I added a v1.1.0 tag.


"allow-named-functions" option for "only-arrow-functions" rule

I'd like to allow syntax like this with the only-arrow-functions rule:
xmlhttp.onreadystatechange = function handleReadyStateChange() { ... };

In this case I made an intentional decision to name the function and I want to use the function syntax.

Might want to keep this in mind.
handleReadyStateChange can't be called directly after that, can it?

yep, that's true, it can't be referenced directly anywhere else. I think the only benefit here is better stack traces. also I prefer this syntax for opting out of the tslint rule instead of the more verbose:
function handleReadyStateChange() {
    ...
}

xmlhttp.onreadystatechange = handleReadyStateChange;


Parse hosted files migration tools

This pull request includes quite a bit of changes to resolve ParsePlatform/parse-server#8. The README probably covers functionality the best. But to sum up I've added the following functionality:

Prompt for information or read a configuration file.
Only process Parse hosted files, Parse Server hosted files, or all files.
Rename files so they don't start with "tfss-" or match Parse legacy file pattern.
Transfer files using a Parse Server file adapter (and log progress/errors).
Rename files in MongoDB.

There are no tests written, but I did test across a couple Parse apps using each of the storage providers without any issues. Let me know if you have any questions or suggestions.

Hey @JeremyPlease that is awesome 👏 🎉 !!!! Really many thanks!
Just one thing, I was thinking of leveraging the parse-server-files adapters as they are already implemented and all share the same API.
That would greatly reduce the code footprint here, and let any user pass it's adapter configured from the config.js
What do you think?

Thanks @flovilmart. Happy to help!
Making use of the parse-server-files adapters makes a lot of sense.
I'd like to keep the ability to run the entire file migration through the command line without any configuration file. So, I'll likely check for a filesAdapter option in the configuration file and make use of the passed in adapter's createFile function. If filesAdapter option is not present, then I'll load the appropriate adapter based on command prompt responses.
I'll make the changes and update the PR in the morning.

@JeremyPlease Thank you for the help!
As you mentioned the node index.js config.js I was thinking you wanted to use that.
let's do the basic ones from the CLI and then let the option to pass another one from config.js.
What do you think?

now if we can just refactor transfer.js with the file adapters, that would just rock and I'll merge/ release!

@flovilmart Should be good to go now!
If you can, please test against some real data. You can set renameInDatabase to false so that the database isn't actually updated.

Can we set to dry run by default, and only write to the DB when we're done?

 I imagine there will be some additional kinks to work out, but everything is working well on the apps that I've tested against.

I am following the thread the whole day :)
Also available and excited to test.

The code look neat, let's merge that, it'S not officially supported anyway, just a cool hack from you @JeremyPlease Thanks!!!

Nice! Thanks @flovilmart
Anyone trying this out, please be sure to read the README and report any issues.

We should put a disclaimer in the README first

@JeremyPlease the readme says:
"As soon as this script transfers files away from Parse.com hosted files (and renames them in
 the database) any clients that use api.parse.com will no longer be able to access the files. See
 the section titled "5. Files" in the Parse Migration Guide and Parse Server issue #1582."

So if understand this right, your pr enables us to copy all of the files out of the parse.com filespace and into our own, but doesn't address my take on #8 which is to allow parse.com and parse-server clients to both work with pre/post parse-server migration files?  I'm reading again....

@flovilmart Got any standard disclaimer test you want to drop into the README or maybe something like MongoDB support-tools disclaimer?

@acinader You understood correctly. You can read the discussion in https://github.com/ParsePlatform/parse-server/issues/1582#issuecomment-232087443.
Essentially, when a file is hosted with the filesAdapter of Parse Server, the servers at api.parse.com have no way of knowing where the file URL is and just sets it to "files.parsetfss.com/...". The only way to have forwards compatibility would be if changes were made to both open source Parse Server and api.parse.com. Unfortunately, a change to api.parse.com is highly unlikely.
I would recommend not migrating your files until you no longer care about supporting clients using api.parse.com.

first off, @JeremyPlease thank you!  been very useful reading your comments as well as this pr. I have a followup question for you, which i'll post to you in https://github.com/ParsePlatform/parse-server/issues/1582#issuecomment-232087443

@JeremyPlease the mongo one is pretty cool, I'm gonna copy paste it

@JeremyPlease Thanks! Maybe this should be obvious, but can you elaborate a little on the serverURL option?
Under what circumstances would this be api.parse.com/1 vs an instance of self-hosted parse-server. The documentation is little confusing because it says it defaults to http://api.parse.com/1 but in the config.example.js the example url looks more like a self-hosted parse-server url. If it is a self-hosted serse-server, then what function does the mongoURL play (wouldn't connecting to the parse-server dictate the mongo db?). Are there certain combinations of the options that don't make sense? It isn't clear without a little more detail about how each option impacts the script.
In general, I think some quick explanations  would be helpful about how the migration works given various combinations of the serverURL, filesToTransfer, and mongoURL options. The two most common scenarios would probably be "pre-migration" and "post-migration" strategies. Ideally, this would all be covered in detail within Step 5 of the Migration Guide
Thanks again for all the work, this is a key milestone towards pulling the trigger on migration.

@barnaclejive I've updated the configuration options section or the README.
The configuration options are there to provide flexibility. For migrating files from parse.com to your own file adapter, I would recommend waiting for all clients to be pointed at your new Parse Server and then running with a config.js like this one:
module.exports = {
  applicationId: "PARSE_SERVER_APPLICATION_ID",
  masterKey: "PARSE_SERVER_MASTER_KEY",
  serverURL: "https://api.customparseserver.com/parse", // your Parse Server url
  renameInDatabase: true,
  mongoURL: "mongodb://<username>:<password>@mongourl.com:27017/database_name",
  filesToTransfer: 'parseOnly',
  filesAdapter: yourParseFilesAdapter
};

This will transfer parse.com hosted files with your filesAdapter and rename the files in MongoDB so that Parse Server sets the file url properly.

Also note that it won't migrate files that are in arrays or files that are referenced in nested objects.

@flovilmart Is another tool or suggestion on how to migrate files that are in arrays and/or nested objects?

We could add the support for arrays and nested objects in that tool, but that would make it way less efficient, probably as an option.

@jnoreika  wouldn't nested object be taken care of already?  I'm assuming that you mean when one object has a pointer to another object.  That should already work.
As far as arrays go,  I think that you're best bet would be to look at https://github.com/parse-server-modules/parse-files-utils/blob/master/lib/index.js and hack the functions getObjectsWithFilesFromSchema and findFiles to look through arrays.
@flovilmart i think that the time spent finding where to look for files is so small compared to pulling out the files and then actually transferring that I don't think we need to be concerned about the additional overhead of looking more places for files to find, even as a default.

Yeah, that's quite small you're right! That would be a welcomed addition :)

as well as some unit tests

@acinader I was concerned they wouldn't be covered due to @flovilmart comment on Jul 19.
I do have objects such as he mentions that have array field types and those arrays in turn have nested objects that refer to files like in the json below:
[{
"sectionData": [{
"category": "Plants",
"images": [{
"__type": "File",
"name": "tfss-file-name-UUID-here-AnImage1.jpeg",
"url": "http://files.parsetfss.com/app-file-key-here/tfss-file-name-UUID-here-AnImage1.jpeg"
}]
}]
}]

sorry guys, I deleted my comment a) cause I realized what you meant by nested object and b) realized that you can't determine by just looking at the schema, so it is more complicated to figure out what heuristic to use (cause you clearly don't want to check all records to see, some reasonable sample would need to be used) to determine what array and/or object fields might have a file :).

That is effectively not covered :) but that should not be that tough to implement as it's a fully recursive search :)

The nested object capability can be on by default, and to speed up the process, one could pass a --no-nested


Proposal: Make constructor body optional

Search Terms
constructors, less code, no body constructor
Suggestion
Since TypeScript constructor is very useful without a body - it should not be mandatory.
Use Cases
This is purely a nice to have - it would make constructors look a bit cleaner and emphasize dependency injection. It seems that empty constructor bodies are very common.
Examples
constructor(private example: ExampleDependency, ...)

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This feature would agree with the rest of TypeScript's Design Goals.
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)

[x] This feature would agree with the rest of TypeScript's Design Goals.

Nope it wouldn't! Explicitly non-goal no. 6:

Provide additional runtime functionality [...]

The constructor would still be applied as normal in runtime.

This would be confusingly ambiguous with overload signatures which also lack bodies.


add Maintainability Badge to README.md

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Changes to README.md

Checklist:

[ ] I have read the contribution guidelines and followed it as far as possible.
[ ] I have performed a self-review of my own code (if applicable)
[ ] I have commented my code, particularly in hard-to-understand areas (if applicable)
[ ] I have made corresponding changes to the documentation (if applicable)
[ ] My changes generate no new warnings
[ ] I have enabled the pre-commit hook and it's not detecting any issue.
[ ] Any dependent and pending changes have been merged and published

Codecov Report

Merging #99 (32dedf5) into master (e64a6f3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #99   +/-   ##
=======================================
  Coverage   61.73%   61.73%
=======================================
  Files           3        3
  Lines         311      311
  Branches       48       48
=======================================
  Hits          192      192
  Misses        112      112
  Partials        7        7

Flag
Coverage Δ

unittests
61.73% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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

Hi. Another PR for this (#98) was sent for this issue before yours. I will have to close this PR since #98 was merged.
Thank you for contributing though! You can check out the open issues if you would like to work on one.


Remove duplicated Travis CI install script

npm install only needs to be run one time.

Contributor License Agreement adherence:

[x] This Contribution is under the terms of Individual Contributor License Agreements (and also Corporate Contributor License Agreements to the extent applicable) appearing in the Apereo CLA roster.

Changes Unknown when pulling 56806419e8155069a5ccb058fd8cb6abc422646b on ChristianMurphy:remove-duplicated-install into ** on UW-Madison-DoIT:master**.


Error parsing relative path in {glue} role with subcommand

Describe the bug
If I use the {glue} role with a specific subcommand (e.g. {glue:text}), I get a warning that the key is not found, even when the path is specified correctly. For example, this: {glue:text}demographics.md::num_respondents` gives the following warning:
WARNING: No key 'demographics.md:' found in glue data for this document. (use `path::key`, to glue from another document) [mystnb.glue] [mystnb.glue]

The structure of the warning to me implies that there is a problem with the parsing of colons here, as the demographics.md: part of the warning is very suspicious.
Indeed when I remove the :text subcommand from the {glue} directive, the warning disappears: {glue}demographics.md::num_respondents`.
Possibly related to #591
Reproduce the bug
For ease of reproduction, I recommend creating two new dummy files in the same directory of an existing myst-nb project:

Create foo.md with the following contents:

---
jupytext:
  formats: md:myst
  text_representation:
    format_name: myst
kernelspec:
  display_name: Python 3
  name: python3
---

# FOO

```{code-cell} ipython3
---
tags: [hide-input]
---
from myst_nb import glue
glue("answer", 42, display=False)
```

Create bar.md with the following contents:

---
jupytext:
  formats: md:myst
  text_representation:
    format_name: myst
kernelspec:
  display_name: Python 3
  name: python3
---

# BAR

This line warns and fails to link: {glue:text}`foo.md::answer`.

This line is fine: {glue}`foo.md::answer`.

Add foo and bar to the toctree
Then build the project: make html. This should give the warning:

<path/to>/bar.md:13: WARNING: No key 'foo.md:' found in glue data for this document. (use `path::key`, to glue from another document) [mystnb.glue] [mystnb.glue]

List your environment
I'm using myst-nb via sphinx directly without the jupyter-book CLI, so hopefully relevant info:
myst-nb                       1.1.1
myst-parser                   4.0.0
Sphinx                        8.0.2

@rossbar - please open a PR once you've found a solution for this 😉


Core profile: Complete aggregate processes

[ ] aggregate_spatial (https://github.com/Open-EO/openeo-processes-dask/issues/26)
[ ] aggregate_temporal_period (https://github.com/Open-EO/openeo-processes-dask/issues/27)
[ ] aggregate_temporal

aggregate_temporal has a stub and is reported as implemented, but then it rerusn an error. It should be removed until it's fully implemented.

raise NotImplementedError("aggregate_temporal is currently not implemented")


Missing themes?

on http://themes.gohugo.io/ the themes seems to stop at M (vienna for example, is not displayed)

Hello @Heliosmaster,
thank your for the report. The build script seems to be stuck at a theme starting with m. Unlike the Hugo docs I don't have access to any build logs (nor the server itself). This makes it hard to trace the issue.
However, I redirected this issue. @spf13 is the only one of us with access to the server.

Now the site is up and running as expected.


Add workspacey extension

Description

Create and manage your workspaces, execute multiple actions at once.
Add Actions to start your workspace. eg. Open Files, Open Folder, Open App, Open Links (with deeplinks support), Exexcute a Command, and Add Notes
You can create a workspace to start ALL your defined actions at once
Screencast
https://github.com/raycast/extensions/assets/8546946/d51d3fa2-b183-4bcc-96da-e1e019da83a0

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Hi!
Thank you for your contribution! My name is Milena and I will be reviewing it today.
Your extension has a lot of potential! I like it!
A few questions:

What does the "Add Note" action do? I created a "workspace" with just a note and nothing happened.
Terminal commands also do nothing.
It would be nice to choose which app to open the terminal command.

Other than that, I think this extension will be a great addition to our store.

Hi @mil3na ,
Glad that you liked it!

What does the "Add Note" action do? I created a "workspace" with just a note and nothing happened.

'Add Note' will just add a note for the Workspace that you can view later. something like the 'SSH Password' which is NOT
executable.

Terminal commands also do nothing.

Terminal commands uses the 'exec' API, not sure why it's not working for you though.
Can you share the command that you've tried so I can take a look on my side?

It would be nice to choose which app to open the terminal command.

As mentioned, it uses the exec API so it will not use a specific terminal app like Warp or something.

The note feature seems confusing. I find it hard to use it. I would suggest either making it so you could read the note in a separate "screen" or remove it for now.
I tried creating a simple command with ls -la. Also, now that you mention that it uses exec without any parsing from the extension side, I wonder how easy would be to just execute malicious code with that. I'm a bit wary.

I can remove the note for now.
and for the terminal command I do understand that it can be used to execute malicious code, perhaps I can add a warning for the user while adding a terminal command or something?
I think of it for advanced usage something like code /path/ to open a project in VSCode and so on.
Let me know your thoughts.

Hi @pernielsentikaer 👋 , Welcome back!

It feels a bit like Xecutor but with more features, did you see that one before?

I've never seen this before, but it has the same idea - kinda, except that Workspacey has more actions like opening specific folders, opening specific files, executing commands using exec .
Should I open a PR instead?

It feels weird when you create a workspace that you can only add one thing, to add more you need to find the workspace and add action this way

Good point, I think I can keep the 'Add Action Form' open after adding an action and resetting the fields so the user can add another action.

Would be nice if all actions has icons

You mean that the user should be able to pick an icon for a specific action?

It could indeed work in Xecutor but it might also require a lot of rewrite to add everything from this PR.

Good point, I think I can keep the 'Add Action Form' open after adding an action and resetting the fields so the user can add another action.

I think that would be a good idea, it felt a bit weird to only add one since it's an extension for multiple actions

You mean that the user should be able to pick an icon for a specific action?

That would also be cool but not nessesary, I'm talking about items in the  - would be nice if they all had icons

I'm not sure if I should open a PR in Xecutor, if we can stick with Workspacey as a separate extension it'd save me a lot of time 😄

It doesn't make that much sense to have two extensions doing the same and it would fit into Xecutor just fine (maybe some tweaks in the UI)
Would you be up for that, or should I do it? I think I'm able to do it within a few weeks 🙂

So you want to try the enhancement or should I?

Sorry I can't take this at the moment as I got busy a bit 😊

I can attempt to tackle it tomorrow, but it will require some time 🙂


Add ExportData to the list of Twitter Search tools

Falls into the same category as Twlets, but does not require a Chrome extension.

Thanks :)


Add interfaces and implementations for Nats FW Win

Add code to the agent to secure the remote mbus that
bosh provides. Provide a mechanism to restrict workloads
on the VM other than the agent itself to connect to BOSHs
mbus.
On VM creation bosh provides the Agent on the VM with creds
to connect to Nats. Workloads that live on the vm could
extract these credentials and use them to connect to nats and
extract further credentials that are being sent over nats once
the rendering of jobs takes place.
This creates a FW rule within the agent bootstrap to limit which
binaries can create outgoing requests to the nats endpoint.
The created FW rules are ephemeral and exist as long as the agent
process runs. This avoids the necessity for cleaning up FW rules if
the remote address of the nats should change. If a process starts
before the rule exists, the rule will still apply once it exists.
Updated tests relying on SetupNetwork calls with new method signature
https://www.pivotaltracker.com/story/show/181114075

Have you consider to make this optional? I didn't look into the implementation but if the probability to have issues is high I would say that it make sense to make it optional.

After discussions about this with @nouseforaname we decided to drop the option to make this optional. This change will be introduced with a new stemcell, which can be easily reverted in case of unexpected issue which we don't expect.

Looks good!


Update introduction.md

Markdown Syntax Corrected

Corrected Incorrect Heading Syntax
Piled up all points into one in order to make it more comprehensible
Fixed Link Redirection Button

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


Rule::unique orWhere doesn't work

Laravel Version: 5.4.36
PHP Version: 7.1
Database Driver & Version: Mysql 5.7

Description:
When I add a where closure to Rule::unique() and call orWhere() on the $query object, this is ignored and an AND clause is added to the query instead.
I get "query" => "select count(*) as aggregate from 'table' where 'column' = ? and ('another_column' = ?)" when I log out, using both $query->where and $query->orWhere
Steps To Reproduce:
Create a validation rule as follows:
Rule::unique('table')->where(function ($query) {
    $query->orWhere('column', 1);
}),

I need to do this as in my example, I'm validating that a name field is unique as well as the slug of the name.
Sometimes the name CAN be unique while the slug is not, which is why I need an orWhere to be able to achieve this.
I've ended up creating my own custom rule to do this, but would be nice if it was supported.
Cheers!

Hey
5.4 is no longer supported. Can you upgrade or reproduce this issue on 5.5 and let us know if it still exists?


Last minute changes

I made some last minutes changes to my tutorial. Is it possible to merge them for my training session ?
Thanks a lot,
X

Let's hope the best! :)
Thanks @xgaia


DPRINT - elaboration on documentation and full-working examples

elaborate that core coordinates starts from (1,1) and not (0,0): export TT_METAL_DPRINT_CORES="(1,1)"

elaborate on output will be saved in that file export TT_METAL_DPRINT_FILE="dprint.log"

List examples of use cases: 1) print variables and addresses.   2) print CB data. .. anything else?

Elaborate on the need of the 'TileSlice' to be within cb_reserve_back<>cb_push_back or cb_wait_front<>cb_pop_front

MATH(( DPRINT << x << ENDL() )) gives me empty print with 'TileSlice'

PACK() and UNPACK() are good with TileSlice but on different locations in the kernel code

I added 'TileSlice' in my 3 kernels read/write/compute to give example on all possibilities. I may be missing some more functionalities

The code snippet for TileSlice

                        uint32_t debug_cb_id = 1;
                        for (int32_t r = 0; r < 32; ++ r) {
                            SliceRange sr = SliceRange{.h0 = r, .h1 = r+1, .hs = 1, .w0 = 0, .w1 = 32, .ws = 1};
                            DPRINT << (uint)r << " --READ--cin1-- " << TileSlice(debug_cb_id, 0, sr, true, false) << ENDL();
                        }

@mbahnasTT There have been some updates to the DPRINT documentation: https://tenstorrent-metal.github.io/tt-metal/latest/tools/kernel_print.html
I think all of the comments from this issue and #3770 should be addressed, could you take a look and see if you think anything is missing?

Thanks @tt-dma , it looks very good!


Query Scope Named Sets fail validation

This is a big deal for me right now.  Can we get OLAP4J to support Named Sets using the with syntax in MDX queries?
http://jira.pentaho.com/browse/MONDRIAN-877

I feel your pain. However, it looks as if the bug is in Mondrian, not olap4j.

I don't think that's the case.  I've tracked it back in the code and it's unimplemented in MondrianOlap4jConnection.  See the method MondrianOlap4jConnection.toOlap4j(Exp exp) method.  That's what's throwing the Util.needToImplement() because it isn't translating the NamedSetExp into a ParseTreeNode.  I think that class already exists as WithSetNode, but the connective tissue is missing to instantiate there and translate it.  I don't think this is a Mondrian problem because if you just don't validate the MDX expression it'll work.  It's just this validation of the query that fails.

The code that is doing the wrong thing is in mondrian.jar and the fix would
be to code in mondrian.jar. That makes it a bug in mondrian's olap4j
driver, not in olap4j.
On Thu, Jul 14, 2016 at 6:18 PM, Charlie Hubbard<EMAIL_ADDRESS>wrote:

I don't think that's the case. I've tracked it back in the code and it's
unimplemented in MondrianOlap4jConnection. See the method
MondrianOlap4jConnection.toOlap4j(Exp exp) method. That's what's throwing
the Util.needToImplement() because it isn't translating the NamedSetExp
into a ParseTreeNode. I think that class already exists as WithSetNode, but
the connective tissue is missing to instantiate there and translate it. I
don't think this is a Mondrian problem because if you just don't validate
the MDX expression it'll work. It's just this validation of the query that
fails.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/olap4j/olap4j/issues/49#issuecomment-232836545, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABFAOXC5sWzMkG9EaexwmQ-_7ZPciP-sks5qVt_kgaJpZM4JMi6Q
.


Need to Connect the Nodes From Any Side Top, Left, RIght, Bottom ??

Hi @jerosoler
I am using this Library in my Project So My Requirement is I need to connect the Nodes from Node Left, Right, Top, and Bottom(User can connect node from any side he can give input from any side) but as of now we can connect the node only to node Left Side So is there any way to do this?
Thanks in Advance Your Support will Highly appreciated.

View:

https://github.com/jerosoler/Drawflow/issues/722


+rts Add RejectedExecutionHandler configuration support for RTS.

RTS should provide a way to configure the underlying threadPool.

@hepin1989 Making this configurable makes sense, however, the saneSafe rejected execution handler always tries to execute the Runnable, which may lead to some surprising results (not that a rejection execution won't, anyway). What do you think about unbundling these changes?

@jdegoes Thanks for review.
What I expected here is that providing a way to shutdown the RTS gracefully,make sure all the submitted tasks been run. The default abort policy will cause problem in production and easy to forget how to gracefully shutdown a RTS, when that happens, we may lose some mession cridical tasks.
A better way may be: 1) add a gracefullyShutdown method to RTS trait and user could call it to first shutdown the RTS ,2) make sure we registerred a shutdown hook, and make sure the RST will be shutdown gracefully when there is a shutdown or redeploy triggered by auto deploy system.
So the main reason I think is prodovide a way to gracefully online and offline a cridical system which is built around IO and its underlying RTS.

@hepin1989

What I expected here is that providing a way to shut down the RTS gracefully, make sure all the submitted tasks been run. The default abort policy will cause a problem in production and easy to forget how to gracefully shutdown a RTS, when that happens, we may lose some mission-critical tasks.

You are right. We definitely need to fix this problem.

A better way may be: 1) add a gracefullyShutdown method to RTS trait and user could call it to first shutdown the RTS, 2) make sure we registered a shutdown hook, and make sure the RST will be shut down gracefully when there is a shutdown or redeploy triggered by automatic deploy system.

In App, a shutdown hook is added. Where you thinking more there?
I think we do need gracefullyShutdown, and to make this part of ExitCode in App. See discussion on #356.
Do you think a good, safe version of App is sufficient? i.e. one that waits until the tasks are run, adds the shutdown hook, etc.

@jdegoes

Do you think a good, safe version of App is sufficient? i.e. one that waits until the tasks are run, adds the shutdown hook, etc.

No, but it makes things easier. In a real in production online system, especially in a distributed system, we need first switch out the online inbound communications by the infrastructure and then process all the ongoing works, finally let the infrastructure know that we have done, after that, it will then start to totally bring our App down.
So a good implementation needs both from ZIO and infrastructure support.

I've brought it up before, but I think we're going down the wrong path if we're trying to guarantee the completion of tasks, and not fibers. ZIO code operates on fibers and doesn't deal with individual Runnable tasks. Given that many ZIO combinators and the RTS (via its cooperative multitasking mechanism) non-transparently insert an asynchronous boundary, you have no guarantee as to whether a fiber will ever complete on shutdown.
Also, the default thread pool is the default because its what we believe is the best default choice for a thread pool. If the user doesn't want the default thread pool, they will override it. We should avoid giving users the ability to customize a thread pool via the RTS interface because:

they can just change it themselves
if they change it, the overridable options don't make any sense
it probably won't make sense to have for #36

@RaasAhsan Yes, a user could override it, but what I suggested here is that the default is not the right one, do you have any logging if there is a rejection happening? no, you see, that's a problem.

I opened #412 so we can discuss what needs to be done there.

Okay


Correction by creating  missing files

/en/app-developer/Readme.md

Closed because it already corresponded


feat: update to latest version of gapic generator

This PR was generated using Autosynth. :rainbow:
Synth log will be available here:
https://source.cloud.google.com/results/invocations/99ef2dca-2584-49cc-87ee-9fa78ddbc816/targets

[ ] To automatically regenerate this PR, check this box.

PiperOrigin-RevId: 352816749
Source-Link: https://github.com/googleapis/googleapis/commit/ceaaf31b3d13badab7cf9d3b570f5639db5593d9
PiperOrigin-RevId: 342906697
Source-Link: https://github.com/googleapis/googleapis/commit/5fdb685a684269e07c10c7518372eb5d7b6bc0a9

@googlebot I consent.


feat: HTTP pull source

Is your feature request related to a problem? Please describe.
Desirable to have a source that periodically pulls from an http endpoint to generate messages.
This would be very useful for demos as well since we can pull from services that everyone can access rather than just synthetically generated data.
Describe the solution you'd like
A source that generates a stream of data by periodically pulling from an http endpoint.
Describe alternatives you've considered
Using an S3 bucket as a source (not many interesting data is available to everyone in S3 buckets).
Additional context
None

Message from the maintainers:
If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

We might be able to do this using our current generator source with a UDF that can do cURL.


[TieredStorage] Add AccountsFile::TieredHot

Problem
AccountsFile currently doesn't have an implementation for HotStorage.
Summary of Changes
This PR implements a AccountsFile::TieredHot, a thin wrapper between
AccountsFile and HotStorage.
Note that from a validator's perspective, this PR is still a no-op as the
default storage is still AppendVec, and it does not include any command-line
argument for enabling HotStorage.
Test Plan
Running a validator with HotStorage on mainnet.
Tiered-storage tests.
Accounts-db tests (with append-vec as default, but it will also check the file format to determine whether to open as an append-vec).
Dependency
#195

Putting it back to draft to understand more about the test failure.

Codecov Report
Attention: Patch coverage is 52.56410% with 37 lines in your changes are missing coverage. Please review.

Project coverage is 81.8%. Comparing base (0e12172) to head (f4f04f9).
Report is 11 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##           master      #72     +/-   ##
=========================================
- Coverage    81.8%    81.8%   -0.1%
=========================================
  Files         838      838
  Lines      226564   226638     +74
=========================================
+ Hits       185520   185572     +52
- Misses      41044    41066     +22

Rebase to address conflicts.

Rebased and addressed comments.

Rebased on top of master with https://github.com/anza-xyz/agave/pull/400

Rebased on top of #401 that includes the capacity() API.

Rebased on top of https://github.com/anza-xyz/agave/pull/401

Rebased on top of master with #401


Merge lib/languages.coffee with upstream changes

This change merges the current state of the lib/languages.coffee file with upstream changes at https://github.com/nevir/groc/blob/5495be0a25/lib/languages.coffee.
Changes include:

Markdown: add markdown, mkd, mkdn, and mdown extensions
C: add multi-line comments
CSS: add language
C++: add multi-line comments
HTML: add language
JSP: add language
LiveScript: add language
Mustache: add multi-line comments
Swift: add language
TypeScript: add language

Thanks mate, that looks amazing. I'll give this a try locally but I would be surprised if there was any obstacle to merging this. (BTW, I originally wanted to get rid of this method of splitting code and comments entirely, see #14 for more information.)

Thanks again, I just published this as 0.3.8 to npm!

Fantastic – thanks for doing that.
Yeah, I think it's a brilliant idea to just hook into the syntax highlighter and use its logic to find the comments. It's too bad highlight.js doesn't allow for that.
I tried out your feature/14-highlights branch – I see what you mean about the mass of span tags. I've been doing some tests on this branch, and I think the reason atom/highlights' runtimes were ~70% higher was because it was also loading highlight.js. After removing the require (and the lib/language.coffee stuff), I seem to be getting comparable generation times with either highlighter. I'll do some more thorough tests and post the results to the Issue #14: Evaluate Usage of Atom's Highlights page.

Wow, thanks! That's brilliant! I'm looking forward to reading your findings!
(Btw, this uses versions from about 9 month ago, I'm sure there are tons of updates.)
On Sun, Mar 29, 2015 at 6:06 AM, jonruttan<EMAIL_ADDRESS>wrote:

Fantastic – thanks for doing that.
Yeah, I think it's a brilliant idea to just hook into the syntax highlighter and use its logic to find the comments. It's too bad [highlight.js] doesn't allow for that.
I tried out your feature/14-highlights branch – I see what you mean about the mass of span tags. I've been doing some tests on this branch, and I think the reason [atom/highlights]' runtimes were ~70% higher was because it was also loading [highlight.js]. After removing the require (and the lib/language.coffee stuff), I seem to be getting comparable generation times with either highlighter. I'll do some more thorough tests and post the results to the Issue #14: Evaluate Usage of Atom's Highlights page.
[highlight.js]: https://highlightjs.org/
[atom/highlights]: https://atom.github.io/highlights
Reply to this email directly or view it on GitHub:
https://github.com/killercup/grock/pull/27#issuecomment-87351949


error loading shared libraries

I need some help, i get this error after I compile the "hello world" example with the given command: g++ hello.cpp -o hello -std=c++11 -lredox -lev -lhiredis . So the compilation works good, without errors, but the execution gives me this error: "error while loading shared libraries: libredox.so.0: cannot open shared object file: No such file or directory"
NOTE: Please try not to be mean when you explain to me the problem, I'm kind of a noob with those things. I am thinking that I didn't do the installation correctly.

Did you do sudo make install after make? It might not be in your system path.
Try ldconfig -p | grep libredox and see if is found. Alternatively, ldd hello on your executable to see if the link is made.

I got the same error and investigated this a little further. The issue seems to be that /usr/lib64 (where redox gets installed on a 64 bit system) is not a standard library path on Ubuntu (actually libredox.so and its symlinks are the only files in this directory). I would suggest dropping the LIB_SUFFIX from the CMakeLists (or only set it if we are not building for the host architecture, e.g. building for 32 bit on a 64 bit system).

I'm getting this same issue.
I tried both suggestions from @hmartiro and got no response on the first command and "libredox.so.0 => not found" for the second.
Is the solution by @nullEuro the workaround? Replacing lib64 by lib in the CMakeLists?

@rodolfoamarques Alternatively you can compile your program with
LD_LIBRARY_PATH=/usr/lib64 gcc ...

To avoid this issue, we can link the redox library statically.
g++ hello.cpp  -std=c++11  -o hello -lredox_static -lev -lhiredis -pthread -I../include -L../build


Issue with @me !!PLEASE READ BEFORE REPORTING @me ISSUE!!

found an issue with the playerreference getting the wrong name to spawn with the p=@"me" argument.
To fix for now just use p=@"yourPlayername" and it should work

Hey so when I was doing the scrap command it wasn't working I was doing
/spawnscrap binfullofbottles 1 @>my name<
And it said it was working fine but didn't bring the scrap, I just need to know if I have to do the cmd different or if it's currently bugged

Can you send the logs? Otherwise i cant see what happened

I found the stuff I spawned randomly in the facility, but it doesn't spawn at/near me

im working on fixing the command, i think i will soon have the fix for both

(also you need to use p=@teraslash to spawn at the playernames location)

Ohhh alrigght I thought you didn't have to put it there, but thanks for telling me.

You need to because that way the program knows what it is for, like if it is the value, amount or position. Otherwise you would always have to put everything and in a specific order


Include real time version as flavor

With this change rt versions of the image will referenced as an additional flavor:
suse/sle-micro/rt-5.5:<version>
This also allows us to drop the RT package in OBS as it will be just a flavor of SLE-Micro image.

Closing, I give up for now


Update/teacher badges to user snapshot

Added a fully functioning section to the user snapshot kafka streams app to aggregate, record and store teacher badges.

Pull Request Check List

[x] Unit Tests & Regression Tests Added (Optional)
[x] Removed Unnecessary Logs/System.Outs/Comments/TODOs
[x] Added enough Logging to monitor expected behaviour change
[ ] Security - Injection - everything run by an interpreter (SQL, OS...) is either validated or escaped
[ ] Security - Data Exposure - PII is not stored or sent unencrypted
[ ] Security - Access Control - Check authorisation on every new endpoint
[ ] Security - New dependency - configured sensibly not relying on defaults
[ ] Security - New dependency - Searched for any know vulnerabilities
[ ] Security - New dependency - Signed up team to mailing list
[ ] Security - New dependency - Added to dependency list
[ ] DB schema changes - postgres-rutherford-create-script updated
[ ] DB schema changes - upgrade script created matching create script
[ ] Updated Release Procedure & Documentation (& Considered Implications to Previous Versions)
[ ] Peer-Reviewed

This is also from the Kafka world, and thus no longer relevant . . .


The  element for every page is the same

Every page has the title "GOV.UK - The best place to find government services and information"

Thanks for pointing this out Richard. I think we've changed it everywhere now. There might be the odd page where we haven't fixed it so do let us know if you see any still with GOV.UK text.


Upgrade history package

Context
This is a spike card to figure out how difficult it is to do the update, and what are the dependancies.
Timebox
2 days
Notes
We use history for routing in certain places throughout the application. Currently we are on version 4.10.1, however there are breaking changes in version 5.0.0 because relative routes are no longer supported.
https://github.com/ReactTraining/history/releases/tag/v5.0.0

The priority of the work coming out of this is dependent on if the package is currently failing security checks. If not, it can be deprioritized until we have the bandwidth to start it.

In newer versions of the history package, particularly version 5.0.0 and above, relative routes are no longer supported due to breaking changes.
We use relative routes in about 6 places in our app:

StatusButton.js
CaseRow.js
EditLetter.js
NotificationList.js
withSecurity.js
Auth.js (depending value of redirectUri)

Instead, you typically use absolute routes or pathnames to navigate within your application.

 This ensures that the route is resolved from the root of your application's routing hierarchy, regardless of the current location.

Navigation methods: Depending on how you're handling navigation in your application, you'll use different methods provided by the history package or your chosen routing library. For example:

If you're using React Router, you might use the Link component with the to prop set to the absolute path: Details.
If you're programmatically navigating, you might use history.push('/products/details') instead of relying on relative paths.

Dynamic route generation: If you're dynamically generating routes based on data or user input, ensure that you construct absolute paths correctly to avoid unexpected behavior. You may need to concatenate path segments or use helper functions provided by your routing library to generate absolute paths.

By transitioning to absolute routes, you ensure clarity and consistency in your routing logic, making it easier to understand and maintain your codebase over time.

Spike outcomes:

We know that the version of the `history package does not support relative routes, so as @claireholt-tw mentioned in the above comment, we will need to revise routes in about 6 files. This should be super easy.
Upgrading the version of history also causes the error Could not find router reducer in state tree, it must be mounted under "router". Here are some potential resources on how to approach this error:

https://stackoverflow.com/questions/54315988/connectedrouter-error-could-not-find-router-reducer-in-state-tree-it-must-be-m
https://dev.to/harukakato35/error-could-not-find-router-reducer-in-state-tree-it-must-be-mounted-under-router-gca
https://aronschueler.de/blog/2022/02/14/router-reducer-must-be-mounted-under-router/

This seems like it should also be a relatively easy fix.

With the current project situation we will not be able to update the history package.
When the package is updated, we face the following error: Could not find router reducer in state tree, it must be mounted under "router”.
This error is happening for several routes in the app. For example, clicking on the menu of the top right corner and clicking to open the data datasboard page causes the error to happen (the data dashboard page does not open). The same behavior happens when a click to open different pages happens.
Going through the links provided in the spike card #102. We learned that we already have the implementation suggested in this link in your codebase.  Also, another answer from the same link says that history version 5.0.0 is only compatible with react-router-dom version 6 or above. Currently in the project we use version 5.1.0 for react-router-dom.
I found this link on upgrading react-router-dom.


npm install fails with D:\Users\hans\Sources\angular-cli** files not found

OS?

Windows  10.

Versions.

beta 28.3

Repro steps.

created hello world app using beta 26 cli.

The log given by the failure.

Normally this include a stack trace and some more information.

Mention any other details that might be useful.
I updated the angular cli with
npm uninstall -g angular-cli
npm cache clean
npm install -g angular-cli@latest
then added the linting breaking change and  cli version in angular-cli,json, updated local package.json to beta 28.3, and doing npm install gives the above  error

Thanks! We'll be in touch soon.

Gone after system restart , strange.


Artemis 1012

Let me the one merging this.. I want to make sure there are no clashes with what I'm doing.
I didn't see any now.. but I want to play with it.

@mtaylor Can you do this on the upstream branch artemis-1009 instead? too many conflicts.
Maybe I can minimize if I squash it, but it seems you could do it quickly there?

@clebertsuconic Your branch is not building for me.  Let's just review this as it is, and I'll help you rebase when the time comes.

Can we leave this out till Monday ?  I'm almost ready to merge mine.

apache/artemis-1009 builds without -Pdev... I'm fixing the checkstyle now.

@clebertsuconic I've closed this out and opened a PR againt the artemis-1009 branch.

See #1062


all() doesn't work on more than 4 items.

class MyA {}
class MyB {}

func getA() -> Promise<MyA> {
    return Promise<MyA> { fullfill, reject in
        print("promise MyA")
        fullfill(MyA())
    }
}

func getB() -> Promise<MyB> {
    return Promise<MyB> { fullfill, reject in
        print("promise MyB")
        fullfill(MyB())
    }
}

        all(
            getA(),
            getA(),
            getA(),
            getB()
        )
        .then { result in
            print("Got result!", result)

        }

This method works perfectly.
But If I add one more item to the all() method, I can't compile anymore, with an error on the first item:

Cannot convert value of type 'Promise' to expected argument type 'Promise<_>'

Hi @nielsz, currently, the max number of dissimilar value types that can be passed to all is 4:
https://github.com/google/promises/blob/master/Sources/Promises/Promise%2BAll.swift#L148
Do you have a specific need to support 5 or more?

Ah that's too bad. I couldn't find that limit in the documentation.
I need to call 6 web-services, preferably at the same time.

Hi Niels,
To make it clear, all() doesn't initiate promises execution in any way, so you can't expect the promises you pass into all() start doing their work simultaneously at that moment. Moreover, you can even pass an already resolved promise to all(), if needed. all() just allows you to wait for a bunch of different promises and get notified when all of them are fulfilled, whenever that happens.
So, you can effectively leverage a combination of all() with nearly the same outcome as if all() really supported 5 or more heterogeneous arguments. For example:
all(all(p1, p2, p3), all(p4, p5, p6)).then { results in
  let ((a1, a2, a3), (a4, a5, a6)) = results
  print(a1, a2, a3, a4, a5, a6)
}

Another option would be extending Promise+All.swift (and Promises+AllTests.swift, of course) to allow a few more arguments. That is somewhat quite tedious and boilerplate, but feel free to send a PR our way, if that's what you'd prefer.
Thanks.

@nielsz closing this issue, but feel free to submit a PR if you need the additional functionality for all. Thank you!

Ah that's too bad. I couldn't find that limit in the documentation.
I need to call 6 web-services, preferably at the same time.

It is nice to have the limit explicitly stated there. :)

@fitsyu we're happy to accept a PR with the proposed change :)


Can I run a LeNet model on Jetson?

I have trained my own LeNet model using DIGITS and following the tutorials. I have tested the network on my host node and it works. I now want to run it on my Jetson, but in the code I can only see:
enum NetworkType
	{
		ALEXNET,
		GOOGLENET
	};

Is there a way to run custom LeNet models?

Here is the extended usage of imagenet-console that you can use to load custom model without reloading:
$ NET=networks/GoogleNet-ILSVRC12-subset

$ ./imagenet-console bird_0.jpg output_0.jpg \
--prototxt=$NET/deploy.prototxt \
--model=$NET/snapshot_iter_184080.caffemodel \
--labels=$NET/labels.txt \
--input_blob=data \
--output_blob=softmax

Set the path to your model in the $NET variable, change the filenames to match, and set the input/output layers to be the same as your prototxt.

Thanks! I will test it out!

I have tested imagenet-console, with the command line parameter modified with my data and first, it only tries to load google-net. After modifying imagenet-console.cpp to call the correct Create() and after avoiding using --*= syntax I got it to load my net with the following errors:
[GIE]  attempting to open cache file /home/ubuntu/Downloads/snapshot_iter_90.caffemodel.2.tensorcache
[GIE]  cache file not found, profiling network model
[GIE]  platform has FP16 support.
[GIE]  loading /home/ubuntu/Downloads/deploy.prototxt /home/ubuntu/Downloads/snapshot_iter_90.caffemodel
[GIE]  failed to retrieve tensor for output 'prob'
[GIE]  configuring CUDA engine
[GIE]  building CUDA engine
[GIE]  conv1: kernel weights has count 1 but 500 was expected
[GIE]  conv2: kernel weights has count 1 but 25000 was expected
[GIE]  ip1: kernel weights has count 1 but 400000 was expected
[GIE]  ip2: kernel weights has count 1 but 6000 was expected
[GIE]  failed to build CUDA engine
failed to load /home/ubuntu/Downloads/snapshot_iter_90.caffemodel
failed to load /home/ubuntu/Downloads/snapshot_iter_90.caffemodel
imageNet -- failed to initialize.
imagenet-console:   failed to initialize imageNet

Tested the new code, and GetString is not working properly. At least on my Jetson it ignores custom arguments due to the fact that it does not parse the arguments correctly.

I don't understand the problem. I have tested the caffemodel in the GIE samples and it works. It has the same topology as my custom LeNet model. This points to a problem in the caffemodel which I downloaded from my DIGITS host.
I have also noticed that mean_path is set to NULL, which I think sometimes will not be correct.

Something in the model is off with the weights.  See the error messages about having 1 weight in the .caffemodel, while 500 are expected.
I am finishing up the tutorial section for training ImageNet, it will be interesting if those models work for you.

Yeah, that would be perfect. Please let me know here and I will try them out. Meanwhile I will install DIGITS in my Jetson and see if the model trained there works.
Its weird because using DIGITS on the host to classify images it works, I'm thinking it must have something to do with Caffe, maybe the latest Caffe generates incompatible models.

I think this has something to do with compatibility of the latest NVIDIA Caffe and TensorRT. I just compiled the same Caffe version from the host on the Jetson, and then tested my custom caffemodel with tools/caffe on the Jetson. Using the Caffe compiled binary it works properly:
I0605 07:43:55.638097  7663 caffe.cpp:348] Use GPU with device ID 0
I0605 07:43:56.245698  7663 upgrade_proto.cpp:67] Attempting to upgrade input file specified using deprecated input fields: /home/ubuntu/Downloads/deploy.prototxt
I0605 07:43:56.245824  7663 upgrade_proto.cpp:70] Successfully upgraded file specified using deprecated input fields.
W0605 07:43:56.245872  7663 upgrade_proto.cpp:72] Note that future Caffe releases will only support input layers and not input fields.

I0605 07:43:57.094913  7663 net.cpp:200] ip2 does not need backward computation.
I0605 07:43:57.094943  7663 net.cpp:200] relu1 does not need backward computation.
I0605 07:43:57.094970  7663 net.cpp:200] ip1 does not need backward computation.
I0605 07:43:57.095000  7663 net.cpp:200] pool2 does not need backward computation.
I0605 07:43:57.095028  7663 net.cpp:200] conv2 does not need backward computation.
I0605 07:43:57.095062  7663 net.cpp:200] pool1 does not need backward computation.
I0605 07:43:57.095090  7663 net.cpp:200] conv1 does not need backward computation.
I0605 07:43:57.095120  7663 net.cpp:200] scale does not need backward computation.
I0605 07:43:57.095149  7663 net.cpp:200] input does not need backward computation.
I0605 07:43:57.095182  7663 net.cpp:242] This network produces output softmax
I0605 07:43:57.095228  7663 net.cpp:255] Network initialization done.
I0605 07:43:57.095341  7663 caffe.cpp:360] Performing Forward
I0605 07:43:57.102499  7663 caffe.cpp:365] Initial loss: 0
I0605 07:43:57.102591  7663 caffe.cpp:366] Performing Backward
I0605 07:43:57.102635  7663 caffe.cpp:374] *** Benchmark begins ***
I0605 07:43:57.102670  7663 caffe.cpp:375] Testing for 50 iterations.
I0605 07:43:57.113206  7663 caffe.cpp:403] Iteration: 1 forward-backward time: 10.5568 ms.
I0605 07:43:57.122154  7663 caffe.cpp:403] Iteration: 2 forward-backward time: 8.86252 ms.
I0605 07:43:57.128005  7663 caffe.cpp:403] Iteration: 3 forward-backward time: 5.75563 ms.
I0605 07:43:57.133360  7663 caffe.cpp:403] Iteration: 4 forward-backward time: 5.32084 ms.
I0605 07:43:57.139078  7663 caffe.cpp:403] Iteration: 5 forward-backward time: 5.69768 ms.
I0605 07:43:57.144804  7663 caffe.cpp:403] Iteration: 6 forward-backward time: 5.69379 ms.
I0605 07:43:57.150418  7663 caffe.cpp:403] Iteration: 7 forward-backward time: 5.58137 ms.
I0605 07:43:57.155918  7663 caffe.cpp:403] Iteration: 8 forward-backward time: 5.473 ms.
I0605 07:43:57.161494  7663 caffe.cpp:403] Iteration: 9 forward-backward time: 5.55047 ms.
I0605 07:43:57.167054  7663 caffe.cpp:403] Iteration: 10 forward-backward time: 5.5351 ms.
I0605 07:43:57.172641  7663 caffe.cpp:403] Iteration: 11 forward-backward time: 5.56221 ms.
I0605 07:43:57.178210  7663 caffe.cpp:403] Iteration: 12 forward-backward time: 5.53995 ms.
I0605 07:43:57.183874  7663 caffe.cpp:403] Iteration: 13 forward-backward time: 5.644 ms.
I0605 07:43:57.189368  7663 caffe.cpp:403] Iteration: 14 forward-backward time: 5.46742 ms.
I0605 07:43:57.194947  7663 caffe.cpp:403] Iteration: 15 forward-backward time: 5.55784 ms.
I0605 07:43:57.200531  7663 caffe.cpp:403] Iteration: 16 forward-backward time: 5.55837 ms.
I0605 07:43:57.206095  7663 caffe.cpp:403] Iteration: 17 forward-backward time: 5.54294 ms.
I0605 07:43:57.211572  7663 caffe.cpp:403] Iteration: 18 forward-backward time: 5.44921 ms.
I0605 07:43:57.217231  7663 caffe.cpp:403] Iteration: 19 forward-backward time: 5.64121 ms.
I0605 07:43:57.222887  7663 caffe.cpp:403] Iteration: 20 forward-backward time: 5.54463 ms.
I0605 07:43:57.228323  7663 caffe.cpp:403] Iteration: 21 forward-backward time: 5.40721 ms.
I0605 07:43:57.233861  7663 caffe.cpp:403] Iteration: 22 forward-backward time: 5.51131 ms.
I0605 07:43:57.239498  7663 caffe.cpp:403] Iteration: 23 forward-backward time: 5.61647 ms.
I0605 07:43:57.245213  7663 caffe.cpp:403] Iteration: 24 forward-backward time: 5.69168 ms.
I0605 07:43:57.250741  7663 caffe.cpp:403] Iteration: 25 forward-backward time: 5.50221 ms.
I0605 07:43:57.256296  7663 caffe.cpp:403] Iteration: 26 forward-backward time: 5.45458 ms.
I0605 07:43:57.262475  7663 caffe.cpp:403] Iteration: 27 forward-backward time: 6.16105 ms.
I0605 07:43:57.268126  7663 caffe.cpp:403] Iteration: 28 forward-backward time: 5.62379 ms.
I0605 07:43:57.273653  7663 caffe.cpp:403] Iteration: 29 forward-backward time: 5.49979 ms.
I0605 07:43:57.279237  7663 caffe.cpp:403] Iteration: 30 forward-backward time: 5.56089 ms.
I0605 07:43:57.284859  7663 caffe.cpp:403] Iteration: 31 forward-backward time: 5.59931 ms.
I0605 07:43:57.290408  7663 caffe.cpp:403] Iteration: 32 forward-backward time: 5.52368 ms.
I0605 07:43:57.296008  7663 caffe.cpp:403] Iteration: 33 forward-backward time: 5.50089 ms.
I0605 07:43:57.301532  7663 caffe.cpp:403] Iteration: 34 forward-backward time: 5.41842 ms.
I0605 07:43:57.306895  7663 caffe.cpp:403] Iteration: 35 forward-backward time: 5.33763 ms.
I0605 07:43:57.312460  7663 caffe.cpp:403] Iteration: 36 forward-backward time: 5.54194 ms.
I0605 07:43:57.317960  7663 caffe.cpp:403] Iteration: 37 forward-backward time: 5.47326 ms.
I0605 07:43:57.324004  7663 caffe.cpp:403] Iteration: 38 forward-backward time: 6.02131 ms.
I0605 07:43:57.329622  7663 caffe.cpp:403] Iteration: 39 forward-backward time: 5.59452 ms.
I0605 07:43:57.335033  7663 caffe.cpp:403] Iteration: 40 forward-backward time: 5.38326 ms.
I0605 07:43:57.340585  7663 caffe.cpp:403] Iteration: 41 forward-backward time: 5.52958 ms.
I0605 07:43:57.346137  7663 caffe.cpp:403] Iteration: 42 forward-backward time: 5.5261 ms.
I0605 07:43:57.351761  7663 caffe.cpp:403] Iteration: 43 forward-backward time: 5.59889 ms.
I0605 07:43:57.357305  7663 caffe.cpp:403] Iteration: 44 forward-backward time: 5.44326 ms.
I0605 07:43:57.362937  7663 caffe.cpp:403] Iteration: 45 forward-backward time: 5.60705 ms.
I0605 07:43:57.368754  7663 caffe.cpp:403] Iteration: 46 forward-backward time: 5.72116 ms.
I0605 07:43:57.374270  7663 caffe.cpp:403] Iteration: 47 forward-backward time: 5.4961 ms.
I0605 07:43:57.379909  7663 caffe.cpp:403] Iteration: 48 forward-backward time: 5.55342 ms.
I0605 07:43:57.385601  7663 caffe.cpp:403] Iteration: 49 forward-backward time: 5.59058 ms.
I0605 07:43:57.391149  7663 caffe.cpp:403] Iteration: 50 forward-backward time: 5.5221 ms.
I0605 07:43:57.391238  7663 caffe.cpp:406] Average time per layer:
I0605 07:43:57.391276  7663 caffe.cpp:409]      input	forward: 0.0179599 ms.
I0605 07:43:57.391326  7663 caffe.cpp:412]      input	backward: 0.0186841 ms.
I0605 07:43:57.391374  7663 caffe.cpp:409]      scale	forward: 0.0923673 ms.
I0605 07:43:57.391422  7663 caffe.cpp:412]      scale	backward: 0.0189663 ms.
I0605 07:43:57.391468  7663 caffe.cpp:409]      conv1	forward: 0.233149 ms.
I0605 07:43:57.391512  7663 caffe.cpp:412]      conv1	backward: 0.72725 ms.
I0605 07:43:57.391557  7663 caffe.cpp:409]      pool1	forward: 0.0776705 ms.
I0605 07:43:57.391603  7663 caffe.cpp:412]      pool1	backward: 0.0193474 ms.
I0605 07:43:57.391654  7663 caffe.cpp:409]      conv2	forward: 0.702601 ms.
I0605 07:43:57.391705  7663 caffe.cpp:412]      conv2	backward: 0.96311 ms.
I0605 07:43:57.391751  7663 caffe.cpp:409]      pool2	forward: 0.0691705 ms.
I0605 07:43:57.391796  7663 caffe.cpp:412]      pool2	backward: 0.0202126 ms.
I0605 07:43:57.391844  7663 caffe.cpp:409]        ip1	forward: 0.320912 ms.
I0605 07:43:57.391890  7663 caffe.cpp:412]        ip1	backward: 0.57225 ms.
I0605 07:43:57.391939  7663 caffe.cpp:409]      relu1	forward: 0.0628695 ms.
I0605 07:43:57.391985  7663 caffe.cpp:412]      relu1	backward: 0.0165358 ms.
I0605 07:43:57.392030  7663 caffe.cpp:409]        ip2	forward: 0.0964052 ms.
I0605 07:43:57.392074  7663 caffe.cpp:412]        ip2	backward: 0.24121 ms.
I0605 07:43:57.392120  7663 caffe.cpp:409]    softmax	forward: 0.0741673 ms.
I0605 07:43:57.392164  7663 caffe.cpp:412]    softmax	backward: 0.0169726 ms.
I0605 07:43:57.392246  7663 caffe.cpp:417] Average Forward pass: 2.41988 ms.
I0605 07:43:57.392283  7663 caffe.cpp:419] Average Backward pass: 3.20697 ms.
I0605 07:43:57.392318  7663 caffe.cpp:421] Average Forward-Backward: 5.85047 ms.
I0605 07:43:57.392360  7663 caffe.cpp:423] Total Time: 292.523 ms.
I0605 07:43:57.392405  7663 caffe.cpp:424] *** Benchmark ends ***

Which NVcaffe version do you have installed on your DIGITS machine?  Can you try 0.15?   I haven't used 0.16
On Jun 5, 2017 3:50 AM, Omar Alvarez<EMAIL_ADDRESS>wrote:
I think this has something to do with compatibility of the latest NVIDIA Caffe and TensorRT. I just compiled the same Caffe version from the host on the Jetson, and then tested my custom caffemodel with tools/caffe on the Jetson. Using the Caffe compiled binary it works properly:
I0605 07:43:55.638097  7663 caffe.cpp:348] Use GPU with device ID 0
I0605 07:43:56.245698  7663 upgrade_proto.cpp:67] Attempting to upgrade input file specified using deprecated input fields: /home/ubuntu/Downloads/deploy.prototxt
I0605 07:43:56.245824  7663 upgrade_proto.cpp:70] Successfully upgraded file specified using deprecated input fields.
W0605 07:43:56.245872  7663 upgrade_proto.cpp:72] Note that future Caffe releases will only support input layers and not input fields.

I0605 07:43:57.094913  7663 net.cpp:200] ip2 does not need backward computation.
I0605 07:43:57.094943  7663 net.cpp:200] relu1 does not need backward computation.
I0605 07:43:57.094970  7663 net.cpp:200] ip1 does not need backward computation.
I0605 07:43:57.095000  7663 net.cpp:200] pool2 does not need backward computation.
I0605 07:43:57.095028  7663 net.cpp:200] conv2 does not need backward computation.
I0605 07:43:57.095062  7663 net.cpp:200] pool1 does not need backward computation.
I0605 07:43:57.095090  7663 net.cpp:200] conv1 does not need backward computation.
I0605 07:43:57.095120  7663 net.cpp:200] scale does not need backward computation.
I0605 07:43:57.095149  7663 net.cpp:200] input does not need backward computation.
I0605 07:43:57.095182  7663 net.cpp:242] This network produces output softmax
I0605 07:43:57.095228  7663 net.cpp:255] Network initialization done.
I0605 07:43:57.095341  7663 caffe.cpp:360] Performing Forward
I0605 07:43:57.102499  7663 caffe.cpp:365] Initial loss: 0
I0605 07:43:57.102591  7663 caffe.cpp:366] Performing Backward
I0605 07:43:57.102635  7663 caffe.cpp:374] *** Benchmark begins ***
I0605 07:43:57.102670  7663 caffe.cpp:375] Testing for 50 iterations.
I0605 07:43:57.113206  7663 caffe.cpp:403] Iteration: 1 forward-backward time: 10.5568 ms.
I0605 07:43:57.122154  7663 caffe.cpp:403] Iteration: 2 forward-backward time: 8.86252 ms.
I0605 07:43:57.128005  7663 caffe.cpp:403] Iteration: 3 forward-backward time: 5.75563 ms.
I0605 07:43:57.133360  7663 caffe.cpp:403] Iteration: 4 forward-backward time: 5.32084 ms.
I0605 07:43:57.139078  7663 caffe.cpp:403] Iteration: 5 forward-backward time: 5.69768 ms.
I0605 07:43:57.144804  7663 caffe.cpp:403] Iteration: 6 forward-backward time: 5.69379 ms.
I0605 07:43:57.150418  7663 caffe.cpp:403] Iteration: 7 forward-backward time: 5.58137 ms.
I0605 07:43:57.155918  7663 caffe.cpp:403] Iteration: 8 forward-backward time: 5.473 ms.
I0605 07:43:57.161494  7663 caffe.cpp:403] Iteration: 9 forward-backward time: 5.55047 ms.
I0605 07:43:57.167054  7663 caffe.cpp:403] Iteration: 10 forward-backward time: 5.5351 ms.
I0605 07:43:57.172641  7663 caffe.cpp:403] Iteration: 11 forward-backward time: 5.56221 ms.
I0605 07:43:57.178210  7663 caffe.cpp:403] Iteration: 12 forward-backward time: 5.53995 ms.
I0605 07:43:57.183874  7663 caffe.cpp:403] Iteration: 13 forward-backward time: 5.644 ms.
I0605 07:43:57.189368  7663 caffe.cpp:403] Iteration: 14 forward-backward time: 5.46742 ms.
I0605 07:43:57.194947  7663 caffe.cpp:403] Iteration: 15 forward-backward time: 5.55784 ms.
I0605 07:43:57.200531  7663 caffe.cpp:403] Iteration: 16 forward-backward time: 5.55837 ms.
I0605 07:43:57.206095  7663 caffe.cpp:403] Iteration: 17 forward-backward time: 5.54294 ms.
I0605 07:43:57.211572  7663 caffe.cpp:403] Iteration: 18 forward-backward time: 5.44921 ms.
I0605 07:43:57.217231  7663 caffe.cpp:403] Iteration: 19 forward-backward time: 5.64121 ms.
I0605 07:43:57.222887  7663 caffe.cpp:403] Iteration: 20 forward-backward time: 5.54463 ms.
I0605 07:43:57.228323  7663 caffe.cpp:403] Iteration: 21 forward-backward time: 5.40721 ms.
I0605 07:43:57.233861  7663 caffe.cpp:403] Iteration: 22 forward-backward time: 5.51131 ms.
I0605 07:43:57.239498  7663 caffe.cpp:403] Iteration: 23 forward-backward time: 5.61647 ms.
I0605 07:43:57.245213  7663 caffe.cpp:403] Iteration: 24 forward-backward time: 5.69168 ms.
I0605 07:43:57.250741  7663 caffe.cpp:403] Iteration: 25 forward-backward time: 5.50221 ms.
I0605 07:43:57.256296  7663 caffe.cpp:403] Iteration: 26 forward-backward time: 5.45458 ms.
I0605 07:43:57.262475  7663 caffe.cpp:403] Iteration: 27 forward-backward time: 6.16105 ms.
I0605 07:43:57.268126  7663 caffe.cpp:403] Iteration: 28 forward-backward time: 5.62379 ms.
I0605 07:43:57.273653  7663 caffe.cpp:403] Iteration: 29 forward-backward time: 5.49979 ms.
I0605 07:43:57.279237  7663 caffe.cpp:403] Iteration: 30 forward-backward time: 5.56089 ms.
I0605 07:43:57.284859  7663 caffe.cpp:403] Iteration: 31 forward-backward time: 5.59931 ms.
I0605 07:43:57.290408  7663 caffe.cpp:403] Iteration: 32 forward-backward time: 5.52368 ms.
I0605 07:43:57.296008  7663 caffe.cpp:403] Iteration: 33 forward-backward time: 5.50089 ms.
I0605 07:43:57.301532  7663 caffe.cpp:403] Iteration: 34 forward-backward time: 5.41842 ms.
I0605 07:43:57.306895  7663 caffe.cpp:403] Iteration: 35 forward-backward time: 5.33763 ms.
I0605 07:43:57.312460  7663 caffe.cpp:403] Iteration: 36 forward-backward time: 5.54194 ms.
I0605 07:43:57.317960  7663 caffe.cpp:403] Iteration: 37 forward-backward time: 5.47326 ms.
I0605 07:43:57.324004  7663 caffe.cpp:403] Iteration: 38 forward-backward time: 6.02131 ms.
I0605 07:43:57.329622  7663 caffe.cpp:403] Iteration: 39 forward-backward time: 5.59452 ms.
I0605 07:43:57.335033  7663 caffe.cpp:403] Iteration: 40 forward-backward time: 5.38326 ms.
I0605 07:43:57.340585  7663 caffe.cpp:403] Iteration: 41 forward-backward time: 5.52958 ms.
I0605 07:43:57.346137  7663 caffe.cpp:403] Iteration: 42 forward-backward time: 5.5261 ms.
I0605 07:43:57.351761  7663 caffe.cpp:403] Iteration: 43 forward-backward time: 5.59889 ms.
I0605 07:43:57.357305  7663 caffe.cpp:403] Iteration: 44 forward-backward time: 5.44326 ms.
I0605 07:43:57.362937  7663 caffe.cpp:403] Iteration: 45 forward-backward time: 5.60705 ms.
I0605 07:43:57.368754  7663 caffe.cpp:403] Iteration: 46 forward-backward time: 5.72116 ms.
I0605 07:43:57.374270  7663 caffe.cpp:403] Iteration: 47 forward-backward time: 5.4961 ms.
I0605 07:43:57.379909  7663 caffe.cpp:403] Iteration: 48 forward-backward time: 5.55342 ms.
I0605 07:43:57.385601  7663 caffe.cpp:403] Iteration: 49 forward-backward time: 5.59058 ms.
I0605 07:43:57.391149  7663 caffe.cpp:403] Iteration: 50 forward-backward time: 5.5221 ms.
I0605 07:43:57.391238  7663 caffe.cpp:406] Average time per layer:
I0605 07:43:57.391276  7663 caffe.cpp:409]      input   forward: 0.0179599 ms.
I0605 07:43:57.391326  7663 caffe.cpp:412]      input   backward: 0.0186841 ms.
I0605 07:43:57.391374  7663 caffe.cpp:409]      scale   forward: 0.0923673 ms.
I0605 07:43:57.391422  7663 caffe.cpp:412]      scale   backward: 0.0189663 ms.
I0605 07:43:57.391468  7663 caffe.cpp:409]      conv1   forward: 0.233149 ms.
I0605 07:43:57.391512  7663 caffe.cpp:412]      conv1   backward: 0.72725 ms.
I0605 07:43:57.391557  7663 caffe.cpp:409]      pool1   forward: 0.0776705 ms.
I0605 07:43:57.391603  7663 caffe.cpp:412]      pool1   backward: 0.0193474 ms.
I0605 07:43:57.391654  7663 caffe.cpp:409]      conv2   forward: 0.702601 ms.
I0605 07:43:57.391705  7663 caffe.cpp:412]      conv2   backward: 0.96311 ms.
I0605 07:43:57.391751  7663 caffe.cpp:409]      pool2   forward: 0.0691705 ms.
I0605 07:43:57.391796  7663 caffe.cpp:412]      pool2   backward: 0.0202126 ms.
I0605 07:43:57.391844  7663 caffe.cpp:409]        ip1   forward: 0.320912 ms.
I0605 07:43:57.391890  7663 caffe.cpp:412]        ip1   backward: 0.57225 ms.
I0605 07:43:57.391939  7663 caffe.cpp:409]      relu1   forward: 0.0628695 ms.
I0605 07:43:57.391985  7663 caffe.cpp:412]      relu1   backward: 0.0165358 ms.
I0605 07:43:57.392030  7663 caffe.cpp:409]        ip2   forward: 0.0964052 ms.
I0605 07:43:57.392074  7663 caffe.cpp:412]        ip2   backward: 0.24121 ms.
I0605 07:43:57.392120  7663 caffe.cpp:409]    softmax   forward: 0.0741673 ms.
I0605 07:43:57.392164  7663 caffe.cpp:412]    softmax   backward: 0.0169726 ms.
I0605 07:43:57.392246  7663 caffe.cpp:417] Average Forward pass: 2.41988 ms.
I0605 07:43:57.392283  7663 caffe.cpp:419] Average Backward pass: 3.20697 ms.
I0605 07:43:57.392318  7663 caffe.cpp:421] Average Forward-Backward: 5.85047 ms.
I0605 07:43:57.392360  7663 caffe.cpp:423] Total Time: 292.523 ms.
I0605 07:43:57.392405  7663 caffe.cpp:424] *** Benchmark ends ***
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/84#issuecomment-306125784, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK5pOh3-FsAkc93T_HhkhjkuljIDIks5sA7MngaJpZM4Nrxuf.

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.

I have 0.16.1 installed in my host. I will try 0.15 ASAP.
Thx!

Confirmed, branch caffe-0.15 works. It was indeed a compatibility issue.

Thank you for confirming the issue Omar.  I will note it in the Readme and report it to the team internally.
On Jun 6, 2017 3:44 AM, Omar Alvarez<EMAIL_ADDRESS>wrote:
Confirmed, branch caffe-0.15 works. It was indeed a compatibility issue.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/84#issuecomment-306408326, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK3cN6MvcL-O-yif7iflDwLhLs2d-ks5sBQNhgaJpZM4Nrxuf.

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.

I am also wondering if mean substraction is handled in the current code. I have added some code to also accept mean binary files, and I see a mMeanPath, but it looks like it has not been used anywhere. Is this correct? I could help with the implementation of the mean substraction, I was just wondering if I was missing something and it has already been taken into account.

Pixel mean subtraction is performed in CUDA kernel before TensorRT, I need to fully add the support for image mean subtraction.
From: Omar Alvarez<EMAIL_ADDRESS>Sent: Tuesday, June 06, 2017 8:10 AM
To: dusty-nv/jetson-inference
Cc: Dustin Franklin; Comment
Subject: Re: [dusty-nv/jetson-inference] Can I run a LeNet model on Jetson? (#84)
I am also wondering if mean substraction is handled in the current code. I have added some code to also accept mean binary files, and I see a mMeanPath, but it looks like it has not been used anywhere. Is this correct? I could help with the implementation of the mean substraction, I was just wondering if I was missing something and it has already been taken into account.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/84#issuecomment-306466900, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK3my4WKzXW9dqyko7OFA10ZKWpKFks5sBUGhgaJpZM4Nrxuf.

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.

Thanks for the responses, sorry for asking so many questions. The cuda kernel you are referring to is cudaPreImageNetMean? Because if I am not mistaken it substracts a fixed amount that does not use the binary mean file.
Last question (I promise). My last doubt has to do with batch sizes. Are batch sizes doing anything right now? Because I see that buffers are allocated for the batch size, when the network is loaded. But the classify function uses the loadRGBA result that only reads a single image. So if one wanted to use higher batch sizes, modifying the aforementioned function to take advantage of the bigger size of the input buffer would be needed. Is this correct?

No worries, each of the primitives does need updated with a function that takes the batching.  The console and camera programs don't use it currently right now either.  Now that the training guides are complete we can add that stuff as more advanced parts of the tutorial.  BTW here is the ImageNet training guide we were talking about before:  https://github.com/dusty-nv/jetson-inference#re-training-the-network-with-digits

Thanks dusty. I have checked out the new guide and it works properly for me, it is more or less the process I had followed to train my custom net.
Let me know if I can help with anything.

Thanks Omar, actually the item of mean image subtraction you raised, basically there needs to be a different cudaPreImageNetMean preprocessing function which applies the image subtraction as opposed to pixel subtraction - feel free to take a whack at it if you want.

Sounds good. I will open a new issue, so we don't polute this one. Should I close it since it has been solved?

Sure, sounds good, thanks.
On Jun 7, 2017 2:27 PM, Omar Alvarez<EMAIL_ADDRESS>wrote:
Sounds good. I will open a new issue, so we don't polute this one. Should I close it since it has been solved?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/84#issuecomment-306883615, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AOpDK8HYxMxEge5ys2MNZIZzg0094bgoks5sBut4gaJpZM4Nrxuf.

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.


Build Alpaca Finance Lending Subgraph

@corerouter is currently working on this one.

QA tracking here: https://github.com/messari/subgraphs/issues/1282


Error: The Drop-down Menu [caret-down] don't hide automatically

### Description of the Issue
The drop-down menu on the landing page, with id="caret-down", does not automatically hide when clicking outside of the menu. Currently, the drop-down only hides if the user clicks directly on the caret symbol, which is inconsistent with common behavior on most websites.
https://github.com/user-attachments/assets/bbc57bf7-b484-44cb-a333-46b732457baa
### Expected Behavior
The drop-down menu should hide when the user clicks anywhere on the page, whether it's a blank space or another element, ensuring a smoother and more intuitive user experience.
https://github.com/user-attachments/assets/2d447dff-e112-4dc4-88f6-824fd22187eb
Check the issue and expected solution

@sanjay-kv i would like to work on this issue

hey @sanjay-kv  i would like to work on this can you  assign it to me

i would also like to work on this issue.

@FezanMuhammadAli i think the the profile has been crashed due to some issue. can u fix that.
work on the gh-pages branch

@sanjay-kv i would like to work on this issue can you assign it to me

@sanjay-kv this is a serious issue I just noticed all profiles are gone. you can roll back the deployments and hope it will be fixed.

@FezanMuhammadAli rollback should be last option, could you help me to find which bug making this issue


[multistage] carry partition scheme for optimization

During multi-stage query engine planning. We knew exactly what data partition each server has by looking into the exchange logics. Thus we should use this to optimize data shuffling.
This PR

[x] adds partition key analysis
[x] populate partition keys across InputRef across nodes
[x] analyzes partition keys for partition desire to eliminate unnecessary shuffling
[x] adding test framework to validate reduced shuffle.

NOT in this PR

skip data shuffle entirely. this can be done by later implementation of the direct transferable block util
remove the 2-stage Aggregation entirely if JOIN key and GROUP BY key when possible.

Codecov Report

Merging #9100 (8ed4871) into master (b03b5e4) will decrease coverage by 54.64%.
The diff coverage is 87.06%.

@@              Coverage Diff              @@
##             master    #9100       +/-   ##
=============================================
- Coverage     70.02%   15.37%   -54.65%
+ Complexity     4981      170     -4811
=============================================
  Files          1838     1790       -48
  Lines         97262    95267     -1995
  Branches      14652    14450      -202
=============================================
- Hits          68108    14652    -53456
- Misses        24430    79563    +55133
+ Partials       4724     1052     -3672

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
?

unittests2
15.37% <87.06%> (+0.07%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...che/pinot/query/planner/stage/MailboxSendNode.java
100.00% <ø> (ø)

...t/query/rules/PinotJoinExchangeNodeInsertRule.java
72.72% <0.00%> (+16.84%)
:arrow_up:

...rg/apache/pinot/query/service/QueryDispatcher.java
73.77% <ø> (ø)

...query/runtime/operator/MailboxReceiveOperator.java
76.78% <84.61%> (+1.23%)
:arrow_up:

...ot/query/runtime/operator/MailboxSendOperator.java
85.71% <84.61%> (-5.43%)
:arrow_down:

...ache/pinot/query/planner/logical/StagePlanner.java
92.98% <89.33%> (-7.02%)
:arrow_down:

...e/pinot/query/planner/stage/AbstractStageNode.java
100.00% <100.00%> (ø)

...pache/pinot/query/planner/stage/AggregateNode.java
100.00% <100.00%> (ø)

.../pinot/query/planner/stage/MailboxReceiveNode.java
100.00% <100.00%> (+12.50%)
:arrow_up:

...ry/rules/PinotAggregateExchangeNodeInsertRule.java
91.07% <100.00%> (ø)

... and 1407 more

Help us with your feedback. Take ten seconds to tell us how you rate us.


Enable TCP Check with no banner.

Some TCP checks doesn't have a banner information such as statsd or other custom app.

@lenfree Could you make this a switch instead.  I am hesitant to remove existing functionality at this point.
Thanks

@mattyjones  how about adding a option called protocol, then a case statement based from this?  :)

@lenfree  Thanks!
A couple of quick thoughts.  In the future when changing multiple files it would be better to split them into separate PR's.
Also could you make a PR for this change in sensu-plugins-network-checks.
Please do not include the change to the rubocop.  If the check won't pass and the code needs to be that complex then add # rubocop:disable <cop> to the function.  At some point rubocop will be at 100% so I would prefer to not add new rules to it unless it tightens up the code :smile:
Thanks!

Sorry @mattyjones my bad. :( New rubocop user here, didn't know that I can do that. Thanks for letting me know. :)

@lenfree, no worries.  We all hard to learn at some point :sweat_smile:


Include file base path for configuration

A number of CLI configuration directives allows to include external files with data into the configuration.
Example: --es.tags-as-fields.config-file
I have achieved the desired result with absolute file paths in my configuration, such as
es.tags-as-fields.config-file: /the/place/where/jaeger/collector/lives/conf/uniqueTags.txt
But absolute paths are not really desirable for deployment and operation. I would like to specify a relative path, but so far I failed. I placed that file next to the Jaeger binary (which is in separate directory in my setup), next to the config yaml file (which also has a separate directory) and in their common base directory. But I can't find the correct way to reference the file then (just uniqueTags.txt does not work in either case). Does anybody have a hint on what the base directory is that Jaeger uses to reference this external file?

If you're running docker image of Jaeger then you can mount relative paths as absolute within the container, so I don't think it's an issue and is a preferable form over knowing where the binary is within the container.
If you're using a barebones binary you're in control its working directory.

If you're talking about bare metal binary, the working dir is inherited from the shell that started the binary, i.e. it is whatever you want it to be.
# config.json is read from the current dir, but Jaeger binary from elsewhere
$ SPAN_STORAGE_TYPE=memory ./cmd/query/query-darwin-amd64 --query.ui-config config.json

That clarifies it very well. Thank you!


Tar file generation includes too many path components

The docstring for make_studyvisit_archive says:
positional arguments:
  <input-dir>           Directory with the files to place into the visit
                        archive. The input base directory itself is not put
                        into the archive (i.e., its own name is irrelevant).
                        Instead, a top-level directory with the name '<study-
                        id>_<visit_id>' is used to place all archive content
                        in.

Yet, the path within tarfile is generated as follows:
https://github.com/psychoinformatics-de/inm-icf-utilities/blob/38b5783cdb7b0e1c50077eaa469819a61108090e/bin/make_studyvisit_archive#L97-L99
i.e. only the top level directory is stripped from tinfo.name. This is fine if the DICOMs are in /tmp or any other top level directory, but if the input dir is elsewhere (e.g. /home/me/test-data/something) then all but the first component will make it into the path within tarfile. What we need is to take a path relative to the input dir and prepend one level.

Looking at it again, the positional argument is called input-dir and the docstring says "The input base directory itself is not put into the archive (i.e., its own name is irrelevant)." It is a little ambiguous (or is it?) what the base directory is (e.g., for foo/bar/baz, is it foo or baz / the entire thing)?
But I still think the current behavior is at least suboptimal. This is how I first noticed:
❱ tree ~/Documents/dicom-samples/dicomdir
/home/mszczepanik/Documents/dicom-samples/dicomdir
└── 01
    └── MR000000.dcm

❱ python ~/Documents/inm-icf-utilities/bin/make_studyvisit_archive ~/Documents/dicom-samples/dicomdir -o /tmp/exports --id foo baz

❱ tar -tvf exports/foo/baz_dicom.tar
-rw-r--r-- root/root  10823982 2024-04-26 12:40 foo_baz/mszczepanik/Documents/dicom-samples/dicomdir/01/MR000000.dcm

Initially I wrote:

This is fine if the DICOMs are in /tmp or any other top level directory

Not even that; I think it is only "fine" when relative paths are used. Notice that dicomdir is included when using an absolute path /tmp/dicomdir/:
❱ tree /tmp/dicomdir
/tmp/dicomdir
└── 01
    └── MR000000.dcm

❱ python ~/Documents/inm-icf-utilities/bin/make_studyvisit_archive /tmp/dicomdir -o /tmp/exports --id foo bar

❱ tar -tvf /tmp/exports/foo/bar_dicom.tar
-rw-r--r-- root/root  10823982 2024-04-26 12:40 foo_bar/dicomdir/01/MR000000.dcm

compare to a relative path:
❱ cd /tmp

❱ python ~/Documents/inm-icf-utilities/bin/make_studyvisit_archive dicomdir -o /tmp/exports --id foo bar2

❱ tar -tvf exports/foo/bar2_dicom.tar
-rw-r--r-- root/root  10823982 2024-04-26 12:40 foo_bar2/01/MR000000.dcm

I think the top-level directory in the tarball can be set as it is now, but all paths inside should be relative to the <input-dir> (a bit like tar -C, just with one extra directory). This will, however, be a behavior change for all but one-level paths provided as <input-dir>, as shown above.
One potential downside I can think of is removing some flexibility (e.g. what if I have /tmp/datastore/scans/dicomdir[1-10]/... and want only dicomdir3 but I also want paths to include datastore/scans/) - but I think the increased consistency is more important.

I @mslw , thanks for catching this. I opened a PR that propose a solution and contains a regression test.


I'm very new to this, day one new actually.

Value cannot be null.Parameter name: text   at System.Windows.Documents.InlineCollection.AddText(String text, Boolean returnIndex)   at BotwTrainer.MainWindow.LogError(Exception ex, String more)   at BotwTrainer.MainWindow.ConnectClick(Object sender, RoutedEventArgs e)

What do I have to do?

Method not found: 'Void System.net.sockets.tcpClient.Dispose()'. is what I'm getting on startup.

im getting the same error .-. Value cannot be null, if u find the solution pls let me know.

You haven't installed. Net 4.6.2

I'll try it out, thank you sir.

Value cannot be null.
Parameter name: text   at System.Windows.Documents.InlineCollection.AddText(String text, Boolean returnIndex)
at BotwTrainer.MainWindow.LogError(Exception ex, String more)
at BotwTrainer.MainWindow.ConnectClick(Object sender, RoutedEventArgs e)
Still appears, the other popup is now gone.
Does this mean it's just me being in the US? Or is there another program I missed?

Got it working, the rupees and etc at least.
Thanks I appreciated it.


Skip flag behaviour of v0.68.0 breaks project structures

Describe the bug
v0.68.0 behaviour around merging skip breaks project structures.
We have fairly large projects with a significant number of terragrunt.hcl files, which all include a parent terragrunt.hcl that defines common providers, backend, and locals.
The parent terragrunt.hcl should not be applied from run-all, thus it includes a skip = true directive. This now gets merged into every other terragrunt.hcl file and prevents these from getting applied unless we add skip = false to every individual file.
Steps To Reproduce
Have a parent terragrunt.hcl with skip = true included like shown below will cause the file that includes it to be skipped as well unless skip = false is explicitly added.
include "parent" {
  path           = find_in_parent_folders()
  expose         = true
  merge_strategy = "deep"
}

Expected behavior
v0.67.x behaviour
Versions

Terragrunt version: v0.68.0
OpenTofu/Terraform version: v1.9.7

Hi @perplexa.
I had the same problem in my organization when using run-all for a large fleet of modules, the simpler way to fix this and avoid using the skip flag in your parent include, is to just name that file with a different name than terragrunt.hcl, for instance terragrunt-parent.hcl.
The folder structure would become the following:
infrastructure/
├── terragrunt-parent.hcl
├── module-1/
│   ├── terragrunt.hcl
├── module-2/
│   ├── terragrunt.hcl
├── module-3/
│   ├── terragrunt.hcl
└── ...

And in your module-x/terragrunt.hcl, you would have the following:
include "parent" {
  path           = find_in_parent_folders("terragrunt-parent.hcl")
  expose         = true
  merge_strategy = "deep"
}

With this strategy, you can execute terragrunt run-all from the infrastructure folder, without working of terragrunt assuming that parent file as a fully flagged module, avoiding any issue with terragrunt >= 0.68.0

Other solutions include running terragrunt run-all from the same working directory as the parent terragrunt.hcl file, or including a terragrunt-exclude-dir to avoid picking it up.
Given that this is expected behavior, not a bug, I'm closing this issue out. Please feel free to continue discussions here if more conversation about workarounds is warranted.

for reference, here's the "issue" where the change was discussed, along with the described use case. fwiw, i also find the change to be quite confusing, and now have to rethink how i was planning to use the skip argument.


Create instructions on how to create expose ports necessary to create an SDK connection to both the Consenus Nodes plus the Mirror Node

### Tasks
- [ ] Create a `docs/content/User/SDK.md`
- [ ] Add a 'SDK Usage' + ref: "/User/SDK.md" element in `docs/data/menu/main.yml`
- [ ] Reference instructions on [how to create a client node](https://docs.hedera.com/hedera/tutorials/consensus/submit-your-first-message) and fill out the consensus node network manually, similar to how we do in [solo using Client.fromConfig()](https://github.com/hashgraph/solo/blob/537398caf6cdcbce762ad6b6e5ae28a47dff860b/src/core/account_manager.ts#L240-L240)
- [ ] it looks like the mirror node can also be configured inside there: https://github.com/hashgraph/hedera-sdk-js/blob/ac4914112cb80deadd12ac350e19e27b06d43bf1/src/client/Client.js#L54-L54, or alternatively use nodeClient.setMirrorNetwork()
- [ ] we should add a test case to verify that it works correctly
- [ ] we need to ensure that we are providing the steps to expose the port forwards for both the consenus nodes as well as the mirror node network

setMirrorNetwork shown as not implemented yet
https://github.com/hashgraph/hedera-sdk-js/blob/e44cdf846c99107976d07bc1d7b4476a060aacff/src/client/Client.js#L240
https://github.com/hashgraph/hedera-sdk-js/blob/e44cdf846c99107976d07bc1d7b4476a060aacff/src/client/Client.js#L735

@JeffreyDallas and @jeromy-cannon I was thinking of the outline below where someone would be able to setup a network, accounts and use a code example to test it. We could use it for a technical workshop.
Table of contents:

Setup a network using solo
Create account using solo
Top-up account (e.g. with 10000 HBAR) using solo
Retrieve account keys (DER encoded private key)
(use kubectl command to retrieve from secrets unless solo allows to retrieve it)
Create your .env File with MY_ACCOUNT_ID and MY_PRIVATE_KEY (DER encoded private key)
Expose consensus node port (50211) to different ports using kubectl

  # for example, please test and update as required
   kubectl port-forward svc/haproxy-node0-svc -n solo 50211:30311 &
   kubectl port-forward svc/haproxy-node1-svc -n solo 50211:30411 &
   kubectl port-forward svc/haproxy-node2-svc -n solo 50211:30511 &

Create a SDK client and query ledger
(We need to provide a working code that uses SDK and the solo provisioned network. Existing doc provides example of using testnet, but people should be using a local network for testing)

prepare network object which is a map of: host:port: accountId

{
  "<IP_ADDRESS>:30311": "0.0.3"
  "<IP_ADDRESS>:30411": "0.0.4"
  "<IP_ADDRESS>:30511": "0.0.5"
}

Use: Client.fromConfig({ network: network, scheduleNetworkUpdate: false })
Query the account balance

@leninmehedy , yes, this is similar to what I was thinking as well.  We have an example folder already created as well.

:tada: This issue has been resolved in version 0.32.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: