Feature request - BTC RPC explorer

I think it will be very useful to add BTC rpc explorer,  what do you think? Creating a hidden service it allows to connect to your private explorer through tor.
https://github.com/janoside/btc-rpc-explorer

Sounds like a nice to have but is not on my personal prio list ... but if someone builds a /home/admin/config.scripts style prototype script to in- and deinstall such a service I could accept/add it as a PR.

Just tested this, easy to setup.
Only it will need txindex=1 (indexing took ~7h on a RPi4 4GB + SSD)
Setup steps:
sudo nano /mnt/hdd/bitcoin/bitcoin.conf
change txindex to:
txindex=1

sudo systemctl restart bitcoind
Install:
npm install -g btc-rpc-explorer
/usr/local/lib/nodejs/node-v10.16.0-linux-armv7l/bin/btc-rpc-explorer
export PATH=$PATH:/usr/local/lib/nodejs/node-v10.16.0-linux-armv7l/bin/
sudo ufw allow 3002

Run:
btc-rpc-explorer -i <IP_ADDRESS> -u raspibolt -w <passwordB>
  btcexp:app Starting BTC RPC Explorer, v1.1.2 +0ms
  btcexp:app Connecting to RPC node at <IP_ADDRESS>:8332 +4ms
  btcexp:app Connected via RPC to node. Basic info: version=180100, subversion=/Satoshi:0.18.1/, protocolversion=70015, services=000000000000040d +284ms

Can be viewed in a browser on:
RaspiBlitz_LAN_IP:3002

To add to the PATH permanently:
sudo bash -c "echo 'PATH=\$PATH:/usr/local/lib/nodejs/node-v10.16.0-linux-armv7l/bin/' >> /etc/profile"
The setup for LND-admin is basicly the same:
npm install -g lnd-admin
lnd-admin
Open http://<IP_ADDRESS>:3004/

Made a scripted version: https://github.com/openoms/raspiblitz-extras#btc-rpc-explorer
but could not make the .env file work yet.
From the README:

Configuration
Configuration options may be passed as environment variables or by creating an env file at ~/.config/btc-rpc-explorer.env or at .env in the working directory. See .env-sample for a list of the options and details for formatting .env.

Running as the bitcoin user and have tried
/home/bitcoin/.config/btc-rpc-explorer.env
and
/usr/local/lib/nodejs/node-v10.16.0-linux-armv7l/lib/node_modules/btc-rpc-explorer/.env
where the .env-sample is, but there is no effect.
Any ideas why my .env file is not working?

PR is in: https://github.com/rootzoll/raspiblitz/pull/867

Merged now after successful tests https://github.com/rootzoll/raspiblitz/commit/bf480bd721fb7079cc8a05aefd99c9a85d09b406


Getting 413 Payload Too Large

I am getting 413 Payload Too Large errors when running mantle deploy.

The place I'm trying to upload is ~650 MB.
If this is me hitting the endpoint's limits, are there any alternatives I can use?

Thanks for the report. I'll look into it as soon as possible but I'm guessing it is the endpoint's limit... I'll do some research on potential alternatives.

It looks like this is a limitation of the API I am using. I found this forum post with the same issue: https://devforum.roblox.com/t/using-upload-api-with-large-rbxlx-files-consistently-fails/617408
When I get a chance I want to investigate some alternatives, including:

What endpoint does Studio use to publish places?
Does the endpoint I currently use support binary files (.rbxl) and would that provide sufficient compression to fix your issue?
Does the Open Cloud API have this issue? If this is the best alternative, can I support the Open Cloud API with an opt-in flag (e.g. --use-open-cloud). Note: I switched from Open Cloud because: it can only update place files atm, it cannot update newly created places without the user adding it to the API key's whitelist, and it requires a second type of authentication which complicates the DX

Hi, thanks for the reply!
I looked up Roblox file formats and this article makes it look like (if I understand correctly) your second point may be very true.
I did not realise this issue holds for rojo and remodel too, that's a big blocker for me then 😂

Btw for testing purposes, do you know what the primary contributor to file size is for you?

I'm testing it on a train game with 60 trains in a folder in ServerStorage, this folder is 430 MB.
Basically all trains are made of unions and 4 trains have some MeshParts too.
Some examples:

Biggest train (23 MB) is an 8 car train made of unions
Second biggest train (20 MB) is a 6 car train made of MeshParts
Third biggest train (19 MB) is a 6 car train made of unions
The smallest train (900 KB) is a simple locomotive with almost no unions

Is that enough information?

Alright I did some investigation and it turns out the endpoint I am using is the same as studio's but it looks like they always publish in the .rbxl format regardless of the file type you are working in.
I created a test place that is 136MB in rbxlx and 307KB in rbxl and was able to reproduce your error with the rbxlx but was able to deploy the rbxl successfully. I will be releasing a new version that supports rbxl which should be a good workaround for you.
One thing to note is that I believe Rojo considers rbxlx to be a more stable format so you may encounter some issues exporting rbxl files from it (although I don't know what kinds of issues they might be).

You can try this in v0.10.3

It's working now, thanks!


header_rewrite set-body feature only supports the most basic of response bodies

set-body in ATS 9.2 doesn't support whitespace or newlines.
I was trying to use set-body to send a two line JSON response and couldn't get it to work.  Trying to add "\n" or spaces for human readable formatting just resulted in a truncated set-body.   The set-body setting also doesn't include a newline by default at the end of the body.  If you do set-body "OK" there is no newline sent to the client.
can set-body reference a file on the local filesystem and serve that as a response body?  Similar to what statichit plugin does, but with header_rewrite the operation can be performed when certain conditions are met.
Additionally, set-body seems to force Content-Type: text/html - I'd like to be able to specify something else like "application/json".  I tried using:
cond %{SEND_RESPONSE_HDR_HOOK}
rm-header Content-Type
add-header Content-Type "application/json"

but its still overridden with text/html when I use set-body option.

Maybe related to #11472


GAPS Reports Incorrectly

Describe the bug
I tried to make the title TL;DR because by the time I finished typing it, it looked like a bug report.
As I was looking through the import list on Radarr, I noticed that GAPS was suggesting some really odd movies.
For instance it says I'm missing all the movies from "Spenser Collection"  but I have no movies from that collection on my library. I think it sees "Spenser: Confidential" and mistakenly thinks there is a whole collection missing.
Additionally, it is also reporting that I'm missing movies from a collection and under "Owned", it shows I don't have any of those movies, when in fact I do. So sort of similar to the issue in the first paragraph, but it is the opposite. I do have movies for that collection and it says I'm missing them.
Screenshots
Here is the a screenshot of what I described on the first paragraph.

Here is a screenshot of what I described on the second paragraph. As you can see I do have that movie.

Desktop (please complete the following information):

OS: Docker latest Image
Browser: Firefox 80.0.1
Gaps Version 0.7.5

Please attach the full logs from Gaps.

https://pastebin.com/YMEsV1qg
Here are the docker logs. If there are other specific logs you want me to get, please let me know where to find them in the container.
Thanks!

Run a search then give me the logs. This only has the RSS output. Not the information of your owned movies vs what Gaps found.

It looks like I'm hitting size limits in the different text bins. I've attached a .txt file on here.
GAPS Logs.txt

I'm not sure how this happened but 'Marvel One-Shot Item 47' is saying it has a collection when it doesn't. The collection then links to the Spenser Collection. I recommend going to configuration > Advanced > Delete All Stored Data > Delete. Then rescan plex and rerun gaps. It looks like the Plex movie Gaps found is incorrect. So if this doesn't work, you can try sending over the json files for Plex. They're in /usr/dev. It's either Gaps parsing the Plex XML incorrectly or Plex matched incorrectly.

That seems to have fixed it. Thanks for your time.


Datagrid within tab component with grid does not render correctly in IE 11

Describe the bug
Datagrid within tab component with grid does not render correctly in IE 11.  I would also like to point out that when you switch tabs in IE, the content is added to the page and does not replace the previous tabs content.
In Chrome:

In IE:

How to reproduce
I have created a Stackblitz.io project to reproduce the issue:
https://clarity-light-theme-v2-kbd3cb.stackblitz.io
Expected behavior
The content should render correctly.
Versions
App

Angular: 8
Node: 10
Clarity: 2.0 (and higher)

Device:

Type: MacBook
OS: 10.15.1
Browser Chrome, IE 11
Version Chrome (78.0.3904.97), IE (11.0)

Any update on when this will be fixed?  I am stuck on v2.1.2 and could really use some of the other fixes in newer release, but I can't because of issue's I've reported with IE 11.

The workaround here is probably to put an NgIf on the datagrid and only flip it to true when the container is rendered, otherwise its trying to calculate a size of its container that might not have been rendered yet.

@gnomeontherun the workaround does not work (as I indicated in my post and example).

Stackblitz doesn't work well in IE11, so this is harder to triage. The issue is a timing issue for rendering the datagrid, so if NgIf doesn't delay it long enough you might need to add a slight timeout as a workaround.

I upgraded to v2.3.8 to pickup latest changes and then I started debugging on IE 11.  I appears that the width of the DOM section for the tab content is not correct.  I have found a work-around by adding the following to my CSS file:
::ng-deep .tab-content {
width: 100%
}

@gnomeontherun, @mathisscott are you aware that the datagrid header is not sticky (i.e. scrolls) in IE 11?  I am trying to create a stackblitz example, but I can't get it to load in IE 11 (which I believe is a known issue).

Yes, its a known issue that position: sticky isn't supported in IE11.
This was a compromise we had to make when refactoring the datagrid in 2018 to open it up for some other features that are in the pipeline.
If we have have the bandwidth to address this, the fix is to write custom logic for IE11 and handle the positioning of the header with javascript. If I recall correctly none of the polyfills were working when I investigated the sticky approach.

Fixed with #4802


Support dropping group into empty page

closes #1288
Description
Support dropping group into empty page
Related Issue(s)
#1288
Checklist

[x] I have read the contribution guidelines
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

[ ] Upgrade instructions
[ ] Configuration details
[ ] Concepts

[ ] Changes flowforge.yml?

[ ] Issue/PR raised on FlowFuse/helm to update ConfigMap Template
[ ] Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production

Labels

[ ] Includes a DB migration? -> add the area:migration label

Minor CSS amendments were required to prevent double-bordering with the dotted and solid lines


can you include your favorite debugging workflow

It would be awesome if you include your favorite workflow as far as debugging, do you use live sever or express? which arguments do you use... with gulp? or do you use ts watch or others?
tx as always
seen

I usually use live-server with both my IDE (currently using Atom) and Chrome open on the same window, side-by-side. The Chrome Developer Tools is pretty awesome with debugging and with the help of Source Maps you can break in the TypeScript code. The Redux dev tools helps as well. The only thing I'm missing is hot reloading without losing state (and just the file that changed), but I haven't got that set up just yet.
With JSPM (which I absolutely love!) you don't really need a watcher because it uses the TypeScript loader on the fly, so you get the best of all worlds, with just a simple live-server and no need to recompile before serving again. I do use Gulp for running the build (testing, linting, and bundling the final distribution). I also use Gulp to run a little script that takes care of typings for me (using the "typings" project).
For tests I do a similar thing by running the "npm test" on a terminal on the side of my IDE and writing/fixing tests while it's reloading it.
Here's an example of how it looks like when testing the app in a browser:

as always right on the money... I am intrigued..  I use gulp for for my live-reload, which I am not a fan of, since sometimes you always get extra reloads... I just moved to JSPM from Webpack (becuase of your project) and I am very impressed with it... can you share more info on JSPM, does it have a watch? or you just run it by hand to recompile each time?
tx again
Sean

I watch your awesome gif again, but didnt see how you executed JSPM to watch...

JSPM works in a different way. It uses SystemJS when loading its files, thus being able to convert them on the fly. It support loading various module formats (ES6, AMD, CJS, you name it!), then running it through plug-ing (what you would call "loader" in the WebPack world) and only them loading it in the browser.
So, that means there is no "js" file being generated on the server. It's all happening on the client.
Notice the network tab when the app loads:

It only loads the "ts" files. Then, it generates the "js" one sand you can find both in the "sources" tab:

So, no watcher aside from "live-server" that watchers the vanilla files and kicks of a browser reload when files change. The transpilation is happening in the browser.
Now, this is only relevant for development environment. In prod, you would definitely want to run the transpiled code. Look at the "dist" gulp task, or just run it on the example project ("npm run dist"). Comment out the "lint" bit if it's complaining about code formatting :) . Then, run "live-server" and go to http://localhost:8080/dist . This will be the end user experience on prod - loading just "js" as a single minified file.
A lot of it was inspired by Glen Maddern's awesome awesome presentation Javascript in 2015 .
The creator of JSPM is Guy Bedford and he is amazing! You can watch an old talk he gave here: Guy Package Management for ES6 Modules

I understand, will have to play with it ASAP...  tx again...

No worries. Feel free to ask any JSPM related questions. I've used it extensively when getting the architecture ready for our company's modern projects and know it quite well by now.
BTW, another huge benefit that you get with JSPM is the whole dependency management. It knows what depends on what and makes versioning management really easy.
You can see here - https://github.com/InfomediaLtd/angular2-tutorial - some more examples of using JSPM with some different dependencies than this one.

ya read about it... love it!
tried but so far not compiling in my browser:
System.config({
    baseURL: "/",
    defaultJSExtensions: true,
    transpiler: "typescript",
    typescriptOptions: {
        "module": "commonjs",
        "emitDecoratorMetadata": true
    },

and in HTML I use the same

that's it, or am I missing something?

You're missing the application config and loading any dependencies. Check out this minimal config for Angular 2: https://github.com/InfomediaLtd/angular2-tutorial/tree/master/1-getting-started
Basically, do a "jspm init" in a folder and you should be golden from there.
Here's a guide I've written, part of the tutorial series that the angular2-tutorial code accompanies, that will help you get started:
01 Getting Started with Angular 2.pdf

SWEET... will read it all.. ya I did add
System.config({
    baseURL: "/",
    defaultJSExtensions: true,
    transpiler: "typescript",
    typescriptOptions: {
        "module": "commonjs",
        "emitDecoratorMetadata": true
    },
    packages: {
        "app": {
            "main": "main",
            "defaultExtension": "ts"
        },
        "studioEnterprise": {
            "main": "src/App.ts",
            "defaultExtension": "ts"
        }
    },

playing with it some more..

gotta go to sleep... :) but could not get it to compile, maybe you give it a quick look, maybe something obvious (no need to clone, just a quick look maybe).
this is my config:
https://github.com/born2net/studioEnterprise/blob/jspm_v5/config.js
and my main file:
https://github.com/born2net/studioEnterprise/blob/jspm_v5/src/public/index.html
it keeps loading the JS file and all is working but via JS... I make a change in source a TS, reload, but still it shows the old JS... odd...
tx again
Sean

There's just two small things to fix and then you're good to go.
In your index.html change the import to be "src":
    System.import('src')

In your config.js update the package config:
  packages: {
    "src": {
      "main": "App",

exactly...
packages: {
    "src": {
      "main": "App",

u guru ;)

if u ever come down to Los Angeles, dinner is on me!!!

My pleasure. If you ever come to Israel, likewise :)

how did you know it was "src:" as many different examples online had app and other variations.. does that need to match the directory ...
are you serious? I am Israeli, Ma kore.. I come to Israel every couple of years...

so next summer I will be in Israel, will get together, I stay at Ramat aviv... ok Holech lison... Toda al hakol... appreciate it!

Small world.
I'm currently in Ness Ziona. Lived in Sydney for 7 years and moved back to Israel with the family a few months ago. BTW, I assume you can find my Twitter handle (same as username here) so it may be easier to chat over there. Or email<EMAIL_ADDRESS>:)
Laila Tov!

will do :)

Boker tov,
I was wondering why you like
shell.task(["jspm bundle-sfx app/main.ts " + paths.dist + "/" + paths.targetJS])

vs using the uglifier built into jspm
jspm bundle moduleA + module/b [outfile] [--minify]

tx
Sean

nvm, when I minified with the built in one, nothing loaded :)
tx

If I remember correctly the reason I did that was a bug in Angular 2 (at least until beta-2) where it wasn't loading properly if you also minified variable/function/argument names. Notice that the Gulp task has "mangle:false" for the uglify task. I had to do that, even though it means less minified code, to get it working. It was working prior to the beta's (alpha 4x), so I assume it's just a matter of waiting for an angular-2 version with this fixed.

got it, ya I remember seeing a bug on that, cool tx.

for me in order for eveyrthing to work, I have to include:

but in your code it works with it.. any idea why? just wondering...

hopefully they release new ts paths featurehttps://github.com/Microsoft/TypeScript/issues/5039

The two main things that you need from the polyfills are reflect-metadata and zone.js . You did import reflect-metadata in your app.ts, but you need to also install and import zone.js.
Install it with (I used a specific version so it's compatible with the one that the specific Angular2 version is using):
jspm install<EMAIL_ADDRESS>
Then, in your app.ts add:
import "zone.js/dist/zone.min.js";

Now, you can get rid of the import (which I don't like because it has a specific version in it and needs maintaining) and Angular2 can properly detect that the service call has completed and trigger its component refresh :)
Yeah, I'm waiting for that TS feature as well. I'm still not sure if it makes it into 1.8 or 2.0. I've written a whole workaround guide for our developers to provide typings intellisense until the TS project fixes it. You can have a look: Dependency Typings.pdf

this is great, do you have links to all your pdfs? love the ones you shared so far

this is great, do you have links to all your pdfs? love the ones you shared so far

Send me your email and I'll send them through. I need to figure out a way to convert them from Confluence to public friendly format. The images may be a problem - some are screen grabs from a presentation I liked, so it's good for sharing internally but not for using publicly.

great<EMAIL_ADDRESS>

...
                  {{item}}	                  {{content(item)}}	 ..

good reading so far, in ch-3

  "jspm": {
    "dependencies": {
      "angular2"<EMAIL_ADDRESS>      "angular2-simple-list": "github:InfomediaLtd/angular2-simple-list@master",

why does jspm need to update the package.json, isnt' config.js enough for it?
when you run jspm install, wouldn't it only look only at config.js? so what's the reason for updating package.json... reason I'd like to understand, if I add new packages in the future, I need to maintain updates to both config,js and package.json?  (might be good to update in book as well)

Another question I had is that on the last chapter you mentioned create a d.ts file for custom libraries, and I'm wondering why do you need to do that if you're working in a pure typescript environment, and intelisence should work off the orignal source files no?
great read so far...

FYI:
"
mhegazy commented 5 hours ago
@born2net (that's me_ this change does not support JSPM directly, you can add a path mapping for every package you use.
see #6012 for JSPM support.
"
from here: https://github.com/Microsoft/TypeScript/issues/5039
may interest you...

so done with pdf, really nice work.. its not easy reading for someone new.. I have spent 1+ months playing with Redux, rxjs, (jspm lately) ng2 and the rest of their friends so understood it all, great job. However I would expect readers to follow your links in the docs in order to fully understand it all...
another question I have and still not 100% sure is why  and the benefits of Typings vs DT...
good stuff that doc.

Thanks for the feedback. Much appreciated!
Re: why JSPM specified dependencies in two places. It's probably a question to JSPM's creator :) , but as for my understanding I think that the source of truth for JSPM is package.json. config.js is used by SystemJS and JSPM is the one responsible for bridging between package.json and config.js. JSPM installs dependencies off of what package.json specifies. Then, the specific version that is installed gets written to config.js. Notice that package.json can say<EMAIL_ADDRESS>and that means that only versions above beta.2 will be installed (not less). Then, during JSPM installation (or JSPM update) it will choose the right version and put that on config.js. It can change as you install other dependencies and update versions, but the source rules are in package.json. config.js has lots of other bits of information (transitive dependencies, etc.) and is the one used by SystemJS when loading the files at runtime.
I think you should refrain from updating the dependencies in config.js yourself. This should always be done with the JSPM CLI (install, uninstall, update, etc.). I do, however, find myself updating package.json versions when needed, to maintain consistency between library versions (zone.js matching angular's dependency, etc.).
Re: d.ts. I agree that theoretically it should find the "ts" files and use them, and I'd love for that to work out of the box. But, because "jspm_packages" is excluded from tsc, the files in there are not used by TSC, thus it doesn't recognise them. So, the way I've worked around that was by using "typings" to collect the d.ts for libraries that have them and add the ones that are missing. I tried various options, where I did include jspm_packages, but always had trouble with another library getting compiled accidentally. The other approach would be to specify what I want to include in TSC (instead of "exclude"), but that required specifying versions and I didn't want to have to update tsconfig with every new library or version that I change. If you find a better workflow I will be more than happy to adopt it :)
Re: Typings vs. DT. I think Typings is the newer project, created to replace DT. I liked the typings.json approach where it it used for installing the types (similar to how JSPM works with its dependencies), so I just went with it. Recently the creator of typings spoke in the AngularAir podcast and explained about it: http://audio.angularair.com/e/typescript-deep-dive-with-alex-eagle-and-blake-embrey
Thanks for the awesome feedback and your questions. It's great to have someone ask and challenge my thoughts. The set of tutorials was mainly built for a few days of training, where I go through it with a class. Less for someone to go through it themselves, so your comments do make sense. It's a lot to take in and very difficult to grok it all in one read. BTW, I've also planned some mini-project at the end, basically replicating the angular2-redux-example :) - Angular 2 Training Project.pdf

GOT IT!
Toda al hakol...

by the way, I tried to use typings, and I included in my module for example:
///
but got a TS error of:
Error:(18, 5) TS2309: An export assignment cannot be used in a module with other exported elements.
basically it didnt like the export = trunk in the typing file:
// Compiled using<EMAIL_ADDRESS>// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/75249b97104d00c1ca2451ac29369009a5f2b101/redux-thunk/redux-thunk.d.ts
// Type definitions for redux-thunk
// Project: https://github.com/gaearon/redux-thunk
// Definitions by: Qubo <https://github.com/tkqubo>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

declare module ReduxThunk {
    export interface Thunk extends Redux.Middleware {}
    export interface ThunkInterface {
      <T>(dispatch: Redux.Dispatch, getState?: () => T): any;
    }
}

declare module "redux-thunk" {
    var thunk: ReduxThunk.Thunk;
    export = thunk;
}

Does it happen to you also in the angular2-tutorial project inside the 7-redux step?
I did notice something funky with the export of this module. I think you had trouble with importing it and had to change the way it was imported. Later on I had the same issue in the angular2-redux project...

In that project (7-redux) run "npm run typings" to get the typings to be created.

it was in my own project, it's ok I will play with it some more... tx

any tips on this issue I have: https://github.com/jspm/jspm-cli/issues/1504

now that I started using jspm more heavily, it seems it takes me 10-15 seconds between each save for the browser to compile my TS and reload... is this what you are seeing? (in webpack it took around 6sec... ) wondering if there is a better way to debug / reload.... tx

Not sure what you're trying to do there. Are you trying to bundle just part of your application? Is that for a purpose for building several bundles to be loaded lazily or for creating libraries?
Does regular self executing bundle work for you?
jspm bundle-sfx src/app out.js --skip-source-maps

(and then just import "out.js" in a top folder index.html)
Also - side note - wouldn't you want to bundle the "ts" itself and not the "js"? Not that this would change the result, but I was wondering why you would want to go down to the "js" in bundling. JSPM should produce the js from the source ts anyway...

yes I was trying to lazy load Modules... but so far no luck. It works fine if I don't bundle as in:
static LoadComponentAsync(name:string, path:string) {

        return System.import(path).then(c => c[name]);
        ...

I will play with it some more tx...

Hi again,
How did you get TS compiler to not complain about:
import style from "./user-view.css!text"

@Component({
selector: 'user',
styles: [style],
...
regards,
Sean

I didn't. I use JSPM's TypeScript plugin, which goes around this problem by adding its own module resolution: https://github.com/Microsoft/TypeScript/issues/4595
Why do you need it to not complain? Are you using TSC outside of JSPM for some reason?
There's a good discussion about this problem here: https://github.com/Microsoft/TypeScript/issues/2709
The feature to support this in TSC is here (expected in 2.0, I think): https://github.com/Microsoft/TypeScript/issues/6615

ya I am using webstorm, no worries tx

Oh, right. Yeah, I've got a little dotted red line in Atom as well :)
BTW, I'm a huge fan of IntelliJ, but I've abandoned it a couple of months ago in favour of Atom (for web development only) because I got annoyed by its constant reindexing and slowdown when running "npm install"/"jspm install". Did you work around this somehow or do you just accept it? I still believe it's the best IDE around for productivity, but I just couldn't bear with the lags and constant freezing...

ha yes, just right click on the folde, select from the context menu "mark directory as" and set as excluded. Do that for node_modules, jspm and dist and it will never reindex all this stuff.
also be sure to .gitignore in the root of the project as:
src/**/*.map
src/**/*.js
src/*.js
src/*.map
/src/*.js
/src/*.map

and everything will work great!!!
I love the latest Webstorm early release, has all the Angular2 goodnes

Nice! I'll give that a try. Might just reignite my love for IntelliJ again :)

cool, not sure if intellij has the latest ng2 intellisence... maybe try webstorm beta, its free while beta

Do you have the TypeScript compiler enabled or do you just use the JavaScript language settings on 6/7 and let it resolve that automatically without TS compilation?

I think the two are the same, aren't they? They following similar EAP releases. Do you have an example of ng2 intellisense feature of Webstorm that I can try it on my IntelliJ?
BTW, I quite liked Atom's experience - it's fast and the UI is nice and clean...

will share my ui asap, check this https://youtu.be/RQSRKi3VZ3I

here you go:

so basically webstorm compiles so I can see the errors in the TS tab inside webstorm and of of course I also compile inside the browser tx to jspm, works awesome!

I also recommend you checkout: https://github.com/born2net/ng2Boilerplate/blob/master/gulpfile.js
did some clever stuff like restarting local web server every 10min using forever for best performance and being able to run
``gulp development --restart``` with flag so it does not launch a new browser every 10min
also found this config to be best for live server:
gulp.task('x_open_server_development', ['x_watch_source'], function () {
    process.stdout.write('Starting browserSync and superstatic...\n');
    browserSync({
        port: 8080,
        open: false,
        files: ['index.html', '**/*.ts'],
        notify: true,
        reloadDebounce: 400,
        server: {
            baseDir: './',
            directory: true
        }
    });
    opn('http://localhost:8080/src/public/index.html')
});

after a lot of trial and error...
hope that helps

Good stuff in there!! I'll definitely dig in and copy some of that to our own projects, if you don't mind :)
Thanks heaps.

are kidding.. baroor... :)

so did moving to Intelij worked out better?
I know you have a lot of experience with jspm, I am trying to load a global jquery lib but can't seem to get it to export the global
here: http://stackoverflow.com/questions/35422441/loading-jspm-bootbox-as-shim-global-member
any tips?

Still flip flopping between IntelliJ and Atom. Not sure I like configuring the exclusion per project - it's a bit annoying - but it may be just worth it for the awesome autocompletion. IntelliJ is by far the best IDE around, so I'm not giving up that easily :)
Couldn't find the page you've linked. Have you found a solution? I did something similar when loading MaterializeCSS in the angular2-materialize library: https://github.com/InfomediaLtd/angular2-materialize
You can add a shim to it when installing the dependency that needs it, like this:
jspm install materialize=github:Dogfalo/materialize -o "{'main': 'js/materialize','shim': {'js/materialize': {'deps': ['jquery','../css/materialize.css!'],'exports': '$'}},'dependencies': {'jquery': 'github:components/jquery','css': 'github:systemjs/plugin-css'}}"

ha got it tx

I improved a bit on your base class for Actions so I don't have to pass the store all the time, instead I inject it on the extending class..
export class Actions {

    private m_appStore:AppStore;

    constructor(i_appStore?:AppStore) {
        if (i_appStore)
            this.m_appStore = i_appStore;
    }

    public createDispatcher(action:(...n:any[])=>any, appStore?:AppStore):(...args)=>void {
        if (!appStore && !this.m_appStore)
            throw new Error('cant find AppStore for Actions base class');
        appStore = appStore || this.m_appStore;
        return (...n)=>appStore.dispatch(action.call(this, ...n))
    }
}

Great idea!
Here's the final code to commit:
export class Actions {

    private appStore:AppStore = null;

    constructor(appStore?:AppStore) {
        if (appStore) this.appStore = appStore;
    }

    public createDispatcher(action:(...n:any[])=>any, appStore?:AppStore):(...n)=>void {
        if (!appStore && !this.appStore) throw new Error("Can't find AppStore for dispatching action");
        appStore = appStore || this.appStore;
        return (...n)=>appStore.dispatch(action.call(this, ...n))
    }

}

Would you like to create a pull request and I'll get that in? Happy to check the above in myself, but to be fair to you I think it should be on your name :)

ha np,hosnstly I never did a PR, not sure on the process through webstom, no worries glad to help you back for all your support...

No worries. Will do.
Let's agree that next time you come up with a cool improvement I'll help you out with creating your first PR?
I recommend this free course on Egghead explaining the basics of Github and PR's: https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github
Also, even a better one, about creating an open source library: https://egghead.io/series/how-to-write-an-open-source-javascript-library
Both are by the awesome @kentcdodds

sweet tx!

Thanks for the shoutout @rubyboy! I hope this helps you @born2net! :+1:


UINOTES-134 Unable to use the Tab key to create indented lists

purpose:
https://issues.folio.org/browse/UINOTES-134
cause:
discussed in slack, but shortly TemplateEditor Indent attributor overrides default one globally
approach:
as Quill doesn't support on instance level and doesn't provide unregister functionality, default attributor can be reverted in componentWillUnmount

@zburke thanks for review, updated


[Android] IPC message should be setup when subframe is created

Currently, intercepting http requests with shouldInterceptLoadRequest
is unreliable in combination with iframes, the root cause is that no
ipc message sent from renderer to browser process when subframe is
created, then the XWalkContentsIoThreadClient will not be created.
BUG=XWALK-5621

@lincsoon @axinging @XiaosongWei @fujunwei @wuhengzhi
Please help to review, thanks.

LGTM

@lincsoon @axinging @XiaosongWei  @wuhengzhi
Please help to review, thanks.

I think we should lift test cases from https://github.com/crosswalk-project/chromium-crosswalk/blob/master/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldInterceptRequestTest.java

@wuhengzhi Current codebase already have the same test case in ShouldInterceptLoadRequestTest.java

LGTM

@pozdnyakov  could you review since you're the OWNER of C/C++ part.

LGTM, thanks.

@pozdnyakov could you help review? thanks a lot.

@pozdnyakov could you help to review? thanks.

rs=me as a fixer for XWALK-5621
however I wonder is it Android-specific problem and couldn't it be converted to a cross-platform solution?

@pozdnyakov
Per my understanding, it's should be a Android specific problem, chrome and contentshell don't have such event "SubFrameCreated", while Android WebView has.

@halton can this patch to merge?

@pozdnyakov could you explain what's mean of "rs=me"?
And do you think this patch can be merged?

I am not right owner to do the merging, @pozdnyakov，could u do that?

@pozdnyakov could you help to do that?


Language server failure: c++ (timeout)

Check for existing issues

[X] Completed

Language
C++
Tree Sitter parser link
No response
Language server link
No response
Misc notes
Dear developers,
I just want to ask is there a possible to download C++ language server by myself. Cause I always get the result of [28] Timeout was reached.

The is part of https://github.com/zed-industries/community/issues/887. There are two workarounds:

Download the server manually and unzip it to $HOME/Library/Application Support/Zed/languages:

Delete the folder languages/clangd. Set the http_proxy in a terminal session and launch zed from there.

Super appreciate you mentioning the workaround here @TENX-S, would you have any interest in adding a Share a Tip forum post in our Discussions for this?
I'm also compiling a new list of issues surrounding language server download bugs, to give to the team, and I'll include the issue about adding an http_proxy setting.

Super appreciate you mentioning the workaround here @TENX-S, would you have any interest in adding a Share a Tip forum post in our Discussions for this?
I'm also compiling a new list of issues surrounding language server download bugs, to give to the team, and I'll include the issue about adding an http_proxy setting.

Done. #1395

Super appreciate you mentioning the workaround here @TENX-S, would you have any interest in adding a Share a Tip forum post in our Discussions for this?
I'm also compiling a new list of issues surrounding language server download bugs, to give to the team, and I'll include the issue about adding an http_proxy setting.

Done. #1395

Thank you so much!  Hugely appreciated!

Thanks for your help! It really helps a lot! 👍  @TENX-S

I'll close this one out as it looks like we found a resolution. 🙂


Get tags for virtual table lines and cells

With respect to the following feature in trace-server:
@Schema(description = "Tags for the entire line. " +
        "A bit mask to apply for tagging elements (e.g. table lines, states). " +
        "This can be used by the server to indicate if a filter matches and what action to apply. " +
        "Use 0 for no tags, 1 and 2 are reserved, 4 for 'BORDER' and 8 for 'HIGHLIGHT'.")
int getTags();

We can now get the corresponding tags for both lines and cells.
0 -> NO_TAGS
1 & 2 -> RESERVED
4 -> BORDER
8 -> HIGHLIGHT

@MatthewKhouzam
I addressed the tags bitmask situation. Right now, instead of processing it as an enum, it'll be considered as a bitmask that can handle multiple values (e.g., BORDER and HIGHLIGHT)


[rmodels] GetRayCollisionBox() occasionally returns incorrect collision information

Please, before submitting a new issue verify and check:

[x] I tested it on latest raylib version from master branch
[x] I checked there is no similar issue already reported
[x] My code has no errors or misuse of raylib

Issue description
GetRayCollisionBox() may be producing slightly incorrect results, as can be seen in the screenshots. I've verified this behavior with raylib's CAMERA_FREE mode, custom cameras, bounding boxes being output from GetMeshBoundingBox(), and bounding boxes manually generated as in the example.
I'd expect GetRayCollisionBox() to return RayCollisions where hit == true only when ray collides with the bounding box, and for it to never return true when the ray does not intersect a bounding box. I am seeing both, depending on where the ray is fired into the scene.
Briefly describe the issue you are experiencing (or the feature you want to see added to raylib). Tell us what you were trying to do and what happened instead. Remember, this is not the best place to ask questions. For questions, go to raylib Discord server.
Environment
Platform: PC
OS: Arch Linux
OpenGL version:
$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.2.4
GPU Details:
*-display
description: VGA compatible controller
product: Vega 10 XL/XT [Radeon RX Vega 56/64]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
Issue Screenshot

Code Example
Example can be found at https://github.com/AbyssalThistle/bbox-example, master branch has a minimal single-camera example whereas the feat/two-cameras branch contains a second camera that can be toggled to with 'r' to make viewing the issue a bit easier.
Once a ray is fired into the scene, affected BoundingBoxes are rendered in Red, and the closest is rendered in Green.
Replication
The function not returning a collision where hit==true where it should can be reliably be replicated by clicking where the box closest to the camera intersects with both it's adjacent neighbor and the box diagonally-behind it.
The function returning hit==true can be replicated by clicking below the BoundingBox closest to the camera.

Hey, cheers for taking the time to look into this. A small example can be found here, and a video that better highlights the issue can be seen here:
https://user-images.githubusercontent.com/5711298/139672419-8b8ccacf-68a4-45a1-b429-1e11b10a0291.mp4

@MatthewOwens It seems the issue is related to the bounds you are checking vs the cubes drawing, you are using bbounds.min to draw the cube but that the draw position should refer to the center of the cube, so you are checking the collision against offseted cubes. I reviewed your example, now it works:
#include "raylib.h"
#include "raymath.h"

#define WIDTH 5
#define HEIGHT 5

BoundingBox bboxes[WIDTH * HEIGHT];
bool indicesAffected[WIDTH * HEIGHT];
Ray ray = {0};
int collisionIndex = -1;

Camera3D camera = { 0 };

void ClearAffectedIndices()
{
    for(int i = 0; i < WIDTH*HEIGHT; ++i) { indicesAffected[i] = false; }
}

void CameraInit()
{
    // Define the camera to look into our 3d world
    camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
    camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };      // Camera looking at point
    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };          // Camera up vector (rotation towards target)
    camera.fovy = 45.0f;                                // Camera field-of-view Y
    camera.projection = CAMERA_PERSPECTIVE;             // Camera mode type

    SetCameraMode(camera, CAMERA_FREE);
}

Vector3 getBBSize(BoundingBox b)
{
    return Vector3Subtract(b.max, b.min);
}

int main(void)
{
    // Initialization
    //--------------------------------------------------------------------------------------
    const int screenWidth = 800;
    const int screenHeight = 450;
    const float OFFSET = .1f;

    InitWindow(screenWidth, screenHeight, "raylib");

    CameraInit();

    for(int i = 0; i < WIDTH; ++i) {
        for(int j = 0; j < HEIGHT; ++j) {
            bboxes[i*HEIGHT + j] = (BoundingBox){
                (Vector3){i + OFFSET*i, 0, j + OFFSET*j},
                    (Vector3){i + 1 + OFFSET*i, 1, j + 1 + OFFSET*j}
            };
        }
    }

    SetTargetFPS(60);                   // Set our game to run at 60 frames-per-second
    //--------------------------------------------------------------------------------------

    // Main game loop
    while (!WindowShouldClose())        // Detect window close button or ESC key
    {
        // Update
        //----------------------------------------------------------------------------------

        UpdateCamera(&camera);

        if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) {
            ClearAffectedIndices();
            ray = GetMouseRay(GetMousePosition(), camera);
            RayCollision cinfo = {0};
            float minDistance = 99999.f;
            collisionIndex = -1;

            for(int i = 0; i < WIDTH * HEIGHT; ++i) {
                cinfo = GetRayCollisionBox(ray, bboxes[i]);
                if(cinfo.hit) {
                    indicesAffected[i] = true;
                    if(cinfo.distance < minDistance) {
                        minDistance = cinfo.distance;
                        collisionIndex = i;
                    }
                }
            }
        }

        //----------------------------------------------------------------------------------
        // Draw
        //----------------------------------------------------------------------------------
        BeginDrawing();

            ClearBackground(DARKGRAY);

            BeginMode3D(camera);

                for (int i = 0; i < WIDTH*HEIGHT; ++i)
                {
                    DrawCubeWiresV(Vector3Subtract(bboxes[i].min, (Vector3){ -0.5f, -0.5f, -0.5f }), getBBSize(bboxes[i]), indicesAffected[i]? RED : WHITE);
                }

                DrawRay(ray, SKYBLUE);

                if (collisionIndex != -1) DrawCubeWiresV(Vector3Subtract(bboxes[collisionIndex].min, (Vector3){ -0.5f, -0.5f, -0.5f }), getBBSize(bboxes[collisionIndex]), GREEN);

            EndMode3D();

            DrawRectangle( 10, 10, 320, 80, Fade(SKYBLUE, 0.5f));
            DrawRectangleLines( 10, 10, 320, 80, BLUE);

            DrawText("Controls:", 20, 20, 10, BLACK);
            DrawText("- Left Click to fire a ray", 40, 40, 10, DARKGRAY);
            DrawText("- Standard free camera controls", 40, 60, 10, DARKGRAY);

        EndDrawing();
        //----------------------------------------------------------------------------------
    }

    // De-Initialization
    //--------------------------------------------------------------------------------------
    CloseWindow();        // Close window and OpenGL context
    //--------------------------------------------------------------------------------------

    return 0;
}

Hey Ray, thanks again for your help! And sorry I didn't catch that earlier, cheers

@MatthewOwens No worries! It's easy to get confused with current BoundingBox type, I never liked that implementation with min and max points.


defineProperties Error: No overload matches this call

Describe the bug
Haven't been able to correctly setup vanilla-extract/sprinkles because TS fails to be able to match any of the properties expected in the defineProperties function.
Also reproduced on a local repo with a fresh repo of NextJS 13 and no other dependencies installed.
No overload matches this call.
  The last overload gave the following error.
    Argument of type '{ conditions: { mobile: {}; tablet: { '@media': string; }; desktop: { '@media': string; }; }; defaultCondition: string; }' is not assignable to parameter of type 'UnconditionalAtomicOptions<AtomicProperties>'.
      Object literal may only specify known properties, and 'conditions' does not exist in type 'UnconditionalAtomicOptions<AtomicProperties>'.ts(2769)

Reproduction
Copied the exact code given in the docs for conditions
https://www.typescriptlang.org/play?ts=5.1.6#code/JYWwDg9gTgLgBAbzgEwKYDNgDtUAUoRiqzCoDOcAvnOgSHAEQACAbgIZbAA2XbAtKgAeMKGwDGMAPRkwUbAGsu5BgG4AUGrEQsZeLMLEYpCgF4UGbHgJES5ABQI1cOFqzJgR7WQBciJ87gQCAAjblRfBEoAGn9nGDZgpRgIuAByJhBUdzZU31SyMShUVCw4DmQ4OxBsPgB3YGQYAAtfAHYANgAOMEEASlSqGIDzMnkYQhT0zOzctIKikrK3SuqsOobm3wBGAAYAJgAWHv6qf2j-NHQ2AFcuGABhbXdPLDyg0KVUmMpeoA
System Info
N/A

Used Package Manager
yarn
Logs
No response
Validations

[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible example of the bug.

In your example you have not defined any properties, try adding properties: {}:
import { defineProperties } from "@vanilla-extract/sprinkles";

const properties = defineProperties({
  conditions: {
    mobile: {},
    tablet: { '@media': 'screen and (min-width: 768px)' },
    desktop: { '@media': 'screen and (min-width: 1024px)' }
  },
  defaultCondition: 'mobile',
  properties: {
    ...
  }
})

Thanks @mc-petry looks like I am misunderstanding how to use Sprinkles to begin with 😄


Last best model should still indicate issues with current parse

When we have an issue with a parse, we use the last known good model, which is fine. But we should also pass on the issues with the current parse so the user can act on them.

Currently we do very simple repairs on the document which suffices to handle the brokenness that comes when typing the document. We do not try to make any repairs for any actual issues with the document and this should be fine. For this reason this issue does not make sense anymore.


feat: paramsbuilder: API Key client

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#902
#901
#900  👈
#899
#898
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Cobalt0s and the rest of your teammates on  Graphite


Create channel

/del

The github issue tracker is reserved for feature requests and bug reports. Your issue is neither and should be sorted out inside of our discord server. Go to discord.gg/0hMr4ce0tIl3SLv5 to receive the needed help.


Need to handle Page Title that can't be XML id

A country page has a h2 title that includes brackets (like France (Brittany)).
We should probably handle this by removing the brackets.

Fixed in #489.


use MySql Private Messages Error

Class PrivateMessageService, Fun GetUsersPrivateMessages
“System.Data.Entity.Core.EntityCommandExecutionException”
"Unknown column 'Distinct1.C1' in 'where clause'"
Suggestion: give priority to with Mysql development

Sorry MySql is not supported.

Sqlserver is good来自我的华为手机-------- 原始邮件 --------主题：Re: [YodasMyDad/mvcforum] use MySql Private Messages Error (#70)发件人：Lee 收件人：YodasMyDad/mvcforum 抄送：Sorry MySql is not supported.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.


Rename Desktop Tray App to "tray"

Based on team conversation, we're separating the desktop window-based app from the desktop tray-based app. Renaming the tray app to 'tray' in go-textile will kickoff this change.

Fixed with #592


Implement infinite scroll on dashboards to fix account switcher closing

This is an alternative to PR #25 that also fixes Issue #19, just in a different way.
The more() function is gone, and instead there's an infinite scroll on the dashboard. It mashes the button from one page height away, so you shouldn't see the "More" button even with fast scrolling.
Also, this improves the isDashboard definition, catching ~/dashboard and organization dashboards too.

Closes #25
Fixes #19

Good idea!

Just a follow-up question, would it be possible to always have the next page loaded when you scroll down? So you wouldn't have to see the loading indicator and wait.

I suppose you could just remove the scroll distance if test on line 70:
if (wScroll > (btnOffset - wHeight)) {
    btn.click();
}

Leave only the btn.click() and it'll start (s)mashing that button on every scroll. It's possible that there'll be a performance hit, so I'd want to debounce/throttle it, but it's up to you.

If you want to do that LMK and I'll make a new PR. Keep in mind that cmd+↓ is an immediate scroll to the botton and the button will show a loading gif as it makes the XHR to GH and then updates the DOM, so there's always some edge there (I think).

@paulmolluzzo Hmm, not that important. Let's leave it like it is for now.


fix(book): add missing device parameter to mode.init()

Fix outdated code in book.
Add missing device parameter to model.init() function.
Pull Request Template
Checklist

[ ] Confirmed that run-checks all script has been executed.
[x] Made sure the book is up to date with changes in this PR.

Changes
Fix outdated code in book.
Add missing device parameter to model.init() function.

@apertureless thanks for fixing some mistakes in the book 🙏


Update Cache Logic.

At the moment the caching logic is quite rigid and simplistic. How is this normally done?

@anthonyalmarza, is this still open in your mind?
Do we want to transform it into a tag or milestone?


Rationalize Restrictions, Capabilities, Priviledges into Assignables

Classes

Assignable

DappPolicy
Privilege
SchemaAssigned (former Capabilities and Restrictions)

Order

OrderGroup
.after()

Hierarchy:

Trait
    Transformer that transforms (or create or check) data
        Capability of a schema, required by modes
        Restriction on a schema
Privilege that can be checked

Collections:
    Traits[Trait]
    Transformers[Transformer]


Main menu behaves differently than in all other programs

Poedit 2.0beta3
Windows 10
To reproduce:

Click on the File menu
Click again on the File menu

The file menu stays open. In all other applications (I tried Notepad, Thunderbird, eventvwr.exe) the menu is closed on the second click. The other applications differ in whether the File menu item has an active or inactive background, but they all close the menu and drop the keyboard focus.
Further:

Click on the File menu
Doubleclick on the File menu

Now the menu closes.

Does the build from https://github.com/mity/mctrl/pull/52#issuecomment-284026456 help by any chance?
(BTW, I'm not ignoring your other bug reports, I'll attend to them once the next 2.0 beta is feature-complete.)

No, it doesn't. The menu still behaves exactly as I described it above.


Imposition column absorbs dragged columns

Steps to reproduce

Add imposition column
Drop numerical column
Drop categorical column (up to here it's working)
Drop another numerical column
Drop another categorical column

Observed behavior
Dropping further numerical or categorical columns results in the loss of the column. The user has to add the columns manually again.

Expected behavior
There are two possible behaviors (we have to discuss and decide):
First option
The last dropped column overrides the previous column (which is not the case at the moment). Then it would be nice if the previous column will be added next to the imposition column, to prevent that the user has to add it again from the add column dropdown.
Second option
The last dropped column gets rejected by the imposition column and appears at its original position. However, this might be a bit counter-intuitive, because then the user has to split the imposition column first and add a new imposition column from the add column dropdown.

General issue -> moved to https://github.com/datavisyn/lineupjs/issues/114.


fix #14: in test3, the client should send Request from the last used add...

...r with changeport flag

Coverage remained the same at 32.31% when pulling d7e7c2ff6cee004ad6f2e1fbb152366098fd1f71 on hmgle:fix_test3 into de7bc85e370ecc2fd2814123bb97b79282a4662a on jtriley:develop.

Coverage remained the same at 32.31% when pulling d7e7c2ff6cee004ad6f2e1fbb152366098fd1f71 on hmgle:fix_test3 into de7bc85e370ecc2fd2814123bb97b79282a4662a on jtriley:develop.

Please merge this PR soon.


Services list in documentation is incomplete

The table in the README on GitHub includes quite a few mock services which aren't listed in the docs (source), such as

ACM
CloudwatchEvents
Cognito Identity
Cognito Identity Provider
DynamoDB
DynamoDB2
ECR
ELBv2
IoT
Logs
etc etc

Closed with https://github.com/spulec/moto/pull/2258


Generate PGP keys to be used with Flux+SOPS

This is a feature request that came out in a secret management workshop held with a customer.
This is a customer feature request with three parts. As a Giant Swarm customer:

I'd like to have a PGP key pair generated for each Workload Cluster.
I'd like for the private PGP key to be delivered to Workload Cluster in a secret usable with SOPS.
I'd like for the public PGP to be published somewhere.

As a customer, I'd live to have the 3 points above automated (@kubasobon if i'm wrong, pls remove this sentence :))
Additional requirements for key safety were mentioned during the workshop, like generating more than one key pair for backup.
These additional requirements will be further refined and discussed during the implementation work

@kubasobon can we close this as this is done?

Closing, as we have this now in kgs gitops


Attachment can not be downloaded

Once attached a file the download button appears. Once click on the button it shows an empty progress bar and download is not continuing.

Read this thread: #196

It should work, I tested and in latest develop it seems wroking. If you have exact issue please give a detailed explanation, and open a new issue with more details and we could help you more..


fix: smoke test flakiness

Description of changes
Fixes https://app.circleci.com/pipelines/github/aws-amplify/amplify-cli/20881/workflows/468fd9d8-b8cb-4089-a3e0-f79df2e23416/jobs/985277 .

Issue #, if available

Description of how you validated changes
Checklist

[ ] PR description included
[ ] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies
[ ] Pull request labels are added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #12760 (fd3e271) into dev (ec9a2ba) will increase coverage by 48.44%.
The diff coverage is 55.46%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@             Coverage Diff             @@
##              dev   #12760       +/-   ##
===========================================
+ Coverage    0.00%   48.44%   +48.44%
===========================================
  Files        1296      841      -455
  Lines      149743    38062   -111681
  Branches     1296     7749     +6453
===========================================
+ Hits            0    18439    +18439
+ Misses     148447    18036   -130411
- Partials     1296     1587      +291

Impacted Files
Coverage Δ

...ify-category-function/src/events/prePushHandler.ts
33.33% <0.00%> (+33.33%)
:arrow_up:

...ider-utils/awscloudformation/utils/layerHelpers.ts
21.80% <0.00%> (+21.80%)
:arrow_up:

...ib/S3AndCloudFront/helpers/configure-CloudFront.js
87.06% <ø> (+87.06%)
:arrow_up:

...lify-category-hosting/lib/S3AndCloudFront/index.js
89.65% <ø> (+89.65%)
:arrow_up:

...e/src/amplify-node-pkg-detector/lock-file-types.ts
100.00% <ø> (+100.00%)
:arrow_up:

.../src/amplify-node-pkg-detector/yarn-lock-parser.ts
100.00% <ø> (+100.00%)
:arrow_up:

packages/amplify-cli-core/src/constants.ts
100.00% <ø> (+100.00%)
:arrow_up:

...es/amplify-cli-core/src/context/plugin-platform.ts
33.33% <0.00%> (+33.33%)
:arrow_up:

...s/amplify-cli-core/src/errors/amplify-exception.ts
82.35% <ø> (+82.35%)
:arrow_up:

...ackages/amplify-cli-core/src/help/commands-info.ts
100.00% <ø> (+100.00%)
:arrow_up:

... and 32 more

... and 1262 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


With escaped apostrophes version of Italian translation by @anthologist

This is https://github.com/freeotp/freeotp-android/pull/184 by @anthologist (https://github.com/anthologist) except the unescaped apostrophes are now escaped as suggested by @dvanbalen (https://github.com/dvanbalen ) .
It seemed the lack of a few escaping backslashes were all that was holding this Italian translation up - so I've done those.
As pull requests are under Apache License https://github.com/freeotp/freeotp-android/blob/master/COPYING I think this is fine - as I am clear about who deserves credit for the actual translation (I'm just the backslash guy).

Thanks, @byjosh
Further merging of translations is temporarily on hold until some refactoring is completed within the repository. At that point, it should get merged. Thanks, everyone, for their patience.

Thanks for explanation @dvanbalen (looking at date of last request I thought it might have been one of those "small things left by busy people").
Not sure if you are the person (nor this the place) but will mention https://github.com/freeotp/freeotp-android/pull/242 while I'm here - it would make significant usability improvement for new users doing key addition for an insignificant amount of change (2 lines) - and, while the refactoring would likely fix issue & more besides; if build -> App Store is fairly automated & quick then it seems a very easy win for new users in the meantime (which might last some time).
Thanks again.


resource addition

added under the following heads
-interview prep section
-ds algo with c/c++ and python
-ml ai nlp

Thanks, Mauwaz for help. We loved your contribution. ❤
@all-contributors please add @mauwazahmed for content


configure cert trust

fixes #283

@dovholuknf This branch completes the broken implementation of cert verification in the console server app and is ready for review.


The left and right cameras of the binocular camera cannot be opened

I used the following python code to try to open the binocular camera, the actual effect of opening only opened the right camera, and then the camera data is cut into two parts, I do not know the reason, please analyze it, or there is a similar code for reference, thank you! Python code was written by a reference to CSDN bilateral Lord, he can normal open, I can only open the right side of the camera, link is as follows: https://blog.csdn.net/qq_41204464/article/details/113090604# -- coding: utf-8 --
import cv2
import time
AUTO = False
INTERVAL = 2
cv2.namedWindow("left")
cv2.namedWindow("right")
camera = cv2.VideoCapture(0)
camera.set(cv2.CAP_PROP_FRAME_WIDTH,1280)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT,480)
counter = 0
utc = time.time()
folder = "./SaveImage/"
def shot(pos, frame):
global counter
path = folder + pos + "_" + str(counter) + ".jpg"
cv2.imwrite(path, frame)
print("snapshot saved into: " + path)

while True:
ret, frame = camera.read()
left_frame = frame[0:480, 0:640]
right_frame = frame[0:480, 640:1280]

cv2.imshow("left", left_frame)
cv2.imshow("right", right_frame)

now = time.time()
if AUTO and now - utc >= INTERVAL:
    shot("left", left_frame)
    shot("right", right_frame)
    counter += 1
    utc = now

key = cv2.waitKey(1)
if key == ord("q"):
    break
elif key == ord("s"):
    shot("left", left_frame)
    shot("right", right_frame)
    counter += 1

camera.release()
cv2.destroyWindow("left")
cv2.destroyWindow("right")

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Hi @kay2019-art  Once the Python compatibility wrapper pyrealsense2 has been installed, you can access both the left and right infrared sensors with the code below.
import pyrealsense2 as rs

pipeline = rs.pipeline()
ctx = rs.context()
device = ctx.devices[0]
config = rs.config()

config.enable_stream(rs.stream.infrared, 1, 1280,720, rs.format.y8, 6)
config.enable_stream(rs.stream.infrared, 2, 1280,720, rs.format.y8, 6)

profile = pipeline.start(config)

@MartyG-RealSense Both usb2 and usb3 can only open the right camera. Can you provide the complete code for opening the left and right cameras using pyrealsense2 package? Here, only the pyrealsense2 package can be detected

On a USB 3 connection the above code does access both left and right cameras, by assigning an index number to each sensor (1 for the left sensor and 2 for the right sensor).
If you are able to access the right IR camera then this would indicate that you are on a USB 3 connection.  However, it is important to remember that it is left and right viewed from a position behind the camera facing forwards.  Because of this, when looking at the front of the camera the left sensor is on the right side of the camera.

@Wanderx13 What packages do I need to download and what problems can I solve

@MartyG-RealSense My camera model is 405, without infrared function. I understand the logic of left and right cameras you said, but I can only open one camera in any operation. May I ask how to obtain the id of left and right cameras for opencv to call

D405 cameras do have left and right infrared sensors.  There are rare cases on Windows computers when the infrared streams are not accessible because of damaged camera drivers, which is fixed by removing and re-installing the drivers.
A situation on D405 where only the left infrared stream is available on a USB 3 connection is if the left stream's format is set to RGB8 or BGR8 instead of Y8.
In RealSense programs with OpenCV code where the RealSense image is converted into an OpenCV image, only one of the infrared streams is usually used.  It may not be necessary to use both streams, since they will look almost the same except for one's view being slightly offset horizontally from the other's view due to the IR sensors' positions on the front of the camera.
There is not a pyrealsense2 example of using both left and right IR sensors with OpenCV, though there is a C++ OpenCV example script using both sensors at https://github.com/IntelRealSense/librealsense/issues/1480 that you might be able to use as a reference for attempting to convert it to Python code.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."


Flawless emerald is impossible to get at MV

MV laser engraver requires flawless emerald to make (MV emitter) and the only way to make it is either sifting purified emerald (unobtainable without MA) or HV laser engraving which needs MV engraver to get (stainless <- mv energy hatch <- ULPIC)

It is possible since Beta 3


typos/weird data in arangosearch examples

See: https://github.com/arangodb/docs/blob/master/3.7/arangosearch-examples.md
Note that the example results being returned from ExampleCollection1/128 contain a c property that doesn't exist.  I assume this is meant to be i, but the numeric values returned don't match any of the input data, either.

Thanks for letting us know about this mistake! It should be "i": 4 and "i": 5.
PR: #423


Dynamic wizard

Can we create wizard dynamically

Hi @saileshkush95 , do you mean a multipage (each page a form) wizard?

Yes, I'm mean multi step form

Ok @saileshkush95 so with the current implementation, you have 2 ways to achieve that:

Either use a dynamic-form component for each page and listen to the changes with  @change="valueChange" and save all the forms values in the same object so they're available at the end or.
Use 1 (one) dynamic-form component and apply the multistep using CSS and customClass property for each field.

Defenately I'll try as you suggested.

Should the declarative form model support the concept of a "page" of fields, like you will with fieldset?


something wrong with migrate:rollback

Laravel Version: 5.5
Voyager Version: 1.1
PHP Version:7.1.6
Database Driver & Version:5.7

migrate:rollback wrong!
 SQLSTATE[HY000]: General error: 1832 Cannot change column 'role_id': used in a foreign key constraint 'users_role_id_foreign' (SQL: ALTER TABLE dg_users CHANGE role_id role_id INT DEFAULT NULL)

wrong in the Migration order?

Is this an upgrade or fresh install?
This issue has been reported before, but should've been fixed.

Experiencing the same issue.
There is a patch. It is waiting to be pulled in.
https://github.com/the-control-group/voyager/pull/3073

Closing as #3073 was merged.

It seems that this is still an issue... any updates?

The fix contained a breaking change, so it was merged into the 1.x branch.  It's fixed, but in a future 1.2 release, not 1.1.*


Data Factory Schedule Trigger - Timezone doesn't appear to do anything

Bug Report

import path of package in question github.com/Azure/azure-sdk-for-go/services/datafactory/mgmt/2018-06-01/datafactory
SDK version e.g. 34.1.0
go version go1.12.5 darwin/amd64

Issue
The Data Factory Schedule Trigger has a timezone attribute in ScheduleTriggerRecurrence but it doesn't appear to do anything. No matter the value I pass, whether a valid timezone or not, only seems to be stored in the API but never acted upon.
Reproduce
Pass any value into the timezone attribute to see that it doesn't affect end_time or start_time
{
	"id": "/subscriptions/xxxx-xxxxx-xxxx-xxxx/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/triggers/example",
	"name": "example",
	"type": "Microsoft.DataFactory/factories/triggers",
	"properties": {
		"type": "ScheduleTrigger",
		"typeProperties": {
			"recurrence": {
				"frequency": "Minute",
				"interval": 1,
				"startTime": "2019-11-04T12:52:55Z", // Want PST but read as UTC
				"timeZone": "Pacific Standard Time"
			}
		},
		"runtimeState": "Stopped"
	},
	"etag": "xxxxx-xxxx-xxxxx-xxxx"
}

As noted in the documentation here https://docs.microsoft.com/en-us/azure/data-factory/how-to-create-schedule-trigger, we only support UTC for now. The value of the timezone property does not matter.
"timeZone | The time zone. Currently, only the UTC time zone is supported."

Close this issue since this is by design of the service side.


Permanent arm64 build

Hi all!
I really like this project and have built a 10-unit cluster of Raspberry Pi 3B+ units to run kubernetes. However, I would really like to use rook.io as storage solution which fails due to 64-bit requirements.
I found the link in the blog to the 64-bit fork, but it seems a bit stale. Thus, I am wondering if it would be possible to actually build this image for both 64-bit and 32-bit arm here?
I have a fork of my own of this repo and have tried to make a generalized build where you can choose 32-bit or 64-bit (based on the @DieterReuter 's build), but I currently stuck after running the cloud-init script during booting.
So a couple of things:

Discussion: Is a dual-architecture build version a good thing to have here?
Should I submit a PR on my not yet working attempt?
Any suggestions on why my build is stuck?

I really like the idea to have both 32bit and 64bit builds in one place. But I'm not sure if this is easy to do, because in 64bit repo there are quite some differences to the 32bit build process. At least we should make sure that both builds are in sync.

I believe most differences are because of the 32-bit build is based on raspbian whereas the 64-bit build is based on debian. Maybe the differences would be small if both where based directly on debian?

I would love to see a true 64bit version of hypriot. Hopefully this gets picked up by the devs.

Maybe this  development could enable the raspbian (and therefore platform optimized) based 64bit hypriotOS @DieterReuter ?
If it is focused on rpi4 first and backported later, depending on kernel development, this might be the way to go in my opinion.

I would see a true 64bit version of hypriot,
https://ubuntu.com/blog/updated-images-of-ubuntu-for-the-raspberry-pi-2-3-and-4
Ubuntu Server 19.10.1 ARM64
or:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=250730
Force Raspbiam 64bit

@neerdoc  I had time to look into your build issue, it fails on:
+ '[' '!' -f /workspace/arm64/rootfs-arm64-raspbian-v2.0.1.tar.gz ']'
+ wget -q -O /workspace/arm64/rootfs-arm64-raspbian-v2.0.1.tar.gz https://github.com/hypriot/os-rootfs/releases/download/v2.0.1/rootfs-arm64-raspbian-v2.0.1.tar.gz
make: *** [sd-image] Error 8
Exited with code 2

the thing is there are no raspbian package in releases for arm64, only this:
rootfs-arm64-debian-v2.0.1.tar.gz
rootfs-armhf-debian-v2.0.1.tar.gz
rootfs-armhf-raspbian-v2.0.1.tar.gz
maybe we could try debian instead or create arm64 on raspbian.
Can someone say how hard it would be to build arm64 raspbian package.

https://ubuntu.com/download/raspberry-pi
Download "64-bit  Ubuntu 18.04.4 LTS"

Thanks @Zakspeed for the heads-up.

Note the new Raspberry Pi OS currently has a 64-bit OS beta that looks like it's even more directly built from Debian Buster.
Not sure where that puts things for HypriotOS, but it seems likely that maybe both OSes will converge to be somewhat closer to Debian at some point (and less Raspbian-ish)?

I tried the stable 64 bit kernel by setting arm_64bit=1 in /boot/config.txt and it just works. The only problem is, that the whole distro is still 32 bit so I can't even run 64 bit docker container as docker still think it's 32 bit.
I need 64 bit support for influxdb which have some OOM problems with the 32 bit version.


 This means, however, that currently there's not a way to represent values like %3B - this allows for a complete encoding by also encoding %25.
Note that the task-lib already does this - https://github.com/microsoft/azure-pipelines-task-lib/blob/0d9223f07484efb6168c67d3632bfa6526c401c7/node/taskcommand.ts#L106
This change comes with a little risk. If anyone is expecting %25 to return %25 instead of % they'll be broken, that's why I put this behind a knob. I think its the right thing to do, though, since right now its essentially impossible to reliably encode %3B

This is failing CI and my local build because of some myget.org issues unrelated to the change. It shouldn't go in until we're able to build obviously, but I'd appreciate some feedback on the principle behind this change

Can we add some tests?

Can we add some tests?

Yeah - I still can't build, but I will when our dependencies start working 😢

@alex-peck, added a test - builds are working again too

After discussing with @mjroghelia decided to leave this off at first with the intent of turning it on down the line if it doesn't seem like it will break too many people.


Added wave sort

I have added the wave sort algorithm to the repository.

Add readme file and delete .exe file

Didn't made suggested changes


fix(local): Ensure webdriver.gecko.driver path is passed to Selenium

Always pass webdriver.gecko.driver property to Selenium if set in local
mode
fixes #4501

I signed it!

Hi @bdellegrazie
Isn't this also related to this https://github.com/angular/protractor/pull/4412?

@wswebcreation: yes it is ... but that PR was merged, adds webdriver.chrome.driver but not webdriver.gecko.driver ... all this does is "finish" it.
If you'd prefer me to add this to that PR, I'm happy to do so.

Tnx for the reply. I can, but may not merge it. I'll let that up to the core team ;-)

So this pull req. is not merged because of the timed out command in tests?

I've rebased the change in the hope the tests pass this time.

All tests have passed @wswebcreation @costescuandrei  can someone from the core team please merge?

@cnishina any chance of a review please?

+1 for merging this in & Thanks @bdellegrazie for updating it.

Thanks. Merged.


bugfix

diff --git a/src/future.ml b/src/future.ml
index 58174ca..9153c35 100644
--- a/src/future.ml
+++ b/src/future.ml
@@ -387,7 +387,7 @@ module Scheduler = struct
        | [s] -> Format.fprintf ppf "%s" s
        | (x :: _) as group ->
           Format.fprintf ppf "%s.{%a}"
-            (Filename.chop_extension x)
+            (Filename.remove_extension x)
             (Format.pp_print_list ~pp_sep:pp_comma pp_ext)
             group in
      let pp_contexts ppf = function

Can you submit a PR?

I can't event compile now
[vb@parvati ~/code/jbuilder]% make
./boot.exe -j 4 --dev
Running[0]: /home/vb/.opam/tezos/bin/ocamlc.opt -config > /tmp/jbuild5b4a83.output
Running[1]: (cd example && /home/vb/.opam/tezos/bin/ocaml -I +compiler-libs ../_build/.jbuilds/default/example/jbuild.ml)
Running[2]: (cd doc && /home/vb/.opam/tezos/bin/ocaml -I +compiler-libs ../_build/.jbuilds/default/doc/jbuild.ml)
Error: exception Failure("globs are not available during bootstrap")

rm boot.exe should fix the issue

See https://github.com/janestreet/jbuilder/pull/50.


Uploading a (non image) file via jot/attach throws php warning

PHP Warning:  array_key_exists() expects parameter 2 to be array, null given in /home/http/vhosts/hub.mariovavti.com/www/include/attach.php on line 598"
$args seems not to be defined at this place.

thanks


Implement ability to auto-update live version of numberscope when new seqs or vizs are added.

[extracted from todo.md]
The intent of this request was to create some way that new sequences and visualizers, when committed to the repo, would be pushed to the live version of numberscope, without needing a manual publish cycle. I believe it excluded a complete binding of the repo to the live app, which should always be controlled manually.
So, once a PR containing new code to generate a sequence or visualizer is accepted, the app is recompiled with the new material at a point that is stable for everything else, and published.

With most code repositories, and I assume with Github, it is possible for a repository to define "publish" or "release" actions which can be executed automatically when certain conditions are met, or when a maintainer triggers them. I believe that's the sort of thing we need to implement this excellent suggested feature, which is a pretty standard part of modern continuous integration/continuous deployment setups.


Printing type causes Codon to fail

print(type)

codon test.py
Fails with
error: cannot typecheck the program

Codon doesn't support this right now; type is handled specially inside the compiler front-end compared to regular functions (since we do static type checking). Could possibly change in the future but not a priority.


Update functions.php

nginx.conf update to listen on 2 ports

There is a conflict, can you solve this?


Create Design Linked List

It's a Leetcode problem. Here's the link of the problem https://leetcode.com/problems/design-linked-list/
Problem number 707


Docs: How to Debug Unit Tests

This updates the docs to include a “Debugging Tests” section.
I included how to use debug Jest tests with Chrome/Node Inspector and the new —inspect flag.
I also included the configuration file for debugging tests directly in VS Code.
I think this mostly closes #594. I know @prigara wanted to additionally add a section about debugging Webstorm too, which would really finish this off!

Updated to reflect review comments.
Just tested again in Chrome and VS Code and both are working well.
Node: v8.4
React Scripts: 1.0.12
VS Code: 1.15.1

@MattMorgis  First of all thank you for the write up. Unfortunately the set up doesn't work for me. I am able to open inspector and browse files  after running npm run test:debug. But it would never stop on breakpoint I set up in the inspector or a debugger. I can push it up to a branch if you would want to take a look. Thanks!

This is great! Sorry for letting it slip through the cracks.


feat: Change request duration histogram buckets

Motivation
Creating Prometheus alerts requires the request duration buckets to be defined based on the SLI targets.
What
Updating keycloak request duration histogram buckets
Verification Steps
Add the steps required to check this change. Following an example.

Update a running keycloak instance with the following image -
Verify from the keycloak metrics endpoint that the new buckets are returned

Checklist:

[ ] Code has been tested locally by PR requester
[ ] Changes have been successfully verified by another team member

Progress

[x] Finished task
[ ] TODO

Additional Notes
PS.: Add images and/or .gifs to illustrate what was changed if this pull request modifies the appearance/output of something presented to the users.

@davidffrench can you also update the readme with the new values here: https://github.com/aerogear/keycloak-metrics-spi#keycloak_request_duration

@pb82 Pushed a change to the Readme now


how to use Cv2.laplacian() and Cv2.MeanStdDev()

what i want to do is make a blur detection code like below link with C#
https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
but i can't understand exactly what parameter should be passed and what each parameter exacty means could you give me more details of these functions?( i alreay read the documentaion of those functions..but i coudn't understand it) or could you show me C# version of same codes? please help me

Is it variance_of_laplacian that you're having trouble with?
(The following code is not being debugged.)
Python
def variance_of_laplacian(image):
	# compute the Laplacian of the image and then return the focus
	# measure, which is simply the variance of the Laplacian
	return cv2.Laplacian(image, cv2.CV_64F).var()

C#
double VarianceOfLaplacian(Mat image)
{
    using (var laplacian = new Mat())
    {
	Cv2.Laplacian(image, laplacian, MatType.CV_64FC1);
        Cv2.MeanStdDev(laplacian, out var mean, out var stddev);
        return stddev.Val0;
    }
}

how come it's Val10 does that even exist? The documentation on Scalars is pretty scarce
https://shimat.github.io/opencvsharp_docs/html/b9303399-0504-06cc-d676-5ec3291b1ac8.htm


images not loading

I cloned project, didn't change or touch anything, and the images are not loading, keeps showing the "wait.gif"

Getting the same error. Tried to load the app directly from disk to my browser and get the following message:
jquery-3.2.1.js:9566 Failed to load file:///[path to the directory]/images_annotation_programme/inc/getNewImage.php: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Any suggestions for a newbie?

+1 same error as you.

The browser cannot access any local disk for security reasons, that is why no images are displayed if the framework runs locally. Easiest way to resolve this is starting a local server in the same directory, e.g. via
php -S localhost:8000
and then accessing http://localhost:8000/ in the browser


fix: turn off type checking if amplify/tsconfig.json is not found

Description of changes: fix: turn off type checking if amplify/tsconfig.json is not found
If the amplify/tsconfig.json is not found, TSC doesn't go to the root or parent director looking for tsconfig rather errors out with error TS5057: Cannot find a tsconfig.json file at the specified directory: 'amplify'.
This PR checks if we can load the config before executing TSC. If we cannot, we turn off ts compiler.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I'm okay if this is the behavior we want. The other option here is to say that you must have a tsconfig in the amplify dir and the way to turn off type checking is to explicitly exclude the directory

The only way to "exclude" the directory is to have a tsconfig (since customers don't have access to tsc command line which we execute), thereby making it more prohibitive, especially for JS/CJS projects.


Explaining _invProcessAction Function

Can you please explain the code below and where you got the equation and the hard coded numbers like 20?
def _invProcessAction(self, action):
        return ((action/self.HOVER_RPM) - 1.0) * 20.0

Hi @zcase ,
Apologies for the late response. Its been a long time since I worked on this project. However, I think its part of the environment (Gym Pybullet Drones) I used for the project. The actions obtained by the neural networks are in [-1.0, 1.0]. The function is just reverting back to the values that'll be fed back into the simulator. Please checkout the simulator repository.


Forward auth headers

What does this PR do?
Implement functionality for this feature request: https://github.com/containous/traefik/issues/3515
Based on this commit, and updated since the repos have diverged: https://github.com/drampelt/traefik/commit/b10cc88548d699f45460da77677db7a43f0c11e3?diff=unified
Motivation
Fixes #3515
More

[x] Added/updated tests
[ ] Added/updated documentation

Additional Notes

I do not have a good use case for this, I was working off the assumption that @drampelt did when he originally implemented this feature.

No need to merge master into this branch. Our merge bot does that for us.


Using the wrong vis model for create-vis-first dialog

Being in a dataset, if you try to add a new layer, the "create a map first" dialog will appear. The model of the dialog is turned into a derived visualization, but unfortunately this model is the wrong one.
This is another example of the problems we have with master_vis and vis.
I'm really considering to remove odyssey code preventing more bugs in the future.
In any case, what would you do to prevent this error happening again?
cc @CartoDB/frontend
REVIEWER: @viddo
Fixes #5563

what would you do to prevent this error happening again?

Change looks legit, but is there some way to verify that we're using the "correct" vis? E.g. test assertion?
+1 to remove the Odyssey integration if it's not planned to release it finally.

Yeah, I was asking for something like that.


.fromJS doesn't preserve key types

I would expect .fromJS to preserve key types, at lease for integer. Here is my test case :
var obj = {42: "test"};
var test = Immutable.fromJS(obj);

obj.get(42); // undefined
obj.get("42"); // "test"

I might be missing something but I find it odd having to .toString() every time I .get a value.

This is actually just JavaScript doing it's thing. JavaScript Object keys are always strings.
var obj = {42: "test"};
// get the keys using Object.keys()
var keys = Object.keys(obj).forEach(function (key) {
  console.log(key, typeof key);
});
// get the keys using for in
for (var key in obj) {
  console.log(key, typeof key);
}

Damn, of course.. Thanks !

More fun facts about JavaScript:
These two lines are equivalent:
var obj = { foo: "bar", 42: "answer" }
var obj = { "foo": "bar", "42": "answer" }

And property access always coerces to string!
obj["42"] // answer
obj[42] // answer

So I understand how this happens but what is everybody doing to deal with it?
It's very easy to get into a situation with a mix of string keys (fromJS({1: "a"})) and number keys (set(2, "b") or even `set(1, "c")) and I'm just curious where people are normalizing the keys.
It's insidious that the method of population (perhaps unknown to you) leads to you not knowing what key to use to retrieve data.

Immutable.Map.get accepts any kind of input because you can use anything as a key.
For example, what should this log?
var map = Map().set(1, "number").set("1", "string");
console.log(map.get(1));

Note, this is also how ES6 collections work:
var es6Map = new Map();
es6Map.set(1, "number");
es6Map.set("1", "string");
console.log(es6Map.get(1));

JS Objects just aren't Maps. They're collections of properties keyed by strings. ES6 collections escape this problem altogether by not providing any tools for converting to and from JS Object.
The fact that ImmutableJS provides toJS() and fromJS() is because they're legitimately convenient, but you still must be aware of the limitations.

Fair enough, probably best to match the ES6 Map behavior over object property access.
I still have a question of best practices though. Handling numeric ids is very common form a backend, I ran into a problem just down as I started using the very convenient merge API to integrate newfound records into a Flux store. Previously I was iterating and then setting.
This leads me to a situation where it seems best to never use numeric keys and to cast them to strings upon receipt from the server. Is that something you've run into?

FWIW, I'm reverting back to iterating and using set withMutations to build a Map. I was just surprised by the downstream changes thrhoughout my apps after what appeared to be an innocuous internal change on my part over to merge(jsObj)
Not a huge deal though, the side-effects are understandable and I'll keep them in mind if I ever use fromJS explicitly or otherwise.

In applications I've worked on at Facebook and elsewhere, we just avoid using numeric keys or at least make strong assumptions that they are strings. As an example, Facebook's API provides a unique numeric-string ID for every object in it's DB. We occasionally send them as keys in a JSON payload and need to respect that they are strings on the client, not numbers. This ends up important for other reasons as at some point our numbers got larger than the 52bit range that JS numbers can represent and also we ran into some cases where we needed to base64 encode IDs and we didn't need to change any app infrastructure to do so.

Heh, I'm still working at sub-Facebook scale so my needs aren't the same, but I'm glad to hear treating the otherwise numeric ids as strings is a sane move. Maybe I will do that just to avoid the unexpected casting issue I highlighted. Thanks for the insight.

Funny story: we used to represent ids as numbers on the client instead of strings, we even ran parseInt() to get them. We had a shortcut function for linking to someone's profile, setting the URL to "facebook.com/" + id. At some point a bug elsewhere caused IDs to be formatted slightly differently so our number parsing started to return NaN and all links went to my old manager's profile.

FWIW, I would strongly recommend against treating IDs as numbers, just as you shouldn't treat ZIPs or phone numbers as numeric values. Even if they are integers, there may be gaps (e.g. if a record was deleted and numbers are assigned via SQL's auto_increment) and it's easy to run into conversion problems (e.g. accidentally applying number formatting, resulting in locale-dependent bugs).

Thanks, I've built a good number of "enterprise" apps and hadn't run into any problems using the Rails default auto-incrementing numeric ids on the client. I never assumed they were sequential or anything, it just happens to be what the frameworks vends by default when you convert an ActiveRecord model to json.
Thankfully, it's easy enough to change that in the json output, especially with jbuilder templates.
I wouldn't be surprised if Flux developers with Rails backends hit this more frequently given the defaults.
Just annotating with keywords for anybody that comes afterwards; the behavior of immutablejs is as expected.

Thanks for the discussion so far. Quick follow-up question: let's say I have a collection of users keyed by ID, and as it's generated from JSON, the keys end up being strings (which seems to be good practice from what I've read).
I also have objects for "Teams", and each team contains a list of user IDs that participate in said team. Those IDs are all numbers, and in order to get the actual corresponding user object I need to do users.get(id.toString()).
My question is: is it a sane practice to have to run toString() this often throughout the code, and is it not a bad idea to have to assume such knowledge about the nature of the data?

In my opinion, you should structure your app such that that id will always be the same type: strings or numbers, but not both at the same time. I think having to consistently remember to coerce your id variables to strings with id.toString() or to numbers with +id will just be an opportunity to forget to do that once and you'll introduce a bug.
It's totally possible to create an Immutable.js Map where the keys are numbers instead of strings, it's just not representable as a JSON Object. You could also go all-in on string id and ensure that's the case through your whole application.

@leebyron Have you considered making a Map.withIndifferentAccess so that you can set and get values using either number or string? That way it would work like JS objects, and it handles serializing and deserializing JSON.

@cesarandreu do you mean a String Map where keys are always first coerced to String? This is how JS objects work. They're not indifferent to type, they always coerce to String, which is what leads to this common misconception.

Is the concern that a data type that restricts key type is desirable, or is the concern that JSON is a non-ideal serialization format?

Ah, sorry for not being clear. I do mean a StringMap. I'd find it very desirable to have an immutable Map that will behave like JS objects and coerce keys to string.
I think it would just make it easier to deal with server responses. Right now whenever I'm taking a value out of my indexed collections I wrap the id with a template string (${id}) to make sure it's always a string.

+1 i'm having the same problem. I think that when converting an object into an immutable, numbers should be preserved as numbers.
for instance I have an object with a count field set to an integer. Once I do a fromJS(), any integer that was stored on count field becomes a string.

@geekyme are you seeing an instance where a value is being coerced? That sounds like a bug, could you show some code which replicates the issue?

hey @leebyron thanks turns out it was a nasty bug on my end that was coercing it to string. Not immutable's fault. sorry for the false alarm :(

Thanks for the details in this discussion, got into the same issue recently. Now it does make sense.

Sorry to open this thing up again, but I'm working in a very large codebase where a migration from Integers -> Strings could potentially be very painful. Is there a way to extend a Map to a StringMap? Something like:
import { Map } from 'immutable';

export class StringMap extends Map {
    get(key) {
        key = key.toString();

        return super.get(key);
    }

    set(key, val) {
        key = key.toString();

        return super.set(key, val);
    }
}

Any advice on how to approach that? Edge cases I should be aware of?

Thank you for a great discussion. I learned a lot. I see that the issue is closed, but I'd like to add some points for others to find.
As @leebyron says, consistency is good, i.e. use string-id OR integer-id. If you like me use Immutable with Redux and your data originally comes from a database, you might have integers as both primary and foreign keys. If you need to do lookups in your Redux store by foreign key you'll be best off to use integers as keys in your Immutable.Map. This way you never need to "manually coerce" to string when performing lookups.
Here is how I load data into Redux from my API in order to preserve the keys as integers:
case DRAWING_RECEIVE:   let updatedDrawings = Map(     action.payload.drawings.map(item => {       return [item.id, fromJS(item)];     })   );   return = state.update('items', items => items.merge(updatedDrawings));
N.b. I have an "items" Map for storing the actual data in each slice in the store, hence "items" in the code above. It took me some reading and testing before landing in this key-solution. It really works well and I recommend it.

Whe is this not work then?

You said that key is evaluated to string but can't get from string version after construct with integer

@Altiano read the original discussion again:

when creating maps from objects, keys are always converted to strings because object property names are already strings

when creating maps from arrays of key-value pairs, the keys' types are preserved

This is the exact behaviour you're seeing: the keys aren't converted by immutable. The original discussion was the result of a confusion about JavaScript's behaviour (i.e. object keys always being strings), not something immutable does.

@pluma Must be this lines (http://facebook.github.io/immutable-js/docs/#/Map/Map):

Keep in mind, when using JS objects to construct Immutable Maps, that JavaScript Object properties are always strings, even if written in a quote-less shorthand, while Immutable Maps accept keys of any type.

-_____-
that is not so straight explanation
anyway Thanks @pluma

@Altiano It's not a quirk of immutable.js, it's a "quirk" of JavaScript.
Object keys are property names. Property names are always strings (or symbols, but that's probably not as important). If you use non-string property names when defining properties, the names will be converted to strings. Don't take this as a snark but I strongly recommend you solidify your understanding of the language before moving on.
I strongly recommend the You Don't Know JS series of books by getify because they're available online for free and are pretty exhaustive without dwelling too much on the author's personal opinions. If you can't set aside the time to read them from back to back (which is understandable) just use them as a "take what you need" reference and look up the parts of JS you find confusing.
FWIW if you want to observe the behaviour more directly, open your browser's console (F12 or Ctrl+Shift+J/Cmd+Shift+J depending on your platform) and compare the following (assuming Chrome/Edge or a recent version of Firefox):
var obj = {1: 'a', 2: 'b', 3: 'c'};
var map = new Map();
map.set(1, 'a');
map.set(2, 'b');
map.set(3, 'c');

Array.from(map);

Object.entries(obj);

The last two lines show you what native maps and objects look like when converted to arrays of key-value pairs. While as you can see it is possible to treat objects like maps, the keys are always strings. There are also some other caveats that make objects unfit as substitutes for proper maps (whether native or immutable.js).
(Another limitation is that some object property names are "special" and may have unintended side-effects, so it's a bad idea to use objects as maps when dealing with potentially malicious or uncontrolled values for keys.)

I kinda realized after making this I should just make the Map a List, but here is a fromJS fn that will recursively make all the number like keys of an object integers.
import { isNaN } from 'lodash'
import { fromJS, Map } from 'immutable'

const integerizeKeys = stringMap => stringMap.reduce(
	(results, value, key) => {
		const integerizedKey = parseInt(key, 10)
		const fixedKey = isNaN(integerizedKey) ? key : integerizedKey
		return results.set(
			fixedKey,
			Map.isMap(value) ? integerizeKeys(value) : value
		)
	}, Map()
)

export default function (obj) {
	const immutableObj = fromJS(obj)
	return integerizeKeys(immutableObj)
}


ETAG Support

Original Discussion: https://www.pika.dev/npm/snowpack/discuss/287
/cc @matthoffner, @FredKSchott
Currently, each file requested from the dev server is served. But, if we wanted to be even faster, we could implement etag support: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag
We already have some of the pieces in place here, but we would just need to start returning that hash to the client as a header. We could even get rid of our in-memory build cache, and just store these hashes instead.

[ ] PR 1: Send an etag header with every response, that matches the response body
[ ] PR 2: If the etag matches the hash of the build that we have cached, send back a 304.
[ ] PR 3: Investigate: can we replace our in memory cache file contents with just the etag value?

Edit: In thinking more about this, I'm worried that completely removing the file contents from the in-memory cache might be too much. Most browsers set "disable cache" when you have the devtools open, which would mean that every browser refresh would rebuild every file, every time. The in-memory cache should be small for a web project, so I don't think it even buys us much.

Looks like we're already generating ETags for cacache just not sending them with the file?

Yup, we knew this would needed eventually so we already use etag for how we hash the persistent build cache. The next step would just be to use that same etag for the in-memory data store as well.

Alright I might take a stand at this tonight

Awesome! check out my edit, I think I may have gone too far to say we could completely remove the in-memory cache just yet, but definitely worth investigating.

I started looking into part 3 of this issue, however, I'm a bit unsure about all the HMR stuff. My initial thoughts are that we more than likely will be able to swap the file contents for an ETag.

Yea, I also just realized that the etag function takes a fraction of a millisecond, even on large files. I think this is fine to keep discussing but I'm going to consider the major parts of this as done, and close this prioritized issue.
Thanks for your work on this @stramel