ubuntu 17.04 come across npm ERR

[x] sudo apt-get install build-essential git libsecret-1-dev fakeroot rpm libx11-dev libxkbfile-dev
[x] sudo add-apt-repository ppa:ubuntu-toolchain-r/test
[x] sudo apt-get update
[x] sudo apt-get install gcc-5 g++-5
[x] sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 80 --slave /usr/bin/g++ g++ /usr/bin/g++-5

no problem with step above.
[x] sudo update-alternatives --config gcc

outcome isThere is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-5 Nothing to configure.
It fails at the step script/build. the out come is as follow
Node:	v8.5.0
Npm:	v5.3.0
Installing script dependencies
prebuild-install info begin Prebuild-install version 2.2.2
prebuild-install info looking for local prebuild @ prebuilds/leveldown-v1.8.0-node-v57-linux-x64.tar.gz
prebuild-install info looking for cached prebuild @ /home/wm/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.8.0-leveldown-v1.8.0-node-v57-linux-x64.tar.gz
prebuild-install http request GET https://github.com/level/leveldown/releases/download/v1.8.0/leveldown-v1.8.0-node-v57-linux-x64.tar.gz
prebuild-install http 200 https://github.com/level/leveldown/releases/download/v1.8.0/leveldown-v1.8.0-node-v57-linux-x64.tar.gz
prebuild-install info downloading to @ /home/wm/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.8.0-leveldown-v1.8.0-node-v57-linux-x64.tar.gz.19438-59eee208a4f0d.tmp
prebuild-install info renaming to @ /home/wm/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.8.0-leveldown-v1.8.0-node-v57-linux-x64.tar.gz
prebuild-install info unpacking @ /home/wm/.npm/_prebuilds/https-github.com-level-leveldown-releases-download-v1.8.0-leveldown-v1.8.0-node-v57-linux-x64.tar.gz
prebuild-install info unpack resolved to /home/wm/softwares/atom/script/node_modules/leveldown/build/Release/leveldown.node
prebuild-install info unpack required /home/wm/softwares/atom/script/node_modules/leveldown/build/Release/leveldown.node successfully
prebuild-install info install Successfully installed prebuilt binary!
Installing apm

../src/onig-string.cc: In constructor ‘OnigString::OnigString(v8::Local<v8::String>)’:
../src/onig-string.cc:30:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   hasMultiByteChars = (value->Length() != utf8_length_);
                                        ^
(node:25431) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated.  Linux 4.10.0-35-generic
npm ERR! argv "/home/wm/softwares/atom/apm/node_modules/atom-package-manager/bin/node" "/home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/home/wm/.atom/.apm/.apmrc" "--userconfig" "/home/wm/.atom/.apmrc" "install" "/tmp/d-117826-29801-6i7v5z.cvy9dd9529/package.tgz" "--runtime=electron" "--target=1.6.9" "--arch=x64"
npm ERR! node v6.9.5
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>postinstall: `node ./script/download-git.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'node ./script/download-git.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the dugite package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./script/download-git.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs dugite
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls dugite
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/wm/softwares/atom/npm-debug.log

child_process.js:614
    throw err;
    ^

Error: Command failed: /home/wm/softwares/atom/apm/node_modules/atom-package-manager/bin/apm --loglevel=error install
    at checkExecSyncError (child_process.js:591:13)
    at Object.execFileSync (child_process.js:611:13)
    at module.exports (/home/wm/softwares/atom/script/lib/run-apm-install.js:14:16)
    at Object.<anonymous> (/home/wm/softwares/atom/script/bootstrap:35:1)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)

)

Looks like a temporary internet issue (ECONNRESET).  Try again later.

I tried lots of times. It still didn't work, the outcome after script/build is
Node:	v8.5.0
Npm:	v5.3.0
Installing script dependencies
Installing apm
npm ERR! path /home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/ansicolors
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/ansicolors' -> '/home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/.ansicolors.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/wm/.npm/_logs/2017-09-27T00_13_24_870Z-debug.log
child_process.js:614
    throw err;
    ^

Error: Command failed: /home/wm/softwares/atom/script/node_modules/.bin/npm --global-style --loglevel=error install
npm ERR! path /home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/ansicolors
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/ansicolors' -> '/home/wm/softwares/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/.ansicolors.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/wm/.npm/_logs/2017-09-27T00_13_24_870Z-debug.log

    at checkExecSyncError (child_process.js:591:13)
    at Object.execFileSync (child_process.js:611:13)
    at module.exports (/home/wm/softwares/atom/script/lib/install-apm.js:9:16)
    at Object.<anonymous> (/home/wm/softwares/atom/script/bootstrap:29:1)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)

Delete any package-lock.json files that have been generated by npm and try again.

Thanks, @50Wliu . It helps.  After solving several little problems,  there comes a difficult one for me.
Application bundle created at /home/wm/softwares/atom/out/atom-1.22.0-dev-1880e1401-amd64
Generating snapshot script at "/home/wm/softwares/atom/out/startup.js" (2)Unable to transform source code for module /home/wm/softwares/atom/out/app/node_modules/github/node_modules/temp/lib/temp.js.
AssertionError [ERR_ASSERTION]: /home/wm/softwares/atom/out/app/node_modules/github/node_modules/temp/lib/temp.js
Assigning a deferred module to a variable that was not declared in this scope is not supported!
  at FileRequireTransform.replaceAssignmentOrDeclarationWithLazyFunction (/home/wm/softwares/atom/script/node_modules/electron-link/lib/file-require-transform.js:124:9)
  at Context.visitIdentifier (/home/wm/softwares/atom/script/node_modules/electron-link/lib/file-require-transform.js:72:18)
  at Context.invokeVisitorMethod (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:344:49)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:196:32)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:246:25)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:246:25)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:246:25)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:246:25)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at NodePath.each (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path.js:101:26)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:219:18)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:246:25)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at visitChildren (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:246:25)
  at Visitor.PVp.visitWithoutReset (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:204:20)
  at Visitor.PVp.visit (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:133:29)
  at Object.visit (/home/wm/softwares/atom/script/node_modules/electron-link/node_modules/ast-types/lib/path-visitor.js:101:55)
  at FileRequireTransform.replaceDeferredRequiresWithLazyFunctions (/home/wm/softwares/atom/script/node_modules/electron-link/lib/file-require-transform.js:68:20)
  at FileRequireTransform.apply (/home/wm/softwares/atom/script/node_modules/electron-link/lib/file-require-transform.js:25:10)
  at /home/wm/softwares/atom/script/node_modules/electron-link/lib/generate-snapshot-script.js:53:56
  at Generator.next (<anonymous>:null:null)
  at step (/home/wm/softwares/atom/script/node_modules/electron-link/lib/generate-snapshot-script.js:3:191)
  at /home/wm/softwares/atom/script/node_modules/electron-link/lib/generate-snapshot-script.js:3:361
  at <anonymous>:null:null

Hmm, it seems like you've managed to run into all the possible problems when building Atom :/.  Ok, try: script/clean, followed by another script/build --install.  Sorry for all the trouble!

It's okay, thank you anyway. Could you tell me what caused all these problems?

Yeah, definitely.  Your first ECONNRESET issue was just a temporary problem with your internet connection.  Then the ansicolors issue is (I think) a bug with npm's new package-lock files.  They're still fixing bugs with the implementation, and Atom will fail to build if they're present.  Finally, I'm not too sure about the snapshot script error, but I've ran into that a few times and each time it's been fixed by running script/clean.


RFC: Requirements for implementations of high(er)-level networking protocols in Zephyr (wip)

Introduction
This RFC proposes a set of requirements and guidelines to design API structure, contracts, and behavior for application-level network protocols in Zephyr.
Problem description
Zephyr has some history (arguably, dramatic history) of networking in general, and implementations for application-level protocols in particular. Older, net-app based protocol implementation had various reported issues and criticism, and eventually were removed completely together with net-app itself.
Starting with Sockets API as a baseline allows us to design new implementations to address previously known issues, and at the same time, to be consistent and compatible among themselves. We should pursue that opportunity.
Summary
Application-level protocols should:

Not impose arbitrary restrictions on the amount of data processed (as an none of general-purpose networking protocols imposes such arbitrary restrictions).
May impose arbitrary restrictions on metadata size, but should try to make those restrictions/limits configurable (at compile time).
Should try to implement basic features of the protocol, followed by more advanced, in that order, not leaving random gaps in the functionality.
Should follow the general structure and signatures of the underlying API, as a means of design consistency and self-organization.
Should strive for composabilty (largely enabled by the previous point).

Detailed RFC
Note: that RFC largely focuses on TCP (SOCK_STREAM) protocols, as construing majority of protocols used in the Internet. However, many ideas apply in a natural way to UDP protocols too.
Definitions:

data - user data as transferred by protocols.
metadata - various auxiliary, usually structured, information describing user data.

Examples: In HTTP, request and response payload is data, while request and response headers are metadata. In MQTT, message payload is data, while message headers, topic names, etc. are metadata. In WebSocket, message payload is data, while headers are metadata. Etc.
Detailed requirements:

Size of data handled by the protocol implementations should not have arbitrary limits, this includes limits. For protocols with sequential access (majority of protocols), this should also included not being limited by the amount of RAM available. This necessitates support of the streaming of data, where user is able to process/generate data incrementally.
Streaming support for metadata would generally make API too complex. Thus, it's it's considered OK to: a) limit amount of metadata to the amount fitting in RAM; b) beyond that, for efficiency of implementation, further limits may be imposed, e.g. to allow to pre-alloc static buffers to avoid dynamic allocation and failure modes involved with it; c) but, whenever possible such limits should be configurable using Kconfig.

Examples of the applications of these requirements:

HTTP doesn't impose arbitrary limits on the payload size, for neither Zephyr libs should too. Instead, the should allow to read/write payload chunk by chunk. On the other hand, for simplification of API, we may impose limits on the request/response headers, e.g. say that we handle max 1KB of headers (and allow to change that via Kconfig). if there're good reasons for that, we may also say that a single header is limited to 200 bytes. And that header name is limited to 64 bytes.
MQTT allows for payloads of up to 256MB. Zephyr implementation should not impose lower limits. Again, this is only achievable via streaming. MQTT allows for topic names up to 64K. We may by default impose lower limit, and allow to configure that via Kconfig.

As set forth in the previous point, streaming support is the baseline requirement. The way to implement it should be providing functions which exactly follow the signature of the POSIX read() and write() functions, modulo the type of the first argument. Specifically, to read and write payload in chunks, protocol library should provide functions:

ssize_t xxx_read_payload(client_ctx *ctx, void *buf, size_t size)
ssize_t xxx_write_payload(client_ctx *ctx, const void *buf, size_t size)
(Only signature is important, this RFC doesn't seek to stipulate API names ahead of concrete implementation, though standardizing on them would be a bonus). These signatures should not be augmented with any other parameters (at least, for protocols which deal with unstructured (or homogenuous) data, which is usually the case).

For when additional parameters should be provided to protocol library, they likewise should be handled in a manner similar to sockets - using dedicated param getter/setter functions, similar to getsockopt/setsockopt (also to fcntl/ioctl).
Two previous requirements can be summarized as: "API principles for higher-level protocols should mimic that of the underlying API, as means of self-documenting and self-policing (avoiding complicated, inconsistent, adhoc APIs)". Note that on top of these generic APIs, which are mandatory, protocol-specific convenience API may be defined, to ease usage in simplified scenarios.

Proposed change (Detailed)
This section is freeform - you should describe your change in as much detail
as possible. Please also ensure to include any context or background info here.
For example, do we have existing components which can be reused or altered.
By reading this section, each team member should be able to know what exactly
you're planning to change and how.
Dependencies
Highlight how the change may affect the rest of the project (new components,
modifications in other areas), or other teams/projects.
Concerns and Unresolved Questions
List any concerns, unknowns, and generally unresolved questions etc.
Alternatives
List any alternatives considered, and the reasons for choosing this option
over them.

Some thoughts:
The de-facto standard of HTTP client libraries is libcurl. The libcurl API also fulfils many of the requirements listed here. However, libcurl is not designed with an embedded focus and for example makes liberal use of dynamic memory. It's also optimised for completeness rather than compactness.
I know @bagder is currently tweaking curl to make it possible to build it with more limited feature sets but even so it will probably never be as small as a bespoke solution that "just solves one problem" and disregards the complex world of incompatible internet protocol implementations.
This raises the question of what standard to aim for in Zephyr. I suspect many people will be looking for a very simple and compact solution ("I just need to download a text file from my backend"), while others want a more comprehensive and bug-compatible one ("we have to be able to interact with any public server"). Neither user will be happy with the solution preferred by the other. And it is not easy to supply both variants in a single package.

@pfalcon how's it going about the http lib? what the schedule of it?

Higher-level protocols need to be compatible with user mode.

@pfalcon @andrewboie Rightnow, is there any alternative solution?

FYI we have written a simple and fully static (no malloc) http server in my current project at Xylem, using the Zephyr http-parser, tls and sockets. I have secured approval to upstream this and will create a pull request for initial discussions soon.

@zagor we have Zephyr Monthly Networking forum today. This would be a good platform to discuss Networking topic.
I am posting meeting details here. Please try to join this meeting.
Please check meeting time as per your location.
https://www.zephyrproject.org/developers/meetings/
Zephyr Networking Forum (monthly recurrence 2019)
Tuesday, 2 April⋅6:00 – 7:00pm (Finnish time).
Monthly on the first Tuesday
https://zoom.us/j/720590301
Description:Live Agenda/Minutes: https://docs.google.com/document/d/1qFsOpvbyLzhflJbbv4Vl__497pKHDoUCy9hjAveyCX0/edit?usp=sharing
Shared Folder:
https://drive.google.com/drive/folders/1j6d0FLeOjiMil1Ellb59AsfHdzuWdAAc?usp=sharing

Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/720590301
Or iPhone one-tap :
US: +16699006833,,720590301# or +16465588656,,720590301#
Or Telephone:
Dial(for higher quality, dial a number based on your current location):
US: +1<PHONE_NUMBER> or +1<PHONE_NUMBER> or +1<PHONE_NUMBER> (Toll Free) or +1<PHONE_NUMBER> (Toll Free)
Meeting ID: 720 590 301
International numbers available: https://zoom.us/zoomconference?m=HfPX4_ydWipHdthccFN1H_TJg-7jDSyH

@rlubos: I see that somehow you weren't cc:ed here, even though this was posted as generalization of our discussion re: MQTT API. Doing this now.


Convert ListedColorMap to Cycler object

IMPORTANT: Please search among the Pull requests before creating one.
Description

Fix passing :class:matplotlib.colors.ListedColorMap as palette to :func:squidpy.pl.spatial_scatter.
How has this been tested?

1 new test.
Closes

close #579

Tests are failing in general (also on master), unrelated to this PR, will investigate later.


ENH: Add GP error analysis experiment script

Add GP error analysis experiment script.

A few notes:

Pardon my not very elaborated commit message.
Started placing the methods in new modules, but I do not think that is useful: even if e.g. a crossing fiber simulation script would benefit from some methods, these methods are not required for the framework to work/not necessary for the package, they would require adding tests, etc. So unnecessary work. So I would sacrifice that for having duplicated code across script in this case. At least for now.
The script can be launched as e.g.

pyhon /path/to/eddymotion/scripts/dwi_estimation_error_analysis.py \
  60 1000 100 \
  --evals1 0.0015 0.0003 0.0003 \
  --snr 20 \
  --repeats 3 \
  --kfold 1 3 5 15 30

Using the std deviation value of scikit-learn's GP regressor class (committed in
ea93c4a for the records, but most likely will drop when we get this sorted out) we get the below results, which is again not what we would expect

@oesteban Adopted scikit learn's KFold to create folds in acf683b. One would call the script as e.g.
pyhon /path/to/eddymotion/scripts/dwi_estimation_error_analysis.py \
  60 1000 100 --evals1 0.0015 0.0003 0.0003 --repeats 3 --snr 20 --kfold 3 5 7 10 20 120

Kept the repeats parameter but not using them now.
The output is not what I would expect: error and std dev are constant + the RMSE with SNR 20 is smaller than with SNR 10

@jhlegarreta I've moved things to use scikit-learn's cross-validation to avoid errors on our side implementing the CV framework:

Updated the model to take arrays instead of gradient tables (https://github.com/nipreps/eddymotion/pull/227/commits/ff08c26660ed6c3cb5f29a0c6cfd37e5677ceaf1). We probably will want to add a checkpoint in fit and check if y is a gradient table (and extract bvecs accordingly). But ideally, we want the model to self adapt to incoming ndarrays or DIPY's gradient tables.
Then, I use the default k-fold CV (https://github.com/nipreps/eddymotion/pull/227/commits/b963b968c8915f2107963fb7b06c54d7c0cfc855).

Running this:
python scripts/dwi_estimation_error_analysis.py 60 1000 100 --evals1 0.0015 0.0003 0.0003 --repeats 3 --snr 20 --kfold 5 10 60 --repeats 200

I get
{5: (-6.5451513798923475, 0.7829974075194627), 10: (-6.704245824324263, 1.451348158720791), 60: (-6.339094677419443, 2.883843582961101)}

which I believe is consistent with the expectations:

RMSE is negative because scikit-learn negates it.
Error is constant around 6. something, however the spread grows with larger folds. This makes sense to me because the more folds the more fits and the bigger the probability of getting RMSEs further from the average. Also the average is with only two values, so it's also easier to get larger errors. With repeats=200 then k=5 means 1000 fits while k=60 means 12000 fits. I'll try to compensate for this later.

Regarding the number of directions in training, the interpretation of the k-fold is also different from what I think we were discussing:
k = 5 -> 5 folds, 120/5=24 bvecs per test fold -> 96 bvecs for training.
k = 60 -> 60 folds, 120/60 = 2 bvecs per test fold -> 118 bvecs for training.
I keep receiving the following warnings though:
/data/home/oesteban/workspace/scikit-learn/sklearn/gaussian_process/kernels.py:442: ConvergenceWarning: The optimal value found for dimension 0 of parameter a is close to the specified lower bound 1e-05. Decreasing the bound and calling fit again may find a better value.
/data/home/oesteban/workspace/scikit-learn/sklearn/gaussian_process/kernels.py:452: ConvergenceWarning: The optimal value found for dimension 0 of parameter lambda_s is close to the specified upper bound 10000.0. Increasing the bound and calling fit again may find a better value.
/data/home/oesteban/workspace/scikit-learn/sklearn/gaussian_process/kernels.py:442: ConvergenceWarning: The optimal value found for dimension 0 of parameter sigma_sq is close to the specified lower bound 1e-05. Decreasing the bound and calling fit again may find a better value.

and:
/data/home/oesteban/workspace/scikit-learn/sklearn/gaussian_process/_gpr.py:659: ConvergenceWarning: lbfgs failed to converge (status=2):
ABNORMAL_TERMINATION_IN_LNSRCH.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
  _check_optimize_result("lbfgs", opt_res)

WDYT?

Decreasing the SNR did not help with the warnings. My hypothesis being that noisier data would regularize the problem.

Okay, decreasing the SNR had the expected effect on the cross-validation:
python scripts/dwi_estimation_error_analysis.py 60 1000 100 --evals1 0.0015 0.0003 0.0003 --repeats 3 --snr 10 --kfold 5 10 60 --repeats 200

Results in
{5: (-13.634124763730938, 1.0844600539135052), 10: (-13.739925211912865, 1.6677184190441654), 60: (-13.892240109267137, 4.902059389908273)}

31e5972 adds the capability to generate a carpet plot with the ground truth and the estimated signal (see an example in https://github.com/nipreps/nireports/issues/137) and a correlation plot. The calls are commented since after pulling the most recent commits I've seen that we no longer have the data available; had done this prior to your latest commits.

@jhlegarreta I've found several issues - see https://github.com/nipreps/eddymotion/pull/227/commits/10a576d7459c8e52e2588b7666d109d46dba8b54
I'll keep digging the kernel.theta setting. Keep you posted.

@jhlegarreta Progress https://github.com/scikit-learn/scikit-learn/pull/30098

Thanks for all this investigation.
Let me know if you are able to push the latest changes so that I can continue investigating on my end.

Unrelated note: eventually, after we manage to fix the current issues and if it makes sense to bring the implementation closer to DIPY's reconstruction models, we may want to use DIPY's cross validation:
https://github.com/dipy/dipy/blob/1961a91e2130aa9e2891a5610a79e2c9aca24d88/dipy/reconst/cross_validation.py#L58
https://github.com/dipy/dipy/blob/1961a91e2130aa9e2891a5610a79e2c9aca24d88/doc/examples/kfold_xval.py

Currently, I have:
python scripts/dwi_estimation_error_analysis.py 60 1000 100 --evals1 0.0015 0.0003 0.0003 --snr 20 --kfold 3 5 10 15 20 25 30 40 50 60 --repeats 1000
{3: (-5.323663473768337, 0.5078300442425429), 5: (-5.592537291455177, 0.6344872918456032), 10: (-6.457823460261486, 1.1560694555678308), 15: (-6.0008898214350985, 1.2415790700142275), 20: (-4.785889809484692, 1.2121841573793941), 25: (-5.02350508651579, 1.7419826969482066), 30: (-4.902673405605454, 1.6647001726929596), 40: (-4.886979705096015, 1.9020697112634937), 50: (-5.276554893079895, 2.636081796110276), 60: (-5.393546086268717, 2.5409755115661166)}

Running a comparison right now - let's keep moving :)


Koffi leaves open async handles on exit

When running koffi in my project, jest (with the --detectOpenHandles option) throws the following error:
Jest has detected the following 1 open handle potentially keeping Jest from exiting:

  ●  Koffi Async Callback Broker

       5 | Object.defineProperty(exports, "__esModule", { value: true });
       6 | exports.noop = void 0;
    >  7 | const koffi_1 = __importDefault(require("koffi"));
         |                                 ^
       8 | const test = koffi_1.default.types;
       9 | const noop = () => {
      10 |     console.log({ test });

      at Runtime._loadModule (node_modules/jest-runtime/build/index.js:1009:29)
      at Object.<anonymous> (node_modules/koffi/src/index.js:48:41)
      at Object.<anonymous> (dist/index.js:7:33)
      at Object.<anonymous> (dist/index.test.js:3:12)

I have created a minimal reproducible example in this repo:
https://github.com/TheCleric/koffi-open-handle-demo

This handle gets closed correctly once Node unloads Koffi, at the very end.
Is it a problem that it does not get freed earlier? Does it actually prevent something from exiting?

It causes issues with using Jest to test code that uses Koffi as this is an error when using --detectOpenHandles to ensure all promises are handled correctly.

This should be improved in Koffi 2.5.19.
If you don't use callbacks, the async thread broker is not created.
If a callbacks gets used, you can use koffi.reset() to drop the handle.

Thanks!


Set page-specific constraints for scripts (matches)

Some scripts will only be run at specific pages, so in order to avoid loading all content for all pages, we load only the content that will be useful.

And this would fix another issue that we have today: code like the one below runs forever on pages in which 'container-id' does not exist.
    function doSomethingWhenReady() {
        const intervalId = setInterval(() => {
            const container = document.getElementById('container-id');
            if (!container) return;

            clearInterval(intervalId);

            ...
        }, INTERVAL);
    }


Import dataset fail in staging

Importing a dataset in staging gives an upload error that doesn't happen in production.
Follow these steps to reproduce it:

Download this dataset as csv.
Try to upload it from the dataset uploader with version 0.9.1 of the extension disabling data type guessing.
Fails, returning this:

2015-08-20 09:11:03 UTC: Exception: PG::Error: ERROR:  column "the_geom" of relation "public_1" does not exist
CONTEXT:  SQL statement "CREATE trigger update_the_geom_webmercator_trigger BEFORE INSERT OR UPDATE OF the_geom ON public_1 FOR EACH ROW EXECUTE PROCEDURE cartodb._CDB_upd

app/models/table.rb:1176:in `block in cartodbfy'

I tested it without this patch (against 0.9.0) and it worked ok. I'll keep investigating...

Couldn't reproduce it against 0.9.1 either in local.

The disabling type guessing is fundamental to reproduce the issue. The trace
2015-08-20 10:08:44 UTC ERROR:  column "the_geom" of relation "public_2" does not exist
2015-08-20 10:08:44 UTC CONTEXT:  SQL statement "CREATE trigger update_the_geom_webmercator_trigger BEFORE INSERT OR UPDATE OF the_geom ON public_2 FOR EACH ROW EXECUTE PROCEDURE cartodb._CDB_update_the_geom_webmercator()"
        PL/pgSQL function _cdb_create_triggers(text,regclass) line 16 at EXECUTE statement
        SQL statement "SELECT _CDB_create_triggers(destschema, destoid)"
        PL/pgSQL function cdb_cartodbfytable(text,regclass) line 60 at PERFORM
2015-08-20 10:08:44 UTC STATEMENT:
                SELECT cartodb.CDB_CartodbfyTable('public'::TEXT,'public.public_2'::REGCLASS);

I'll try to provide a simpler scenario to reproduce. I think what happens is that without type guessing the_geom is imported as string and discarded as valid geom column.

Right before cdb_cartodbfytable:
\d public
       Table "public.public"
   Column    |   Type   | Modifiers
-------------+----------+-----------
 name        | text     |
 nametype    | text     |
 recclass    | text     |
 mass_g      | text     |
 fall        | text     |
 year        | text     |
 id          | text     |
 reclat      | text     |
 reclong     | text     |
 geolocation | text     |
 the_geom    | geometry |
 cartodb_id  | text     |
 created_at  | text     |
 updated_at  | text     |

so it is supposed to have a column the_geom

Full trace here
Some relevant things:
DEBUG:  CDB(_CDB_Rewrite_Table): has_usable_geoms f
    222:DEBUG:  CDB(_CDB_Rewrite_Table): CREATE TABLE public.public_86667d092de1284a1a3fe1230883143f AS SELECT nextval('public.public_cartodb_id_seq') AS cartodb_id FROM public
    225:DEBUG:  CDB(_CDB_Rewrite_Table): CREATE TABLE public.public_86667d092de1284a1a3fe1230883143f AS SELECT nextval('public.public_cartodb_id_seq') AS cartodb_id FROM public
    230:DEBUG:  CDB(_CDB_Rewrite_Table): ALTER TABLE public.public_86667d092de1284a1a3fe1230883143f ALTER COLUMN cartodb_id SET DEFAULT nextval('public.public_cartodb_id_seq')
    235:DEBUG:  CDB(_CDB_Rewrite_Table): ALTER SEQUENCE public.public_cartodb_id_seq OWNED BY public.public_86667d092de1284a1a3fe1230883143f.cartodb_id
    280:DEBUG:  CDB(_CDB_Rewrite_Table): ALTER TABLE public.public_86667d092de1284a1a3fe1230883143f RENAME TO public

DEBUG:  CDB(_CDB_Rewrite_Table): found no extra columns ???

@javisantana @pramsey this is getting funnier. There are lots of corner cases hidden in IF/ELSE branches. I'll do my best to get a fix with minimal impact for this.

Well, I can understand having the text the_geom case fail, although since you patched the function to create NULL'ed columns in the case of missing a geometry column, even that case shouldn't fail, it should just do a bad import. The "has_usable_geoms f" log entry just means that the function couldn't find geometry columns it could use without rewriting the table so a table rewrite would be required. Basically the "usable geoms" function just checks if there are pre-existing geometry columns in 4326 and 3857, and if there are, renames them to the right thing, no table re-write required.

I understand the high level approach and I'm ok with it. What I'm saying is that we can have many scenarios and we're having problems with some of them. Just trying to find the most pragmatic solution.

if there are pre-existing geometry columns in 4326 and 3857
we can have many combinations there: 4326 and 3857 present, one present and the other absent, both absent.

https://github.com/CartoDB/cartodb-postgresql/blob/master/scripts-available/CDB_CartodbfyTable.sql#L901-L936
I suspect of the code around those lines. geom_column_source should be set to '' in the NOT FOUND case, right?

Well, the question is what conditions are getting it into the NOT FOUND case in the first place... because it's clearly not expected. It looks like a geometry-typed column with a zero-valued SRID slips into the gaps between the conditions.
geom_column_source is initialized to '' up top, so that's taken care of. And we have the following conditions

can't find a column with type geometry -- add two NULL::geometry columns
find a column with type geometry

has an SRID? transform it to 4326 and 3857
has no SRID? mmmmmm...

# select Find_SRID('public', 'public', 'the_geom');
 find_srid
-----------
         0
(1 row)

confirmed. BTW, why don't we use Find_SRID?

find_srid() depends on looking at geometry_columns, which only has valid info for columns that are declared with an SRID, ie geometry(point, 4326). Unfortunately we should probably be looking at an amalgam of checking the geometry_columns table, and then if that's zero checking the first geometry. find_srid would handle the case of the empty table, unlike the current code

postgis22=# create table foo ( g geometry );
CREATE TABLE
postgis22=# insert into foo values ('SRID=2;POINT(1 1)');
INSERT 0 1
postgis22=# select * from geometry_columns ;
 f_table_catalog | f_table_schema | f_table_name | f_geometry_column | coord_dimension | srid |   type
-----------------+----------------+--------------+-------------------+-----------------+------+----------
 postgis22       | public         | foo          | g                 |               2 |    0 | GEOMETRY
(1 row)

postgis22=# select st_srid(g) from foo ;
 st_srid
---------
       2
(1 row)

The problem is a combination of two unfortunate things:

From rails code: 2015-08-20 09:10:59 UTC: Creating the_geom from the_geom column but without SRID

From the extension, hitting the case pointed  out above.

I'd make the extension resilient to that problem and also fix rails code.

https://github.com/CartoDB/cartodb/blob/master/services/importer/lib/importer/column.rb#L165-L179

Thou shalt have no 3d geometry? Not as a core matter of philosophy, since we can create them and map them by hand via SQL API. But importer forces that... we could avoid doing in in SQL if we want to keep the importer behavior by using the -dim 2 flag on ogr2ogr?

Apparently the old behavior was to force the SRID for the_geom and the_geom_webmercator columns: https://github.com/CartoDB/cartodb-postgresql/blob/513488da0ef0cc5516a774f2a8dc7022675ad303/scripts-available/CDB_CartodbfyTable.sql#L335-L339

We force our outputs to have the right SRIDs in the column defs too, but that doesn't help us if the inputs are undefined, right?

Right. OTOH it was a convenient assumption that if there was a the_geom then it had 4326. Breaking with that assumption has consequences, especially in the export/import scenario.

@pramsey do you think you can write a function to force srid of the geom to 4326 if it is not set? would it make you feel bad? after considering several options I don't see a better one to go live.

my proposal:
diff --git a/scripts-available/CDB_CartodbfyTable.sql b/scripts-available/CDB_CartodbfyTable.sql
index 46bd362..22f660f 100644
--- a/scripts-available/CDB_CartodbfyTable.sql
+++ b/scripts-available/CDB_CartodbfyTable.sql
@@ -925,12 +925,15 @@ BEGIN
       AND t.typname = 'geometry'
       AND a.attnum > 0
       AND NOT a.attisdropped
-      AND (postgis_typmod_srid(a.atttypmod) > 0 OR srid.srid > 0)
+      AND ((postgis_typmod_srid(a.atttypmod) > 0 OR srid.srid > 0) OR (a.attname = const.geomcol))
       ORDER BY a.attnum
       LIMIT 1;

       IF FOUND THEN
         sql := sql || geom_transform_sql;
+      ELSE
+        RAISE NOTICE 'rtorre: spetial tricky one';
+       geom_column_source := '';
       END IF;

     END IF;

I think just go w/ good old SQL
CASE WHEN st_srid(geom) = 0 THEN st_setsrid(geom,4326) ELSE geom END

After giving it some thought I think you're right. Paul, could you please write the code to force cartodb columns to the right type if they are present?

Reviewing tests, I think this was a mistake from my side: 010dd13
Another interesting changeset that should've covered right this case: bb68579


Building Road over Another road

Built a road over another player's road, need to check to make sure it is properly validating there is a road built at that intersection

Fixed


Removing Dev ES references

Type of change

[x] Refactor
[ ] New feature
[ ] Bug fix
[ ] Optimization
[ ] Documentation Update

Description
Removing Dev ES from the source code references.
Related Tickets & Documents

Closes # https://issues.redhat.com/browse/PERFSCALE-3430

Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.

cc: @rsevilla87 @jtaleric @mukrishn

cc @mohit-sheth , not sure if this change will affect the playbook, can you verify it?

cc: @venkataanil

Confirming that this change is harmless. We have airflow already using our prod ES instance from the vault.


DAWN-637 ⁃ Need to remove the remaining code for lazy table key validation

Need to remove the remaining code for lazy table key validation in contract_table_object.hpp (table_id_object::key_type).

Is this being assigned to Andrianto to validate it?

I'm kinda confused with this ticket. I saw there are 3 PR referring to this ticket, will there any more in the future? Or is it ready for testing? If it's ready for testing, can we set the pipeline to be "In QA/ UAT" and add some ATC here? Thanks

ATC Passes


breakpoint configuration

currently, the logic generates breakpoints based on the following breakpoint
so it seems, that the breakpoint ns which is available in the regular tachyons cannot be produced
I want to mirror the material design breakpoints, which include not only xs, sm, md, lg, xl, but also gt-xs, gt-sm, gt-md, gt-lg (greater-than). They have the same semantic logic as tachyons' ns, basically only describing the min-width
as for the json config, this could be indicated with <= and/or >=
  "customMedia": [
    { "sm": "600px" },
    { "md": "960px" },
    { "lg": "1280px" },
    { "xl": "1920px" },
    { "gt-xs": ">=600px" },
    { "gt-sm": ">=960px" },
    { "gt-md": ">=1280px" },
    { "gt-lg": ">=1920px" }
  ],

where >=600px would result in screen and min-width(600px)
I admit, this does not look nice, but thats only from the top of my head

That's a great idea. I've gone ahead and spiked out an implementation (#66) that also adds further customization allowing you to pass an object instead of a media query value for further configurability:
customMedia: [
     { "sm": "600px" },
    { "md": "960px" },
    { "lg": "1280px" },
    { "xl": "1920px" },
    { "gt-xs": { "value": "600px", "minWidth": true } },
    { "gt-sm":  { "value": "960px", "minWidth": true }  },
    { "gt-md":  { "value": "1280px", "minWidth": true }  },
    { "gt-lg":  { "value": "1920px", "minWidth": true, "prefix": true, "delimiter": "@" }  }
]

The last mq options make the class naming become db@gt-lg for that breakpoint : )

while you're at it, you could also add maxWidth

Done < 3

@johnotander works great!
except one thing:
  "customMedia": [
    { "xl": "1920px" },
    { "gt-lg": {"value": "1920px", "minWidth": true }}
  ],

the 2nd breakpoint doesn't get generated. i haven't looked into the code, but I assume it has something todo with both resulting in screen and (min-width: 1920px)
I am aware that it doesn't really make sense to have 2 identical breakpoints... the semantic meaning though is different. bottom line: I'm unsure if this is a bug or a feature

I'll look into it to see what's going on today. Definitely think its a bug since they're named differently.

Hey @ctaepper,
Just ran the generator with the xl and gt-lg media queries and they both seem to be generated for me. Are you sure the second isn't being generated?

I'm sorry, I have more breakpoints and I didn't realize, that the 2 breakpoints got merged together within one single media query

No worries, glad it works! 😸


[Combine] can set default value to CurrentValueSubject

Overview
I added new metadata to set an explicit default value for CurrentValueSubject in a Mock object, which is used to manage the Publisher stream.
Problem
Currently, if publish type ( type A of Publisher<A, B>) is not kind of primitive type, subject becomes PassthroughSubject even if you mark it as CurrentValueSubject by @mockable(combine: aPublisher = CurrentValueSubject).
Note
This PR only addresses Combine, but RxSwift also has the same problem. I believe this should be considered a separate issue because the implementation differs from the Combine one.
Example

@sidepelican
I'm in no hurry but could you review this PR when you have time :pray:

This change looks good, but I don't want to expand the Combine related functions.
In case of #175, it can also be avoided by using the --disable-combine-default-values option. This change doesn't seem necessary.
If we are going to be hospitable to #175, I think it would be to display warning messages when the CurrentValueSubject fall through implicitly to the PassthroughSubject.
On that time, it would also be good to display the existence of the --disable-combine-default-values option.

Yes. honestly, I did not know that flag. It is what I would like! Thank you.

it would be to display warning messages when the CurrentValueSubject fall through implicitly to the PassthroughSubject.

I will try to address to show the warning message instead of this PR. 👍


older versions of sqlite

Following the guide I can use a customized version of SQLite3 with better-sqlite3, but only for recent versions. Older versions like 3.16.2 fall over with errors like this:
npm ERR! ./src/objects/database.lzz: In static member function 'static void Database::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)':
npm ERR! ./src/objects/database.lzz:182:55: error: 'SQLITE_DBCONFIG_DEFENSIVE' was not declared in this scope; did you mean 'SQLITE_DBCONFIG_LOOKASIDE'?
npm ERR! ./src/objects/database.lzz: In static member function 'static void Database::JS_serialize(const v8::FunctionCallbackInfo<v8::Value>&)':
npm ERR! ./src/objects/database.lzz:285:39: error: 'sqlite3_serialize' was not declared in this scope; did you mean 'sqlite3_strlike'?
npm ERR! ./src/objects/database.lzz: In static member function 'static void Database::JS_function(const v8::FunctionCallbackInfo<v8::Value>&)':
npm ERR! ./src/objects/database.lzz:313:42: error: 'SQLITE_DIRECTONLY' was not declared in this scope; did you mean 'SQLITE_READONLY'?
npm ERR! ./src/objects/database.lzz: In static member function 'static void Database::JS_aggregate(const v8::FunctionCallbackInfo<v8::Value>&)':
npm ERR! ./src/objects/database.lzz:342:42: error: 'SQLITE_DIRECTONLY' was not declared in this scope; did you mean 'SQLITE_READONLY'?
npm ERR! ./src/objects/database.lzz:345:21: error: 'sqlite3_create_window_function' was not declared in this scope; did you mean 'sqlite3_create_function'?
npm ERR! ./src/objects/database.lzz: In static member function 'static void Database::JS_unsafeMode(const v8::FunctionCallbackInfo<v8::Value>&)':
npm ERR! ./src/objects/database.lzz:412:50: error: 'SQLITE_DBCONFIG_DEFENSIVE' was not declared in this scope; did you mean 'SQLITE_DBCONFIG_LOOKASIDE'?
npm ERR! ./src/objects/database.lzz: In static member function 'static bool Database::Deserialize(v8::Local<v8::Object>, Addon*, sqlite3*, bool)':
npm ERR! ./src/objects/database.lzz:427:38: error: 'SQLITE_DESERIALIZE_FREEONCLOSE' was not declared in this scope
npm ERR! ./src/objects/database.lzz:427:71: error: 'SQLITE_DESERIALIZE_RESIZEABLE' was not declared in this scope
npm ERR! ./src/objects/database.lzz:430:34: error: 'SQLITE_DESERIALIZE_READONLY' was not declared in this scope
npm ERR! ./src/objects/database.lzz:440:30: error: 'sqlite3_deserialize' was not declared in this scope; did you mean 'sqlite3_initialize'?
npm ERR! ./src/objects/statement.lzz: In static member function 'static void Statement::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)':
npm ERR! ./src/objects/statement.lzz:98:29: error: 'SQLITE_PREPARE_PERSISTENT' was not declared in this scope
npm ERR! ./src/objects/statement.lzz:110:21: error: 'sqlite3_prepare_v3' was not declared in this scope; did you mean 'sqlite3_prepare_v2'?
npm ERR! ./src/util/custom-table.lzz: At global scope:
npm ERR! ./src/util/custom-table.lzz:45:9: error: too many initializers for 'sqlite3_module'
npm ERR! ./src/util/custom-table.lzz:72:9: error: too many initializers for 'sqlite3_module'
npm ERR! ./src/util/custom-table.lzz: In static member function 'static int CustomTable::xConnect(sqlite3*, void*, int, const char* const*, sqlite3_vtab**, char**)':
npm ERR! ./src/util/custom-table.lzz:200:67: error: 'SQLITE_VTAB_DIRECTONLY' was not declared in this scope; did you mean 'SQLITE_OPEN_READONLY'?

my dockerfile for the above is:
FROM alpine:3.16
RUN apk add --no-cache openrc util-linux haveged nodejs
RUN apk add --no-cache --virtual .build-deps unzip python3 make g++ npm \
  && wget https://www.sqlite.org/2017/sqlite-amalgamation-3160200.zip -O sqlite.zip \
  && unzip -j sqlite.zip \
  && rm sqlite.zip \
  && sed -i '1i#define SQLITE_DQS 0' sqlite3.c \
  && sed -i '1i#define SQLITE_THREADSAFE 0' sqlite3.c \
  && sed -i '1i#define SQLITE_DEFAULT_MEMSTATUS 0' sqlite3.c \
  && sed -i '1i#define SQLITE_DEFAULT_SYNCHRONOUS 0' sqlite3.c \
  && sed -i '1i#define SQLITE_LIKE_DOESNT_MATCH_BLOBS 1' sqlite3.c \
  && sed -i '1i#define SQLITE_OMIT_DEPRECATED 1' sqlite3.c \
  && sed -i '1i#define SQLITE_OMIT_SHARED_CACHE 1' sqlite3.c \
  && sed -i '1i#define SQLITE_USE_ALLOCA 1' sqlite3.c \
  && npm install -g better-sqlite3 --build-from-source --sqlite3=/ \
	&& apk del --no-network .build-deps
ENTRYPOINT ["sh"]

I've been able to compile SQLite 3.16.2 on the same alpine version:
FROM alpine:3.16
RUN apk add --no-cache openrc util-linux haveged sqlite-dev nodejs
RUN apk add --no-cache --virtual .build-deps alpine-sdk python3 npm
RUN wget http://www.sqlite.org/2017/sqlite-autoconf-3160200.tar.gz -O sqlite.tar.gz \
  && mkdir /sqlite \
  && tar -zxvf sqlite.tar.gz -C /sqlite --strip-components=1 \
  && rm sqlite.tar.gz
RUN sed -i '1i#define SQLITE_DQS 0' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_THREADSAFE 0' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_DEFAULT_MEMSTATUS 0' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_DEFAULT_SYNCHRONOUS 0' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_LIKE_DOESNT_MATCH_BLOBS 1' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_OMIT_DEPRECATED 1' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_OMIT_SHARED_CACHE 1' /sqlite/sqlite3.c \
  && sed -i '1i#define SQLITE_USE_ALLOCA 1' /sqlite/sqlite3.c
RUN /sqlite/configure --prefix=/usr --disable-static --enable-fts5 --enable-json1 \
    CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_JSON1" \
  && make \
  && make install
ENTRYPOINT ["sh"]

Is there anything I can do to get old versions compiling with better-sqlite3, or is there a way of linking to the version I'm able to compile independently?

I've got 3.27 working :
  && sed -i '1i#define SQLITE_DIRECTONLY 0' sqlite3.h \
  && sed -i '1i#define SQLITE_VTAB_DIRECTONLY 1' sqlite3.h \
  && sed -i '1i#define SQLITE_ENABLE_DESERIALIZE 1' sqlite3.c \

SQLITE_ENABLE_DESERIALIZE is needed because of a change in defaults:

This option was formerly used to enable the sqlite3_serialize() and sqlite3_deserialize() interfaces. However, as of SQLite 3.36.0 (2021-06-18) those interfaces are enabled by default and a new compile-time option SQLITE_OMIT_DESERIALIZE is added to omit them.

The other two I assume are just new options.

I don't think this approach is going to work for 3.16 as sqlite3_serialize() doesn't exist that far back. I can get 3.15 with v1.3.9 and 3.18 with v2.2.0 but am I correct that the option to compile from source didn't exist until recently so I won't be able to use either of those versions as a base for getting 3.16 working?

Since better-sqlite3 exposes features that only exist in modern versions of SQLite, such as db.serialize, older versions won't work. You would need to fork better-sqlite3 and remove all features that don't exist in the version of SQLite you're using.

Possibly related to https://github.com/WiseLibs/better-sqlite3/issues/855

Thanks @JoshuaWise that makes sense :)


It is not possible to click on the WAF of cloudflare Pro or business plan

Description
It is not possible to click on the WAF of cloudflare Pro or business plan
I want to know how to click
https://bakamarisa.shop/
https://91av.live/ cf pro
Full steps to reproduce the issue
  let verify = null
  let startDate = Date.now()
  while (!verify && (Date.now() - startDate) < 30000) {
      verify = await page.evaluate(() => { return document.querySelector('.link_row') ? true : null }).catch(() => null)
      await new Promise(r => setTimeout(r, 1000));
  }

Issue Type
Support
Operating System
Linux
Do you use Docker?
I don't use Docker

have you set turnstile to true?

have you set turnstile to true?您是否将 turnstile 设置为 true？

const options = {
headless: false,
ignoreHTTPSErrors: true,
turnstile: true,
args: [
"--proxy-server=http://" + browserProxy,
"--no-sandbox",
"--no-first-run",
"--ignore-certificate-errors",
"--disable-extensions",
"--test-type",
"--user-agent=" + randomUA,
"--disable-gpu"
],
customConfig: {},
connectOption: {
defaultViewport: null  // 禁用默认的视口设置
},
plugins: [
require('puppeteer-extra-plugin-click-and-wait')()
]
};

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

https://github.com/user-attachments/assets/848220be-2eb6-4aef-98fb-a3542591cb50

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.该库成功通过了 Cloudflare 企业和免费计划保护。您添加的 args 值可能会降低库的可靠性。我在下面添加了一个测试视频，你可以用测试代码来试试。似乎没有问题。
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

2024-11-09.12-09-41.mp4

No extra action is required, just add the “turnstile: true” option?

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.该库成功通过了 Cloudflare 企业和免费计划保护。您添加的 args 值可能会降低库的可靠性。我在下面添加了一个测试视频，你可以用测试代码来试试。似乎没有问题。
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

2024-11-09.12-09-41.mp4

No extra action is required, just add the “turnstile: true” option?

Yes just add turnstile: true, which launches a secure browser when you add it. Any addition you make can cause you to be detected.

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.该库成功通过了 Cloudflare 企业和免费计划保护。您添加的 args 值可能会降低库的可靠性。我在下面添加了一个测试视频，你可以用测试代码来试试。似乎没有问题。
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

2024-11-09.12-09-41.mp4

No extra action is required, just add the “turnstile: true” option?无需额外操作，只需添加 “turnstile： true” 选项即可？

Yes just add turnstile: true, which launches a secure browser when you add it. Any addition you make can cause you to be detected.是的，只需添加 turnstile： true，它会在您添加时启动一个安全的浏览器。您所做的任何添加都可能导致您被检测到。

ok thx!

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.该库成功通过了 Cloudflare 企业和免费计划保护。您添加的 args 值可能会降低库的可靠性。我在下面添加了一个测试视频，你可以用测试代码来试试。似乎没有问题。
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

2024-11-09.12-09-41.mp4

No extra action is required, just add the “turnstile: true” option?无需额外操作，只需添加 “turnstile： true” 选项即可？

Yes just add turnstile: true, which launches a secure browser when you add it. Any addition you make can cause you to be detected.是的，只需添加 turnstile： true，它会在您添加时启动一个安全的浏览器。您所做的任何添加都可能导致您被检测到。

https://91av.live/ If it's a custom cloudflareWAF, can you click on it?

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.该库成功通过了 Cloudflare 企业和免费计划保护。您添加的 args 值可能会降低库的可靠性。我在下面添加了一个测试视频，你可以用测试代码来试试。似乎没有问题。
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

2024-11-09.12-09-41.mp4

No extra action is required, just add the “turnstile: true” option?无需额外操作，只需添加 “turnstile： true” 选项即可？

Yes just add turnstile: true, which launches a secure browser when you add it. Any addition you make can cause you to be detected.是的，只需添加 turnstile： true，它会在您添加时启动一个安全的浏览器。您所做的任何添加都可能导致您被检测到。

https://91av.live/ If it's a custom cloudflareWAF, can click?

I think that site is only accessible from China. It blocks my ip addresses and proxies directly. But it has been tested many times on Openai corporate waf. It passed without any problem. Can you send a video if you could not pass with the sample code I gave?

This library successfully passes Cloudflare enterprise and free plan protections. The args values you add may reduce the reliability of the library. I added a test video below, you can try it with the test code. There does not seem to be a problem.该库成功通过了 Cloudflare 企业和免费计划保护。您添加的 args 值可能会降低库的可靠性。我在下面添加了一个测试视频，你可以用测试代码来试试。似乎没有问题。
const { connect } = require("puppeteer-real-browser")

async function test() {

    const { browser, page } = await connect({
        turnstile: true,
        proxy: proxy,
        disableXvfb: true
    })
    await page.goto('https://91av.live/')

}

test()

2024-11-09.12-09-41.mp4

No extra action is required, just add the “turnstile: true” option?无需额外操作，只需添加 “turnstile： true” 选项即可？无需额外操作，只需添加 “turnstile： true” 选项？无需额外操作，只需添加 “turnstile： true” 选项即可？

Yes just add turnstile: true, which launches a secure browser when you add it. Any addition you make can cause you to be detected.是的，只需添加 turnstile： true，它会在您添加时启动一个安全的浏览器。您所做的任何添加都可能导致您被检测到。

https://91av.live/ If it's a custom cloudflareWAF, can click?https://91av.live/如果是自定义的 cloudflareWAF，可以点击吗？

I think that site is only accessible from China. It blocks my ip addresses and proxies directly. But it has been tested many times on Openai corporate waf. It passed without any problem. Can you send a video if you could not pass with the sample code I gave?我认为该网站只能从中国访问。它直接阻止我的 IP 地址和代理。但它已经在 Openai 企业 waf 上经过多次测试。它顺利通过了。如果您无法通过我提供的示例代码，您可以发送视频吗？

Problem solved, thx!


API: add folder management

This PR is adding a way to manage a sub-folder system in the backend. In the backend it's just a document that describes a folder tree with some references to the dashboard.
It will be used by the frontend to sort the dashboard in the different folders defined.
Note: related to the issue #183
FYI: @LukeTillman @sjcobb
Signed-off-by: Augustin Husson<EMAIL_ADDRESS>

The PR generally seems fine to me, but introducing a feature as central as Folders is something that the other more active devs really need to give high-level input on as well.
One thing to be aware of: this introduces more references between things (previously we only had dashboards and datasources), so manually managing referential integrity without a relational database is already becoming one step more complex.

The PR generally seems fine to me, but introducing a feature as central as Folders is something that the other more active devs really need to give high-level input on as well.

Of course ! I didn't try to it as a ghost haha.

One thing to be aware of: this introduces more references between things (previously we only had dashboards and datasources), so manually managing referential integrity without a relational database is already becoming one step more complex.

Yeah this one is introducing more manual references, but I think it is still fine and it's quite easy to manage.
But that's also why it's easy to implement.  If we were using a referential databases, it's hard to manage this kind of document. I mean having a document that have a recursive definition with multiple references.
And again, we are using a K/V database (for the moment), because then moving / supporting CRD in k8s will be an easy move. Which is not when you are using a relational database.
Yes at some points we should probably support others databases :). That can make sense

But that's also why it's easy to implement. If we were using a referential databases, it's hard to manage this kind of document. I mean having a document that have a recursive definition with multiple references.

True. The current model you have here allows a dashboard to be referenced from multiple folders at the same time, kind of like a hardlink or symlink on Unix. Do you think in the end, when there's UI-based-editing features, it will also make sense to expose that kind of flexibility to the user (i.e. create a dashboard, associate it with multiple folders, almost like GMail labels)?

I think we should already prevent the possibility to link a dashboard to multiple different sub-folders. It's a sort of technical limitation because it would be hard for the UI to determinate from which folder the dashboard is coming from.
You will likely have this link https://perses-dev/project/<your_project>/folders/<folder_name>/<dashboard_name>. Because the number of folders you can describe in this document is not limited but the URL is limited, you won't be able to put the folder tree in the URL.
So if the dashboard is referenced in multiple sub-folder, the UI won't be able to know from which folder the dashboard is coming from.
But if the dashboard is referenced only one time, then the UI will be able to re-build the accurate BreadCrum based on the URL + based on the Folder document.

I think I will implement something to be sure you will have only one references of a dashboard per document.
I'm wondering if we should already limit the depth you can have in term of folder hierarchy. And if yes what would be the limits ? 5, 10 ? Any opinion around this topic @juliusv @sjcobb  @LukeTillman ?

For now I wouldn't worry about limiting the depth, it's something you can get back to if / when needed IMO.


okhttp client instrumentation

Hello,
I have done okhttp client 1 instrumentation. I would like to move it to contrib org if there is interest for it.

@pavolloffay sounds good to me – where is the instrumentation at the moment? What sounds good re a repo name?

It's not pushed anywhere. I can create a repo if you would like to have a look.
Repo name:
java-okhttp ?

Created: https://github.com/opentracing-contrib/java-okhttp/invitations

Closing, it is released and referenced from /meta.


/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.es2020.string.d.ts
	/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts
	/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.es2020.intl.d.ts
	/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.es2021.promise.d.ts
	/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.es2021.string.d.ts
	/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.es2021.weakref.d.ts
	/Users/anasyusef/.vscode/extensions/ms-vscode.vscode-typescript-next-4.5.20210922/node_modules/typescript/lib/lib.esnext.intl.d.ts
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>...

I still haven't figure out how to exactly reproduce it. However, digging further into the issue, it seems that it is not about getting stuck indefinitely. It is just that it takes way too long (7+ mins). So, to reduce the waiting time, I decomposed the file to have smaller components. That reduced the waiting time to around 1-2 mins

These logs look as expected 😕

I see. I monitored to check if there was any output whenever IntelliSense was in the loading state, but it didn't seem to output anything to the logs. I'm going to uninstall libraries then and check to see if there's any luck in getting this sorted, although I don't think it will make a difference.

Do you have any problems with plain old tsc on this project? How long does a build take?

I ran the npx tsc command, and it's taking a while (10+ mins and still running). The project is not big at all. It only has around five pages and about 15 components

Any chance you could share the whole project? If it’s not open source but you’re ok with me investigating, you can temporarily add me with read access, or email me a zip file at<EMAIL_ADDRESS>

/cc @amcasey 👀


How to define attributes in styles.xml?

I want to create a style in styles.xml so that I dont have to add those attributes on every place. Can I do  that in styles.xml? If yes, please give an example as well. thanks

You can do it in this way
<style name="StyledIndicators.Light"<EMAIL_ADDRESS>        <item name="mrl_rippleColor">#ff0000</item>
</style>


Enable connectivity for services.

The concept here is that a component can advertise a service, say "advection", and another component can require "advection".   A parent component can then create a connection so that the consumer component uses the provider component's advection method.
Lots of details need to be thought through just in terms of how this should work.  Then we can worry about implementation details.

@atrayano  I had some further thoughts on this while contemplating how it might work in the new architecture.
Import/Export inversion
If component A uses a service S from component B,  then for component A,  S is an import in the sense that it must be satisfied by a connectivity specified is some ancestral component.  And likewise, for component B, S is an export in the sense that it does not have to be satisfied and may be connected to multiple imports.
However,  from a date-centric perspective,  component B sees the  actual Field objects involved as  imports to its run() method.   For component A it is even messier, as it often involves B modifying A's internal state rather.
Multi-imports
Because the fields are imports from the perspective of  B's run() method, the situation is also odd in the sense that multiple/many fields may be connected to a single "import".   In our current implementation, GEOS assembles a bundle of tracers "manually" so that the association is 1-to-1.     In the new scheme we need something less manual.      One thought is to have a spec for an AggregationImportSpec which flattens all connections into a single bundle on B's end.   The internal elements of the bundle are then proper imports again in the 1-1 sense.   This is probably ok for the advection type things,  but if we have a case where a service needs to import 2 related fields (say P and T), then the bundle approach becomes a bit clunky.   A bundle-of-states would be more natural, but ESMF does not support that.    You could have two bundles (one for P and one for T).   Workable but a bit inelegant.
Another possibility is that we would actually run B once per field instead of aggregating into a single invocation.    This would highlight the one-connection-per-import, but would require actually having non-static import states for B.
I'm currently thinking that the approach is to have the Service itself be an export of B and and import for A.   The add connectivity step would then handle the inversion and connect A's fields to B's imports.

Letting this item slip into MAPL v2.2

@atrayano Can we close this in favor of a more "specific" issue now that preliminary support is in MAPL?


Showing the entire document in Viewer

For tagging candidates, in order to understand the entire context it is better if the human tagger is able to see the entire document. example, to tag one entry in a sentence in pubmed it would be good to be able to see the entire abstract. Also if all of the tagging for one abstract is done together it makes more sense, hence showing the entire document together in mindtagger for tagging all of the candidates is also useful.

Can do this with BRAT now!


Fix typo in hoodie-presto-bundle

I was getting some java import error involving Jackson which was resolved after I removed https://mvnrepository.com/artifact/com.uber.hoodie/hoodie-presto-bundle/0.4.7 from plugins/hive-hadoop2/.
I'm not sure if this resolves the entire import issue but I think it's a good idea for future debugging to happen with this change made, so future contributors no longer have to worry about typos.

yikes.. @bhasudha FYI ..

Thanks for catching this @luke-zhu . Other bundles dont have this issue.. This could explain some jackson errors hit by few users on presto

with jackson being excluded, the import should now be fine? can you build the bundle off master and see if it works?

I was getting some java import error involving Jackson which was resolved after I removed https://mvnrepository.com/artifact/com.uber.hoodie/hoodie-presto-bundle/0.4.7 from plugins/hive-hadoop2/.
I'm not sure if this resolves the entire import issue but I think it's a good idea for future debugging to happen with this change made, so future contributors no longer have to worry about typos.

Oops. My bad. Sorry for the trouble. Thanks for catching this @luke-zhu .


Feature: allow word-break in wrapped paragraphs.

Description
This PR will allow word-break in wrapped paragraphs.
Testing guidelines

Create a Paragraph  in a Block, with the break_word value in its Wrap set to true.
Such as :
const SAMPLE_STRING: &str = "The library is based on the principle of immediate rendering with \
     intermediate buffers. This means that at each new frame you should build all widgets that are \
     supposed to be part of the UI. While providing a great flexibility for rich and \
     interactive UI, this may introduce overhead for highly dynamic content.";

fn ui<B: Backend>(frame: &mut Frame<B>) {
    let size = Rect::new(0, 0, 20, 10);
    let text = vec![Spans::from(SAMPLE_STRING)];
    let paragraph = Paragraph::new(text)
        .block(Block::default().borders(Borders::ALL))
        .alignment(Alignment::Left)
        .wrap(Wrap {
            trim: true,
            break_words: true,
        });
    frame.render_widget(paragraph, size);
}

If set break_words as true, the result will be like:
┌──────────────────┐
│The library is bas│
│ed on the principl│
│e of immediate ren│
│dering with interm│
│ediate buffers. Th│
│is means that at e│
│ach new frame you │
│should build all w│
└──────────────────┘

If set break_words as false, the result will be like:
┌──────────────────┐
│The library is    │
│based on the      │
│principle of      │
│immediate         │
│rendering with    │
│intermediate      │
│buffers. This     │
│means that at each│
└──────────────────┘

Checklist

[x] I have read the contributing guidelines.
[x] I have added relevant tests.
[x] I have documented all new additions.

This is great, I'm really missing this feature


Problem 6. Point in Circle wrong example answers

Write an expression that checks if given point P(x, y) is within a circle K(O, 5).
-1	2	false
-1.5	-1.5	false
0.9	-1.93	false
If I understand the task (circle with center at 0, 0 and radius = 5), all of these should be true.

Fixed with commit 17d09c354af984fdb9a4815cd552eeb1e0bcb15a


Add Debian and RPM packages of Microsoft's AZNFS-mount to listed packages

Hey, AZNFS-Mount is Utility for correctly handling endpoint IP address changes for Azure Blob NFS mounts. We wanted to publish the debian and rpm packages of our tool to repository.
Here's the repo and latest version packages: https://github.com/Azure/AZNFS-mount/tree/0.1.109
Can you share the further steps?
Thanks
Palash

I synced up with @palashvij-msft internally to get the AZNFS-mount team started on onboarding to packages.microsoft.com.


make http01 solver pod resource request/limits configurable, refs #892

What this PR does / why we need it:
Makes the values configurable that have been hardcoded/introduced via #408
Which issue this PR fixes:
It refs  #892 but doesn't necessarily fixes it.
Special notes for your reviewer:
Release note:

Make http01 solver pod resource request/limits configurable

/assign @munnerz

/ok-to-test

/retest

Can someone explain me that (https://jetstack-build-infra.appspot.com/build/jetstack-logs/pr-logs/pull/jetstack_cert-manager/923/pull-cert-manager-e2e-v1-11/173/) error please?

🎉 hooray! tests successful

Could someone please take care of this PR? Thanks :)

Hey, thanks very much for this PR and sorry it's not been looked at sooner. It has been a busy few weeks!
This looks great, and I think we can merge this as-is 😄 thanks very much for getting those tests passing, and I hope it wasn't too painful!
/lgtm
/approve

Hey, this doesn't work anymore because of https://github.com/cert-manager/cert-manager/blob/master/cmd/controller/app/options/options.go#L110 right? Or am I getting it confused with something else?
If so, is there another way to enforce resource requests/limits to solver pods?


support / give feedback privilege escalation gets stuck

The app gets stuck waiting for permission to generate the feedback package if the password prompt is canceled. While it's stuck the user may navigate way from the support / give feedback page while the rainbow progress ribbon animates at the bottom and the "generate" button remains disabled.

Same as Issue #8


Feature/update game page view

LINKED ISSUE
I'm not sure
DESCRIPTION

abstracted out functions for readability

METHODOLOGY

to make code purpose clearer for contributors

(Also, sorry. Kid chaos so this isn't a great description)

Thank you!


Move event signing to server-server spec

It's definitely not a client concern.
It isn't really in the right place at the moment, but s-s is very much a
work in progress whereas c-s is nearly stable.

lgtm modulo nits


When I unpublish app all tables still exist in SQL database

Is it a bug or feature?
When I

press Ctrl+F5
fill data in my extension
go to : Extension management
Uninstall my extension
Unpublish my extension
go to VS Code and press Ctrl+F5 once again, all data that I inputted before - exist!

I found this is because when I uninstall and unpublish my extension, tables from SQL database are not deleted.

This is by design for now. In the future there will me more control over what happens to data related to an extension both during development and at runtime.

Per a colleague, this is fixed for the next update. The VS Code flow will clean up the old schema on the next publish operation if the app was manually unpublished since.
It is also possible to use Sync-NavApp with the Clean mode from PowerShell to remove all schema at any time. The "sync clean" action is not available through the extension management page right now.


Extra docs on exactly where to start installing things?

I see this line is where some PRs start to make changes:
https://github.com/publiclab/pi-builder/blob/f9481e45f189ba1e7b15c6a6c2dd364b31540547/builder/chroot-script.sh#L207
Should we put some comment there and delineate an area where it's ideal to start installing scripts and running git or npm? I assume git is installed, is npm too?
Thank you!

Looking at #37 to install some NPM stuff...

Aha, sorry, so i think we need to separately document where to put things on initial install, vs. on each startup.
Maybe we ought to actually make 2 files, called startup and setup, which would be run as root? Then just link to them from the appropriate places? But i'm open to whatever makes sense!

We have two scripts, one runs outside the chroot as the build system (build.sh) and the other inside chroot (chroot-script.sh). Both run as root. The appropriate place to install git and npm etc is chroot-script.sh.

OK, and the place to put things to run on boot would be in a crontab,
potentially? Thanks!
On Mon, Oct 22, 2018 at 11:16 PM Sebastian Silva<EMAIL_ADDRESS>wrote:

We have two scripts, one runs outside the chroot as the build system
(build.sh) and the other inside chroot (chroot-script.sh). Both run as
root. The appropriate place to install git and npm etc is chroot-script.sh
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/publiclab/pi-builder/issues/36#issuecomment-432074047,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABfJ0x-avlt_zp9js4CXVHrGl_WDzILks5unooDgaJpZM4X0UNV
.

Oh, yes, I should add these questions to the docs. The canonical way to run stuff on boot is to add them to /etc/rc.local.

In the Camera PR I had to add an empty rc.local because the install script will modify it https://github.com/publiclab/pi-builder/pull/13/files#diff-25aa350b8efc5496496765f60725aa9c
Also this is documented at https://publiclab.gitlab.io/pi-builder/scripting.html#running-scripts-on-startup

The general architecture is that files under /builder/files get copied over to the final image (before chroot script is run).

awesome, thanks!!!
On Wed, Oct 24, 2018 at 1:45 PM Sebastian Silva<EMAIL_ADDRESS>wrote:

The general architecture is that files under /builder/files get copied
over to the final image (before chroot script is run).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/publiclab/pi-builder/issues/36#issuecomment-432759721,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABfJ26inE8fasQnbue-NZVUbOI6M9M0ks5uoKcegaJpZM4X0UNV
.


not a issue , a system to add to compatibility

Info please Add the Commodore Amiga 3000 to the system compatibility

Which version of Pi are you using: zero
Which github revision of software: latest
Which board version:2.3b
Which computer is the RaSCSI connected to: Commodore Amiga 3000

Describe the issue
no issue, works on internal 50 pin, external db25, bootable on any id that is not in use by Amiga native. shares Amiga SCSI bus. can hot add drives on the fly, removals require reboot.

@macphreak4evr Thanks for letting us know that it works on your machine!  May I ask you to update the compatibility wiki page with this information? https://github.com/akuker/RASCSI/wiki/Compatibility

I added the system to the list myself, while I was doing other edits to the page. Please don't hesitate to add to it.

Awesome thanks!
Chris Edwards
Network Engineer

On Nov 12, 2021, at 5:45 PM, Daniel Markstedt @.***> wrote:

I added the system to the list myself, while I was doing other edits to the page. Please don't hesitate to add to it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.


Release at Chrome web store

Release the extension at Chrome Web store https://chrome.google.com/webstore when it will be stable.

Done https://chrome.google.com/webstore/detail/webgpu-devtools/ckabpgjkjmbkfmichbbgcgbelkbbpopi


TypeError: query() got an unexpected keyword argument 'method'

`t = time.strftime('%Y-%m-%dT%H:%M:%S')
client = DataFrameClient(host, port, user, password, dbname)
headers = ['dateidx','tag1','tag2','field1','field2']
data = [[t,'MSFT','NYSE',1.3,2.5],[t,'APPL','NYSE',3.5,4.24]]
df = pd.DataFrame(data, columns=headers)
df['dateidx'] = pd.to_datetime(df['dateidx'])
df = df.set_index('dateidx')
tags = {'tag1': df[['tag1']], 'tag2': df[['tag2']]}
print("Create database: " + dbname)
client.create_database(dbname)
print("Write DataFrame")
client.write_points(df, 'ff', tags=tags, protocol=protocol)

print("Read DataFrame")
client.query("SELECT * FROM ff")

print("Delete database: " + dbname)
client.drop_database(dbname)`

I have tried to run the demo in #286 but I got the traceback:
Creating database: ff
Traceback (most recent call last):
File "testcase.py", line 41, in
main(host=args.host, port=args.port)
File "testcase.py", line 22, in main
client.create_database(dbname)
File "C:\Python\lib\site-packages\influxdb\client.py", line 579, in create_database
method="POST")
TypeError: query() got an unexpected keyword argument 'method'
I don't understand why I have got that error. Please help if anyone knows. Thank you!

This issue was fixed in #617. Sorry about that!

Hey, i just installed influxdb-python on my python 2.7 client and still get the error
TypeError: query() got an unexpected keyword argument 'method' when trying to create a database with
client = DataFrameClient(host, port, user, password, dbname)
client.create_database(dbname)


TypeScript 2.1 compatibility

Let's leave this open until after the holidays when everyone's back in the office and can double check their stuff after the changes.

Superseded by #95


Update Get-SmbShareAccess.md

Corrected Syntax and Added SMB instance

Docs Build status updates of commit 313f677:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

docset/winserver2012-ps/smbshare/Get-SmbShareAccess.md
:x:Error

Details

docset/winserver2012-ps/smbshare/Get-SmbShareAccess.md

[Error]

Failed to parse winserver2012-ps/smbshare/Get-SmbShareAccess.md due to :7:(80) '#### Query (cdxml) (Default)
'
 Expect Heading level 3, please use PlatyPS to do content validation

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 8aa9743:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012-ps/smbshare/Get-SmbShareAccess.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 451ecaf:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012-ps/smbshare/Get-SmbShareAccess.md
:white_check_mark:Succeeded

docset/winserver2012r2-ps/smbshare/Get-SmbShareAccess.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@dariomws306 @get-itips @tseward
Peer review needed for this PR. Thanks.


Getting infinite hot reloading with this plugin enabled

And not when commenting out this plugin.

This is essentially what my config looks like (after some transformations):
const autoprefixer = require('autoprefixer');
const CircularDependencyPlugin = require('circular-dependency-plugin');
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
const ManifestPlugin = require('webpack-manifest-plugin');
const path = require('path');
const webpack = require('webpack');

const config = {
  plugins: [
    new CircularDependencyPlugin({
      exclude: /node_modules\/url-parse/,
    }),
    new ManifestPlugin(),
    new HardSourceWebpackPlugin({
      cacheDirectory: path.resolve('./.hard-source-cache'),
      environmentPaths: {
        files: [
          'package.json',
          '.webpack.config.base.js',
          '.webpack.config.dev.js',
          '.webpack.config.static.js'
        ],
      },
    }),
    new webpack.DefinePlugin({
      '__DEV__': true,
    }),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new JasmineWebpackPlugin({
      htmlOptions: {
        chunks: ['tests'],
        filename: 'index.html',
      },
    }),
  ],
  devtool: 'eval-source-map',
  recordsPath: path.resolve('./public/client/records.json'), // For HardSourceWebpackPlugin to work.
  devServer: { hot: true, host: '<IP_ADDRESS>' },
  module: {
    loaders: [
      {
        test: /\.js$/,
        include: [
          path.resolve(__dirname, 'client/components'),
        ],
        loaders: ['react-hot'],
      },
      {
        test: /\.js$/,
        include: [
          path.resolve('./client'),
          path.resolve('./node_modules/twkb'), // Because of https://github.com/TWKB/twkb.js/commit/80ecfee82aa9a3259bb67627a03c2c47122b26a5#commitcomment-17942804
        ],
        exclude: [
          /libraries/,
        ],
        loader: 'babel',
        query: {
          cacheDirectory: '.babel-cache',
          plugins: [],
        },
      },
      {
        test: /\.less$/,
        include: path.resolve('./client'),
        loaders: [
          'style', // Inject into HTML (bundles it in JS).
          'css?localIdentName=[path][name]--[local]--[hash:base64:10]', // Resolves url() and :local().
          'postcss-loader', // Autoprefixer (see below at `postcss()`).
          'less', // LESS preprocessor.
        ],
      },
      {
        test: /\.json$/,
        include: path.resolve('./client'),
        loaders: [
          'json-loader',
        ],
      },
      {
        test: /\.(jpe?g|png|gif)$/i,
        include: path.resolve('./client'),
        loaders: [
          'url?limit=10000', // Inline small images, otherwise create file.
          'img?progressive=true', // Minify images.
        ],
      },
      {
        test: /\.geojson$/, // GeoJSON fixtures
        loader: 'json',
      },
      {
        test: /\.svg$/,
        loader: 'raw',
      },
    ],
  },
  postcss() {
    return [autoprefixer];
  },
  entry: {
    build: [
      'webpack/hot/dev-server'
      'webpack-dev-server/client?http://localhost:8080',
      'client/build',
    ],
    tests: ['client/tests'],
    happo: ['client/happo'],
  },
  resolve: {
    alias: {
      client: path.resolve('./client'),
    },
    modulesDirectories: [
      'node_modules',
    ],
    extensions: [ // Default extensions.
      '',
      '.js',
    ],
  },
  output: {
    path: 'public/client', // In case this is run without webpack-dev-server.
    publicPath: 'http://localhost:8080/',
    filename: '[name].js',
  },
};

Can you post your package.json? Or at least the dependency versions?
On Wednesday, August 24, 2016, Jan Paul Posma<EMAIL_ADDRESS>wrote:

And not when commenting out this plugin.
[image: screen shot 2016-08-24 at 17 00 32]
https://cloud.githubusercontent.com/assets/177461/17952166/dcffc4a4-6a1c-11e6-9a46-41488d02638f.png
This is essentially what my config looks like (after some transformations):
const autoprefixer = require('autoprefixer');const CircularDependencyPlugin = require('circular-dependency-plugin');const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');const ManifestPlugin = require('webpack-manifest-plugin');const path = require('path');const webpack = require('webpack');
const config = {
plugins: [
new CircularDependencyPlugin({
exclude: /node_modules/url-parse/,
}),
new ManifestPlugin(),
new HardSourceWebpackPlugin({
cacheDirectory: path.resolve('./.hard-source-cache'),
environmentPaths: {
files: [
'package.json',
'.webpack.config.base.js',
'.webpack.config.dev.js',
'.webpack.config.static.js'
],
},
}),
new webpack.DefinePlugin({
'DEV': true,
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
new JasmineWebpackPlugin({
htmlOptions: {
chunks: ['tests'],
filename: 'index.html',
},
}),
],
devtool: 'eval-source-map',
recordsPath: path.resolve('./public/client/records.json'), // For HardSourceWebpackPlugin to work.
devServer: { hot: true, host: '<IP_ADDRESS>' },
module: {
loaders: [
{
test: /.js$/,
include: [
path.resolve(__dirname, 'client/components'),
],
loaders: ['react-hot'],
},
{
test: /.js$/,
include: [
path.resolve('./client'),
path.resolve('./node_modules/twkb'), // Because of https://github.com/TWKB/twkb.js/commit/80ecfee82aa9a3259bb67627a03c2c47122b26a5#commitcomment-17942804
],
exclude: [          /libraries/,
],
loader: 'babel',
query: {
cacheDirectory: '.babel-cache',
plugins: [],
},
},
{
test: /.less$/,
include: path.resolve('./client'),
loaders: [
'style', // Inject into HTML (bundles it in JS).
'css?localIdentName=[path][name]--[local]--[hash:base64:10]', // Resolves url() and :local().
'postcss-loader', // Autoprefixer (see below at postcss()).
'less', // LESS preprocessor.
],
},
{
test: /.json$/,
include: path.resolve('./client'),
loaders: [
'json-loader',
],
},
{
test: /.(jpe?g|png|gif)$/i,
include: path.resolve('./client'),
loaders: [
'url?limit=10000', // Inline small images, otherwise create file.
'img?progressive=true', // Minify images.
],
},
{
test: /.geojson$/, // GeoJSON fixtures
loader: 'json',
},
{
test: /.svg$/,
loader: 'raw',
},
],
},
postcss() {
return [autoprefixer];
},
entry: {
build: [
'webpack/hot/dev-server'
'webpack-dev-server/client?http://localhost:8080',
'client/build',
],
tests: ['client/tests'],
happo: ['client/happo'],
},
resolve: {
alias: {
client: path.resolve('./client'),
},
modulesDirectories: [
'node_modules',
],
extensions: [ // Default extensions.
'',
'.js',
],
},
output: {
path: 'public/client', // In case this is run without webpack-dev-server.
publicPath: 'http://localhost:8080/',
filename: '[name].js',
},
};```
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mzgoddard/hard-source-webpack-plugin/issues/9, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAy3EoA6ixse0h8Dt3OuoXe0w03cOQSgks5qjNw7gaJpZM4JsktM
.

 This is already bringing down the build times in CI from ~30 secs to ~5 secs.

If you have no idea I can help by removing some more stuff from the webpack config to try to narrow it down. Will have to do that this weekend though.

@janpaul123 One thing I'd check is if you have any context dependencies that contain the cache directory. Any loaders or require.contexts that point at the cache directory or a containing directory will lead to rebuilds when the cache is written out. (For require.context it doesn't matter if you use a regular expression to exclude folders or files, if the root of the context contains the cache it'll be triggered.)
If this is the problem you'll either need to rework your context dependencies or move the cache directory outside of your contexts. Make sure to consider your recordsPath. HardSource currently writes out the records to recordsPath like webpack-dev-server.
This is likely the issue you are experiencing. I doubt there is something hard-source is currently doing itself to cause the rebuilds. Instead its probably a side effect of writing out the cache.

Ah yes, you're absolutely right, there was one require.context statement that accidentally pointed to the root of the project, which contains the cache directory. Thanks for your quick help, much appreciated! And thanks again for this great piece of software! ☺

@janpaul123 Glad I could help in both senses.


repo: Add dependency to TinyUSB

User had to add dependecy to TinyUSB in project.yml. Now repository dependency is added.

why not add this to tinyusb package instead?

yeah, we already discussed this offline that it should be in package :)

#3069 was merged instead


Release Google.Cloud.Datastream.V1Alpha1 version 2.0.0-alpha02

Changes in this release:
New features

Enable REST transport in C# (commit 0f8560c)

Created release for Google.Cloud.Datastream.V1Alpha1-2.0.0-alpha02