I cannot connect to the server.

Web Browser: Chrome 86.0.4240.198 (64bit)
Local OS: Windows 10
Remote OS: Raspbian 10 (Raspberry pi3)
Remote Architecture: arm
code-server --version:

Hello! 😊
When I connect to the server with a web browser, I cannot connect to the server.

I could see the error below. (server log)
/usr/local/share/.config/yarn/global/node_modules/code-server/lib/vscode/out/vs/server/entry.js:423
l.stderr.setEncoding("utf8").on("data",e=>this.logger.error(e))),l.on("message",e=>{switch(e&&e.type){case"__$console":const t=this.logger[e.severity]||"info";this.logger[t]("console",i.field("arguments",e.arguments));break;case"VSCODE_EXTHOST_DISCONNECTED":this.logger.trace("Going offline"),this.setOffline();break;case"VSCODE_EXTHOST_IPC_READY":this.logger.trace("Got ready message"),this.sendInitMessage(n);break;default:this.logger.error("Unexpected message",i.field("event",e))}}),this.logger.trace("Waiting for handshake..."),l}}})),define(t[178],i([0,1,40,17,66,52,59]),(function(e,t,i,r,n,s,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Protocol=void 0;class a extends n.PersistentProtocol{constructor(e,t){super(t.skipWebSocketFrames?new s.NodeSocket(e):new s.WebSocketNodeSocket(new s.NodeSocket(e))),this.options=t}getUnderlyingSocket(){const e=this.getSocket();return e instanceof s.NodeSocket?e.socket:e.socket.socket}handshake(){
                                                                                ^

TypeError: this.logger[t] is not a function
    at ChildProcess.<anonymous> (/usr/local/share/.config/yarn/global/node_modules/code-server/lib/vscode/out/vs/server/entry.js:423:174)
    at ChildProcess.emit (events.js:314:20)
    at emit (internal/child_process.js:877:12)
    at processTicksAndRejections (internal/process/task_queues.js:85:21)
[2020-11-25T16:24:20.721Z] error VS Code exited unexpectedly with code 1

Thank you for reporting, will fix asap.

@code-asher
I want to try it before the next version is released.
How can I do it?
Thank you.

See the contributing docs linked in the README for the build process @dev-gwang
Or download the build artifact from @code-asher's PR on github actions.

Same issue for me, glad you guys already reported it.

System: FreeBSD 12.2

Should be fixed in 3.7.4!

Turns out this was not fixed, I've been able to reproduce.
I also added a log every time the extension host starts up so that we never miss this in the future.

See https://github.com/cdr/code-server/commit/d2f3e6cea287e889ca28abfe6e0906450f45e4ef and #2400

Will be fixed in the next release!


Ability to pin extensions

As it says above, it would be great to pin extensions via this manager.
Maybe put it somewhere on the options on the right:

I also miss the ability to pin.
If an extra icon is too much perhaps middle click (or ctrl/cmd click to pin) could be useful.

+1

nooboss remembers extension pin status.. it would be nice if you have it too

I just realized that "pinning" means something different in extensions. Unfortunately extensions cannot pin other extensions, so you must use the native manager for that.


Add moduleMapHook

The moduleMapHook would be an optional function that can be added to the Compartment constructor options bag. If specified, any lookup on the moduleMap would be followed by a call to moduleMapHook if the sought key is absent. The return value of moduleMapHook would have the same type as the value of the moduleMap.
The moduleMapHook would enable:

prefixes or wildcard entries in the module map, as are necessary for inter-package linkage in Node.js
cyclic dependencies between modules in different compartments

Looks like recently it has been removed. And I think you can provide an exotic moduleMap object to achieve the same thing.

When we refactored the modules map and loadHook to deal consistently with “module descriptors”, it became evident that loadHook could do everything that was previously handled by moduleMapHook.
We might actually want to expressly capture a snapshot of the modules option at time of construction and pre-populate memos synchronously. We haven’t gotten down to spec text, but it’s worth considering. If we go that route, it would steer people to use loadHook and avoid unnecessarily creating an exotic modules object.


1.0 release codename

The release is incomplete without a codename so I propose to name the 1.0 release codename "Vodka" 🥂.

Thanks for the interest, but I decided to stop using code names unless we were actually talking about them secretly before they were released.

Eh, sure.

ooh codenames sound fun


Make $GOPATH/bin explicit in "First Steps" of README

If you're not familiar with go, it helps to be told the exact location of the lxc binary.


 So does this solution also pass these predefined variables?

Can one of the admins verify this patch?

/azp run automation - sdk


VS 2015 should warn about not being to handle netcore projects

NetCore projects depend on a bunch of new features in the new project system in VS "15" and in the new msbuild. However, since these are just csproj files, if opened in VS 2015, it will open but will probably mess up the project and function incorrectly. We should figure out a way to block opening of these projects in 2015. It would be ideal if we can do it without some artifact in the project file like ToolsVersion or something that'll add cruft to the file.

Initial crazy thoughts: how about a lack of the XML namespace? More generally: instead of triggering on an artifact that adds cruft, we could do detection based on the lack of cruft.

Since we now have new syntax for the SDK attribute on a project and items with metadata as attributes, these projects won't load correctly in VS 2015.


Plugins for restangular

I wanted to write a HAL extension for restangular. As plenty of threads suggest, one has to create a urlCreater, which involves tempering with the source code. In the code I could not find any hooks, is this indeed so? I was hoping to nicely separate the extension from restangular. Therefore it would be handy if one could write plugins, which for example allow overwriting existing methods (getList, get).

I would say 2.0.

+1


Making controls optional

Feature for #26
The component is expecting a controls prop which will define if the controls will exist or not.

Released as v2.8.0. Thanks!


LICENSE

Dear Ezgi,
the software contained in this repository and in https://github.com/ezgicicek/bi_relcost does seem to contain code from https://github.com/ejgallego/HOARe2 and/or https://github.com/ejgallego/dfuzz
In accordance with the LICENSE file of the aforementioned software:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

which so far is not met by this repos; note that you don't have to license the code in any particular way; however reproduction of the original notice is indeed required by the licence.
Let me know if you have any question or I can be of help [but I'm afraid that given the list of copyright holders there is not much choice on what to do here]
Best regards!
Emilio

The easiest way to close this issue is just to add this LICENSE file to the repository extending the list of copyright holders as it does correspond.

Dear Emilio,
Thank you so much for bringing this to my attention and sorry for my late reply since this seems to land in my spam folder.  I should have put the copyright statement from DFuzz repository which some parts of this code is based on. I have added the license file now.
Best,
Ezgi

Thanks @ezgicicek , and sorry to bother you with such annoying bureaucracy.
By the way, IMO you may want to update the LICENSE to add your own (c):
Copyright (c) 2014, The Trustees of the University of Pennsylvania
Copyright (c) 2019, Ezgi Çiçek / Max Plank / whatever

Best regards, E.


Fix the disabled state for the Action Bar buttons

goal: Fix the visual design for the action bar Buttons when they are disabled.
Problem

The visual design for the "disabled" state on the Action Bar buttons is too contrasting with the rest of the component.

All guidelines for Icon Button are detailed here:

@LeoT7508
Very good, thanks, then is a implementation bug.
@saadmhybris
Can you please add a new issue to correct this one?
Thanks.


Use Google Distroless for compact images

I'm using Google Distroless in gavrilovegor519/spoofdpi-docker project - Docker version of SpoofDPI for using in Russia. This base image very compact (~2 Mb versus ~5-6 Mb of Alpine image), not contains shell and package manager (increases security), and contains virtually no binaries in Static images.

You could use go static linking and then FROM scratch
The only thing you will need is copy ceritificates from go-apline
I do
RUN  go install -ldflags '-w -s -extldflags "-static"' -tags timetzdata github.com/xvzc/SpoofDPI/cmd/spoofdpi@${VERSION}
then
ROM scratch
COPY --from=build-stage /go/bin/spoofdpi /spoofdpi
COPY --from=build-stage /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
and it produces 7mb image


Nativefier is unmaintained

Note: Nativefier is unmaintained and has been publicly archived. It was built a couple of years ago before the ability to create shortcuts for websites in Chrome, or similarly on Firefox. Users who want to build and use their own website wrappers should strongly prefer these options as they are protected from security vulnerabilities by the browser's self updating mechanism.
Otherwise, if the use case is to build a bespoke app wrapping a website for distribution, consider using Electron directly which offers much more flexibility.
Special thanks goes out to @ronjouch and @TheCleric for keeping the lights on all this time.

I just wanted to drop a quick note to say how much I appreciate this project and how much of an honor it was to participate in this community, first as a contributor and then as a maintainer.
I know some people may be unhappy with this decision, and it was a tough one for us. We do really feel that for most use cases that what @jiahaog recommends above are better choices. To be perfectly frank, I have been using those over Nativefier for a while due to the ability for the browser to handle security updates. So believe us when we say we're practicing what we preach on this.
Thanks particularly to @jiahaog for getting this project started, @ronjouch for maintaining it (and putting up with my constant need to tweak things), and @mattruzzi who has done a lot of the most recent effort to keep things going.
So long and thanks for all the fish.


Add validation for rule type entities

Summary
This adds proper validation so that rule type entity declarations match
what the profile declares. This avoids errors where the user may accidentally set
the wrong entity for a rule in a profile.
Fixes #https://github.com/stacklok/minder/issues/2757
Change Type
Mark the type of change your PR introduces:

[x] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[x] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[x] Included tests that validate the fix or feature.
[x] Checked that related changes are merged.

ops
❌ TestCreateProfile (56.56s) ❌ TestCreateProfile/Create_profile_with_explicit_alert_and_remediate (20ms) ❌ TestCreateProfile/Create_profile_with_valid_name_and_rules (10ms)

coverage: 47.44% (+0.2%) from 47.221%
when pulling 5e62a74f436fff3c1a059a931d1b08dec2214194 on validate-entities-for-profiles
into<PHONE_NUMBER>5852bf584bbc131ea6f0b60ae781b3 on main.


JM09 protocol doesnt works

My JM09 gps watch appears in 0.0. what is the problem?

Without any additional information from you I can only guess that your device hasn't reported any GPS data, so coordinates are zero.

for example i can see my gps by sms commands, but i cant see it on traccar.

Again, it means that your device doesn't send any valid GPS information.


PiVPN install fails -- gzip: stdin: unexpected end of file

PiVPN Issue Template

Issue
After installation, the pivpn command does not exist. The folder /etc/.pivpn has some files in it, including the pivpn file, but does not execute when run:
pi@raspberrypi:~ $ pivpn
-bash: pivpn: command not found
Have you searched for similar issues and solutions?
Similar to issues 215 and 153 but their resolutions did not help

Console output of curl -L install.pivpn.io | bash
pi@raspberrypi:~ $ curl -L https://install.pivpn.io | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0     0    387      0 --:--:-- --:--:-- --:--:--   387
100 53084  100 53084    0     0  74077      0 --:--:-- --:--:-- --:--:-- 74077
:::
::: sudo will be used for the install.
::: Verifying free disk space...
:::
::: Checking apt-get for upgraded packages.... done!
:::
::: Your system is up to date! Continuing with PiVPN installation...
::: Static IP already configured.
::: Using User: pi
:::
::: Checking for existing base files...
:::    Checking /etc/.pivpn is a repo...:::    Cloning https://github.com/pivpn/pivpn.git into /etc/.pivpn... done!
:::
::: Stopping OpenVPN service... done.

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
::: Install Complete...
::: Restarting services...
::: done.
:::
::: Installation Complete!
::: Now run 'pivpn add' to create an ovpn profile for each of your devices.
::: Run 'pivpn help' to see what else you can do!
::: It is strongly recommended you reboot after installation.
:::
::: The install log is located at: /etc/pivpn/install.log
pi@raspberrypi:~ $ ```

## Have you taken any steps towards solving your issue?
Remove folders /etc/.pivpn and try to reinstall

I previously had openvpn installed but never got it working. I wasn't sure if this might have been causing issues with the PiVPN install, so I removed OpenVPN with apt-get remove, and also deleted the services from /etc/systemd as well as /etc/init.d/ -- after removing all of this I did a reboot and attempted reinstall, and got same results.

Hi @CapnDoody,
You can change rule 888 of https://install.pivpn.io (which is https://raw.githubusercontent.com/pivpn/pivpn/master/auto_install/install.sh)
from:
wget -q -O - "$UNATTUPG_CONFIG" | $SUDO tar xz
to:
wget -qO- "$UNATTUPG_CONFIG" | $SUDO tar xzf -
I ran into much the same issue as you did.
Btw, there are some more wget statements that need editing.
Cheers,
CaptnBV

what's the difference between "tar xz" and tar "xzf -" ?  that is the same for me

I found this problem to be an incorrect path to the Easy RSA Github Repo, and then to the subsequent move command... Change the following lines... Line 33;
easyrsaRel="https://github.com/OpenVPN/easy-rsa/releases/download/v${easyrsaVer}/EasyRSA-${easyrsaVer}.tgz"
to
easyrsaRel="https://github.com/OpenVPN/easy-rsa/releases/download/v${easyrsaVer}/EasyRSA-unix-v${easyrsaVer}.tgz"
And then on line 762 - Change;
wget -q -O - "${easyrsaRel}" | $SUDO tar xz -C /etc/openvpn && $SUDO mv /etc/openvpn/EasyRSA-${easyrsaVer} /etc/openvpn/easy-rsa
to
wget -qO- "${easyrsaRel}" | $SUDO tar xzf - -C /etc/openvpn && $SUDO mv /etc/openvpn/EasyRSA-v${easyrsaVer} /etc/openvpn/easy-rsa

I have been able to reproduce this issue. Is there a fix planned?

Had the same issue, your fix allowed pivpn to install successfully. Thanks!

The easy-rsa problem has been fixed (#716)

Just encountered the same problem trying to install on a Pi with Pihole, exact same situation and error.
Replacing the lines did, sadly, not help, causing the same thing to happen again. I'm really hoping there is a fix possible and it's not a matter of my system.

Closing this issue, as it seems to be resolved, @BDGreyson if you are still encountering this error, please give it a shot, make a new fresh install.
If it still happens, please reopen a new issue with all the required information.
Kind Regards.

Not sure if I am missing something  but I have attempted to run the Script on Jessie, Strech and Buster and I am getting the same error :
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
chown: cannot access '/etc/openvpn/easy-rsa': No such file or directory
mkdir: cannot create directory ‘/etc/openvpn/easy-rsa/pki’: No such file or directory
main: line 825: cd: /etc/openvpn/easy-rsa: No such file or directory
Should I run the Script as Sudo or is there something else I need to do before I run the Script?
Regards
Paul

Yes me too I have same problem with Paul


copycat memory issue

Report
I ran into memory issue when I ran the copycat. The gene and cell number are shown below. I was wondering if there is a general guide on the number of cells for this method. Many thanks!!
[1] "running copykat v1.1.0"
[1] "step1: read and filter data ..."
[1] "22318 genes, 73901 cells in raw data"
[1] "8197 genes past LOW.DR filtering"
[1] "step 2: annotations gene coordinates ..."
[1] "start annotation ..."
[1] "step 3: smoothing data with dlm ..."
WARNING:rpy2.rinterface_lib.callbacks:R[write to console]: Error in mcfork() :
  unable to fork, possible reason: Cannot allocate memory
Calls: <Anonymous> ... <Anonymous> -> copykat -> <Anonymous> -> lapply -> FUN -> mcfork

Version information
No response

I reduced the number of jobs and now it works.

Hi @YubinXie, as infercnvpy is just a thin wrapper around the copycat function, it's best to ask this question in the copykat repo!
Cheers,
Gregor


Fix file manager CSS.

Closes #725, closes #703.

Coverage remained the same at 100.0% when pulling a12a2ee5aba675677e3b26385d9f17057246e89f on panel_bg into 8c0ae9eae01568a3c4de99926cd04d8c4ef53f8c on master.


should is not defined

I found that both 'test'.should.be.type('string') or Should(document.body).have.property('nodeType') not worked well. Should I import should.js manually? Is there anyway to handle this situation?
Thx

Oops, I've found the way. a really bed question. sorry


Some chinese translations as a Proof of Concept

Thanks to @bnpysse for the translation and for getting the translation process started.

Coverage remained the same at 81.343% when pulling 2b8467a23816a980aad25efeec32f0e13b8e22c7 on mistercrunch:chinese into 0bedaed3676c2185aff8f0de52f07fd40b45b985 on airbnb:master.


fix: Plugin should disable ext when asked

From test output, I found that the plugin wasn't disabling the extension when enableExtension was set to false in the serverless.yml. This fixes that, adds test coverage, updates serverless.yml examples, and tweaks the test-generation script.

This is rebased against the PR that supports extension-based log ingestion, so that should be approved first.


Increasing unit tests coverage.

Increasing unit tests coverage.

Coverage increased (+4.8%) to 66.429% when pulling 0c2dd71be26b31bc801ff07b2fbec1d87f2badfc on ranch:test/increase-coverage into 3a264ed3ff581574df8613efd10d34981f2bc34d on knq:master.


Is it possible to have a cargo bench --lib equivalent with this crate?

The benefits of cargo bench --lib are that benchmarks can run on unexported functions. It looks to me like not using the harness means that will be difficult or impossible, but I wanted to make sure.

I've only looked at that now, briefly: It requires disabling the test harness, so with tests & benchmarks being handled together like they are, the approach in this library does not help (we've removed all the testing code!).
It works, sort of, but it requires putting benchmark_main!() in the crate root and the benchmark_group!()s in their respective modules, and it clobbers in-crate testing.
There's https://github.com/SimonSapin/rustc-test too, which I didn't find until after I did this crate.
Since benchmarking has been unstable, I've only ever used it separated out in benches/ anyway.

Thanks @bluss! I'll take a look at Simon's crate as well.


Updated request validation content-type to strip additional info

Should fix #106
Updated request validation content-type to strip additional info. Similar approach as in https://github.com/Zooz/api-schema-builder/pull/29/files.

Coverage increased (+0.02%) to 99.2% when pulling 3b76c7205b07d024abf0d6cac6fa61fc4c3c39c9 on mmacai:fix-request-content-type into 1438a96bc98efb791e25260e906d91607d2e7803 on Zooz:master.

Any ETA when you plan to merge this and do a release?

I'll try getting to this during this weekend

Friendly reminder.


Release 1.0.1

Codecov Report

Merging #86 (7f0efe6) into main (a8721a4) will decrease coverage by 1.31%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main      #86      +/-   ##
==========================================
- Coverage   89.71%   88.39%   -1.32%
==========================================
  Files           7        7
  Lines         175      181       +6
==========================================
+ Hits          157      160       +3
- Misses         13       15       +2
- Partials        5        6       +1

Impacted Files
Coverage Δ

cryptography/cryptography.go
75.29% <75.00%> (-1.93%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Getting error saved model to tflite - Float 64 error

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Mac OS
TensorFlow installed from (source or binary): binary
TensorFlow version (or github SHA if from source): 2.2.0

Command used to run the converter or code if you’re using the Python API
If possible, please share a link to Colab/Jupyter/any notebook.
# Copy and paste here the exact command
converter = tf.lite.TFLiteConverter.from_saved_model(model_file_pb)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

The output from the converter invocation
ERROR
# Copy and paste the output here.

To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2020-05-16 20:04:12.645740: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x7f98f6906430 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-05-16 20:04:12.645752: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-05-16 20:04:12.885160: I tensorflow/cc/saved_model/loader.cc:234] Restoring SavedModel bundle.
2020-05-16 20:04:13.539394: I tensorflow/cc/saved_model/loader.cc:183] Running initialization op on SavedModel bundle at path: MODEL/PB/64/tf_i11_v210/
2020-05-16 20:04:13.765676: I tensorflow/cc/saved_model/loader.cc:364] SavedModel load for tags { serve }; Status: success: OK. Took 1183597 microseconds.
error: type of return operand 2 ('tensor<?x400xf32>') doesn't match function result type ('tensor<?x400xf64>')
Traceback (most recent call last):
  File "/Users/visood/opt/anaconda3/bin/toco_from_protos", line 8, in <module>
    sys.exit(main())
  File "/Users/visood/opt/anaconda3/lib/python3.7/site-packages/tensorflow/lite/toco/python/toco_from_protos.py", line 93, in main
    app.run(main=execute, argv=[sys.argv[0]] + unparsed)
  File "/Users/visood/opt/anaconda3/lib/python3.7/site-packages/tensorflow/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/Users/visood/opt/anaconda3/lib/python3.7/site-packages/absl/app.py", line 299, in run
    _run_main(main, args)
  File "/Users/visood/opt/anaconda3/lib/python3.7/site-packages/absl/app.py", line 250, in _run_main
    sys.exit(main(argv))
  File "/Users/visood/opt/anaconda3/lib/python3.7/site-packages/tensorflow/lite/toco/python/toco_from_protos.py", line 56, in execute
    enable_mlir_converter)
Exception: <unknown>:0: error: type of return operand 2 ('tensor<?x400xf32>') doesn't match function result type ('tensor<?x400xf64>')
<unknown>:0: note: see current operation: "std.return"(%12, %11, %13, %14, %15) : (tensor<?x400xf64>, tensor<?x1x400xf64>, tensor<?x400xf32>, tensor<?x400xf32>, tensor<f32>) -> ()

Also, please include a link to the saved model or GraphDef
https://github.com/vissood/resources/tree/master/TFLITE_ISSUE
# Put link here or attach to the issue.

Failure details
If the conversion is successful, but the generated model is wrong,
state what is wrong:

Producing wrong results and/or decrease in accuracy
Producing correct results, but the model is slower than expected (model generated from old converter)

RNN conversion support
If converting TF RNN to TFLite fused RNN ops, please prefix [RNN] in the title.
Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

Hi @vissood,
Many TFLite builtin ops don't support float64  as an input type. This is on the map however, @abattery  might be able to give more of an update.

@vissood,
I am facing an error stating ValueError: Unsuccessful TensorSliceReader constructor: Failed to get matching files on /content/saved_model/1/variables/variables: Not found: /content/saved_model/1/variables; No such file or directory on running the code.
Please find the gist of it here.
In order to expedite the trouble-shooting process, could you please share all the files in the saved model folder. Thanks!


Setting property on nested accordion causes it to close immediately

When I set the onOpen property of a nested accordion dynamically after initialization, it causes the accordion to open and then immediately close. Am I using the module incorrectly?
http://jsfiddle.net/dangit/6dxe0w9s/1/

Hi @dangitall, I didn’t work with it all that much, but I think that you don’t need to initialize the children—that’s the reason why it closes immediately after being opened, it triggers all events twice. Just set up a callback and figure out if its a child accordion inside of it, something like $(this).parent() in onOpen might work.

Hi @Banandrew, thanks for the quick response. My impression was that the second call to .accordion()  where the first arg is just 'setting' doesn't do a re-initialization, it just changes a setting; but I'm inferring now that this is not incorrect. Is there a way to change a setting like this after initialization without running the init code again?

You can use the example in docs of a multiple level accordion and onOpen
Here's an example
http://jsfiddle.net/wj3g0ryf/


 That will make debugging a lot easier. Also we bumped react-router-redux and other dependencies. May have something to do with this.

I upgraded all of my packages to those used in the current version of the boilerplate. Below is my index.js. Let me know if there are any other files you need to see and I'll share whatever I can.
Index.js
import _ from 'lodash';
// @flow
import React from 'react';
import { Provider } from 'react-redux';
import { render } from 'react-dom';
import storage from 'electron-json-storage';
import { AppContainer } from 'react-hot-loader';
import Root from './containers/Root';
import { configureStore, history } from './store/configureStore';
import './app.global.css';

let myState;
let stateKeyPresent;
let store;

function createStoreFunction() {
	store = configureStore(myState);
	render(
	  <AppContainer>
	    <Root store={store} history={history} />
	  </AppContainer>,
	  document.getElementById('root')
	);

	if (module.hot) {
	  module.hot.accept('./containers/Root', () => {
	    const NextRoot = require('./containers/Root'); // eslint-disable-line global-require
	    render(
	      <AppContainer>
	        <NextRoot store={store} history={history} />
	      </AppContainer>,
	      document.getElementById('root')
	    );
	  });
	}
}

storage.keys((err, keys) => {
	if (err) throw err;

	for (let i = 0; i < keys.length; i++) {
		if (keys[i] === 'state') {
			stateKeyPresent = keys[i];
		}
	};
});

let getStoredState = new Promise(function(resolve,reject) {
	storage.get('state', (err, data) => {
		if (!stateKeyPresent) {
			myState = {};
			resolve();
		} else if (data) {
			myState = JSON.parse(data);
			resolve();
		} else {
			myState = {};
			resolve();
		}
	});
});

getStoredState.then(() => {
	createStoreFunction();
});

Any thoughts on this one? I forgot all about this error until I just went to package thinking I had finally worked out all my issues.

Whoops definitely didn't mean to close this one. It's plaguing me.
I tried building the vanilla boilerplate and inspecting what values _this.store.dispatch has at runtime there, but it will not display a value on mouseover, so I'm not sure what it should be, only that mine is undefined.

This is more a question than an answer.
As far a i understand you are saving and restoring the state of your application. But don't populating the state.router in this way breaks the system?
I means, you are inserting value for the router in the initialState of the application, is it supposed to work?
What happens if you remove the router key from the state?

I'm not sure the answers to these questions unfortunately. I know it worked in 0.11.0 and doesn't in 0.11.1.
I'll report back later today when I can poke around some more.

Okay until looking at my code I wasn't 100% following the later part of your comment.
The initialState in my case is not loading a routing state, only an array of objects used in the application and some options. The rest of the portions of my state are discarded when exiting, and then created anew when restarting the application.

This was somehow resolved for me in 0.11.0, but reintroduced in 0.11.1. I have reviewed all the changes and cannot fathom why this could be the case.

Specifically, history is defined in root.js, but store is not now.

The most "elegant" fix for this is to define store in your index.js instead as global.store, and to reference it the same way in your root.js
Alternatively see #850 for a solution not using global variables.
@amilajack if you have any idea why this occurs, I'd be interested figure out, but I'm going to close it now as there are now 2 workarounds available to anyone else facing this.


Role members view

It would be nice to have a searchable view of members of given role

Good point, I will add it. :)

Added on dev branch, please take a look.

Done on master.


Problem Exporting Charts as Image

It is wrong not to display a chart if it is not in the browser window display range. When we download the dashboard as a picture, we find that some charts are not displayed
https://github.com/apache/superset/issues/28713
fix(dashboard): load charts correctly

This PR disables a feature that was implemented to improve performance. We don't render all charts on a dashboard, but rather just render them when they're in the viewport. Dashboards with hundreds of charts will have poor performance with this change.
@kgabryje do you know of any way to make this change dynamic, so screenshots/alerts/reports/thumbnails/etc will work as expected? There are several GitHub issues about this, I'll try to find/link them here.

This PR disables a feature that was implemented to improve performance. We don't render all charts on a dashboard, but rather just render them when they're in the viewport. Dashboards with hundreds of charts will have poor performance with this change.
@kgabryje do you know of any way to make this change dynamic, so screenshots/alerts/reports/thumbnails/etc will work as expected? There are several GitHub issues about this, I'll try to find/link them here.

I understand the optimization, but you shouldn't hide it after the chart has been shown once.

@xiaoqufengdi Thanks for reporting! PR https://github.com/apache/superset/pull/29272 that was merged yesterday should fix the issue. Could you please verify that it works for you now?

I am closing this for now as the solution won't be merged as is. Please, feel free to verify that the new changes introduced in https://github.com/apache/superset/pull/29272 have fixed the issue or feel free to re-open the PR with an appropriate solution. Thanks for your help!

I am closing this for now as the solution won't be merged as is. Please, feel free to verify that the new changes introduced in https://github.com/apache/superset/pull/29272 have fixed the issue or feel free to re-open the PR with an appropriate solution. Thanks for your help!


Paginate without requiring length

The current implementation requires you to pass the total length of the iterable, and this usually means making an extra query to find out the count. There's no need for this, since we can actually accomplish the same results by trying to fetch n+1 results, which will mean that there are more to be consumed, without the need for the real total count.
This is the custom implementation we have applied to spare us the count query, which can be costly and adds an unnecessary overhead to every query. We only need the real total count, when that value is requested (using a custom CountableConnection)
class CountableConnection(graphene.relay.Connection):
    class Meta:
        abstract = True

    total_count = graphene.Int()

    @staticmethod
    def resolve_total_count(root, info, *args, **kwargs):
        try:
            t_count = root.iterable.count()
        except:
            t_count = len(root.iterable)

        return t_count

def connection_from_list_slice(list_slice, args=None, connection_type=None,
                               edge_type=None, pageinfo_type=None):
    '''
    Given an iterator it consumes the needed amount based on the pagination
    params, and also tries to figure out if there are more results to be
    consumed. We do so by trying to fetch one more element than the specified
    amount, if we were able to fetch n+1 it means there are more to be consumed.

    This spares the caller passing the total count of results, which
    usually means making an extra query just to find out that number.
    '''
    from graphql_relay.utils import base64, unbase64, is_str
    from graphql_relay.connection.connectiontypes import Connection, PageInfo, Edge

    connection_type = connection_type or Connection
    edge_type = edge_type or Edge
    pageinfo_type = pageinfo_type or PageInfo

    args = args or {}

    before = args.get('before')
    after = args.get('after')
    first = args.get('first')
    last = args.get('last')

    if first:
        after = get_offset_with_default(after, -1) + 1
        _slice = list_slice[after:  max(after, 0) + first + 1]  # fetch n+1

        items = _slice[:-1]
        if len(items) < first:
            items = _slice[:]  # If there are not enough, get them all

        edges = [
            edge_type(
                node=node,
                cursor=offset_to_cursor(after + i)
            )
            for i, node in enumerate(items)
        ]

    elif last:
        if before:
            before = get_offset_with_default(before)
            _slice = list_slice[max(before-last-1, 0):before]  # fetch n+1

        else:
            # beware that not specifying before results in the need
            # to calculate the total amount
            _slice = list_slice[(last*-1)-1:]

            try:
                before = list_slice.count()
            except:
                before = len(list_slice)

        items = _slice[1:]
        if len(items) < last:
            items = _slice[:]  # If there are not enough, get them all

        edges = [
            edge_type(
                node=node,
                cursor=offset_to_cursor(before - last -1 + i)
            )
            for i, node in enumerate(items)
        ]

    else:  # we are not allowing to pass after/before without first/last
        items = list_slice[:]
        edges = [
            edge_type(
                node=node,
                cursor=offset_to_cursor(i)
            )
            for i, node in enumerate(items)
        ]

    first_edge_cursor = edges[0].cursor if edges else None
    last_edge_cursor = edges[-1].cursor if edges else None

    has_previous_page = False
    if (isinstance(last, int) and len(_slice) > last) or after > 0:
        has_previous_page = True

    return connection_type(
        edges=edges,
        page_info=pageinfo_type(
            start_cursor=first_edge_cursor,
            end_cursor=last_edge_cursor,
            has_previous_page=has_previous_page,
            has_next_page=len(_slice) > first if isinstance(first, int) else False
        )
    )

@syrusakbary Not sure if we want this as the default or at least have this as an optional stragey.
If this sounds reasonable I can make a PR for this.

@syrusakbary @stefanoulis This is our updated version that fixes some bugs
def connection_from_list_slice(list_slice, args=None, connection_type=None,
                               edge_type=None, pageinfo_type=None):
    '''
    Given an iterator it consumes the needed amount based on the pagination
    params, and also tries to figure out if there are more results to be
    consumed. We do so by trying to fetch one more element than the specified
    amount, if we were able to fetch n+1 it means there are more to be consumed.

    This spares the caller passing the total count of results, which
    usually means making an extra query just to find out that number.
    '''
    from graphql_relay.utils import base64, unbase64, is_str
    from graphql_relay.connection.connectiontypes import Connection, PageInfo, Edge

    connection_type = connection_type or Connection
    edge_type = edge_type or Edge
    pageinfo_type = pageinfo_type or PageInfo

    args = args or {}

    before = args.get('before')
    after = args.get('after')
    first = args.get('first')
    last = args.get('last')

    first_is_negative = type(first) == int and first < 0
    last_is_negative = type(last) == int and last < 0

    # Validations
    if first_is_negative or last_is_negative:
        raise ValidationException("first and last can't be negative values")

    if first and last:
        raise ValidationException(
            "Including a value for both first and last is strongly discouraged,"
            " as it is likely to lead to confusing queries and results"
        )

    if before and last is None:
        raise ValidationException(
            "before without last is not supported"
        )

    if after and first is None:
        raise ValidationException(
            "after without first is not supported"
        )

    if before and after:
        raise ValidationException(
            "Mixing before and after is not supported"
        )

    if type(first) == int:
        after_offset = get_offset_with_default(after, -1)
        start_offset = after_offset + 1
        end_offset = start_offset + first

    if type(last) == int:
        if before:
            before_offset = get_offset_with_default(before)
        else:
            try:
                before_offset = int(list_slice.count())
            except (TypeError, AttributeError):
                before_offset = len(list_slice)
        end_offset = before_offset
        start_offset = before_offset - last if before_offset - last > 0 else 0

    _slice = list_slice[start_offset:end_offset]

    edges = [
        edge_type(
            node=node,
            cursor=offset_to_cursor(start_offset + index)
        )
        for index, node in enumerate(_slice)
    ]

    # To know if there are more pages we just check if there is n+1 element
    # In this case it would just be the end_offset element because array indexes
    # start from zero
    try:
        list_slice[end_offset]
        has_next_page = True
    except IndexError:
        has_next_page = False

    has_previous_page = start_offset > 0
    first_edge_cursor = edges[0].cursor if edges else None
    last_edge_cursor = edges[-1].cursor if edges else None

    return connection_type(
        edges=edges,
        page_info=pageinfo_type(
            start_cursor=first_edge_cursor,
            end_cursor=last_edge_cursor,
            has_previous_page=has_previous_page,
            has_next_page=has_next_page
        )
    )

@sebastiandev
Thanks for the snippets. Just quickly tested and it seems that there is an error when no pagination arguments are passed on, otherwise it seems to work well.
All in all It would be great if you could follow up with a PR - even if it is not merged quickly it would make it much easier for others to integrate a custom version into their code and comment to improve it.

@sebastiandev @sliverc Keep in mind that the idea of this project is to copy the functionality from graphql-relay-js over to Python. I think it is wise to stick to that idea and just replicate what is there.
First, because it is easier to switch from one language to the other if you need. Second, because it is easier to follow the updates in the JS land. If we deviate too much, it is hard to get the latest changes back into the Python version.
However, I understand sometimes it may be desirable to improve the existing functionality or add stuff that may make more sense in Python. My first attempt would be to try to get improvements into the JS library. If that's not possible we should include them in a way that is easy to maintain as an add-on. E.g. by not changing the function we inherited from JS, but adding another function, with separate tests.
I'm currently preparing v2 and v3 of this library. The goal of v2 is to achieve compatibility with GraphQL-Core v2 and not do much more, it should stay compatible and bot break things. The goal of v3 is to achieve compatibility with GraphQL-Core v3 = GraphQL-Core-next, and also to bring it up to date with graphql-relay-py. We can introduce breaking changes in this version.
Currently, I have v3 more or less finished, but the best Python version of this function is also causing me headaches. Maybe we can discuss how we should proceed here.
Note that v3 also introduces type hints, and I'm wondering what the best equivalent type for an array in JS would be in Python. I think list may be too restrictive. Maybe a typingCollection or a typing.Sequence? Also should we rename the term "list" in the functions and parameters? It looks too restrictive to me. You could just as well pass a tuple or a SQLAlchemy query or numpy array or anything. Maybe just rename it back to "array" like in the JS version?

@sliverc created the PR here

@sliverc created the PR here

@sliverc Can you check his PR again? Your code makes QuerySet into list and it will cause problems.

for the record @ironyee  @sliverc  added a fix to avoid an extra query when checking the n+1

@sebastiandev
Is this still an open issue? Are there new ways to avoid querying all data when paginating with relay.Connections ?

@Cito do you know if it's something that will be fixed in the future?

@ayyoubelamrani4 Again (see comment above), the scope of this project is to be a replicate of graphql-relay-js in Python. So as long as we faithfully replicate that functionality, nothing is "broken" on this side that needs to be "fixed".
If you are missing features that would be really useful for everyone, then the preferred way to get them into graphql-relay-py is to request them on the issue tracker of graphql-relay-js. This has many advantages:

There is a larger developer community that could give feedback for the best implementation and API
If it is implemented there in the reference implementation, both communities can benefit from the feature, not only the Python developers, maybe it even gets ported to other languages
We make sure that relay-py stays compatible with relay-js when we don't implement something that later relay-js may solve in a different way

That said, I will release a new version of relay-py after core 3.3 has been released, and will then also update relay-py and consider this and some other open issues. Still, if you want to push this or other new features, the most effective way forward is to lobby for it on the relay-js issue tracker.


Can't install plugins xCode 6.3.2

When trying to install a plugin or templates, I click on the install button and nothing happens. Themes install correctly however.

Could you please paste the output of tail -f /var/log/system.log | grep -i xcode when you try to install a plugin?

Figured it out, it was already answered in issue #152 thanks to ardames and nextriot. I had to change my git path before building


25 review claas

Merging the changes Claas did to make same method work for both own ship and target ship

The pyright checks will be handled in the merged branch. Waiting for marine schema to be published.


Empty data:image loaded instead of correct image

Lazyload works perfect for most of the images on our site, but since we tried to load some additional images with lazyload, instead of the real image, an empty/gray data:image gets loaded instead. The end result looks like this:
<img class="foto lazy" data-original="http://images.topin.travel/medium//d7/42148527df98f6e5d7.jpg" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC">

The images on the website are in viewport by default (but not allways). When I completely scroll down the whole page, and up again, the images are loaded correctly...
Can you help me out here?

URL of the page you have problem with? Do you have problem with different example pages?

Hi Mike
This is an example URL which does not work:
http://dev.swisswebcams.ch/webcam/1292514156-Aletsch-Arena-Riederalp-Aletschgletscher-(3987-Riederalp)_Wetter
(Please keep it confidential, since it is only for developing purposes)
Best
Simon
www.lookr.com http://www.lookr.com — Take a look around the world
Am 15.01.2015 um 12:52 schrieb Mika Tuupola:

URL of the page you have problem with? Do you have problem with
different
http://www.appelsiini.net/projects/lazyload/enabled_fadein.html
example pages
http://www.appelsiini.net/projects/lazyload/enabled_gazillion.html?
—
Reply to this email directly or view it on GitHub
https://github.com/tuupola/jquery_lazyload/issues/239#issuecomment-70075258.

On Jan 15, 2015, at 7:37 PM, simonferndriger<EMAIL_ADDRESS>wrote:

Hi Mike
This is an example URL which does not work:
http://dev.swisswebcams.ch/webcam/1292514156-Aletsch-Arena-Riederalp-Aletschgletscher-(3987-Riederalp)_Wetter
(Please keep it confidential, since it is only for developing purposes)

If you mean the right column (div.teaser) then read "When images are not sequential" in documentation or alternatively bind the plugin separately to those two columns.
$("div.teaser img.lazy").lazyload(...);
$("div.left img.lazy").lazyload(...);
--
Mika Tuupola
http://www.appelsiini.net/

Thank you. Your example did load the teaser, but not the other small images. But this one seems to work - not an ideal implementation/handling, but at least it does its job now:
		$("div.teaser img.lazy").lazyload({ threshold : 100, effect : "fadeIn" });
		$("a.thumbnail img.lazy").lazyload({ threshold : 100, effect : "fadeIn" });

Thank you for your fast response, Mike!

Can you please delete the example URL - since this URL should be confidential, thank you.


use subgraph to fetch protocol fees

We should use the subgraph to calculate protocol fees both for swap and yield as it is more accurate to what we currently do.
Only used in datastudio reporting

related #408

@franzns could you explain what you mean by using the subgraph data? We fetch and store totalProtocolSwapFees and totalProtocolYieldFees already. Should we use it somewhere in calculations?

btw this is for v2, not v3 :)

@mendesfabio we need collected protocol fees (swap and yield) as fields in the pool entity. I believe there has already been work done on this.


It's not possible to set dirty

Is there a way to set the directive dirty?
On a regular form field (like an input) it is possible by using
$scope.formName.inputFieldName.$dirty = true

But the line above won't work for nya-bootstrap-select.

Forget about it. The right function to use is
$scope.formName.inputFieldName.$setDirty()

Forget about it. The right function to use is
$scope.formName.inputFieldName.$setDirty()


Improve regular expression syntax support

I added some missing cases:

- at start and at end of [...] without escape character which is valid case for regular expression and doesn't creates range);
Escapes for '  and "
Most significant change - anchors (like '$' and '^' or '\b', '\B' etc). They are added as separate lego type, because they doesn't match any existing concept. But they didn't work with fsm, because they didn't advance sequence and may depends on previous characters or matches. So regex with anchors may be parsed, but can't be used with matches method.

I'm afraid I'll have to ignore this pull request. I'm sorry you didn't speak to me earlier about the changes you were hoping to introduce because it looks like this is a lot of work. :(

I have no problem in principle with parsing lazy quantifiers, as long as it is well-understood by users that this is a strictly regular regular expression engine which cannot respect different quantifiers because it doesn't even provide capture groups. But why dedicate code to storing the "greedy" flag if it doesn't do anything? It doesn't even serialise out differently.
Were you aware that disallowing the use of a "naked" hyphen at the beginning or end of a character class was a deliberate design choice?
Adding anchor support is a huge design change. To quote from the README, "greenery assumes that all regexes are anchored at the start and end of any input string. Carets and dollar signs will be parsed as themselves. If you want to not anchor at the start or end of the string, put .* at the start or end of your regex respectively. This is because computing the intersection between .*a.* and .*b.* (1) is largely pointless and (2) usually results in gibberish coming out of the program." Your pull request completely overturns this principle while also failing to add any support for actually matching on anchors. In addition, the word boundary \b is not regular and therefore cannot be supported at all, and there are some oddities like how reverse(parse("^$")) yields "$^".
Finally, single and double quotes have no special meanings in regular expressions that I am aware of, so I don't see the rationale for adding support for backslash-escaped versions of them. Again, disallowing backslash-escaped instances of characters which do not require backslash-escaping is a deliberate design choice.

Cheers


Don't check an expression if it was checked cached

Fixes #22578
Sequel to #22491 -- checking for deferredNodes duplicates catches more than checking for deferredUnusedIdentifierNodes duplicates. Without the change to checkExpression, the new assertion would fire on several tests where nodes were checked multiple times.

@sandersn the test failure reduces to:
// @allowJs: true
// @checkJs: true
// @noEmit: true
// @filename: index.js
var c;
c = class { };
new c();

This error only happens in js. It looks like it's doing a non-cached check two times. I've looked through the callstack and can't find why this is js-specific.

Binding might be a factor? Something like c = class {} might add a namespace meaning to c. Although I don't think it does unless the binder sees property assignments like c.p = {}.

Don't know why that was js-specific, but the problem was that getAssignedTypeOfBinaryExpression calls getTypeOfExpression which does a full check. Fixed by adding a CheckMode.JustType based on this comment:

Ideally, the entire family of checkXXX functions should have a parameter that indicates whether full error checking is required such that we can perform the optimizations locally.

I assume this fixes the assertion violation related to the related issues on RWC? (There are other rwc issues right now, but I only think one is related)


PowerBI Integration

It looks like there are only two ways to support Direct Query, via ODBC or SQL Analysis services. OData and alternatives don't support direct query which is a deal-breaker to us. ODBC doesn't have the metric definitions so the only option seems to be XMLA. Also, it looks like PowerBI connects to XMLA services without additional driver so we don't need to build a driver for metriql.
References:
https://powerbi.microsoft.com/en-us/blog/announcing-read-write-xmla-endpoints-in-power-bi-premium-public-preview/
https://github.com/microsoft/azure-analysis-services-http-sample

Once we build the XMLA server, we will parse MDX queries and generate Segmentation Query and generate the SQL for the underlying database. I'm dropping a SO question that can help us understand the language:
https://stackoverflow.com/questions/56788153/convert-mdx-to-sql-statement

Here is an alternative method: https://github.com/trinodb/trino/issues/6886

Any news on how we can best use metricql with PBI?


Package Terra

Part of #19

Packaging this is delayed on an issue in terra-money/core. The upstream library depends on the presence of a /build dir at runtime. This is generally bad practice, it would be better to allow the user to provide an env var that points to a "build" directory of the users choosing. This env var could be defaulted to /build.


Remove unused ppc64le build action

The action was replaced by the multi-arch build action and it is no
longer needed.

@mayurwaghmode just FYI based on what we discussed last week.


Add MIT/other FOSS license?

Can you guys add a license to this granting free use? That will encourage others to build with this :)

Done


Create the protoboards themselves

We have the functionality, ready for protoboards!

closed in favor of templates and more specifically:
https://github.com/influxdata/influxdb/issues/11874
https://github.com/influxdata/influxdb/issues/11873


airline#highlighter#exec win32 code truncating color schemes

What's the rational behind this code?
if s:is_win32term
  let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
  let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
endif

Commenting this out and trying hyper, cmd.exe and wsltty yields no errors.

Yeah, it won't give errors, but the colors will be wrong

Am 13.04.2019 um 12:10 schrieb Nathan Lanza<EMAIL_ADDRESS>What's the rational behind this code?
if s:is_win32term
let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
endif
Commenting this out and trying hyper, cmd.exe and wsltty yields no errors.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


T o add Profile data

As a beginner i would like to start my work by adding my profile data...

can u pls assign me this issue

You can raise a PR, without opening an issue.


docs(changelog): add about extra api's in changelog and separate package and library updates

Thanks!

Thanks!


Money as Double?

Why is money not fixed point? Haskell has Rational.

The reason why I did this is that the Lending Club API uses floating point,
at least superficially (eg.
https://www.lendingclub.com/developers/summary.action). You caught me. I
was lazy.
You're absolutely right that it makes more sense to use fixed point
instead. Something like scientific might be a good candidate.
What do you think Integer, scientific, something else? I'm very open to
other suggestions.
On Mon, Sep 7, 2015 at 11:38 PM, Nolan Sandberg<EMAIL_ADDRESS>wrote:

Why is money not fixed point? Haskell has Rational.
—
Reply to this email directly or view it on GitHub
https://github.com/WraithM/lendingclub/issues/1.

Scientific or Decimal, probably
Sent from my iPhone

On Sep 7, 2015, at 11:57 PM, Matthew Wraith<EMAIL_ADDRESS>wrote:
The reason why I did this is that the Lending Club API uses floating point,
at least superficially (eg.
https://www.lendingclub.com/developers/summary.action). You caught me. I
was lazy.
You're absolutely right that it makes more sense to use fixed point
instead. Something like scientific might be a good candidate.
What do you think Integer, scientific, something else? I'm very open to
other suggestions.
On Mon, Sep 7, 2015 at 11:38 PM, Nolan Sandberg<EMAIL_ADDRESS>wrote:

Why is money not fixed point? Haskell has Rational.
—
Reply to this email directly or view it on GitHub
https://github.com/WraithM/lendingclub/issues/1.

—
Reply to this email directly or view it on GitHub.

I'm wondering if it is necessary though. If we are using application/json I don't know if it matters since in javascript all numbers are represented as doubles. I guess when we end of doing arithmetic operations on the results we get from the API it may matter.

Yeah, you're exactly where I was thinking when I wrote this thing. You're
exactly right that lending club is using doubles for the json, and that's
why I used doubles. Again, you're right that you get precision issues when
you do arithmetic on that data using this library.
I don't know anything about Decimal. My favorite would probably be using
Integer.
On Sep 8, 2015 12:09, "Nolan Sandberg"<EMAIL_ADDRESS>wrote:

I'm wondering if it is necessary though. If we are using application/json
I don't know if it matters since in javascript all numbers are represented
as doubles. I guess when we end of doing arithmetic operations on the
results we get from the API it may matter.
—
Reply to this email directly or view it on GitHub
https://github.com/WraithM/lendingclub/issues/1#issuecomment-138636614.


Migrate Kapt to Napt

Description
Migrate to Napt to avoid sutb generating, once Hilt support support KSP we can migrate to it.
Ref https://github.com/chrisbanes/tivi/pull/951.
https://github.com/sergei-lapin/napt
https://github.com/google/dagger/releases/tag/dagger-2.44
Type of change

:x: Bug fix (non-breaking change which fixes an issue)
:x: Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:white_check_mark: General change (non-breaking change that doesn't fit the above categories like copyediting)

Icons addition information
Icons added

App Name (package.name)
App Name (package.name)

Icons updated

App Name (package.name)
App Name (package.name)

Icons linked

App Name (linked package.name to @drawable/package)
App Name (linked package.name to @drawable/package)

https://github.com/LawnchairLauncher/lawnicons/actions/runs/3162720846/jobs/5149603626
BUILD SUCCESSFUL in 16s
34 actionable tasks: 13 executed, 21 from cache

Publishing build scan...
https://gradle.com/s/j7k4uajm7gjfc


added revision of nonwear edges for extra non wear detection time

Fixes #645. Now the detected nonwear edges are checked to be extended by a maximum of 4 long-epoch-size windows in order to get a closer estimate of the begining/end of the wear time.
This is an example from the previous approach in GGIR:

And this is how it looks with this addition:

Checklist before merging:

[ ] Existing tests still work (check by running the test suite, e.g. from RStudio).
[ ] Added tests (if you added functionality) or fixed existing test (if you fixed a bug).
[ ] Updated or expanded the documentation.
[ ] Updated release notes in inst/NEWS.Rd with a user-readable summary. Please, include references to relevant issues or PR discussions.
[ ] Added your name to the contributors lists in the DESCRIPTION and CITATION.cff files.

Update:
I have tested the addition to the algorithm and it seems to work well. The transitions between wear and nonwear are now accuratelly identified without a big time cost. Tests are passing. The list M from part 1 now includes a new element named "nonwear", which is a short-epoch-level indicator of nonwear time.
To do:

Make the rest of the GGIR pipeline compatible with the new short-epoch-level indicator of nonwear.
Write tests for the new function detect_nonwear_clipping
Update NEWS
Think about how to report the functioning of the nonwear algorithm with the new addition (e.g., short paper, blog post)

Great work Jairo. This becoming a major enhancement to GGIR with potentially many consistency breaking side effects, in terms of study results will change as potentially more non-wear will be detected.
Proposal:

Only merge the fixes to timegap handling, such that we can create release 2.8-0.
Keep the non-wear revision separate for now, and prepare it for the CRAN release 2.9-0 or maybe then upgrade version to 3.0-0 to indicate that this will break consistency with previous GGIR versions because the non-wear detection will no longer be the same. In that way we can carefully update and test GGIR and make sure this correctly works.

Agree with that, sounds good. All the timegap changes are in the issue643_longGap branch, so I will make a new PR from that branch and keep this for the future. Do you want me to close this PR until it's ready?

Also, I think it would be good to discuss whether we can do all this while preserving the output structure of part 1. I think a lot researchers will be upset if we change the part 1 output structure, because they spent a lot of time and money on processing part 1 for large datasets and would like to keep using the old part 1 output with future GGIR versions.
So, maybe it worth is exploring whether we can implement the new non-wear detection in the metalong object, but change the default long epoch length to 5 minutes. In that way the non-wear detection will improve for future analyses, but researchers with old part 1 output in 15 minute resolution will be able to continue using newer versions of GGIR. The advantage then is also that we do not need to complete rewrite g.impute in part 2 for example.
Probably good to brainstorm more about this in the upcoming months.

I agree with you on preserving the part 1 milestone data structure. I've been thinking about this and here a proposed approach for this (just writing it down so I do not forget when we discuss about this):

We keep nonwear detection in part 1 as it is (just it would be performed in a separate function as you proposed).
In part 2, we use the aggregated data from part 1 to inspect the edges of the nonwear, since the block of nonwear has been detected on the raw data, the aggregated data could be enough to inspect when the transition between wear/nonwear occurred.

Advantages of this

We could use r5long in part 2 for that, so we do not have to create a new object.
Previously-processed data from part 1 can benefit from this addition without having to go to the raw data files again.
Running this in part 2 would make the computation faster since we use aggregated data.

Implementation

Extend IMP$rout with a ws3 resolution
In the reports/visualizations, check the dimensions of IMP$rout and use it accordingly to derive the nonwear information and for the visualizations (additionally, we could run a warning message indicating that running part 2 again could improve the nonwear detection).

I think it is easier to keep non-wear scoring in part 1 and not to make additional updates in part 2, because then we need to always remember to make the same updates to other parts of GGIR that may rely on part 1.
Instead I think all we need is one minor change to part 1:

When the 3600 second window meets the standard deviation and range criteria the entire window is labelled as non-wear.
The window will still shift in steps of 15 minutes.

For studies who want high resolution non-wear detection they can reduce the step size from 15 minutes to let's say 5 minutes.
Advantage:

This is still largely in line with the published description, except that we now label the entire window as non-wear.
This is something we can implement parallel to the existing approach. In that way the user can decide whether to use the old or the new approach.

I implemented what you proposed in the comment above, and now I am recording some files with logged nonwear times of different durations to test how this work in comparison with the current approach in GGIR.

Hi @jhmigueles are you replacing the existing method, adding it as an optional method with the existing method as default, or an optional method with the new method as default?

Hi @vincentvanhees , for now I have just implemented this, recorded some data myself with logged nonwear times, and I will test the two approaches. I can set what you prefer as default after testing them if we see a substantial improvement of the existing approach.

Hi @vincentvanhees, this is now implemented in this branch. There is a new argument nonwear_approach (default = "old", alternative option = "new"). We can think of a better name for the argument, but for now this does what it is supposed to do. Nonwear and clipping detection now occurs in a function named detect_nonwear_clipping().
Next steps:

Let me know if you agree with the functioning of the algorithm (below an example of the performance of the old and new algorithm with default windowsizes - black = ground truth, red = old, blue = new)
Let me know if you agree with the name of the argument and the default option to "old" until this is further tested.
After that, I will write a test for this new functionality and we can then progress with the incorporation of this.

I will have a closer look at this, but just a minor comment for now:

The only explanation I can think of is that new and old method have different alignment of the windows to the hour by which we cannot directly compare them.

I think this is exactly what is happening. in the old (or 2013) version, the algorithm marks the 15 min in the middle of the 60 min, and the new one marks the full 60 min. Maybe easier to visualize in the picture below:

@jhmigueles I think I now understand the extra non-wear in the plot above. The new algorithm detects a bit more non-wear in part 1 as we expect. As result of the this the gap of wear in between the two nonwear periods becomes a bit smaller. That in turn makes it more likely that the wear gap in the middle is classified as "extra nonwear" in part 2, which looks at the relative duration of the wear gap.
The only mystery left then is that the part2_daysummary.csv in the old result shows 8.75 valid hours for day 4, while in the new results I see 2.25 valid hours for day 4.

yes, that is what I wrote above, please focus on:

The only mystery left then is that the part2_daysummary.csv in the old result shows 8.75 valid hours for day 4, while in the new results I see 2.25 valid hours for day 4.

Sorry I was too quick and didn't explain. The plot you see in my previous comment is the zoom-in version of the day 4 in daysummary.csv (2021-07-30), so it is the same issue what we see in the plot and the difference in valid hours in the daysummary.csv. The number of valid hours match between the report and the plot, 2.25 for the new algorithm, and 8.75 for the old one, as a result of the time classified as "more non-wear" in the new algorithm.

Outstanding action points (for me):

[ ] Review vignette update
[ ] Test one more time
[ ] Resolve all comments that have been addressed

I have now committed some changes to improve the vignette text, I think this is easier and less time consuming then having to go back and forth with text suggestions.

@jhmigueles did you hear back from Benny/Jonathan?
Other than that I think we are good to merge this PR. I have already merged the master branch.

Hi @vincentvanhees, Benny told me that they would share the code after revision by one of his colleagues. I am still waiting for that, just sent a follow-up email. Investigating some of the issues described by Benny, I've realized that the additional nonwear classified in part 2 does not appear in the file summary report, which might be confusing when looking at the plots and reports. Should I try to fix that before merging? Hopefully they send me their code while I revise this.

I've realized that the additional nonwear classified in part 2 does not appear in the file summary report, which might be confusing when looking at the plots and reports. Should I try to fix that before merging? Hopefully they send me their code while I revise this.

Is this a bug that already existed in GGIR or is it a bug specifically in this branch?
If it already existed in GGIR then let's first merge this and treat that as a new issue. This other branch also comes with other fixes (verbose) and as a result it is not good to have this PR open for too long.

This already existed in GGIR, it is not specific of this branch. So I think we are just waiting for Benny/Jonathan's work.

Can you create an issue for it to describe the problem? I am not sure I understand, because the example above showed that the additional nonwear was included in the part 2 summary as 2.25 versus 8.75 hours, where the plot indicated that the difference was mainly the result of the additional nonwear.

Hi @vincentvanhees, as discussed via email, I have commited the changes related to the visualization of nonwear in g.plot5 in this PR. I think this is now ready to be merged, I have tested the latest commit and it all looks good.


Melange build fail on windows

info esy 0.6.12 (using esy.json)
info building @opam/melange@opam:1.0.0@9816818f
error: build failed with exit code: 1
  build log:
    # esy-build-package: building: @opam/melange@opam:1.0.0
    # esy-build-package: pwd: C:\Users\valer\.esy\3\b\opam__s__melange-opam__c__1.0.0-069432fb
    # esy-build-package: running: "dune" "build" "-p" "melange" "-j" "4" "@install"
    (cd _build/default/jscomp/common && C:\Users\valer\AppData\Local\fnm_multishells\21524_1686646413726\node_modules\esy\node_modules\esy-bash\.cygwin\bin\bash.exe -e -u -o pipefail -c "echo let version = \\\"$(git rev-parse --verify HEAD)\\\"") > _build/default/jscomp/common/git_commit.ml
    fatal: not a git repository (or any parent up to mount point /cygdrive)
    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
    (cd _build/default/jscomp/common && C:\Users\valer\AppData\Local\fnm_multishells\21524_1686646413726\node_modules\esy\node_modules\esy-bash\.cygwin\bin\bash.exe -e -u -o pipefail -c "echo let short_version = \\\"$(git rev-parse --short HEAD)\\\"") > _build/default/jscomp/common/git_commit.ml
    fatal: not a git repository (or any parent up to mount point /cygdrive)
    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
    File "jscomp/stdlib-412/dune", line 8, characters 9-12:
    8 |     (run awk -f %{dep:expand_module_aliases.awk} %{deps}))
                 ^^^
    Error: Program awk not found in the tree or in PATH
     (context: default)
    File "jscomp/stdlib-412/dune", line 23, characters 9-12:
    23 |     (run awk -f %{dep:expand_module_aliases.awk} %{deps}))
                  ^^^
    Error: Program awk not found in the tree or in PATH
     (context: default)
    (cd _build/.sandbox/6a56a2b4e5b2c0d01f450ce7257b134c/default && C:\Users\valer\.esy\3________________________________________________________________\i\opam__s__menhir-opam__c__20230415-420f65fe\bin\menhir.exe --lalr --explain --dump --require-aliases --strict --table -lg 1 -la 1 --unused-token COMMENT --unused-token DOCSTRING --unused-token EOL --unused-token GREATERRBRACKET --fixed-exception vendor/melange-compiler-libs/lib/parser.mly --base vendor/melange-compiler-libs/lib/parser --infer-read-reply vendor/melange-compiler-libs/lib/parser__mock.mli.inferred)
    Grammar has 208 nonterminal symbols, among which 15 start symbols.
    Grammar has 123 terminal symbols.
    Grammar has 852 productions.
    Built an LR(0) automaton with 1863 states.
    The grammar is not SLR(1) -- 139 states have a conflict.
    The construction mode is lalr.
    Built an LR(1) automaton with 1863 states.
    1066 shift/reduce conflicts were silently solved.
    error: command failed: "dune" "build" "-p" "melange" "-j" "4" "@install" (exited with 1)
    esy-build-package: exiting with errors above...

  building @opam/melange@opam:1.0.0

Do you know the best way to get awk on windows?
We use the same trick the OCaml compiler does: https://github.com/ocaml/ocaml/blob/3d50c168062e9fdbacf739a73738b10108ff3628/stdlib/dune#L26

I installed awk with chocolatay. And it works in PowerShell and cygwin, but still have the same error. I even tried to provide path to awk explicitly with buildEnv and exportedEnv

esy-melange-project on  main [!] took 2m43s
❯ esy
info esy 0.6.12 (using esy.json)
info building @opam/melange@opam:1.0.0@9816818f
error: build failed with exit code: 1
  build log:
    # esy-build-package: building: @opam/melange@opam:1.0.0
    # esy-build-package: pwd: C:\Users\valer\.esy\3\b\opam__s__melange-opam__c__1.0.0-069432fb
    # esy-build-package: running: "dune" "build" "-p" "melange" "-j" "4" "@install"
    (cd _build/default/jscomp/common && C:\Users\valer\AppData\Local\fnm_multishells\22964_1686836117089\node_modules\esy\node_modules\esy-bash\.cygwin\bin\bash.exe -e -u -o pipefail -c "echo let version = \\\"$(git rev-parse --verify HEAD)\\\"") > _build/default/jscomp/common/git_commit.ml
    fatal: not a git repository (or any parent up to mount point /cygdrive)
    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
    File "jscomp/stdlib-412/dune", line 8, characters 9-12:
    8 |     (run awk -f %{dep:expand_module_aliases.awk} %{deps}))
                 ^^^
    Error: Program awk not found in the tree or in PATH
     (context: default)
    File "jscomp/stdlib-412/dune", line 23, characters 9-12:
    23 |     (run awk -f %{dep:expand_module_aliases.awk} %{deps}))
                  ^^^
    Error: Program awk not found in the tree or in PATH
     (context: default)
    (cd _build/default/jscomp/common && C:\Users\valer\AppData\Local\fnm_multishells\22964_1686836117089\node_modules\esy\node_modules\esy-bash\.cygwin\bin\bash.exe -e -u -o pipefail -c "echo let short_version = \\\"$(git rev-parse --short HEAD)\\\"") > _build/default/jscomp/common/git_commit.ml
    fatal: not a git repository (or any parent up to mount point /cygdrive)
    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
    (cd _build/.sandbox/6a56a2b4e5b2c0d01f450ce7257b134c/default && C:\Users\valer\.esy\3________________________________________________________________\i\opam__s__menhir-opam__c__20230415-420f65fe\bin\menhir.exe --lalr --explain --dump --require-aliases --strict --table -lg 1 -la 1 --unused-token COMMENT --unused-token DOCSTRING --unused-token EOL --unused-token GREATERRBRACKET --fixed-exception vendor/melange-compiler-libs/lib/parser.mly --base vendor/melange-compiler-libs/lib/parser --infer-read-reply vendor/melange-compiler-libs/lib/parser__mock.mli.inferred)
    Grammar has 208 nonterminal symbols, among which 15 start symbols.
    Grammar has 123 terminal symbols.
    Grammar has 852 productions.
    Built an LR(0) automaton with 1863 states.
    The grammar is not SLR(1) -- 139 states have a conflict.
    The construction mode is lalr.
    Built an LR(1) automaton with 1863 states.
    1066 shift/reduce conflicts were silently solved.
    error: command failed: "dune" "build" "-p" "melange" "-j" "4" "@install" (exited with 1)
    esy-build-package: exiting with errors above...

  building @opam/melange@opam:1.0.0
esy: exiting due to errors above

esy-melange-project on  main [!] took 4m4s
❯ awk --version
GNU Awk 5.1.0, API: 3.0 (GNU MPFR 3.1.5, GNU MP 6.1.2)
Copyright (C) 1989, 1991-2020 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.

please edit ci branch in this repo, to actually build this project

https://github.com/melange-re/melange-esy-template/actions/runs/5251413628/jobs/9486338253

Can it be esy issue?

I believe this is an esy issue, indeed. One option would be to convert the awk script to pure OCaml. Would you like to try contributing that?

For now I'm trying to figure out how to build melange on Windows with opam, but for now has no real progress. I'll investigate more about ocaml compilation.
And will try to use melange with WSL

I appreciate you trying it out. Would love to keep tabs on your progress. Do you have a branch somewhere?
feel free to join the OCaml or Reason discord groups too and message me directly

Fixed on windows https://github.com/esy-ocaml/esy-opam-override/pull/137

Wow, I will try it out soon)

Let us know if you fine more issues :)

Should i open new one?
PS D:\Projects\ocaml\melange-esy-template> nr build:watch

> build:watch
> esy && esy build:watch

info esy 0.7.2 (using esy.json)
info building @opam/topkg@opam:1.0.7@7ee47d76
info building @opam/reason-react@opam:0.13.0@93b60fc7
error: build failed with exit code: 1
  build log:
    # esy-build-package: building: @opam/topkg@opam:1.0.7
    # esy-build-package: pwd: C:\Users\valer\.esy\3\b\opam__s__topkg-opam__c__1.0.7-da526d45
    # esy-build-package: running: "ocaml" "pkg/pkg.ml" "build" "--pkg-name" "topkg" "--dev-pkg" "false"
    ocamlfind: Package `threads' not found
    pkg.ml: [WARNING] OCaml host-os conf:  cmd ["ocamlfind" "ocamlc" "-config"]: exited with 2
    pkg.ml: [WARNING] OCaml host-os conf: key native: undefined, stdlib dir not found for discovery
                      using false
    pkg.ml: [WARNING] OCaml host-os conf: key natdynlink: undefined, stdlib dir not found for discovery
                      using false
    pkg.ml: [WARNING] OCaml host-os conf: key supports_shared_libraries: undefined, stdlib dir not found for discovery
                      using false
    pkg.ml: [WARNING] OCaml host-os conf: key ext_obj: undefined, using ".o"
    pkg.ml: [WARNING] OCaml host-os conf: key ext_lib: undefined, using ".a"
    pkg.ml: [WARNING] OCaml host-os conf: key ext_dll: undefined, using ".so"
    pkg.ml: [WARNING] OCaml host-os conf: key ext_exe: undefined and
                      no C toolchain detected, using ""
    mkdir 'C:\Users\valer\.esy\3\b\opam__s__topkg-opam__c__1.0.7-da526d45\_build'
    The system cannot find the path specified.
    mkdir pkg
    mkdir src
    ''ocamlfind ocamldep -modules src/topkg.mli > src/topkg.mli.depends
    ocamlfind: Package `threads' not found
    pkg.ml: [ERROR] cmd ["ocamlbuild" "-use-ocamlfind" "-classic-display" "-j" "4" "-tag" "debug"
         "-build-dir" "_build" "CHANGES.md" "LICENSE.md" "README.md" "pkg/META"
         "topkg.opam" "src/topkg.cma" "src/topkg.cmi" "src/topkg.mli"]: exited with 2
    error: command failed: "ocaml" "pkg/pkg.ml" "build" "--pkg-name" "topkg" "--dev-pkg" "false" (exited with 1)
    esy-build-package: exiting with errors above...

  building @opam/topkg@opam:1.0.7
esy: exiting due to errors above

That's probably an issue that should be opened in https://github.com/esy/esy

Done) https://github.com/esy/esy/issues/1528


Update libpnet

I actually couldn't build synner due to an error:
error[E0599]: no function or associated item named `broadcast` found for type `tcp::packet::pnet_base::MacAddr` in the current scope
  --> src/tcp.rs:36:49
   |
36 |             eth_header.set_destination(MacAddr::broadcast());
   |                                                 ^^^^^^^^^ function or associated item not found in `tcp::packet::pnet_base::MacAddr`

even though I could find broadcast in the docs.
Updating libpnet and changing where MacAddr comes from fixed it for me.

Apologies, I can't believe I only saw this now by pure chance. Merging this away. Thank you @zeroeightysix.


fix: toMatchObject works with super getters

Summary
@sstern6 and I worked on this PR to fix https://github.com/facebook/jest/issues/10268, where toMatchObject would not work for getters defined in a super class. It does this by using the in operator as opposed to the previous hasOwnProperty checks.
Test plan
The newly added spec fails on master
# This fails on master

git co 10268-fix-to-match-object-with-getters -- packages/expect/src/__tests__/matchers.test.js
yarn jest packages/expect/src/__tests__/matchers.test.js

And these specs pass on this branch, implying a :bug: fix :smile:

@sstern6 could you take a look at this PR we paired on? I still need to add the CHANGELOG :eyes:

LGTM!

Thanks @sstern6! I just rebased with upstream/master to see if that would fix the strange pipeline failure.
@jeysal do you have availability to review this PR? Thanks! :bow:

@jeysal @thymikee @pedrottimark would any of you be able to look over this?


Cant run task

Have the follow:
gulp.task('compile-pug', function() {
    gulp.src('static/**/*.pug')
        .pipe(pug({
            pretty: true
        }))
    .pipe(pug().on('error', pug.logError))
    .pipe(gulp.dest('public'));
});

When run gulp compile-pug raises error:
[22:49:11] Using gulpfile /code/gulpfile.js
[22:49:11] Starting 'compile-pug'...
[22:49:11] 'compile-pug' errored after 13 ms
[22:49:11] TypeError: "listener" argument must be a function
    at _addListener (events.js:216:11)
    at DestroyableTransform.addListener (events.js:275:10)
    at DestroyableTransform.Readable.on (/code/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:650:33)
    at Gulp.<anonymous> (/code/gulpfile.js:21:17)
    at module.exports (/code/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/code/node_modules/orchestrator/index.js:273:3)
    at Gulp.Orchestrator._runStep (/code/node_modules/orchestrator/index.js:214:10)
    at Gulp.Orchestrator.start (/code/node_modules/orchestrator/index.js:134:8)
    at /usr/local/lib/node_modules/gulp/bin/gulp.js:129:20
    at _combinedTickCallback (internal/process/next_tick.js:67:7)

my package.json:
  "dependencies": {
    "browser-sync": "^2.14.0",
    "graceful-fs": "^4.1.5",
    "gulp": "^3.9.1",
    "gulp-sass": "^2.3.2",
    "gulp-sourcemaps": "^1.6.0",
    "pug": ">=2.0.0-alpha <3",
    "gulp-pug": "^3.0.4"
  }
}
```

Any ideas?

Have you tried taking out this line:
.pipe(pug().on('error', pug.logError))
?

Hello, sorry for late reply.
pug.logError is not a function and never has been a function, I believe.  Which is why your event listener is not a function, rather undefined.  I would suggest using gulp-plumber maybe.
If this sort of .logError thing is a common practice (which I would be unaware of), I'm open to PRs.  :smile:


'bool is_group' in command_handle (CON-874)

@wqx6
I don't think is_group should exist. The reason is that it is allowed to have a binding list which consist of a mix of groups and unicasts.  Code in esp-matter is preventing this from working when CHIP allows it. GROUP 12, NODE 3 EP 1, GROUP 2, NODE 7 EP 4 is an allowable binding list.
In this case, you want the one that isn't NULL. The spec requires one or the other to be NULL. Just copy both of them?
https://github.com/espressif/esp-matter/blob/main/components/esp_matter/esp_matter_core.h#L790
        if (cmd->is_group) {
            this->group_id = cmd->group_id;
        } else {
            this->endpoint_id = cmd->endpoint_id;
        }

Then in this case, you should just remove the check for is_group.
https://github.com/espressif/esp-matter/blob/main/components/esp_matter/esp_matter_client.cpp#L119
    if (binding.type == EMBER_UNICAST_BINDING && !cmd_handle->is_group && peer_device) {
        if (client_command_callback) {
            cmd_handle->endpoint_id = binding.remote;
            client_command_callback(peer_device, cmd_handle, command_callback_priv_data);
        }
    } else if (binding.type == EMBER_MULTICAST_BINDING && cmd_handle->is_group && !peer_device) {
        if (client_group_command_callback) {
            cmd_handle->group_id = binding.groupId;
            client_group_command_callback(binding.fabricIndex, cmd_handle, command_callback_priv_data);
        }
    }

like this? Is esp-matter looping through all of the bindings? It is a list not a single item.  (I tested, CHIP is looping through the binding and calling the callback with all of them).
    if (binding.type == EMBER_UNICAST_BINDING && peer_device) {
        if (client_command_callback) {
            cmd_handle->endpoint_id = binding.remote;
            client_command_callback(peer_device, cmd_handle, command_callback_priv_data);
        }
    } else if (binding.type == EMBER_MULTICAST_BINDING) {
        if (client_group_command_callback) {
            cmd_handle->group_id = binding.groupId;
            client_group_command_callback(binding.fabricIndex, cmd_handle, command_callback_priv_data);
        }
    }

It is confusing that a command can be sent to both a group and unicast, but it is allowed. But the command itself is not flagged as group or unicast; there is just one command. It is the address that it is sent to which determines whether it is group or unicast.
So in my code I need to do this:
            OnOff::Commands::On::Type commandDataT;
            client::command_handle_t cmd_handle;
            uint16_t local_endpoint_id = epLightID;
            cmd_handle.cluster_id = OnOff::Id;
            cmd_handle.command_id = OnOff::Commands::On::Id;
            cmd_handle.command_data = &commandDataT;

            lock::chip_stack_lock(portMAX_DELAY);
            client::cluster_update(local_endpoint_id, &cmd_handle);
            lock::chip_stack_unlock();

Then for the example binding list at the top, each of these callbacks will be called twice.
    client::set_command_callback(unicast_cb, group_cb, this);

Why do I want this? Because multicast is unreliable and I am definitely losing group packets. So lets says I have lights A, B, C. I make a group G of {A, B, C}.  But then I bind my light switch to G, A, B, C.  When the switch is pressed the group command is sent first. But then it is followed up by individual unicasts to recover from dropped group messages.  I am not using commands which can't be sent twice like this. For example I only use on() or off(), never toggle().

This is going to take some rework to fix in esp-matter. This is likely the core of the problem...
typedef struct command_handle {
    union {
        uint16_t endpoint_id;
        uint16_t group_id;
    };
    uint32_t cluster_id;
    uint32_t command_id;

group_id and endpoint_id should not be unioned. They should be two separate variables. Then if group_id is set, it is a group command and if endpoint_id is set, it is a unicast command. Once they are split, then is_group is no longer needed.
Once they are split, when the binding callback happens you can set group_id and endpoint_id as needed for the binding. Then a binding which mixes groups and unicast will work.

@jonsmirl The commit https://github.com/espressif/esp-matter/commit/12e73847aac2d80506295d12550bf9398ca2df62 should fix the issue, please check and close the issue.

In my five minutes of testing it appears to work. I will open new issue if I uncover deeper issues.


Fix installation of the telemetry library

Summary

Reverts #479
Fixes the issue with package lookup when installing from setup.py

How to test

Checklist

[ ] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT

Apparently, it is impossible now. It was available with dependency_links (explanation) till pip 19, where this option was completely removed because of https://github.com/pypa/pip/issues/4187#issuecomment-415667805 and https://github.com/pypa/pip/issues/4187#issuecomment-415067034. No working workarounds found (tried dependency_links, PEP 508 urlspecs in requirements, defining custom install command implementation). TL;DR: it is prohibited by security reasons.


aux_estimate, mean, sum_first_moment explanation

https://github.com/eth-sri/probabilistic-forecasts-attacks/blob/df78ffd7375089bb7b38fbf55bb840b7699365eb/Finance/attack/attack_modules.py#L299-L317
Hi, could you provide some explanation for the 'aux_estimate, mean, sum_first_moment' here?
It would be great if you can give both some description and math formula/definition of these three variables here.
I appreciate your work!

Hi. sum_first_moment is defined as

aux_estimate is defined as

sum_weights is defined as

All these are parts of the gradient estimators described in the paper.

Thank you!


{CI} Run linter based on diff

Since we want to enable medium and low rule as well. But we don't plan to suppress them all for those old commands. So we have to run linter based on the diff so that customers won't receive too much noisy message.

add to S173

/azp run

/azp run


Tampered GCS private key working fine in Java library( ServiceAccountCredentials.fromPkcs8()) but fails in Golang library

Environment details
Java version = 11
google-auth-library-oauth2-http = 0.25.3
com.google.cloud.storage = 1.113.15
Code example
Here is sample method, we try to validate the private key by uploading test file in GCS account

    public void validateAccessTest(String bucketName, String privateKey, String projectId, String serviceAccountName,
        String path) throws Exception {

        String client_email = serviceAccountName + AT_THE_RATE + projectId + GCS_EMAIL_SUFFIX;
        try {
            ServiceAccountCredentials serviceAccountCredentials =
                ServiceAccountCredentials.fromPkcs8(null, client_email, privateKey, null, null);
            Storage storage = StorageOptions.newBuilder().setCredentials(serviceAccountCredentials)
                .setProjectId(projectId).build().getService();
            final String value = "Validating write access.";
            byte[] bytes = value.getBytes(UTF_8);
            final String blob_name = "access_verification_";
            path = path + FWD_SLASH + blob_name;
            BlobId blobId = BlobId.of(bucketName, path);
            BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
            storage.create(blobInfo, bytes);
        } catch (Exception e) {
            logger.error("Failed to validate GCS connector with exception={}", e.getMessage());

        }
    }

API reference guides
https://googleapis.dev/java/google-auth-library/latest/com/google/auth/oauth2/ServiceAccountCredentials.html
https://googleapis.dev/java/google-cloud-storage/latest/com/google/cloud/storage/package-summary.html
There are 3 scenarios in which we are facing issue:

Adding extra "="(equal to) symbol at the end of the private key. Here test file is uploaded succesfully.
eg: -----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8Zdoz0DWV3o/J\nXSbee6hbHJFzHeWTa3AZdFQ3FSgIhA2DSN327Odzf4kpgVk18JX71s4lvX7beuJ0\nbAx8seVSNsTP6TRV/iyCj2LnkwdyTStuY9JXcZAUvOiXORwmtQI4FehQBDsZscL9\nQ..........................JTAoGAdLDOzarK6eeufqcVbtji\n3EQNF20J9gL+lXVd+h8Dqk2cf+HemQWj9vITw0Bp9m7RChogYLM0Sx9jyRZjfPqB\nxIBoxjrsj+w8Xr36kT8RlcG9UkQv2qEYPWdNg660n6rD+HQAD8+bxAk5RVUGTxQd\nTosY0lrD09A60BwueuUUHc0===============\n-----END PRIVATE KEY-----\n

Changing some of the numbers in private key
eg: Changing 0 to 1 or 3, 19 to 20 in the key.
Randomly in some of such cases above validation is success and in some of them its failing.

When we add any special character at the end of the private key like "(double quotes) or any other special character.
eg: -----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGcCwDb/fxRDO8\nvh6l5edlEzbf6e8S3hAAhU0fg6vjHYi8CoJBIUz8F...............ZdEU/FFCECgYEAzHlUme49ZcsyXE5E4TyG\ne1DAzUNGQHs8+ksuzBQMc1q2pwBtbi7hutgznq2DYO6Sjb78YfHLGY4V+3E5IT02\neubPj26iGf1YUekth5rpzVxB4ggpFS1hCEnuzTpdvAiK94AtipXic8sBuVQjYp0N\n1moZ1ZRk421avM577Cg9D5w=\n-----END PRIVATE KEY-----\n"

In our application, above 3 scenarios with tampered key pass the access validation successfully, then we pass the key details to another application which is in Golang.
In Goland application also we are using google provided golang library. There file upload to GCS account fails in above 2 scenarios.
Thanks!

Hi @dimpyjoshi,
I'm not sure what's occuring in this case. Could you add a little bit more on which error message you're seeing when using the key in Go?
It's possible that the Java Storage library adds scopes while the Golang library does not in the same way, but hard to tell.

Hi Frankyn,
Below is the error message for 1st scenario:
Adding extra "="(equal to) symbol at the end of the private key. Here test file is uploaded successfully, but Go application fails to upload
eg: -----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwV3o/J\nXSbee6hbHJFzHeWTa3AZdFQ3FSgIhA2DSN327Odzf4kpgVk18JX71s4lvX7beuJ0\nbAx8seVSNsTP6TRV/iyCj2LnkwdyTStuY9JXcZAUvOiXORwmtQI4FehQBDsZscL9\nQ..........................JTAoGAdLDOzarKGTxQd\nTosY0lrD09A60BwueuUUHc0===============\n-----END PRIVATE KEY-----\n
Post "https://storage.googleapis.com/upload/storage/v1/b/qa-bucket/o?alt=json&name=test-equals%2F379-161780-096606.gz&prettyPrint=false&projection=full&uploadType=multipart":
Error: private key should be a PEM or plain PKCS1 or PKCS8; parse error: asn1: structure error: tags don't match (16 vs {class:0 tag:13 length:45 isCompound:true}) {optional:false explicit:false application:false private:false defaultValue: tag: stringType:0 timeType:0 set:false omitEmpty:false} pkcs1PrivateKey @2

Hi @dimpyjoshi,
Thanks for the additional information.
If I understand correctly, the Java client is able to upload data to Cloud Storage even when the key is corrupted in this case by an additional = sign at the end of the private key?
If this is the case, I suspect there might be some something occurring with the request token in Java auth library. Could you file this issue in https://github.com/googleapis/google-auth-library-java/issues as it has to do more with that library than this repository (java-storage)?

Hi Frankyn,
Yes, the Java client is able to upload data to Cloud Storage even when the key is corrupted in this case by an additional = sign at the end of the private key.
Raised issue under google-auth-library-java - https://github.com/googleapis/google-auth-library-java/issues/645
Thanks

closing this issue in favor of it being addressed there. Thanks!


SUBMARINE-68. Add tests to FileSystemOperations class

What is this PR for?
Adding tests to FileSystemOperations class and also performed some minor refactor in the test infrastructure.
What type of PR is it?
Refactoring
Todos

[ ] - new UTs should pass

What is the Jira issue?
SUBMARINE-68
How should this be tested?

Only the new UTs should pass.

Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

@szilard-nemeth, the patch is rebased. Could you please take a look into this?

Rebased to current master, will follow up on the UT errors.

Fixing UT error, pushed again.

@adamantal,
LGTM
Thanks for the contributions.

Thanks!


feat(Workspaces) : add user to a workspace

This PR is for adding a user to a workspace.
Changes
Please list / describe the changes in the codebase for the reviewer(s).

Add user to a workspace
Send added user the workspace link via mail

How/what to test
A few words about what needs to be tested, along with specific testing instructions if needed.
Screenshots / screencast
If relevant, please add some screenshots or a short video.

The interpolation of the subject of the mail is not correct


OW2 OMM links broken

As of #479, the criteria sometimes refer to the OW2 Open-source Maturity Model in the rationale for requirements. However, all of these links are broken and result in a 404 error.
Example:

Under maintenance_or_update, the link saying "This was inspired by DFCT-1.2" is broken.

The link in #479 is also broken.

Thanks for the report on the broken link! Fixed in #2097 (switch to an archive.org link), which I just merged.
While you're here, please let me add two things:

I love your anime avatar! It's very cool, I'm quite jealous.
Thanks so much for your work on Rust & in particular Tokio. I'm trying to encourage people to use memory-safe languages where that's practical, as memory-safe languages eliminate many vulnerabilities. Rust is making that idea more palatable to many.


[bug](orc reader)fix orc_reader handling the any column converted string column

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

We need a better setup for this feature, so close this pr first


File not found/unsupported while using yarn run dev

Music doesn't play
Covers, titles and metadata are loaded (from cache)
mp3 are same
new files without covers and meta
Amethyst Details (required):
same as #199 ran from yarn run dev
To Reproduce (optional)
Steps to reproduce the behavior:
yarn run dev on newest version
Expected behavior (optional)
Play this opus file
Screenshots (optional)

Additional context (optional)
May be problem with yarn run dev only and related to #199

building only linux x64 dir went well and fixed issue

so yarn run dev doesn't play music

no issues with playing opus files in dev mode for me

closing cus inactive & seems to work

#423  problem still occurs even on debian

Still the same issue on v1.9.16 while running from yarn dev or yarn run dev