UEB: Variables flanked by an open bracket are missing grade 1 indicator

[Updated to put the MathML in block quotes]
Consider the following:
<math>
    <mo>(</mo>
    <mi>n</mi>
    <mo>=</mo>
    <mn>7</mn>
</math>

Computed Braille string:
⠐⠣⠝⠀⠐⠶⠀⠼⠛
(Sorry I forgot the right paren) Anyway, the variable n should have a grade 1 indicator. This also happens with left bracket and left brace.

This one is a little tricky to fix. I need to find out which letters need what checks to see if a G1 indicator is needed. For this example, "10.1 Alphabetic wordsigns" includes "not" and other potential problem contractions when the letter is "standing alone".
Does that or other contraction rules apply for non letters standing alone? I haven't checked to see if all the contractions are the dots used for letters or whether other signs might be involved.

Never mind about it being tricky. I see I do have some code for this ('a', 'i', and 'o' don't have this problem), so the code is buggy. I didn't miss this case.
@rob-aph: Could you come up with some more examples that represent different situations of a letter standing alone (i.e, don't just change the 'n' to a 'p' in the example you gave)? I'd like to add them to my tests.

Sigh. Basically a typo. I added the above test but would definitely like more test cases. There aren't many in the ICEB technical guidelines.


@postUpdate events trigger at an unexpected moment when using EmbedMany

My project uses strategy=set for nearly all of our EmbedMany elements and we also use @postUpdate hooks all over the place.
Given a document (such as book) with many embedded documents (such as chapters), if you make changes to both the "surface" of the document (such as the book title) and then you also modify the chapters at the same time and then call flush(), the sequence of queries and postUpdate callbacks seems wrong.
When you flush() a change as I have described above, the sequence of events that takes place looks like this:

MongoDB update query to update the surface of the db record (the book title).
postUpdate hooks fired for both the surface and also for the embedded documents
MongoDB update query to update the embedded documents

Imagine an app where you update the title of a book and modify a chapter in one flush() such that after the chapter is edited, you email alert the publisher via a @postUpdate hook on the Chapter document.
Because of the sequence of the events, the email is sent before the chapter is actually saved to the database server. This means that if there's a fatal MongoDB error on step 3, the email was still sent and the user is disappointed because the application sent the email and the data was never saved.
The whole idea of a "postUpdate" hook is that the the event would fire after the database record was saved....not before it was saved.

#1155 aims to fix this

#1155 was merged manually in https://github.com/doctrine/mongodb-odm/commit/5b0ff1c5d4a19594b778352e9bb0fc6a54ed2152


Use checks from .pycompat in more places

Found a few more places where modules are being imported just for version checking.

Hello @Illviljan! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file xarray/core/computation.py:

Line 9:1: F401 'distutils.version.LooseVersion' imported but unused

In the file xarray/core/duck_array_ops.py:

Line 10:1: F401 'distutils.version.LooseVersion' imported but unused
Line 181:13: F821 undefined name 'sparse_version'

Great, thanks @Illviljan


add a MANIFEST.in

for whatever reason, the setuptools heuristic for automatically determining which files ought to be distributed broke down recently, so that all sub-directories of odxtools/ were no longer part of the pypi package. Explicitly instructing setuptools what to include fixes that...
Andreas Lauser<EMAIL_ADDRESS>on behalf of MBition GmbH.
Provider Information

this hopefully closes #179 ...

since this is IMO pretty urgent and cannot break the pypi package even more than it already is, I take the liberty of merging this without prior review...


Create the function getInstanceErrors

Create a function called getInstanceErrors, which will do the same as "validateInstance", but instead of throwing errors, the function will only return them.

done


support for brotli

Hey there, zlib provides support for Brotli in node v10+. This adds support for brotli if available.

@nathanielwood Thank you for your PR


Update vagrant lindat-dspace to latest version

[ ] oai pmh top menu has wrong links
[ ] header/footer

updated with the latest config changes in https://github.com/ufal/lindat-repository-vagrant/commit/46632eabd6b50489293dccbd65eb187ce17a5c9d
what appears in the top menu depends on dspace.oai.url (at least from now on)


Fixed formatting for title "WinRM setup"

Changed "###WinRM setup" to "### WinRM setup" for correct formatting.

@MrEmanuel  - Thanks for your contribution we have addressed this.


Migrate to DSL2

https://www.nextflow.io/docs/latest/dsl2.html#dsl2-migration-notes

Also, separate platform profiles (local, cluster) from process profiles (conda, singularity, docker)

cdd3c236f7de22b2be0753da5e9df6a1c650c500


Line breaking around Chinese and Japanese characters are still incorrect

When mixing English and Chinese(or Japanese) with whitespace, you can insert line breaks between Chinese(or Japanese) characters, instead of break in whitespace. The current incorrect line breaking can be seen when shrinking the window containing this line
天地玄黃宇宙洪荒 English 春夏秋冬風花雪月冠婚葬祭起承轉合喜怒哀樂士農工商生老病死風林火山男女老幼人含道善典謨訓誥
It should be typesetted as:

Instead of:

I've checked out source code, by adding all Chinese and Japanese characters into a "hidden" setting item "editor.wordWrapBreakAfterCharacters", this issue can be, well, mostly fixed (some Kinsoku Shori is still incorrect, but at least long paragraphs are readable).

Reference for a possible improvement in this area:
https://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages

@alexandrudima Well to be simple you can separate all Unicode characters into four classes:

Ideographic: Han, Common Kanas (except small Kanas like ぁ), Hangul.
Alphabetic: All letters and numbers.
Leading Character: Opening brackets, like 「 or (
Trailing Character: Commas, Periods or Closing brackets, like 」, ， or )

The breakability is shown in the table:

First Character →
Ideographic
Alphabetic
Leading Character
Trailing Character

Followed by Ideographic
yes
yes
no
yes

Followed by Alphabetic
yes
no
no
yes

Followed by Leading Character
yes
yes
no
yes

Followed by Trailing Character
no
no
no
no

I think I can investigate the characterHardWrappingLineMapper.ts to provide a correct CJK-aware wrapper with Kinsoku Shori.

Maybe around line 188:
if (charCodeClass === BREAK_AFTER_CLASS) {
	// This is a character that indicates that a break should happen after it
	niceBreakOffset = i + 1;
	niceBreakVisibleColumn = 0;
}

We can add another code class BREAK_IDEOGRAPHIC and do similar things like this:
if (charCodeClass === BREAK_IDEOGRAPHIC && i < len - 1) {
	var nextCode = lineText.charCodeAt(i + 1);
	var nextClass = nextCode < characterClasses.length ? characterClasses[nextCode] : 0;
	if(nextClass !== BREAK_AFTER_CLASS){
		niceBreakOffset = i + 1;
		niceBreakVisibleColumn = 0;
	}
}

To initialize BREAK_IDEOGRAPHIC, we can simply write this
for(i = 0x4E00; i <= 0x9FFF; i++) result[i] = BREAK_IDEOGRAPHIC;
......

#4825 should fix this.

I think this issue can be closed, since #4825 has been merged.


Voucher should have specific value

I'm thinking vouchers should have a specific value, just like gift cards. :D

@oasin that can be accomplished by using the metadata field ->withMetadata(['value' => 20])

This should be enough to close this issue @FrittenKeeZ thanks.


⚠ Samsung has degraded performance

In 7a5527c, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 1794 ms

Resolved: Samsung performance has improved in 1b394f0.


Is this possible to download the data just providing the name.

Like provide only the target Netflix and it will fetch all the dataset which belong to the Netflix.
Currently, I am doing like this
chaos -d netflix.com
chaos -d nflxext.com
chaos -d nflximg.net
chaos -d nflxso.net
chaos -d nflxvideo.net

Hi @yashanand,
The project name is something for better UX while using the website, but we do not cluster or maintain list based on project name at the backend, so it's not possible for now, another alternative for this is https://github.com/dr-0x0x/chaospy, which let you download data based on filters, instead of program name, give a try.
Closing this for now.


Cutting the tree at it's base will fell the entire tree

Version: 1.18.2 -0.11.0-Beta7
Describe the bug
When cutting the tree at the base, it doesn't take down the entire tree.
To Reproduce
Cut the base of the tree with an axe
Screenshots

What version of Forge are you running? 40.2.0

That isn't a dynamic tree...
Note that if you add this mod to your worlds vanilla trees are not converted in chunks that were already generated. If this was generated after installing DT it may be that a worldgen mod you have installed is incompatible.


Markdown in Skype is not rendering

Hi,
I am sending markdown messages(containing tabular data), which are rendering fine in emulator.
How ever skype app is not doing the rendering, is there anything I should do for this channel separately?

Web client is doing very better job for the same thing. Added reference here

Skype and any text based channel which doesn't have fixed width fonts do not support this.

Is there any other option to achieve this kind of formatting in skype & messenger


Voting from the chat window sometimes gives votes or adds the wrong song.

Happened to me twice today.  In the most recent case I clicked on a song in chat and it voted for a different song, then I deleted the song that incorrectly got the vote, tried to vote for the initial song again, and it added the wrong song back to the playlist.
I voted for the intended song from the track list window and it worked fine.

I've never seen this, and looking at the code it's very surprising this could have happened.  Is there any chance the chat window scrolled up as you were clicking?   I presume not since you're a "veteran" soundbounce user :)  If you can name the tracks this happened with I'll do some testing here.

The first time it happened I chalked it up to a possible mis-click.  But the 2nd occurrence was repeatable.  The song I was trying to vote for was Glory by Wye Oak.  I don't recall the name of the song that was getting the votes instead.  Will keep an eye on it.  I wonder if it could have something to do with deleting tracks.  Could that mess with indexing of some sort?

This just happened to me! I know what's causing the re-adds (it's allowing voting from chat window on songs that have played).  Will fix!

Ah, good news!

Happened to me now too. I voted (in chat) for a track that was removed from the room, and another track got the vote.


Thanks for creating the ticket. It would help a lot if you could also attach the code the crash happens on.

I've been trying to reproduce this error, but after trying a number of different combinations I still don't know what generates the guards we see in the error message. These guards check for an argument being an atom, but neither nil, nor true, nor false:
[
  [
    {:call, [generated: true, location: 21],
     {:remote, [generated: true, location: 21],
      {:atom, [generated: true, location: 21], :erlang},
      {:atom, [generated: true, location: 21], :is_atom}},
     [{:var, [generated: true, location: 21], :_@1}]},
    {:op, [generated: true, location: 21], :"=/=",
     {:var, [generated: true, location: 21], :_@1},
     {:atom, [generated: true, location: 21], nil}},
    {:op, [generated: true, location: 21], :"=/=",
     {:var, [generated: true, location: 21], :_@1},
     {:atom, [generated: true, location: 21], true}},
    {:op, [generated: true, location: 21], :"=/=",
     {:var, [generated: true, location: 21], :_@1},
     {:atom, [generated: true, location: 21], false}}
  ]
]

In general, when defining guards in Elixir we have to use the and / or conjunctives. These are equivalent to andalso / orelse in Erlang, and these in turn always lead to the following form of guards in the abstract syntax tree:
iex(1)> :merl.quote('fun (X) when X > 1 andalso X < 5 -> ok end')
{:fun, 1,
 {:clauses,
  [
    {:clause, 1, [{:var, 1, :X}],
     [
       [
         {:op, 1, :andalso, {:op, 1, :>, {:var, 1, :X}, {:integer, 1, 1}},
          {:op, 1, :<, {:var, 1, :X}, {:integer, 1, 5}}}
       ]
     ], [{:atom, 1, :ok}]}
  ]}}

We can see there's a single op expression within a nested list, not a list of consecutive guard expressions as in the original error message:
       [
         {:op, 1, :andalso, {:op, 1, :>, {:var, 1, :X}, {:integer, 1, 1}},
          {:op, 1, :<, {:var, 1, :X}, {:integer, 1, 5}}}
       ]

In Erlang it's possible to generate a list of guards by using the , or ; conjunctives, too:
iex(2)> :merl.quote('fun (X) when X > 1, X < 5 -> ok end')
{:fun, 1,
 {:clauses,
  [
    {:clause, 1, [{:var, 1, :X}],
     [
       [
         {:op, 1, :>, {:var, 1, :X}, {:integer, 1, 1}},
         {:op, 1, :<, {:var, 1, :X}, {:integer, 1, 5}}
       ]
     ], [{:atom, 1, :ok}]}
  ]}}

This, in fact, generates a list of guards:
       [
         {:op, 1, :>, {:var, 1, :X}, {:integer, 1, 1}},
         {:op, 1, :<, {:var, 1, :X}, {:integer, 1, 5}}
       ]

However, as far as I know, Elixir doesn't have an equivalent of , / ; conjunctives for use in guard expressions. Moreover, [generated: true, location: 21] tells us that these guards were generated by the Elixir compiler, likely by some special form, on line 21 of some unknown file.
Without a hint about what code leads to this error it's going to be quite hard to debug further :|


Implement Homepage

What kind of PR is this?:

/kind feature
What this PR does / why we need it:
Which issue(s) does this PR fixes?:

Fixes #254
Additional comments?:
Missing data:

[ ] Banner

[ ] Price update
[ ] Price increase/decrease percentage
[ ] Transaction activity

[ ] Stats

[ ] 24h volume
[ ] tokens
[ ] Burn rate

[ ] Search api

Developer Checklist:

[ ] Read your code changes at least once
[ ] Tested on multiple web browsers
[ ] Tested responsiveness (e.g, iPhone, iPad, Desktop)
[ ] No console errors
[ ] Unit tests*
[ ] Added e2e tests*

Screenshot:

Codecov Report

Merging #302 (025360e) into main (43ab5ad) will decrease coverage by 6.42%.
The diff coverage is 0.00%.

:exclamation: Current head 025360e differs from pull request most recent head 6c1bd0e. Consider uploading reports for the commit 6c1bd0e to get more accurate results

@@            Coverage Diff             @@
##             main     #302      +/-   ##
==========================================
- Coverage   81.34%   74.92%   -6.43%
==========================================
  Files          53       53
  Lines         595      634      +39
  Branches      130      133       +3
==========================================
- Hits          484      475       -9
- Misses        106      152      +46
- Partials        5        7       +2

Impacted Files
Coverage Δ

src/pages/index.tsx
0.00% <0.00%> (ø)

src/components/prices/PriceTickerDetail.tsx
75.00% <0.00%> (-12.50%)
:arrow_down:

src/components/prices/PriceOracleTable.tsx
86.66% <0.00%> (-6.67%)
:arrow_down:

src/pages/masternodes/index.tsx
58.97% <0.00%> (-5.13%)
:arrow_down:

src/layouts/components/Header.tsx
72.09% <0.00%> (-0.64%)
:arrow_down:

src/pages/blocks/[blockId]/index.tsx
100.00% <0.00%> (ø)

src/layouts/contexts/WhaleContext.tsx
66.66% <0.00%> (ø)

src/pages/blocks/index.tsx
100.00% <0.00%> (+9.09%)
:arrow_up:

Continue to review full report at Codecov.

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


Supporting graphics and images

Do you have a concrete idea how this feature could look like? Is this feature only in professional mode or should it be enabled for both modes? Should there be an option to each field to "upload & display" the image or graph?
If you don't have a concrete idea in mind yet, should I make some sketches and upload them to see which one is the best?
Another point is the implementation. As far as I understand, the function to display images or graphics is to upload them, display them and if the user pushes the changes they should be uploaded togehter with the adr.md too. Otherwise the ![](imagePath.png) in the .md file could not be found and not be displayed on github or another platform.
This means that we should create a new folder so as not to cause confusion? Or the images and graphics will be pushed into the same folder of adrs?

Use sub dir "img"
Enable upload similar to GitHub web ui (drag'n'drop of image - or Ctrl+V
First shot: Enable image uploading only in Markdown mode

So enabling the support of images only on raw markdown? Like this?

Look reasonable to me!

I will try to implement this feature today/tomorrow and give a status on Monday. CTRL + V has the same principle as drag&drop without sacrificing usability. I initially tried to implement it along with drag&drop, but it wasn't as easy as I thought. Again because of codemirror and how it was implemented. I will try again and see if I can get it to work or if there is a way to always set the view on focus.

I am sorry but I did not manage to implement this feature/issue. I tried to implement it this weekend and yesterday, but this issue takes more time than I thought. I have not been able to change the existing methods we currently have to push an adr to GitHub to a more general method that can push other files like jpg as well. The second problem would be the back implementation when we need to retrieve files from GitHub and retrieve the images stored in the folder. For personal reasons, I won't have much time in the next two weeks. I think 1 week with 2/3h per day need to implement this problem and more to test it.


MERC-888 update orders and cart product images

orders

orders detail

cart

cart preview
@mcampa @mickr @bc-ejoe @deepa2083

The default product thumbnail size is set to 10 x 10 now instead of optimized to theme. Please revert that

scss-lint is whining because SelectorDepth & NestingDepth max depth are too strict.
We should increase themax_depth to 3. What do you think @sherrybc @hegrec?

I think it is generally better for the compiler when you have specific class names that you can bring up a level rather than having a deep tree.

👍


External JRE dependency in https://github.com/fod-dev/fod-uploader-java/releases/download/v3.0.7/FoDUpload.win.exe

Here's what I see in my TeamCity logs this AM when a build profile attempts to run the Windows binary for the FoD uploader fetched from the indicated URL (created in response to https://github.com/fod-dev/fod-uploader-java/issues/22):
[09:39:58][Step 6/7] Uploading D:\TeamCity\buildAgent\work\2b9299460950c628\payload.zip
[09:39:58][Step 6/7] Command line: D:\TeamCity\buildAgent\work\2b9299460950c628\FodUpload.win.exe -z "D:\TeamCity\buildAgent\work\2b9299460950c628\payload.zip" -ac -ep "Subscription" -a "Manual" -bsi "eyJ0ZW5hbnRJZCI6MTMxNywidGVuYW50Q29kZSI6IlpvY2RvYyIsInJlbGVhc2VJZCI6MTI3NzE2LCJwYXlsb2FkVHlwZSI6IkFOQUxZU0lTX1BBWUxPQUQiLCJhc3Nlc3NtZW50VHlwZUlkIjoyNzMsInRlY2hub2xvZ3lUeXBlIjoiLk5FVCIsInRlY2hub2xvZ3lUeXBlSWQiOjEsInRlY2hub2xvZ3lWZXJzaW9uIjoiNC41IiwidGVjaG5vbG9neVZlcnNpb25JZCI6MTEsImF1ZGl0UHJlZmVyZW5jZSI6Ik1hbnVhbCIsImF1ZGl0UHJlZmVyZW5jZUlkIjoxLCJpbmNsdWRlVGhpcmRQYXJ0eSI6ZmFsc2UsImluY2x1ZGVPcGVuU291cmNlQW5hbHlzaXMiOnRydWUsInNjYW5QcmVmZXJlbmNlIjoiMCIsInNjYW5QcmVmZXJlbmNlSWQiOjAsInBvcnRhbFVyaSI6Imh0dHBzOi8vYW1zLmZvcnRpZnkuY29tIiwiYXBpVXJpIjoiaHR0cHM6Ly9hcGkuYW1zLmZvcnRpZnkuY29tIn0="
[09:40:02][Step 6/7] This application requires a Java Runtime Environment 1.8.0_144

Note that the FoD uploader Windows binary fetched from https://github.com/fod-dev/fod-uploader-java/releases/tag/v3.0.1 does not have this issue (but does not support BSI Tokens and is not in line with the online documentation here: https://ams.fortify.com/Docs/en/HPE_Fortify_on_Demand_User_Guide.htm#Additional_Services/Tools/FoD_Uploader/BSI_Running.htm%3FTocPath%3DAdditional%2520Services|Tools|FoDUploader|_____2).

Yeah, that bundle was built by hand instead of the original system and tested because I was trying to turn it around for you real quick.  I'll sit down and take a look at what the config difference was when I get a chance so you'll have a better one.

Thank you, @mtgibbs

Alright, I've yet to test this one, but I'm going to leave it here for you to play with while I stand up a VM without a JRE to test it.
FoDUpload.win.exe.zip

@peter-wolfenden-zocdoc
That exe work for you?


Trying a fix for test failure issue

Based on this
https://stackoverflow.com/questions/47759793/travis-ci-c-build-succeed-but-travis-exited-with-1-and-doesnt-passes-the-test

This doesn't seem to be working!


Completing a bid on an artwork does not take you back to a native artwork view

On staging:
I enter an auction, find an artwork (native view), press the bid button, get confirmation screen (microgravity view), press confirm bid, land on artwork view (microgravity)<-- this last view should be back to native, not microgravity.
This is a bit of a timely fix for Sotheby's if anyone could set aside some time today to take a look at this please let me know!

I’ll take a look in about an hour.

thanks @alloy I suspect it may be a microgravity bug, if so let me know.

Perhaps something like:
- (WKNavigationActionPolicy)shouldLoadNavigationAction:(WKNavigationAction *)navigationAction;
{
    NSURL *URL = navigationAction.request.URL;
    NSLog(@"Martsy URL %@ - %@", URL, @(navigationAction.navigationType));

    // If we really have to hijack regardless do it first.
    // This is to take into account AJAX requests which are not
    // strictly classed as a WKNavigationTypeLinkActivated
    // as the user may not have _directly_ loaded it

    BOOL urlIsLoginOrSignUp = [URL.path isEqual:@"/log_in"] || [URL.path isEqual:@"/sign_up"];
    if ([ARRouter isInternalURL:URL]) {
        if (urlIsLoginOrSignUp && [User isTrialUser]) {
            [ARTrialController presentTrialWithContext:ARTrialContextNotTrial success:^(BOOL newUser) {
                [self userDidSignUp];
            }];
        } else {
            UIViewController *viewController = [ARSwitchBoard.sharedInstance loadURL:URL fair:self.fair];
            if (viewController && ![self.navigationController.viewControllers containsObject:viewController]) {
                [self.navigationController pushViewController:viewController animated:YES];
            }
        }

        return WKNavigationActionPolicyCancel;
    }

    if (navigationAction.navigationType == WKNavigationTypeLinkActivated) {
        if ([self.shareValidator isSocialSharingURL:URL]) {
            ARWindow *window = ARAppDelegate.sharedInstance.window;
            CGPoint lastTouchPointInView = [window convertPoint:window.lastTouchPoint toView:self.view];
            CGRect position = (CGRect){.origin = lastTouchPointInView, .size = CGSizeZero};
            [self.shareValidator shareURL:URL inView:self.view frame:position];

            return WKNavigationActionPolicyCancel;

        }
    return WKNavigationActionPolicyAllow;
}

@katarinabatina This is not a microgravity issue per se. We are not catching the link because this is a page change initiated by the page’s JavaScript instead of the user tapping a link.
Fixing that might be simple enough –I see that by now @orta has pasted the code :smile:–, but we would have to test that it doesn’t cause breakage on any other pages that have forms of any kind.

@katarinabatina In addition, I’d like to point out that after fixing it, this would mean the view stack would get an additional artwork view on top of the existing stack. Thus when the user navigates back from that artwork, they would get to see the ‘confirm bid’ page again, and when navigating further back the artwork once again.

@alloy the biggest issue is solved for which is that the martsy view shows the correct, updated bid amount, however we sill have the issue where two artwork views are stacked on top of one another see here http://cl.ly/3S3k05382u2l
and the native artwork view doesn't represent the new bid amount

Ok, so I think this means we have to do the following:

[ ] Pop the second artwork view from the stack after confirming a bid
[ ] Reload all views (in the stack only?) related to the auction/artwork.

[ ] So auction related web views should probably get their own InternalWebBrowserVC subclass, which listens for notifications.


What pattern to use to protect dozens routes in express app, but leave some unprotected?

I have dozens of routes in the express based app with the added complexity of multiple versions. The routes are structured in subfolders:

My naive approach at this point has been to embed the oauth.authorise() call in the routes as follows (taking route1.js as example)
var oauth = require('../../../oauth2/oauth2server');

function find(req, res){
...
}

var router = express.Router();

router.route('/')
  .get(oauth.authorise(),find);

The deficiency of this approach is that every route has to be configured with the authorise() call, and there are too many of them.
My desire is to embed the call, such as oauth.authorise() in one place (and make it configurable, for say dev and prod environments) into the the router's methods across entire app, but leave some of the routes without authorisation.
How would I do that?
Thanks.

Is there a pattern to the authorize vs unauthorize routes?

@mjsalinger No, and I am expecting the future developers of this app to want to enable different authorisation levels to their routes at will.

One way to do it would be to create an array of the routes that you want to secure (or one that you want to leave unsecured, whichever seems more useful), and then create a middleware that executes before your routes.
var routesToSecure = [
  '/api/routeA',
  '/api/routeB',
];

app.use(function(req, res, next) {
  if (req.path in routesToSecure) {
    return oauth.authorize()(req, res, next);
  else {
    next()
  {
});

@mjsalinger Michael, thanks a lot. That works!


Support basic authentication

Only authenticated users should be able to access any of the backend.
Implement the issuance of authentication tokens and usage of those tokens across the entire API.

Can close this for now. Basic auth is working, but will probably need refinement in future.


Support for dotnet framework < 4.5.2

Hi,
Currently this library supports dotnet framework 4.5.2
Does it support previous versions like 4.5
Otherwise I will have to change all other projects of my solution to 4.5.2
Please let me know.
Thanks

.NET < 4.5.2 is not supported anymore by Microsoft - so yeah maybe it is time for an upgrade ;)


BAU Remove Snyk local dependency

Snyk is run in CI against PRs and master builds, there should be no
need to run it locally with the CLI
Report for selfservice can be found
https://app.snyk.io/org/govuk-pay/project/987ad850-d52f-42da-a7f3-b1295702f90e/

I've often seen different results running via the command line locally vs the scan performed by the webapp.
I think the local execution scans the contents of node_modules wheras the web based one only looks at some combination of package.json and package_lock.json. I haven't verified this.
Also npm audit may do a better job than snyk these days.
snyk-protect also applies patches which may address security vulnerabilities where fixes haven't been released yet. I'm not sure how often this happens in real life https://snyk.io/docs/cli-protect/

@heathd it looks like snyk-protect only applies patches specified in .snyk, all of our rules here expired last year.
It does look like this functionality could be used though, I'll look at what it takes to add that but remove from local testing.
Developers would still be able to run snyk locally fine, they would just install it globally rather than at this package level.

Closing this - as Snyk is being removed as part of this PR:
https://github.com/alphagov/pay-scripts/pull/995


Process selection

It would be very useful to be able to process the current selection in a note,
Great for reformulation, summary, overview patterns

I like this suggestion, the feature would be the highlighted text, and when complete would replace the highlighted text?

Added your feature to 1.2.7. You can update now and see the new right click menu item when text is selected.


Wrong like operator pattern

On the script to generate a file with the OneDrive for Bussiness sites, the expression for the like operator on the filter for the Get-SPOSite Cmdlet hasn't wildcards, so, it never will found any Onedrive for Bussines site!
This: Get-SPOSite -IncludePersonalSite $true -Limit All -Filter "Url -like '-my.sharepoint.com/personal/'"
Should be this: Get-SPOSite -IncludePersonalSite $true -Limit All -Filter "Url -like '*-my.sharepoint.com/personal/*'"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4f92a9b5-b3b2-aceb-9813-a3e48bb469ca
Version Independent ID: 55aa37c6-998b-a8d8-8986-88c4ed868aea
Content: Get a list of all user OneDrive URLs in your organization - OneDrive
Content Source: OneDrive/list-onedrive-urls.md
Service: one-drive
GitHub Login: @kaarins
Microsoft Alias: kaarins

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

Sorry, I don't need open a service ticket caused by a typo on your document! :-P
Simply, try the Cmdle Get-SPOSite with the like filter as the one on the document and nothing will be retrieved; try it with the modification I proposed and you'll get the OneDrive Sites


Error while creating sitemap

Hi,
I've installed version 1.5.7 for Episerver 9 and when I try to create a sitemap for standard and products I get the following error:
Activation error occurred while trying to get instance of type ICommerceAndStandardSitemapXmlGenerator, key "" [No default Instance is registered and cannot be automatically determined for type 'Geta.SEO.Sitemaps.XML.ICommerceAndStandardSitemapXmlGenerator' There is no configuration specified for Geta.SEO.Sitemaps.XML.ICommerceAndStandardSitemapXmlGenerator 1.) Container.GetInstance(Geta.SEO.Sitemaps.XML.ICommerceAndStandardSitemapXmlGenerator) ]
No error when creating a standard sitemap though.
Hope anyone can help!
Thanks,
Mark

It looks like you`re missing the Commerce sitemaps package.

Hi Frederkik,
Seems logical :) will try this. Thanks for the quick reply.
/Mark


n8n: init 0.95.1

Motivation for this change
New package for n8n.io app
Service heavily inspired from services/misc/bazaar.nix
Never wrote a test, and don't know which one would be great for such a service
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Added a test again based on bazaar service test, just checking that the port is available and working

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/368

Diff LGTM, only there should be 2 commits.

1 for the package and 1 for the module and test ?

Yes.

cc me when you force push.

cc @doronbehar

@aanderse Sorry, I force pushed this PR and I am not sure which indent problem you have :/

@aanderse Sorry, I force pushed this PR and I am not sure which indent problem you have :/

You are using a mixture of tabs and spaces. If you view your changes in the github ui don't you see very inconsistent spacing like this?

Oh my bad ... It's ugly, didn't notice the tabs here

@aanderse Thank you for the the review, I tried to fix the things you mention
Atm, no idea to fix the test and the hardening parts

I guess the hardening blocks the tests, I can't write the config to /var/lib/n8n anymore

Test passes, thank you for all your reviews, the module is way simpler and safer now.

@aanderse I did some cleanup, I think this time it is ok

@freezeboy I'm a bit reluctant into adding yet another package with complete node dependencies Nix expressions. There is a call for node packages maintainers and in general most people (I think) would like to get less of such expressions, mostly because they take a lot of disk space (even after removed of course, due to version control), see e.g: https://github.com/NixOS/nixpkgs/pull/96961#pullrequestreview-492859827 .
There was one PR in the past that aggregated a few init prs with node packages that people wanted to add them to https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/node-packages.json - https://github.com/NixOS/nixpkgs/pull/100606 . Hence, if you are motivated, it'd be much appreciated if you could do something similar. I hope I'd be able to help you with such a PR quick enough so that it won't be blocked due to merge conflicts.

@doronbehar  In fact I tried yesterday to put it it node-packages.json file, but I encountered two problems:
btc-rpc-explorer was having a problem with a timeout with github.com, and the generate script was taking ages ... so I gave up

Sigh... Maybe in the future this will work better, with flakes or some mach-nix kind of implementation for Node packages. In the meantime it's not worth waiting IMO. The test passes and the diff LGTM.

Result of nixpkgs-review pr 98234 1

1 package blacklisted:

tests.nixos-functions.nixos-test

1 package built:

n8n


[sol2] Update, fix, don't build anything

Update to 3.3.1.
No longer fetch and build lua internally. (Only used for tests and examples.)
Fix exported variables (by dropping a broken patch).
For #35502:
No longer depend on port lua for Windows.
This port always installed only headers, and it didn't export its dependency on a particular lua implementation.
Now the user is empowered and required to install a lua port.

Thanks for the update and improvements!


Delete from Grid Forbidden but from Show its work

Laravel Version: 5.8
PHP Version:
Laravel-admin: 1.7.3

Description:
So, I make a new user with the role "staff" and permission can access like this

when deleting the row, I got this:
HTTP403: FORBIDDEN - The server understood the request, but is refusing to fulfill it.
(XHR)POST - http://localhost:8000/admin/_handle_action_

but when I delete from "Show" or "Massive Delete" by checking the query it works as well
Steps To Reproduce:
Add user > role "staff" have permission "data" that can access slug "data", http method "all", link "/data/files"

Fixed, I give the role with "All Permission"


unable to download csv

I am running sqlpad on my local mac and configured a connection to a local PostgreSQL database.
A select * query on a short table shows up all the 19 rows but when I click download, it takes me to a http://localhost:3000/download-results/00aa1e00-334c-11e8-aae5-27937b010554.csv page with "Not Found" message.
There are other issues too that I experienced but in terms of stability like once something goes wrong, sqlpad interface doesn't seem to recover even after refresh but those details I will share later.

Hi @rgupta2 - May I ask how you are running sqlpad? Are you running it from a clone of this repo with npm start?
I've noticed the same issue when running it that way - requests from the browser are being forwarded through a proxy and the file download is not making it through.
If you are running it via npm start, try first running npm run build. Then once the ui is built, run npm start again, but instead go to http://localhost:3010, which will server the compiled front-end from the sqlpad server directly.
If you're running sqlpad installed via docker or npm and still seeing this please let me know

I'm going to go ahead and close this issue - let me know if you're still having problems getting things set up and we can reopen


Add send delay feature so texts can be cancelled within a few seconds of sending it.

Has this been implemented into the stable build?

Hah yup, good looks


restic hangs when b2.connections is set to 1

Setting b2.connections >= 2 overloads my internet connection. Setting it = 1 causes restic to hang.
Output of restic version
restic compiled manually
compiled with go1.8.3 on darwin/amd64

(was built from restic/restic master on Aug 10).

I have set RESTIC_PASSWORD,  B2_ACCOUNT_ID and  B2_ACCOUNT_KEY appropriately.
Then I use the following bash alias:
alias restic-b2='caffeinate restic -r b2:MY-BUCKET:restic backup ~ /Volumes/data1 --hostname george-iMac --exclude-file ~/restic-excludes --exclude-file ~/s3-excludes -o b2.connections=1'
NB: caffeinate is a standard macOS program that prevents the computer from going to sleep while running another shell command.
What backend/server/service did you use?
B2
Expected behavior
restic should not hang when using only a single b2.connection.
Actual behavior
Restic seems to hang, does not even get to the "scan" phase (as far as I can tell) and does not produce a single line of output after several hours.
Steps to reproduce the behavior
Set vars as above to real credential values, then run restic-b2 as a non-root user in bash.
Do you have any idea what may have caused this?
Wondering if perhaps there is a deadlock situation regarding worker threads.
Do you have an idea how to solve the issue?
I can run a debug build if you think that would be helpful.

Just to remove ambiguities, I reproduced the problem with latest master:
debug enabled
restic 0.7.1 (v0.7.1-89-g4e60156b)
compiled with go1.9 on darwin/amd64

I have captured a debug log, but would ask for some help in redacting info... is it enough to grep -v out my b2 credentials? I suspect the Authorization headers, etc are also sensitive. What about restic index file names? Presumably these are just hashes, and not sensitive?
I am not concerned about filenames, paths, etc of my own data (it's just dummy data which I created for testing). Thanks.

I also find that the proc is not killable via ^c when it gets stuck. restic responds with "Interrupt received, cleaning up", but I can't get it to exit. I can kill it if I suspend it first (^z followed by ^c again).

The restic file names are not sensitive, it's the SHA256 hash of the encrypted files. That's of no use for anybody ;)

The bug is fairly reproducible using the following steps:

init a new b2 repo
do an initial backup of at least a few hundred MB.
keep doing incrementals of the existing data (no need to add new files) using "-o b2.connections=1" until you get a hang.

The attached debug log is from the hang (3rd incremental) below.
Annotated example follows.
[armhold@george-iMac]$ restic-debug version
debug log file /Volumes/data1/restic-debug.log
debug enabled
restic 0.7.1 (v0.7.1-89-g4e60156b)
compiled with go1.9 on darwin/amd64

directory we will backup:

[armhold@george-iMac]$ ls -l fodder1
total 583576
-rw-r--r--  1 armhold  staff         35 Aug 30 08:10 dummy.txt
-rw-r--r--  1 armhold  staff  298784000 Aug 29 09:14 random1.dat

initial (full) backup:

[armhold@george-iMac]$ restic-debug -r b2:beta-restic:restic backup ~/fodder1  -o b2.connections=1
debug log file /Volumes/data1/restic-debug.log
debug enabled
body not drained, 1 bytes not read, body: "."
scan [/Users/armhold/fodder1]
scanned 1 directories, 2 files in 0:00
body not drained, 1 bytes not read, body: "\x82".943 MiB  3 / 3 items  0 errors  ETA 0:00
[8:41] 100.00%  560.040 KiB/s  284.943 MiB / 284.943 MiB  3 / 3 items  0 errors  ETA 0:00
duration: 8:41, 0.55MiB/s
snapshot e88afae9 saved
body not drained, 1 bytes not read, body: "\x99"

1st incremental (no file changes), succeeds:

[armhold@george-iMac]$ restic-debug -r b2:beta-restic:restic backup ~/fodder1  -o b2.connections=1
debug log file /Volumes/data1/restic-debug.log
debug enabled
body not drained, 1 bytes not read, body: "."
using parent snapshot e88afae9
scan [/Users/armhold/fodder1]
scanned 1 directories, 2 files in 0:00
[0:05] 100.00%  56.989 MiB/s  284.943 MiB / 284.943 MiB  3 / 3 items  0 errors  ETA 0:00
duration: 0:05, 50.48MiB/s
snapshot 92d171d1 saved
body not drained, 1 bytes not read, body: "\xcd"

2nd incremental (no file changes), succeeds:

[armhold@george-iMac]$ restic-debug -r b2:beta-restic:restic backup ~/fodder1  -o b2.connections=1
debug log file /Volumes/data1/restic-debug.log
debug enabled
body not drained, 1 bytes not read, body: "."
using parent snapshot 92d171d1
scan [/Users/armhold/fodder1]
scanned 1 directories, 2 files in 0:00
[0:03] 100.00%  94.981 MiB/s  284.943 MiB / 284.943 MiB  3 / 3 items  0 errors  ETA 0:00
duration: 0:03, 91.45MiB/s
snapshot 3ff314fc saved
body not drained, 1 bytes not read, body: "\xca"

3rd incremental (no file changes), but HANGS. The attached restic-debug.log is from this (hung) session):

[armhold@george-iMac]$ restic-debug -r b2:beta-restic:restic backup ~/fodder1  -o b2.connections=1
debug log file /Volumes/data1/restic-debug.log
debug enabled
body not drained, 1 bytes not read, body: "."
[restic-debug.log.gz](https://github.com/restic/restic/files/1263793/restic-debug.log.gz)

I think I see what's going on here.
(r *Repository) LoadIndex(ctx context.Context) will start up 20 worker threads, each of which will
call LoadIndex() -> LoadIndexWithDecoder() -> repo.LoadAndDecrypt() -> be.Load().
In each of these 20 workers, the b2 implementation of be.Load() will block on be.sem.GetToken(), since b2.connections=1. Normally that's fine, they'll just run sequentially.
But meanwhile back in (r *Repository) LoadIndex(ctx context.Context)(),
FilesInParallel() is called to run the workers. Preceding the loop that processes the workers is a call to repo.List(). And
(be *b2Backend) List() tries to grab another token on line 299:
	be.sem.GetToken()

So simplified, if one of the workers manages to start while List() is still holding a token, you get
deadlock. I'm not sure what a proper the solution is, but I hope I described the problem clearly.

Thanks for the analysis!


Rake task to validate version sequences

I wrote a quick thing to validate version sequences. These are most likely remnants of the race condition bug that was fixed a while ago. I haven't written any tests, but can do if we think this is a valuable thing to repeatedly run in the future.
This should help @MatMoore and @davidslv fix the problems they were seeing yesterday afternoon. We should probably add a migration to fix records with invalid version sequences.
We could also consider extended these checks to consider whether the states are valid, too. For example, we may want to validate that there is only one published and draft item.
$ bundle exec rake db:validate_versions

Running query...
Done. Took 7.3 seconds.

Invalid version sequence for 37c6a708-3e88-4470-9aca-81d4ba103b0a, en:
[1, "superseded", "/guidance/tick-surveillance-scheme"]
[2, "superseded", "/guidance/tick-surveillance-scheme"]
[3, "superseded", "/guidance/tick-surveillance-scheme"]
[4, "published", "/guidance/tick-surveillance-scheme"]
[4, "superseded", "/guidance/tick-surveillance-scheme"]

Invalid version sequence for 42f57c6c-dba6-486e-b266-4224fdb858e9, en:
[1, "superseded", "/guidance/contacts-phe-health-protection-teams"]
[2, "superseded", "/guidance/contacts-phe-health-protection-teams"]
[3, "published", "/guidance/contacts-phe-health-protection-teams"]
[3, "superseded", "/guidance/contacts-phe-health-protection-teams"]
[4, "draft", "/guidance/contacts-phe-health-protection-teams"]

Invalid version sequence for 5c6c8576-3cd2-4a80-b9da-bd8271ebe079, en:
[1, "superseded", "/government/publications/veterans-world"]
[2, "superseded", "/government/publications/veterans-world"]
[3, "superseded", "/government/publications/veterans-world"]
[3, "published", "/government/publications/veterans-world"]

Invalid version sequence for 5e9f05e7-7706-11e4-a3cb-005056011aef, fa:
[1, "superseded", "/government/world/iran.fa"]
[2, "superseded", "/government/world/iran.fa"]
[2, "published", "/government/world/iran.fa"]
[3, "draft", "/government/world/iran.fa"]
[3, "draft", "/government/world/iran.fa"]

Invalid version sequence for 5f4b0a93-7631-11e4-a3cb-005056011aef, en:
[1, "superseded", "/guidance/educational-psychology-funded-training-scheme"]
[2, "superseded", "/guidance/educational-psychology-funded-training-scheme"]
[3, "draft", "/guidance/educational-psychology-funded-training-scheme"]
[3, "published", "/guidance/educational-psychology-funded-training-scheme"]

Invalid version sequence for 5f4c84d3-7631-11e4-a3cb-005056011aef, en:
[1, "superseded", "/government/collections/investment-in-the-uk-guidance-for-overseas-businesses"]
[2, "published", "/government/collections/investment-in-the-uk-guidance-for-overseas-businesses"]
[3, "draft", "/government/collections/investment-in-the-uk-guidance-for-overseas-businesses"]
[3, "draft", "/government/collections/investment-in-the-uk-guidance-for-overseas-businesses"]

Invalid version sequence for 5fa75e01-7631-11e4-a3cb-005056011aef, en:
[1, "superseded", "/guidance/pupil-premium-virtual-school-heads-responsibilities"]
[2, "superseded", "/guidance/pupil-premium-virtual-school-heads-responsibilities"]
[3, "draft", "/guidance/pupil-premium-virtual-school-heads-responsibilities"]
[3, "published", "/guidance/pupil-premium-virtual-school-heads-responsibilities"]

Invalid version sequence for 6a293b0f-ba2e-4d6a-a305-a339b2e6c60f, en:
[1, "superseded", "/government/organisations/highways-england/about/access-and-opening"]
[2, "superseded", "/government/organisations/highways-england/about/access-and-opening"]
[3, "superseded", "/government/organisations/highways-england/about/access-and-opening"]
[4, "draft", "/government/organisations/highways-england/about/access-and-opening"]
[4, "published", "/government/organisations/highways-england/about/access-and-opening"]

Invalid version sequence for 919bd03c-8c0a-4aca-9350-f8427199789e, en:
[1, "withdrawn", "/government/case-studies/stuart-scott"]
[1, "published", "/government/case-studies/intellectual-property-stuart-scott"]

Nice. I was also wondering if it's possible to tighten any of the database level constraints as well? (I'm a bit late to party here I know). The thing we really want to ensure uniqueness on (content_id, number) is currently split over table boundaries (content_id, number), but should (content_item_id, number) be unique as well?

We are trying this, we will let you know soon, we think we need to apply a few changes.

@MatMoore

I was also wondering if it's possible to tighten any of the database level constraints as well?

Absolutely. We should look at adding these. I believe we have a ticket somewhere to tighten up our validations and report on any problems. I'll see if I can dig that out.

We noticed some content ids we were expecting to be caught by this query weren't showing up.
I think it's because the duplicated versions correspond to different content items, for example a superseded edition and a live edition with the same content_id and same version.
To catch this case, the query would need to start with each content_item row, then join in similar content_items by content_id and locale. Then from that we can join in the state information from states and user_facing_versions.
I'm experimenting with this at the moment but I don't think my query is quite correct. Let me know if you want to work on this together.
My wip is:
        select
          ci.content_id,
          t.locale,

          -- select arrays of supporting attributes
          array_agg(ci2.id) as content_items,
          array_agg(s.name) as states,
          array_agg(v.number) as versions,
          array_agg(l.base_path) as base_paths

        from content_items ci
        join translations t on t.content_item_id = ci.id

        -- join in other editions of the content, which may be superseeded
        -- these need to be the same locale
        join content_items ci2 on ci2.content_id = ci.content_id
        join translations t2 on t2.content_item_id = ci2.id and t2.locale = t.locale

        -- join supporting objects
        join states s on s.content_item_id = ci2.id
        join user_facing_versions v on v.content_item_id = ci2.id
        join locations l on l.content_item_id = ci2.id

        where ci.content_id = '502eac33-76ad-499e-b15f-a1544be548c5'

        group by ci.content_id, t.locale

Hi @MatMoore – do you still need help?

As discussed offline, please ignore the above comment. Our problem is something different and shouldn't block this PR getting merged. :dancer:

Elliot gave permission to self-merge on green.


Black Friday/Cyber Monday Sale :D

:D

Hi, thanks for your suggestion, extensions are made by individual developers so we can’t make global discounts, but I’ll make the suggestion to the developers

Please open an separate issue with more details because « doesn’t work » give 0 useful information so we can’t help


Installing mxnet on Mac

Hello,
I'm attempting to build and install the mxnet package to use in R/RStudo (on my Mac OSX10.10.5). I've been following the steps described in the installation guide, but am receiving an error when I try to build mxnet on the project root.
I began with:

Installed git
Terminal: git clone --recursive https://github.com/dmlc/mxnet
Installed homebrew [0.9.5 (git revision 3d1e; last commit 2015-11-18)]
Terminal: brew update
Terminal: brew tap homebrew/science
Terminal: brew info opencv
Terminal: brew install opencv
Terminal: cp make/osx.mk config.mk

Output: cp: make/osx.mk: No such file or directory
So I tried...

Terminal: cd mxnet
Terminal: cp make/osx.mk config.mk
Terminal: make -j4

Output:
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [bin/im2rec] Error 1
What am I doing wrong?

could you provide more detail before ld: symbol(s) not found for architecture x86_64
?

do you use clang or gcc from brew? I had similar problem with gcc from brew, if change back to clang (from xcode), it solves the problem

I guess we should add to the document that only compiling with clang is supported on OS X.

hack1nt0 from sina weibo http://www.weibo.com/1762781217 proposed and tested his own clang-omp and clang-omp++ solution for using OpenMP with BLAS on Mac. If CPU only, openmp is not really necessary because BLAS can take care of multi-thread and fully utilize CPUs, but with multiple GPU, it still make some sense.

@mwegman4

Installed git
Terminal: git clone --recursive https://github.com/dmlc/mxnet
Installed homebrew [0.9.5 (git revision 3d1e; last commit 2015-11-18)]
Terminal: brew update
Terminal: brew tap homebrew/science
Terminal: brew info opencv
Terminal: brew install opencv
8a. cd mxnet
8b. Terminal: cp make/osx.mk config.mk

nvm!

I had to edit config.mk to get it to compile:
export CC = clang-omp
export CXX = clang-omp++
USE_OPENMP = 1

I also had to install clang-omp via brew:
brew install clang-omp
brew install pkg-config

The directions I followed are here<EMAIL_ADDRESS>

@zachmayer yes, if use clang-omp, these changes are needed, my test also confirms this. OpenMP is primarily for multi-GPU for fast data loading (from my understanding) while BLAS can take care of multi-thread CPU. Since most of Macs don't have multi-CUDA-GPU cards, clang-omp may not be necessary. Is it correct?

As a side note, I was originally having trouble installing openCV so I went through these steps:

http://blogs.wcode.org/2014/10/howto-install-build-and-use-opencv-macosx-10-10/

Still getting an error. Here is the full output when I follow instructions posted by @zachmayer and run make -j4

@mwegman4 have you tried brew install opencv as in the instruction? If opencv is built by source, it may not find all correct PATH variables.

@mwegman4 In your log,
ld: warning: object file (/usr/local/lib/libopencv_imgcodecs.a(loadsave.cpp.o)) was built for newer OSX version (10.11) than being linked (10.10)

It indicates you have more than one version of opencv installed on your system. My advice is to remove them and reinstall opencv through brew

Thanks for identifying this. I was able to uninstall the brew installed version (wish I would have realized brew could install it first!), but I still have opencv installed through the process I followed here: http://blogs.wcode.org/2014/10/howto-install-build-and-use-opencv-macosx-10-10/ The files are located in my usr/local/lib folder and I'm not quite sure how to properly uninstall them. It appears that Xcode now only comes with SDK10.11 which is the the underlying cause of the incompatibility (since I pointed to this SDK in Cmake and I'm using OS 10.10.5). When I try to simply delete the opencv files in my usr/local/lib folder and then use brew to install opencv, I get this
this.txt error running make -j4. Is there a way to uninstall this incorrectly compiled version or point to the brew-installed version of opencv?
Thanks.

closing due to inactive status, feel free to reopen if there is update

brew install clang-omp has been not working. So how to install clang-omp easily?

I foun the option -Xclang -fopenmp should be used instead of normal -fopenmp for xcode built-in clang based compiler, and installing clang-omp is no longer necessary. This should be fixed in ${ROOT_DIR}/dmlc-core/CMakeLists.txt.

@liangfu nice finding. I don't think OpenMP is necessary since BLAS can take all CPUs, glad that mac can remove OpenMP dependency.

@phunterlau It's nice to consider adding native support for macOS. But is there any continuous integration systems (like travis-ci) that support checking the compatibility of future versions? Then I would submit a PR.
BTW, I don't think BLAS would automaticly take all CPUs, systems like OpenBLAS support changing number of threads only at compile time, not at run-time. So, manually handle multi-threading with features like OpenMP is usually necessary.

What do you mean native support for macOS?
Actually all travis-ci tests we have now are on OSX.

Here's what I had to do to get mxnet to build on MacOS Sierra (10.12.1):
$ HOMEBREW_CC=clang brew install openblas

Add/modify the following lines in config.mk
export CC=clang
export CXX=clang++

ADD_LDFLAGS = -L/usr/local/opt/openblas/lib -L/usr/local/lib/graphviz/
ADD_CFLAGS = -I/usr/local/opt/openblas/include

USE_BLAS = openblas

I had an environment variable called BIN that seemed to be interfering with building mxnet causing errors of the form
cd /Users/rohit/src/mxnet/dmlc-core; make libdmlc.a USE_SSE=1 config=/Users/rohit/src/mxnet/config.mk; cd /Users/rohit/src/mxnet
make[1]: `libdmlc.a' is up to date.
clang++ -DMSHADOW_FORCE_STREAM -Wall -O3 -I/Users/rohit/src/mxnet/mshadow/ -I/Users/rohit/src/mxnet/dmlc-core/include -fPIC -Iinclude -funroll-loops -Wno-unused-parameter -Wno-unknown-pragmas -Wno-unused-local-typedefs -msse3 -DMSHADOW_USE_CUDA=0 -DMSHADOW_USE_CBLAS=1 -DMSHADOW_USE_MKL=0 -DMSHADOW_RABIT_PS=0 -DMSHADOW_DIST_PS=0 -DMSDHADOW_USE_PASCAL=0 -DMXNET_USE_OPENCV=1 -I/usr/local/Cellar/opencv/<IP_ADDRESS>/include/opencv -I/usr/local/Cellar/opencv/<IP_ADDRESS>/include -I/usr/local/opt/openblas/include -DMXNET_USE_NVRTC=0 -std=c++11  -o /Users/rohit/src/mxnet/beam/bazel/bin/Users/rohit/src/mxnet  -pthread -lm -lopenblas  -L/usr/local/Cellar/opencv/<IP_ADDRESS>/lib -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -L/usr/local/opt/openblas/lib -L/usr/local/lib/graphviz/
clang: warning: argument unused during compilation: '-pthread'
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/Users/rohit/src/mxnet/beam/bazel/bin/Users/rohit/src/mxnet] Error 1

Unsetting BIN and building seemed to fix this:
mxnet$ BIN= make -j8

Additionally, I also did the following to build mxnet on MacOS Sierra (10.12.1) though I'm not sure how much of this is really necessary:
$ HOMEBREW_CC=clang brew install openblas

Add/modify the following lines in config.mk:
export CC=clang
export CXX=clang++

ADD_LDFLAGS = -L/usr/local/opt/openblas/lib -L/usr/local/lib/graphviz/
ADD_CFLAGS = -I/usr/local/opt/openblas/include

USE_BLAS = openblas

DISCLAIMER: I just started mucking around with mxnet a few hours back and have only tried the python example after doing this. Your machine (and my machine after a few hours) may still choose to blow up :)

I submitted a PR intend to add support for Mac. see PR #4260
@rohitsaboo My personal solution to add OpenBLAS is to download the code from github, compile and install from the source code. After installation, the library would be installed into /usr/local, specifically at /usr/local/include and /usr/local/lib. Then after configuring the library with cmake targeting XCode to compile, everything goes fine without any unexpected error.


emacs: Enable SQLite3 and WebP for Emacs >=29

Can't it be the default, regardless the version?

Can't it be the default, regardless the version?

I don't see the need to stuff Emacsen <= 28 with dependencies that won't benefit them.


State of controller

Hello,
Just wanted see what s the state of this controller/project?  If there are plans to continue  development on it or?
Cheers

Guessing it's unmaintained now. Sad :(

@danielloader @gitbluf sorry this issue was never answered and left a bit into limbo - We'll definitely merge PRs in, but on our part it's not actively maintained.
Also @tinyzimmer created this originally and if still interested in maintaining we'll transfer it.


Fixed run_enhancements_first bug

The continue command was in the context of the enhancements for loop. So instead, we catch the exception outside the loop and continue in the correct context.

lgtm. This change may desire tests.

ship it!


Newline in ubuntu cache keys

Looks like this isn't causing any issue, but it's confusing when reading the logs. On Ubuntu jobs, the cache key displayed in the post uv step looks like this:
cache saved with the key: setup-uv-1-x86_64-unknown-linux-gnu-0.4.17
-d151c39b8eb058466411ab26be66bd1da5e324b76abbec5606b56ffc1503f067-py3.12

While on MacOS:
cache saved with the key: setup-uv-1-aarch64-apple-darwin-0.4.17-d151c39b8eb058466411ab26be66bd1da5e324b76abbec5606b56ffc1503f067-py3.12

And on the annoying operating system:
cache saved with the key: setup-uv-1-x86_64-pc-windows-msvc-0.4.17-882cc81a13be3cce96fe1733402715f710aea661ba1ad39dffdfa6f0d8157dc7-py3.12

Same thing when there's a cache hit:
Cache hit occurred on key setup-uv-1-x86_64-unknown-linux-gnu-0.4.17
-d151c39b8eb058466411ab26be66bd1da5e324b76abbec5606b56ffc1503f067, not saving cache.


Enhancement: Add LateUpdate-based ScreenInput Option for Capturing VR Footage

Issue:
I have been using the NatCorder library in combination with the Google Cardboard XR Plugin to capture VR footages. However, I encountered an issue where the screen recorder was capturing single-view footages instead of capturing the VR black mask as desired.
Proposed Enhancement:
I have implemented a new class, LateScreenInput, that captures frames using LateUpdate, allowing me to capture the VR black mask successfully. This addition provides users with more flexibility when recording VR content, as it captures the VR mask, while the ScreenInput can still capture non-VR views. I believe this enhancement could be valuable for users who need to capture VR content with the Cardboard XR Plugin.
Code Changes:
I've made the following changes in the LateScreenInput class:

Removed the WaitForEndOfFrame yield and replaced it with LateUpdate-based frame capturing.
Added a resolution parameter to customize the recording resolution.
Resized the captured frame to match the desired resolution.

Code Comparison:
Below is a comparison of the original ScreenInput class and my modified LateScreenInput class.
Original ScreenInput class:
/*
*   NatCorder
*   Copyright (c) 2022 NatML Inc. All Rights Reserved.
*/

namespace NatML.Recorders.Inputs {

    using System;
    using System.Collections;
    using UnityEngine;
    using Clocks;

    /// <summary>
    /// Recorder input for recording video frames from the screen.
    /// Unlike the `CameraInput`, this recorder input is able to record overlay UI canvases.
    /// </summary>
    public sealed class ScreenInput : IDisposable {

        #region --Client API--
        /// <summary>
        /// Control number of successive camera frames to skip while recording.
        /// This is very useful for GIF recording, which typically has a lower framerate appearance.
        /// </summary>
        public int frameSkip;

        /// <summary>
        /// Create a video recording input from the screen.
        /// </summary>
        /// <param name="recorder">Media recorder to receive video frames.</param>
        /// <param name="clock">Recording clock for generating timestamps.</param>
        public ScreenInput (IMediaRecorder recorder, IClock clock = default) : this(TextureInput.CreateDefault(recorder), clock) { }

        /// <summary>
        /// Create a video recording input from the screen.
        /// </summary>
        /// <param name="input">Texture input to receive video frames.</param>
        /// <param name="clock">Recording clock for generating timestamps.</param>
        public ScreenInput (TextureInput input, IClock clock = default) {
            this.input = input;
            this.clock = clock;
            this.frameDescriptor = new RenderTextureDescriptor(input.frameSize.width, input.frameSize.height, RenderTextureFormat.ARGB32, 0);
            // Start recording
            attachment = new GameObject("NatCorder ScreenInputAttachment").AddComponent<ScreenInputAttachment>();
            attachment.StartCoroutine(CommitFrames());
        }

        /// <summary>
        /// Stop recorder input and release resources.
        /// </summary>
        public void Dispose () {
            GameObject.Destroy(attachment.gameObject);
            input.Dispose();
        }
        #endregion

        #region --Operations--
        private readonly TextureInput input;
        private readonly IClock clock;
        private readonly RenderTextureDescriptor frameDescriptor;
        private readonly ScreenInputAttachment attachment;
        private int frameCount;

        private IEnumerator CommitFrames () {
            var yielder = new WaitForEndOfFrame();
            for (;;) {
                // Check frame index
                yield return yielder;
                if (frameCount++ % (frameSkip + 1) != 0)
                    continue;
                // Capture screen
                var frameBuffer = RenderTexture.GetTemporary(frameDescriptor);
                if (SystemInfo.graphicsUVStartsAtTop) {
                    var tempBuffer = RenderTexture.GetTemporary(frameDescriptor);
                    ScreenCapture.CaptureScreenshotIntoRenderTexture(tempBuffer);
                    Graphics.Blit(tempBuffer, frameBuffer, new Vector2(1, -1), Vector2.up);
                    RenderTexture.ReleaseTemporary(tempBuffer);
                } else
                    ScreenCapture.CaptureScreenshotIntoRenderTexture(frameBuffer);
                // Commit
                input.CommitFrame(frameBuffer, clock?.timestamp ?? 0L);
                RenderTexture.ReleaseTemporary(frameBuffer);
            }
        }

        private sealed class ScreenInputAttachment : MonoBehaviour { }
        #endregion
    }
}

Modified LateScreenInput class:
namespace NatML.Recorders.Inputs
{
    using System;
    using System.Collections;
    using UnityEngine;
    using Clocks;

    /// <summary>
    /// Recorder input for recording video frames from the screen.
    /// Unlike the `CameraInput`, this recorder input is able to record overlay UI canvases.
    /// </summary>
    public sealed class LateScreenInput : IDisposable
    {
        #region --Client API--

        /// <summary>
        /// Control number of successive camera frames to skip while recording.
        /// This is very useful for GIF recording, which typically has a lower framerate appearance.
        /// </summary>
        public int frameSkip;

        /// <summary>
        /// Create a video recording input from the screen.
        /// </summary>
        /// <param name="recorder">Media recorder to receive video frames.</param>
        /// <param name="clock">Recording clock for generating timestamps.</param>
        /// <param name="resolution"></param>
        public LateScreenInput(IMediaRecorder recorder, IClock clock = default) : this(
            TextureInput.CreateDefault(recorder),
            clock)
        {
        }

        /// <summary>
        /// Create a video recording input from the screen.
        /// </summary>
        /// <param name="input">Texture input to receive video frames.</param>
        /// <param name="clock">Recording clock for generating timestamps.</param>
        public LateScreenInput(TextureInput input, IClock clock = default)
        {
            this.input = input;
            this.clock = clock;
            screenDescriptor = new RenderTextureDescriptor(Screen.width, Screen.height,
                RenderTextureFormat.ARGBHalf, 0);
            resizeDescriptor = new RenderTextureDescriptor(input.frameSize.width, input.frameSize.height,
                RenderTextureFormat.ARGBHalf, 0);
            // Start recording
            attachment = new GameObject(@"NatCorder ScreenInputAttachment").AddComponent<ScreenInputAttachment>();
            //attachment.StartCoroutine(CommitFrames());
            attachment.CommitFrames = CommitFrames;
        }

        /// <summary>
        /// Stop recorder input and release resources.
        /// </summary>
        public void Dispose()
        {
            GameObject.DestroyImmediate(attachment.gameObject);
            input.Dispose();
        }

        #endregion

        #region --Operations--

        private readonly TextureInput input;
        private readonly IClock clock;
        private readonly RenderTextureDescriptor screenDescriptor;
        private readonly RenderTextureDescriptor resizeDescriptor;
        private readonly ScreenInputAttachment attachment;
        private int frameCount;

        public void CommitFrames()
        {
            // Check frame index
            if (frameCount++ % (frameSkip + 1) != 0)
                return;
            // Capture screen
            var frameBuffer = RenderTexture.GetTemporary(screenDescriptor);
            if (SystemInfo.graphicsUVStartsAtTop)
            {
                var tempBuffer = RenderTexture.GetTemporary(screenDescriptor);
                ScreenCapture.CaptureScreenshotIntoRenderTexture(tempBuffer);
                Graphics.Blit(tempBuffer, frameBuffer, new Vector2(1, -1), Vector2.up);
                RenderTexture.ReleaseTemporary(tempBuffer);
            }
            else
                ScreenCapture.CaptureScreenshotIntoRenderTexture(frameBuffer);

            // Resizing
            var resizedFrameBuffer = RenderTexture.GetTemporary(resizeDescriptor);
            Graphics.Blit(frameBuffer, resizedFrameBuffer);
            Debug.LogError(resizedFrameBuffer.width + "   " + resizedFrameBuffer.height);
            // Commit
            input.CommitFrame(resizedFrameBuffer, clock?.timestamp ?? 0L);
            RenderTexture.ReleaseTemporary(frameBuffer);
            RenderTexture.ReleaseTemporary(resizedFrameBuffer);
        }

        private sealed class ScreenInputAttachment : MonoBehaviour
        {
            public Action CommitFrames;

            private void LateUpdate()
            {
                CommitFrames();
            }
        }

        #endregion
    }
}

How to Use:
To use the LateScreenInput class for capturing VR content with the Cardboard XR Plugin, follow these steps:

Instantiate a LateScreenInput object, passing your media recorder and desired resolution as parameters. Additionally, make sure to create a RealtimeClock for timestamp generation.

Example Usage:
// Create a RealtimeClock for timestamp generation
clock = new RealtimeClock();

// Calculate the recording resolution based on your aspect ratio
float aspectRatio = (float)Screen.width / Screen.height;
int recordWidth = (int)(Resolution * aspectRatio);
recordWidth = recordWidth % 2 == 0 ? recordWidth : recordWidth - 1;

// Instantiate an MP4Recorder with your resolution and desired frame rate (e.g., 30 FPS)
recorder = new MP4Recorder(recordWidth, Resolution, 30);

// Instantiate a LateScreenInput with the recorder, resolution, and clock
lateScreenInput = new LateScreenInput(recorder, clock);

Additional Information:
Operating System: Windows 10 x64
Unity Editor Version: 2020.3.30f1
NatCorder Version: 1.9.1
Cardboard XR Plugin Version: 1.21.0

Expected Behavior:
With this enhancement, users should be able to capture VR footages that include the VR black mask when using the Cardboard XR Plugin, in addition to the existing non-VR view capture functionality.

Hey @BasilDavid , thanks for the excellently detailed issue. I think this is a great feature request, though I think how I'd prefer solving is a bit different.
I think it would be better for the VideoKitRecorder input to allow users to set the input to be used. That way instead of us adding the LateScreenInput, you can attach any arbitrary input you'd like. I have to figure out a clean API to do this, but I'll run it by you.
I'd like to get this into the next update.

Hey @olokobayusuf  , Thank you for your quick response. I appreciate your willingness to consider my request.
I agree that allowing users to specify the input source for VideoKitRecorder is a great idea, providing more flexibility. I look forward to seeing the clean API you'll create for this feature.
If you need any feedback or assistance, please feel free to reach out. I'm ready to help.

Hey @olokobayusuf  , Thank you for your quick response. I appreciate your willingness to consider my request.
I agree that allowing users to specify the input source for VideoKitRecorder is a great idea, providing more flexibility. I look forward to seeing the clean API you'll create for this feature.
If you need any feedback or assistance, please feel free to reach out. I'm ready to help.

@BasilDavid following up on this old thread, but this was implemented a while ago in the upcoming VideoKit update (0.0.18 alpha):
MediaRecorder recorder = ...
ScreenSource source = new ScreenSource(recorder, useLateUpdate: true);


Update readme.md

I think it's pretty clear in the Usage section:

With yo:

To someone who stumbled upon this project generator, yo can be complete alien. That is why i suggested this merge. Explaining how this generator work is excellent. Explaining on what it depends is not obvious. This is important especially when package manager lets someone install generator-electron package without yo.

Yeah, I guess it doesn't hurt. Added it mostly because then I can be sure they're not on an outdated yo version.


Ambiguous wording

This text is ambiguous:
"In a real-world scenario, you could have hundreds of these sensors generating events as a stream. Ideally, a gateway device would run code to push these events to Azure Event Hubs  or Azure IoT Hubs. Your Stream Analytics job would ingest these events from Event Hubs ...."
Does it take data ONLY from "Event Hubs" OR can it take it from "IOT Hubs" too?
If it can ingest from both types of hubs, for clarity it could say "Your Stream Analytics job would ingest these events from Events Hubs and IOT Hubs" or perhaps "Your Stream Analytics job would ingest these events from both types of event hubs"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9b0fc019-851c-8f40-f05b-69f39a9e0fa0
Version Independent ID: dcae8169-cb26-8afc-d68b-f06979f0915f
Content: Process real-time IoT data streams with Azure Stream Analytics
Content Source: articles/stream-analytics/stream-analytics-get-started-with-azure-stream-analytics-to-process-data-from-iot-devices.md
Service: stream-analytics
GitHub Login: @enkrumah
Microsoft Alias: ebnkruma

@dombat , yes Azure Stream Analytics does take input from Eventhubs. The various inputs that we currently support are listed here: https://docs.microsoft.com/azure/stream-analytics/stream-analytics-add-inputs.
The article in this scenario is titled Process real-time Iot data Streams with Azure Stream Analytics. This is a build solution targeted towards using Iothub as an input source that is why the doc explicitly defined using Iothub as the input sources

The wording "would ingest these events from Event Hubs" could be improved to...
"would ingest these events from Event Hubs"
so it is clear what event hubs it is talking about (the two in the article and the others linked)

The wording "would ingest these events from Event Hubs" could be improved to...
"would ingest these events from Event Hubs"
so it is clear what event hubs it is talking about (the two in the article and the others linked)

updated wording clear ambiguity

#please-close


Downloaded serve for first time, kept getting errors w/ fs-promise

Kept getting:
npm WARN deprecated<EMAIL_ADDRESS>Use mz or fs-extra^3.0 with Promise Support
So I went into serve package and changed everything from 'fs-promise' to 'mz'. That seemed to work enough to let me build.

That's a deprecation warning, not an error. Just ignore it while installing 😊

It wouldn't build without it.
On Tue, May 16, 2017 at 3:36 PM, Leo Lamprecht<EMAIL_ADDRESS>wrote:

Closed #195 https://github.com/zeit/serve/issues/195.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zeit/serve/issues/195#event-1084788350, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AI_XDtxgNB7xji6gqXFUTmAJsr2Alu3Cks5r6fqwgaJpZM4Nc-Ns
.

The warning will be gone when https://github.com/zeit/serve/pull/199 is released :) @mardisworld


In case of emergency, what is the best and fastest way to shut down the manipulator?

Hi, in case the motors do not move as expected and part of the arm starts hitting itself or something else, what is the best and fastest way to shut down the manipulator? If I just unplug the SMPC, will I damage the motors or corrupt the software system? After that, what is the best way to restart the system?

Hi @robotiscustomer
As it is a more actuator-related question, please leave it at the link
Ryan


Visual Studio 2019 published assembly do not embed entity framework metadata

From VS Feedback:
I am compiling solution in Visual Studio 2017 and publish to IIS with "dotnet publish *.csproj -o path" command. Application works fine. However, if I compile the very same solution in VS2019, and then publish with the same command, application fails on IIS. After comparing binaries, I saw that Entity Framework metadata is included in compiled assembly after VS2017 compile/publish, but is missing after compilation/publish in VS 2019.
Please see attached image.
How can I set Visual Studio 2019 behave as 2017 did ?

@lajones Can you investigate and try to repro this one?

EF Team Triage: This issue is lacking enough information for us to be able to effectively triage it. In particular, it is missing the following information requested in the new issue template. Can you please provide this information?

Steps to reproduce

Ideally include a complete code listing, and the steps you used to get there, that we can run to reproduce the issue.
Alternatively, you can provide a project/solution that we can run. Please also provide what versions of dotnet you have installed and what versions you are running at the various steps.
BTW we're not just doing this to be mean :smile:... we get a lot traffic on this project and it takes time to attempt to reproduce an issue based on fragments of information. In addition, our attempt is often unsuccessful as the exact conditions required to hit the issue are often not explicitly included in the code provided. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we ask that folks give us a self-contained way to reproduce an issue.
For a guide on submitting good bug reports, read Painless Bug Tracking.

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


Bug: Grabbing wrong part of screen for 4K monitor

Moving this over from another issue I posted it in/hijacked
This is with the latest preview 3 version
Getting an error as well on 4k monitor

Just realized that was because I was using borderless window, however now its just doing the same as above

I ended up having it save the image cropped minus the additional stuff and its not even close to the correct location
Here is what was taken

Source image

Grabbed a larger section and it looks like its grabbing right above Settings
This is with default settings but yOffset = 58

I also tried to save the originial image as well, but it overwrites to fast but it was the correct monitor and fullscreen included

Yea I saw that, it should work just not sure why it isnt.

Thats the issue, just tested it

Glad to see this get resolved.  was scratching my head trying to add the dpiaware properties and readding the dpi loss with math.
Turns out it was much easier then that.


chore: bdd-nh-1585219438 to 0.0.1

chore: Promote bdd-nh-1585219438 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Minor corrections

A few minor corrections.

Merging without review: documentation.

Wrong button. Let's try that again.


Add show "queue"

The problem
Currently we have a per-track sound queue that works great. If a track is busy and a new sound is played, we can queue it until the track is clear. The problem is when we play shows that include sound along with other elements that are supposed to be synced with that sound. (e.g. Extra ball show which is display animation, light show, and sounds.)
In the current design of MPF, when that show plays, if the sound track is busy, the display and light shows will play, but the sound would be queued, so the sound would play by itself later and/or out of sync with the other effects.
This is VERY common. I spent the past few days playing pinball, and it happens a lot. Not just extra balls, but specials, jackpots.. Even things like important shots made. It happens a lot.
Also, some have suggested that show priorities mean this is not a problem. That is not true. If a show at priority 200 includes sound and the current sound track is busy with a sound playing at priority 100, then the show can cut off that sound and play in sync. But if the reverse is true, where a new show at priority 100 is played but the current playing sound is priority 200, then the show’s lights and display will play immediately at 100 but the sound will not play since it’s lower than the current playing sound.
The proposed solution
In MPF, we need a way to know that a show can be played, e.g. that all of the elements it has in it are available. This means that either:

MPF has to know what’s in a show and whether the resources are available before he show is played, or
MPF has to query the resources to find out if they’re available before a show is played.

Option 2 is more complex since PluginPlayers are running remotely across BCP, so MPF would have to make a BCP call and wait for a response before playing. Even though this is essentially “instant”, the way BCP is handled means it would have to wait a few ticks of the game loop for the BCP send/receive.
My goal is to build a universal queue, with intelligence handled by individual config players. (Not every config player would use this, since some config players don’t have to deal with queues.)
Here’s what I propose
We create a dictionary, on the MPF side, of “semaphores” (or “locks” or “mutexes” or whatever we want to call them) that correspond to resources that must be available in order for a show (or anything, really) to play. The names of these semaphores are arbitrary, and they’re created by the config players. Each config player can create as many semaphores as it needs (or none) based on the resources it manages.
So the sound player might create one semaphore for each sound track, the slide player might create one for each display target, etc.
When shows are processed (at boot), in addition to the individual config players being called to validate and process the show config (which they do now), they will also be responsible for building a list of which semaphores need to be clear in order for that show to play. The list of semaphores a show needs will be stored as an attribute of the show itself.
The individual resources that have semaphores associated with them will be responsible for continuously updating the status of their semaphores, so MPF’s semaphore registry always knows the current state of any semaphore. Plugin config players will send their updates to MPF via BCP.
Then when MPF needs to play a show, it will just check the show’s list of which semaphores that show needs and compare it to the states of those semaphores in its registry. If they’re all free, great, the show plays. If not, the show is added to a queue.
Every time a semaphore is cleared, MPF will check to see if any shows that are queued can be played now. If so, it plays the show.
The show queue can use other existing features similar to the current audio queue, including max queue time, the ability to use shorter shows or alternate shows if the show is queued too long, etc.
When modes stop, the queue will be checked for any shows from that mode, and those shows will be removed from the queue (similar to how it currently works to stop running shows from a mode when that mode stops.)
A bonus feature would be for semaphores to be locked with an estimated end time, so if a show is requested but it needs a semaphore that’s busy, perhaps an alternate show that doesn’t need that semaphore could be played immediately rather than delaying the show while waiting for the semaphore to clear.
Implementation
I don’t think this will be too complex to write, and I think it can be pretty universal.
Also, all of this is sort of “under the hood” stuff. I don’t think any of this needs to be exposed to users. They just know that if they want to play a show, it will be queued until everything in it can play. (And the queue settings and behaviors here are no different than the way the sound queue works today, so not too hard to understand.)
Limitations
Once the semaphores are cleared and the show plays, there’s no further checking to see if the semaphores are still clear when a specific step comes up in a show. For example, if a show needs audio, but not until 5 secs in, something else could lock that audio track in the meantime.
There’s no ability to track which semaphores are needed where in a show. So if a semaphore is locked, that could delay an entire show even if the step from the show that needs that semaphore doesn’t come until later in the show.
These limitations seem ok to me.

Don't need this because we have "events_when" events from mc


[BugFix] fix runtime filter cache use: hold shared pointer to avoid invalid pointer.

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Got following exception
*** Aborted at<PHONE_NUMBER> (unix time) try "date -d @1658293232" if you are using GNU date ***
PC: @          0x5cc1f60 __dynamic_cast
*** SIGSEGV (@0xfffffffffffffff0) received by PID 32857 (TID 0x7f1df458d700) from PID<PHONE_NUMBER>3709551600; stack trace: ***
    @          0x41c0692 google::(anonymous namespace)::FailureSignalHandler()
    @     0x7f1e2fe6be9b os::Linux::chained_handler()
    @     0x7f1e2fe7090c JVM_handle_linux_signal
    @     0x7f1e2fe63858 signalHandler()
    @     0x7f1e2f34b630 (unknown)
    @          0x5cc1f60 __dynamic_cast
    @          0x29a8031 starrocks::vectorized::OrcChunkReader::_add_runtime_filter()
    @          0x29ba656 starrocks::vectorized::OrcChunkReader::set_conjuncts_and_runtime_filters()
    @          0x1b1e41a starrocks::vectorized::HdfsOrcScanner::do_open()
    @          0x1b17259 starrocks::vectorized::HdfsScanner::open()
    @          0x173ceae starrocks::connector::HiveDataSource::_init_scanner()
    @          0x173f6e0 starrocks::connector::HiveDataSource::open()
    @          0x1c5ef30 starrocks::vectorized::ConnectorScanNode::_scanner_thread()
    @          0x314c348 starrocks::PriorityThreadPool::work_thread()
    @          0x414ccc7 thread_proxy
    @     0x7f1e2f343ea5 start_thread
    @     0x7f1e2e95eb0d __clone
    @                0x0 (unknown)

It's because we just use  runtime filter raw pointer. But runtime filter could be released by runtime filte cache, but we probably are still using it. The robust way is to hold share ptr of runtime filter.

the reason why we don't need following code is because, if there are multiple fragment instances executed, some of them  finish early and close queyr(clean runtime filter cache), following fragment instance won't get runtime filter from cache.
There is a clean_thread in runtime filter cache, and that will clean runtime filter has not retrived used for a long time
_exec_env->runtime_filter_cache()->remove(_query_id);

run starrocks_admit_test

run starrocks_admit_test


fix: correctly update the project after renaming a model

Description
Update the renaming of a model so that it updates the resources on the side bar as well.

I was about to do this myself but @mwdchang told me that we need to implement a proper asset manager. The way we have it now doesn't support eventual consistency - which means if we refetch the entire project we won't necessarily get the new data because the database may have not update yet.

What @shawnyama said, this here is more likelihood it will do what we want, but there is no guarantee that it will.
We almost always need a project-context, so I don't think it is a bad idea to keep a proper copy of it in Pinia that is used across the components as computed values. We can then do some kind of staggered/debounced update heuristics to better ensure that the data we have in Pinia is up-to-date. The difference been that we handle this in one place rather than each individual component doing their own update-loops. Let's maybe do a quick chat about it.
CC @YohannParis

@mwdchang @shawnyama yeah when I was going through this portion of the code and also realize that this could be an issue.  Found another issue describing that there are operations that could take several seconds. to update.  Your general suggestion of a single service doing all of this make sense.  Any operations that isn't instant should be using some kind of polling.  This is tech debt should be addressed sooner than later imo.

@YohannParis This discussion here: https://github.com/DARPA-ASKEM/data-service/issues/302#issuecomment-1662671393 is relevant to addressing this.


feat: add Glance.nvim

https://github.com/ayamir/nvimdots/discussions/494#discussioncomment-6585631

Maybe a better LSP functions redirecting implementation
---@diagnostic disable: duplicate-set-field
-- Override LSP handler functions
-- stylua: ignore start
vim.lsp.buf.references = function() glance.open('references') end
vim.lsp.buf.definition = function() glance.open('definitions') end
vim.lsp.buf.type_definition = function() glance.open('type_definitions') end
vim.lsp.buf.implementations = function() glance.open('implementations') end
-- stylua: ignore end
---@diagnostic enable: duplicate-set-field

Does glance have https://github.com/nvimdev/lspsaga.nvim/pull/1188 issue?

If the definition target are the current buffer, will glance destroy all keymap in the buffer? I fix lspsaga for this nvimdev/lspsaga.nvim#1188?

I have used glance for weeks, and didn't mett this issue yet.

That will cause troulbe only in certain case, say you are using a repl should contact to your current buffer or you have some keymap conflict with it, like I set <CR> to do incremental selection and this was defined in peek_definition in lspsaga.

One problem is that glance.nvim don't have the same ability on lsp goto definition.
I can't goto the definition place when it is defined in other files.

What's more, the way of overriding lsp handler breaks Lspsaga goto_definition defined in keymap/completion.lua.

https://github.com/ayamir/nvimdots/pull/920/commits/313b49a59c217fa093e177f7b85f4201abf7b3fe

If the definition target are the current buffer, will glance destroy all keymap in the buffer?

@fecet I scanned the source code while setting up this plugin, and I don't think it's an issue b/c Glance works quite similarly to our utils.keymap module (i.e., "fixing", not "replacing" the keymap). To verify this, Q should echo out MSG before and after Glance gets opened.
:noremap <silent> <nowait> <buffer> Q <Cmd>echo 'MSG'<CR>

Great, I will test if it works will with my repl later

I originally thought we were going to use glance to replace the peek function of lspsaga, so my previous concerns were irrelevant. But why not?

I originally thought we were going to use glance to replace the peek function of lspsaga, so my previous concerns were irrelevant. But why not?

Does it support definition preview?

Doesn't know now but I used glance to preview definition before switching to lspsaga

I originally thought we were going to use glance to replace the peek function of lspsaga, so my previous concerns were irrelevant. But why not?

https://github.com/ayamir/nvimdots/pull/920/commits/3aae05bb04b76888ac94ef8c95439881c777b68f

Works for me too.


Failed to encode text with T5's tokenizer

System Info
Node.js v22.9.0. "@xenova/transformers": "2.17.2"
Environment/Platform

[ ] Website/web-app
[ ] Browser extension
[X] Server-side (e.g., Node.js, Deno, Bun)
[ ] Desktop app (e.g., Electron)
[ ] Other (e.g., VSCode extension)

Description
Encoding text with tokenizer of google-t5/t5-small returns undefined.
Reproduction
Run code with Node.js:
import {AutoTokenizer} from '@xenova/transformers'

const tokenizer = await AutoTokenizer.from_pretrained('google-t5/t5-small')
console.log(tokenizer.encode('test'));

Outputs:
[ undefined, 1 ]

Please use Xenova/t5-small instead. The original t5 tokenizer config is missing a few values. :)

Can you share what is missing? I want to make my code compatible with the official model if it is not too hard.

I did an experiment try to fix the tokenizer in original T5 repo:

Download the files of google-t5/t5-small.
Run this script to export new json files for the malformed tokenizer.

And this time the tokenizer in transformers.js can actually load the exported tokenizer, however it generates wrong results.
For the prompt translate English to German: As much as six inches of rain could fall in the New York City region through Monday morning, and officials warned of flooding along the coast., the tokenizer in python gives result:
[
  13959, 1566,    12, 2968,    10,  282,
    231,   38,  1296, 5075,    13, 3412,
    228, 1590,    16,    8,   368, 1060,
    896, 1719,   190, 2089,  1379,    6,
     11, 4298, 15240,   13, 18368,  590,
      8, 4939,     5,    1
]

Which is the same with the result of transformers.js with tokenizers fromXenova/t5-small.
But when using transformers.js with the exported tokenizers from google-t5/t5-small, the result became:
[
  7031, 5867, 26749, 235, 24518,   10,   188,     7,
    51, 2295,     9,   7,     7, 2407,    77,  2951,
   858, 6559,   509,  83,    26, 2857,    77,   532,
  6861,  476,   127, 157,   254,  485, 18145, 11258,
  9168, 1135,  2528,  29,    53,    6,   232, 20884,
     7, 2910,    29,  15,    26,  858,    89,    40,
    32,   32,    26,  53,     9, 2961,   532, 25500,
     5,    1
]

The troubling tokenizer files are:
tokenizer.json
tokenizer_config.json
The diff between tokenizer.json and the one in Xenova/t5-small is:
947,948c947
<         "prepend_scheme": "always",
<         "split": true
---
>         "add_prefix_space": true
1009,1010c1008
<     "prepend_scheme": "always",
<     "split": true
---
>     "add_prefix_space": true
129416,129417c129414
<     ],
<     "byte_fallback": false
---
>     ]

When using Xenova/t5-small, I get the same results as the python library (demo link)

The tokenizer files present in google-t5/t5-small were exported ~4 years ago, and are outdated with the current version of transformers.js (missing some values in tokenizer_config.json, I believe). Could you share the code you used that produced the incorrect token ids?

I have used AutoTokenizer.from_pretrained('google-t5/t5-small').save_pretrained('output') to convert the tokenizers from the google-t5/t5-small repo, and the saved tokenizer.json file is slightly difference from the one in Xenova/t5-small, which I believe is caused by changes in python transformers, and it is the newly saved tokenizer that transformers.js produces wrong results with.
The tokenizer.json file I got from google-t5/t5-small by using save_pretrained:
tokenizer.json
If you replace the tokenizer.json file in Xenova/t5-small with it, you can get the wrong results in transformers.js. (The tokenizer_config.json did not change the behavior as I tested.)
It seems that transformers.js can correctly handle this decoder:
  "decoder": {
    "type": "Metaspace",
    "replacement": "▁",
    "add_prefix_space": true
  },

but fails with this one:
  "decoder": {
    "type": "Metaspace",
    "replacement": "▁",
    "prepend_scheme": "always",
    "split": true
  },

I believe I have figured it out: the tokenizer.json in google-t5/t5-small is missing the type field for the tokenizer model. I have added 32d8df40c184853c0697747e75bc12624530252c to support this legacy tokenizer (since I imagine it's a popular tokenizer to use).
Note that you will need to install @huggingface/transformers (Transformers.js v3) when the next release comes out, and I will close this issue when it is out 👍

Thanks a lot!


common-files update master-2019-12-15T16-17-48

Update to common-files with image master-2019-12-15T16-17-48

@sdake: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_client-go
458de0e9da2d9c65cd43b02ba40217d924381680
link
/test lint_client-go

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

superseded by https://github.com/istio/client-go/pull/29


Sorting outputs needs to be random to preserve privacy

Transactions generated by this software are still identifiable to this software.
The order by address change prevented the users change address being easily identified (it was always originally always the last output, sorting by address changed that).
However,  what it did not prevent is the transaction being recognizable as being produced by this software.
To change this,  we need to sort the inputs/outputs by some non-deterministic entropy or user secret.

@kristovatlas is there a possibility that we could [together?] write up a BIP for documenting best practice in regards to [at least] the following aspects of transaction creation:

Input/Output ordering
Fee calculation (if a "hard-fee" isn't set by the user,  otherwise,  how can we encourage masking it such that it appears more deniable)
nLockTime

And various other aspects which currently,  are just slightly different enough for each implementation that they leak vital bits of privacy such that transactions can easily be linked with a high probability between matching software.
CoinJoin does help some aspects of this,  but in the end,  even CoinJoin could benefit from a communally set BIP that addresses some of these concerns.

Input/Output ordering is covered by BIP 69: https://github.com/bitcoin/bips/pull/157
I agree that standards for fee calculations and nLockTime would also be useful. Send me an email? kristov [at] openbitcoinprivacyproject.org

Thanks for the link @kristovatlas,  I'll reference an implementation here.

Currently a WIP,  but I'm implementing it here for now: https://github.com/bitcoinjs/bip69

@kristovatlas thoughts on integrating the anti-fee-sniping behaviour (see https://github.com/bitcoin/bitcoin/pull/6216) into BIP69?

Was added in https://github.com/bitcoinjs/bip32-wallet/commit/0b9dfc07ab1060939666dfea47cd0040135a4c07