chore(expiringcache): return additional bool from Get

Description
This PR is a prefactor for adding a types to expiringcache. As we cannot return typed nil we will need another indicator that value is nil thus we have a boolean to handle that.

https://github.com/stackrox/stackrox/pull/11924

https://github.com/stackrox/stackrox/pull/11961

[x] CHANGELOG update is not needed

[x] Documentation is not needed

Testing

[x] inspected CI results

Automated testing

[x] modified existing tests
[x] contributed no automated tests

How I validated my change
CI

@rhybrillou

I don't think it makes much sense functionally.

I agree but as mentioned in description it's prefactor for generic types and workaround for generic version as we cannot return nil in that case so you'll get an empty object instead. For example currently for a string cache we can return nil but with generic solution we need to return "".


Sampler array no longer necessary

Changes

When using updateResoruce or writeDescriptorSet it is no longer necessary to have the same length for the sampler as the texture arrays. This is done since most of the time we are using the same sampler for all of the textures (nearest or linear).

Only found missing p prefixes on pointer variables. Also, it looks like you can either have a unique sampler for every texture, or only have one sampler for each texture. But having 2 samplers for 3 textures isn't supported. Is that correct, and if so, is it intentional?

It is indeed correct that having samplerCount > 1 and samplerCount != textureCount is unsupported. This is because I believe it is unclear on which sampler is used for which texture in that situation.
Also, in the current implemenation there are not situations where that is applied.


[question] Configure albums and authors?

I'm sorry if this is something that has already been answered yet, but I checked around and I couldn't find it in the wiki, but how do you put albums and authors to a file?

I'm assuming that you're referring "tagging" (adding metadata to a song), in which case musikcube doesn't support yet. You can look around online for music tagging software like Mp3tag or Kid3, etc.


Support ACK when receiving malformed events

My team faced much the same issue as outlined in #757; malformed events are sent to a Kafka topic and clients endlessly fail to read the event. While this is hard to induce when the sender uses the Go CloudEvents SDK, there are a good amount of Python clients across our services which unfortunately lack validation that might prevent this.
I've elected to make this behaviour configurable via client options, as suggested in #757. This would be appropriate to use when no protocol.Responder implementation is available, as is the case with the kafka_sarama module. I explored wrapping the existing protocol.Receiver implementation to allow it to behave like protocol.Responder, but that ended up being a lot of code compared to the light touch that could be applied here.

Thx for the contribution @mattdowdell!
Generally this LGTM, however, taking a step back for a second, I wonder whether there are more (similar) error scenarios which can lead to invokers/responders become stuck which we should generalize instead of implementing different error scenarios with additional fields/Options?
@duglin @lionelvillard can we think of more error cases where we'd not ACK and causing such infinite loops? Obviously, this is dependent on the protocol implementation, i.e., how it interprets NACK, but IIRC we had another issue with HTTP where the sender was stuck in an endless loop due to NACK from the consumer/receiver.

can we get a test (or two) for this?

Thx for the contribution @mattdowdell!
Generally this LGTM, however, taking a step back for a second, I wonder whether there are more (similar) error scenarios which can lead to invokers/responders become stuck which we should generalize instead of implementing different error scenarios with additional fields/Options?
@duglin @lionelvillard can we think of more error cases where we'd not ACK and causing such infinite loops? Obviously, this is dependent on the protocol implementation, i.e., how it interprets NACK, but IIRC we had another issue with HTTP where the sender was stuck in an endless loop due to NACK from the consumer/receiver.

When do we normally ACK messages? It seems to me that the only time we wouldn't ACK a message is if 1) the client specifically told us not to, or 2) we think re-processing the exact same message later on would change the (unhappy) result. For example, a malformed event should always yield the same result, so retrying later (and not ACK'ing) makes no sense to me. Do we have a mechanism by which the client can tell us not to ACK? (sorry, I'm not as familiar with the code yet as I should be)

When do we normally ACK messages? It seems to me that the only time we wouldn't ACK a message is if 1) the client specifically told us not to, or 2) we think re-processing the exact same message later on would change the (unhappy) result. For example, a malformed event should always yield the same result, so retrying later (and not ACK'ing) makes no sense to me. Do we have a mechanism by which the client can tell us not to ACK? (sorry, I'm not as familiar with the code yet as I should be)

I went through the code, not sure I 100% follow, but my understanding is that we (N)ACK:

when we can't convert message to CE
when validation on CE fails
when the handler function in the receiver returns a Result (https://github.com/cloudevents/sdk-go/blob/main/v2/protocol/http/protocol.go#L361-L386)
on the individual Send and Respond functions

@mattdowdell
With your new implementation, I'm assuming this leads to an HTTP 200 if ackMalformedEvent is true, hence no retries. Are there any warnings/errors logged besides the optional tracing in observabilityService? From the current code on ServeHTTP I see that if we ACK for an invalid event (when ackMalformedEvent is true) and was wondering whether we should add some logging/debugging here? Just curious on what you think.

With your new implementation, I'm assuming this leads to an HTTP 200 if ackMalformedEvent is true, hence no retries.

I'm not overly familiar with how the HTTP protocol works, but based on a scan over the response func in https://github.com/cloudevents/sdk-go/blob/main/v2/protocol/http/protocol.go#L350-L398, returning a 200 for this particular ACK looks very likely. However, I'd note that the HTTP protocol seems to function based on a protocol.Responder implementation rather than a protocol.Receiver which we see in the kafka protocol. I could restrict ackMalformedEvent to only apply when a responder is not being used if you'd consider that to be less confusing for consumers? That would enforce what the docs on the new option already imply.

Are there any warnings/errors logged besides the optional tracing in observabilityService?

There's a call to the observabilityService as you say, but there's also a log call when the invoker exits in https://github.com/cloudevents/sdk-go/blob/main/v2/client/client.go#L254. That would be triggered whether the message is ACK'd or NACK's by virtue of protocol.NewReceipt being a non-nil value. It does assume that there's a logger in the context, which does not appear to consistently be the case per https://github.com/cloudevents/sdk-go/blob/main/v2/context/logger.go#L25. But presumably failing to create a logger is exceedingly rare in practice.

@duglin I'm having trouble figuring out if the integration tests failure is something I've caused or a latent issue that pre-dates this change. Could you advise on whether it's likely I need to investigate further?

@duglin @embano1 Is there anything else I can/should do to get this ready to merge? I'd love to see this (or equivalent functionality) available if possible.

Sorry @mattdowdell got distracted. Can you please rebase on main to run against the latest workflows? I'll take a look at the PR later this week.

@embano1 No problem, rebased (and squashed) as requested.

Quick question (overall it looks good), when would we ever NOT want to ACK the event? Why do we think that it'll suddenly become valid later on and unblock things? It seems to me that we should only not ACK an incoming message (event) if we didn't read it all for some reason. But once it's been read fully, why would we not always ACK it?

Quick question (overall it looks good), when would we ever NOT want to ACK the event? Why do we think that it'll suddenly become valid later on and unblock things? It seems to me that we should only not ACK an incoming message (event) if we didn't read it all for some reason. But once it's been read fully, why would we not always ACK it?

I can't think of a good reason to not always ACK, but I'm also not overly familiar with the nuances of all the protocol implementations. One example I can think of: I believe AWS SQS will track the amount of NACKs and send events tha cross a NACK threshold to a DLQ for further investigation. Consistently ACKing would likely inhibit that feature which some teams might rely on. I don't know if SQS is supported by CloudEvents currently, but I saw a discussion somewhere in the cloudevents org discussing it.
From an observability side, it may also introduce difficult to debug issues. Whilst there are logs when this occurs, metrics or tracing might be the preferred mechaism for observing these failures. That can be implemented via an ObservabilityService, but that's an additional step that might not have been adopted yet.
I general, I defer to your more informed judgement on the expected usage. Perhaps this might be something to reflect upon if you reach v3 and take the opportunity for a breaking change. But there's always a risk someone is (sub)conciously depending on the current behaviour.

LGTM
I'd still like to explore the option of always ACK'ing but we can do that later
@lionelvillard for the merge

rebase needed

Quick question (overall it looks good), when would we ever NOT want to ACK the event? Why do we think that it'll suddenly become valid later on and unblock things? It seems to me that we should only not ACK an incoming message (event) if we didn't read it all for some reason. But once it's been read fully, why would we not always ACK it?

See bullet points 3 and 4 in this comment for reasons where NACK can be invoked: https://github.com/cloudevents/sdk-go/pull/906#issuecomment-1579987428


Recurrent Support

I love your toolkit, it's wonderful and super easy to use. I am wondering if you plan to add support for recurrent neural network?

Yes, we're thinking about it :-)  Would you want the API to be different (better suited to temporal data) or the same from what scikit-learn supports?

Glad to hear that :+1:  I am not sure what API would be like for temporal data. But it seems intuitive at least for me if it's like scikit-learn.

I found a python2 recurrent project here: http://pyneurgen.sourceforge.net/recurrent.html
I am not sure if this could be helpful in design the API anyway.

A more temporal API would include a step() function that can take infinite sequences of data. With scikit-learn you limit the API to something finite and fixed length.

@alexjc
My two cents. Real time recurrent neural networks are hard to get working in python - I am not aware of a theano implementation that actually works. A temporal API would accept some 3D structure  (e.g. `n_timestep, n_samples, n_inputs' and once trained the network would be able to accept a similar structure that accepts the whole temporal sequence - this is how most packages do it.
Not sure why this is not flagged as a greater problem - it will look much deeper into it in the following months

Should be possible now, here's how it would work:
http://lasagne.readthedocs.org/en/latest/modules/layers/recurrent.html
We'll probably just add a Recurrent layer type like Convolution and have it take rnn | gru | lstm as a type, then connect everything up via Lasagne automatically :-)

#195 lets you add any native Lasagne layer to sknn, so you can use this to inject LSTM layers for example. If you try this, let me know so I can look at the code and see how best to abstract it ;-)

#195 lets you add any native Lasagne layer to sknn, so you can use this to inject LSTM layers for example. If you try this, let me know so I can look at the code and see how best to abstract it ;-)

Has anyone tried this? Having difficulty with lasagne Recurrent Layer myself.


Switch to apimodel

https://github.com/thesadru/apimodel :)

No need to overcomplicate things tbh


setup_matching is very slow

Hello,
We have some code like the following for ACL ARR:
or_client = openreview.Client(baseurl='https://api.openreview.net', username=args.username, password=args.password)
conference = openreview.helpers.get_conference(or_client, args.confid)
or_client.impersonate(conference.id)
conference.setup_matching(committee_id=f'aclweb.org/ACL/ARR/2021/{args.month}/{args.group}', build_conflicts=True, affinity_score_file=args.affinity_file)

This works fine, but it's extremely slow, taking about 30-40 minutes over 360 papers and 300 area chairs (not to mention when we have 2500 reviewers). It'd be nice if this could be made more efficient.

I think the build conflicts task is the most expensive one because it has to get all the profiles for all the area chairs and authors and their publications, we do an API call to get the publication of each profile. We can try to add parallelism to use multiple API calls, that should reduce the execution time.
In the meantime, we are happy to compute the setup_mathing in one of our server to reduce the network latency.


DNN-6285: Some string (performance) optimizations in DefaultPage (and base classes)

See https://dnntracker.atlassian.net/browse/DNN-6285

Hi Jan;
I see a LOT of code changed here what is testable from the UI?


Facing error in running sdk_sample DCGMReader.py

/test1/DCGM/sdk_samples$ cmake .
CMake Error at CMakeLists.txt:18 (install):
install FILES given no DESTINATION!
-- Configuring incomplete, errors occurred!
Tried exporting DESTINATION variable with a empty directory. Still getting same error.
Can this be run inside container only ?
Please let me know, how to build and run DCGMReader.py.

@premalathak12,
DCGM build system is designed to run inside the dcgm build container (the dcgmbuild directory provides a way to make it).
Our Cmake does not support in-tree build, and sdk_samples are part of the whole project build - it requires the environment defined in the top-level CMakeLists.txt

@nikkon-dev I have not builded as i was getting some errors but installed the datacentre-gpu-manager. In the /usr/local/bindings/ able to run dcgm_example.py. Copied the dcgm_readerexampley.py from sdk_samples and tried to run it. I got a error : ```
File "/usr/local/dcgm/bindings/python3/DcgmReader.py", line 402, in GetFieldMetadata
self.LogDebug("fieldGroupId: " + findByNameId  + "\n")
TypeError: can only concatenate str (not "c_void_p") to strFile "/usr/local/dcgm/bindings/python3/DcgmReader.py", line 402, in GetFieldMetadata
self.LogDebug("fieldGroupId: " + findByNameId  + "\n")
TypeError: can only concatenate str (not "c_void_p") to str
So added it as str(findByNameId). That error got resolved.

Now when i run DCGMreaderexample.py again, i am getting Using custom fields through the dictionary interface...
For gpu 0 field mem_copy_utilization=0
For gpu 0 field gpu_utilization=0
For gpu 0 field power_usage=14.762
Processing in field order by overriding the CustomerDataHandler() method
Traceback (most recent call last):
File "/usr/local/dcgm/bindings/test.py", line 95, in
main()
File "/usr/local/dcgm/bindings/test.py", line 88, in main
cdr.Process()
File "/usr/local/dcgm/bindings/python3/DcgmReader.py", line 442, in Process
self.Reconnect()
File "/usr/local/dcgm/bindings/python3/DcgmReader.py", line 346, in Reconnect
self.InitializeFromHandle()
File "/usr/local/dcgm/bindings/python3/DcgmReader.py", line 316, in InitializeFromHandle
self.GetFieldMetadata()
File "/usr/local/dcgm/bindings/python3/DcgmReader.py", line 407, in GetFieldMetadata
self.m_fieldGroups[interval] = pydcgm.DcgmFieldGroup(self.m_dcgmHandle, fieldGroupName, fieldIds)
File "/usr/local/dcgm/bindings/python3/DcgmFieldGroup.py", line 45, in init
self.fieldGroupId = dcgm_agent.dcgmFieldGroupCreate(self._dcgmHandle.handle, fieldIds, name)
File "/usr/local/dcgm/bindings/python3/dcgm_agent.py", line 52, in wrapper
return fn(*newargs, **newkwargs)
File "/usr/local/dcgm/bindings/python3/dcgm_agent.py", line 289, in dcgmFieldGroupCreate
dcgm_structs._dcgmCheckReturn(ret)
File "/usr/local/dcgm/bindings/python3/dcgm_structs.py", line 619, in _dcgmCheckReturn
raise DCGMError(ret)
dcgm_structs.DCGMError_DuplicateKey: Duplicate key passed to function

Is there any workaround for this ? So i can see the output of DCGMReaderExample ?


Electron not starting on Raspberry Pi

I just installed a Raspberry Pi with a clean Jessie installation to give MM2 a try.
Unfortunately, the app will not start, and doesn't give any errors of feedback.
See image below. Any ideas, @paviro & @nhubbard?

Strange, maybe try npm config set log level silly?

No real helpful information.

Ive tried the Electron Quick Start, but that seems to have the same issue. I opened an issue in the Electron repository: https://github.com/electron/electron/issues/5069

That's odd. Never have I seen a Node app that crashes without a stack trace.

It doesn't even seem to crash. It exits with code 0. But it's an Raspberry Issue, since the Electron Quick Start does the same.

Strange, that it works without any Problems  for me...

Am 08.04.2016 um 10:09 schrieb Michael Teeuw<EMAIL_ADDRESS>It doesn't even seem to crash. It exits with code 0. But it's an Raspberry Issue, since the Electron Quick Start does the same.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@paviro Which RPi are you using? 2 or 3?  On the Electron issue they said it had something to do with the RPi type: https://github.com/electron/electron/issues/5069

Pi 2 with Jessie.

Am 08.04.2016 um 11:36 schrieb Michael Teeuw<EMAIL_ADDRESS>electron/electron#5069 https://github.com/electron/electron/issues/5069

That's strange indeed. I'm using the same Pi. :-/

Yeah figured so, that's what I don't get... Does not make any sense.

Am 08.04.2016 um 11:38 schrieb Michael Teeuw<EMAIL_ADDRESS>That's strange indeed. I'm using the same Pi. :-/
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub https://github.com/MichMich/MagicMirror/issues/145#issuecomment-207350096

@pavario, so I did another reinstall. Again without succes. Besides the magic mirror installer, I did not run any other installers.
I'm running: 2016-03-18-raspbian-jessie
Node: v5.10.1
GPU memory: 256MB
Any differences between the above and your situation?

Seems to be the same thing I did. Well I installed node via apt-get before but removed it again.

Same problem with v4.0.0.
But how can it be that you are running v4.0.0 if you used the installer?

There was no installer when I installed it but I did the same things the installer does just with the older node version.

If you have an empty card laying around, would you mind trying the installer on a clean jessie installation?

I'll see if I find one :)

Fun fact! I just put the same SD-card into a Pi3. Tried npm start and it just worked!
So there seems to be an issue with the Pi2.

in regards to the installer, this is how i installed node ( before i realized there was an installer )
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
from here

@pvyParts: and does the MM run on a RPi2 in your case?

it did when i had one (read till few days ago) i blew mine up tho unfortunately so i'm on a 3 now.

Interesting! Thanks for letting me know.

I have the same issue in a Pi B+ running Jessie

I tried it yesterday on a different Pi 2, and that one worked. I've got no clue yet on the reason.

Could the Pi be bad? We might want to involve @raspberrypi to see if the issues are related.

Nope, it seems like a electron issue. If you run node serveronly there is no issue.

I have the same problems with the PI 1..

Ok! Issue solved! It appeared that the non working Pi 2 was actually a Pi 1 B+ (They look very similar!)
In other words: Electron does not work on Pi 1, but does work without any issues on Pi 2 & 3.

So what should I do when I own a Pi B+?

You can start the app using node server only, this will start the app, but it will not launch a browser. You'll need to setup a browser solution yourself (like with MagicMirror v1).

Ok I'll try that

Hi.
I´m having an issue starting "electron" on my Raspberry Pi 2 (Jessie);
npm ERR! Linux 4.4.7-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v5.10.1
npm ERR! npm  v3.8.3
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: electron js/electron.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'electron js/electron.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 magicmirror package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     electron js/electron.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs magicmirror
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls magicmirror
npm ERR! There is likely additional logging output above.
Has anybody a clue what am I doing wrong?
Thanks,
desq

Could you try
node serveronly

To see if that works?

I believe I had the same error when the automatic magicmirror2 installer did not finish the setup for some reason. I installed node.js for ARMv7 manually which worked for me then. Not sure if that's the case for you as well, @desq42 ?!

node serveronly works. electron seems so have an issue with my raspberry pi 2 (it´s really a 2).
I´m going to try jferch solution later today.

no cigar. even did a complete reinstall. I´ll have to live with "serveronly".

So you tried: clean jessie install and installer script, and that didn't work?

Hey. As of today, I am on a RPI 2. It is defenetally a 2. I am running wheezy and everything is fine in serveronly ...But when i try to just run npm start it fails

Please try Jessie

I had along the same issue and have a I have a Pi 2, Node v6.1.0, npm v3.8.6, full version of Jessie. I noticed at the beginning of the npm install I got:
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g
I then ran:
sudo npm install -g coffee-script
sudo npm install -g colorguard
And it got rid of all the warnings. Now the only way npm start works is by using startx going into the Terminal and running it from there.

Same for me. I am running Jessie on a raspberry pi 3.

Hi just wanted to report that I am running a pi 3 with Jesse and am having the same exact issue.

Just want to add my report as well - just got a pi 3 and have the same problem Electron will not start - runs fine if I run startx and then use the command console.

runs fine if I run startx and then use the command console.

Could you elaborate on this?
How do you start the mirror? Which command? Via SSH or Pi Terminal? Jessie or Jessie Lite? Which Node version? How did you install Magic Mirror. What do the logs say?

Hi Mich - sorry a bit of a newbie to the pi but ok with NodeJS so bear with me ;-)
I installed using SSH and attempted to run Magic Mirror via SSH - using the display command.
This is what I got:
npm ERR! Linux 4.4.9-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v6.2.1
npm ERR! npm  v3.9.3
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: electron js/electron.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'electron js/electron.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 magicmirror package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     electron js/electron.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs magicmirror
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls magicmirror
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/MagicMirror/npm-debug.log
I then tried npm start from the command console directly on the Pi (when it first boots) and got the same error.
If I launch the GUI using startx and the open a command prompt in there and use the npm start it works fine.
nodeserver only works fine whereever I run it.
So its only electron running from either a SSH session or the command prompt thats the problem - do you think its a security / privileges issue?

Heres the npm-debug.log contents
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'start' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>6 silly lifecycle<EMAIL_ADDRESS>no script for prestart, continuing
7 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>8 verbose lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
9 verbose lifecycle<EMAIL_ADDRESS>PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/pi/MagicMirror/node_modules/.bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
10 verbose lifecycle<EMAIL_ADDRESS>CWD: /home/pi/MagicMirror
11 silly lifecycle<EMAIL_ADDRESS>Args: [ '-c', 'electron js/electron.js' ]
12 silly lifecycle<EMAIL_ADDRESS>Returned: code: 1  signal: null
13 info lifecycle<EMAIL_ADDRESS>Failed to exec start script
14 verbose stack Error<EMAIL_ADDRESS>start: electron js/electron.js
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter. (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:245:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:191:7)
14 verbose stack     at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:24:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:191:7)
14 verbose stack     at maybeClose (internal/child_process.js:852:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
15 verbose pkgid<EMAIL_ADDRESS>16 verbose cwd /home/pi/MagicMirror
17 error Linux 4.4.11-v7+
18 error argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
19 error node v6.2.1
20 error npm  v3.9.3
21 error code ELIFECYCLE
22 error<EMAIL_ADDRESS>start: electron js/electron.js
22 error Exit status 1
23 error Failed at the<EMAIL_ADDRESS>start script 'electron js/electron.js'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the magicmirror package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     electron js/electron.js
23 error You can get information on how to open an issue for this project with:
23 error     npm bugs magicmirror
23 error Or if that isn't available, you can get their info via:
23 error     npm owner ls magicmirror
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

So just to be sure: when you talk about the "command prompt" on the pi, do you mean the promt it boots into? Or do you mean a terminal window on the Pi after it boots into the GUI?

prompt it boots into - doesnt work
command prompt window in gui - works fine

That's the expected result. Electron (In which MagicMirror runs) is a GUI application, so it needs a GUI environment. It can't start that environment for you.

Ah - thanks.
Seems obvious in hindsight - thats what the Auto start instructions were for.

markbarton/michmich
I have the same bug ,  i noticed there is no  config directory ( MagicMirror/config/ ) from the boot terminal. I did install the config directory by ssh.  I am able to npm start from the terminal after  the startX command from the host machine and there is a MagicMirror/config directory on the host machine
How do I fix this ?  Is this an autostart problem ?  A directory issue? I'm really new at all of this please excuse my lack of experience and not understanding  these posts

Hi,
It wasnt a bug - it was my lack of understanding :-)
You need to use PM2 - which is a nodejs Package Manager to provide the
autostart capability for the Magic Mirror - https://github.com/Unitech/pm2
Its pretty straight forward to use.
Mark
On 18 June 2016 at 09:45, sundaytill<EMAIL_ADDRESS>wrote:

markbarton/michmich
I have the same bug , i noticed there is no config directory (
MagicMirror/config/ ) from the boot terminal. I did install the config
directory by ssh. I am able to npm start from the terminal after the startX
command from the host machine and there is a MagicMirror/config directory
on the host machine
How do I fix this ? Is this an autostart problem ? A directory issue? I'm
really new at all of this please excuse my lack of experience and not
understanding these posts
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MichMich/MagicMirror/issues/145#issuecomment-226930003,
or mute the thread
https://github.com/notifications/unsubscribe/AAFqd5LBlkFJh8leA_epCOPt4Rrq-1l6ks5qM7AYgaJpZM4IBLKc
.

--
http://www.markbarton.com

@sundaytill This doesn't seem related to this issue. Please open a support question in http://forum.magicmirror.builders
Thanks!

Hi
Mark ,
Thank you
On Saturday, June 18, 2016, markbarton<EMAIL_ADDRESS>wrote:

Hi,
It wasnt a bug - it was my lack of understanding :-)
You need to use PM2 - which is a nodejs Package Manager to provide the
autostart capability for the Magic Mirror - https://github.com/Unitech/pm2
Its pretty straight forward to use.
Mark
On 18 June 2016 at 09:45, sundaytill<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

markbarton/michmich
I have the same bug , i noticed there is no config directory (
MagicMirror/config/ ) from the boot terminal. I did install the config
directory by ssh. I am able to npm start from the terminal after the
startX
command from the host machine and there is a MagicMirror/config directory
on the host machine
How do I fix this ? Is this an autostart problem ? A directory issue? I'm
really new at all of this please excuse my lack of experience and not
understanding these posts
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/MichMich/MagicMirror/issues/145#issuecomment-226930003
,
or mute the thread
<
https://github.com/notifications/unsubscribe/AAFqd5LBlkFJh8leA_epCOPt4Rrq-1l6ks5qM7AYgaJpZM4IBLKc
.

--
http://www.markbarton.com
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MichMich/MagicMirror/issues/145#issuecomment-226931569,
or mute the thread
https://github.com/notifications/unsubscribe/ATFXp8zJfpBIG60l3A1bLhHvskBDeBUPks5qM7dOgaJpZM4IBLKc
.

Any update on the issue in the op? Seems the thread got a bit sidetracked ;)

Yeah the OP is solved a while ago. Had something to do with an older Electron version. Not relevant anymore.

Still getting the issue on a Raspberry Pi 3. The auto-install script happens to mention this as well:
Installing dependencies ...
npm WARN deprecated<EMAIL_ADDRESS>electron-prebuilt has been renamed to electron. For more details, see http://electron.atom.io/blog/2016/08/16/npm-install-electron
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g

><EMAIL_ADDRESS>postinstall /home/pi/MagicMirror/node_modules/electron-prebuilt
> node install.js

I then ran...
npm install -g coffee-script
npm install -g colorguard
npm install -g jsonlint
npm install -g electron

Still getting the issue. This is on a Raspberry Pi 3 with a clean install of Raspbian, all updated.

Full error on doing npm start in /MagicMirror..

pi@raspberrypi:~/MagicMirror $ npm start

<EMAIL_ADDRESS>start /home/pi/MagicMirror
electron js/electron.js

npm ERR! Linux 4.4.26-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: electron js/electron.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'electron js/electron.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 magicmirror package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     electron js/electron.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs magicmirror
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls magicmirror
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/MagicMirror/npm-debug.log
pi@raspberrypi:~/MagicMirror $

Could you give this repo a try to see if electron works at all? https://github.com/electron/electron-quick-start

Same results it looks like:
npm ERR! Linux 4.4.26-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: `electron .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'electron .'.
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 electron-quick-start package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     electron .
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs electron-quick-start
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls electron-quick-start
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/pi/electron-quick-start/npm-debug.log
pi@raspberrypi:~/electron-quick-start $

Results from the npm-debug.log:
pi@raspberrypi:~/electron-quick-start $ cat /home/pi/electron-quick-start/npm-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'start' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>6 silly lifecycle<EMAIL_ADDRESS>no script for prestart, continuing
7 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>8 verbose lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
9 verbose lifecycle<EMAIL_ADDRESS>PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/pi/electron-quick-start/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
10 verbose lifecycle<EMAIL_ADDRESS>CWD: /home/pi/electron-quick-start
11 silly lifecycle<EMAIL_ADDRESS>Args: [ '-c', 'electron .' ]
12 silly lifecycle<EMAIL_ADDRESS>Returned: code: 1  signal: null
13 info lifecycle<EMAIL_ADDRESS>Failed to exec start script
14 verbose stack Error<EMAIL_ADDRESS>start: `electron .`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:191:7)
14 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:191:7)
14 verbose stack     at maybeClose (internal/child_process.js:877:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid<EMAIL_ADDRESS>16 verbose cwd /home/pi/electron-quick-start
17 error Linux 4.4.26-v7+
18 error argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
19 error node v6.9.1
20 error npm  v3.10.8
21 error code ELIFECYCLE
22 error<EMAIL_ADDRESS>start: `electron .`
22 error Exit status 1
23 error Failed at the<EMAIL_ADDRESS>start script 'electron .'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the electron-quick-start package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     electron .
23 error You can get information on how to open an issue for this project with:
23 error     npm bugs electron-quick-start
23 error Or if that isn't available, you can get their info via:
23 error     npm owner ls electron-quick-start
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]
pi@raspberrypi:~/electron-quick-start $

I have the same error with:
Pi2
electron-v1.4.4
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
node serveronly is running but PM2 not.
[STREAMING] Now streaming realtime logs for [all] processes
0|mm       | 2016-10-25T07:16:04.470Z INFO no settings file found, will only use default settings
0|mm       | 2016-10-25T07:16:05.644Z INFO Presets loaded: { example:
0|mm       |    { players:
0|mm       |       [ { roomName: 'Bathroom', volume: 10 },
0|mm       |         { roomName: 'Kitchen', volume: 10 },
0|mm       |         { roomName: 'Office', volume: 10 },
0|mm       |         { roomName: 'Bedroom', volume: 10 },
0|mm       |         { roomName: 'TV Room', volume: 15 } ],
0|mm       |      playMode: { shuffle: true, repeat: 'all', crossfade: false },
0|mm       |      pauseOthers: false,
0|mm       |      favorite: 'My example favorite' } }
0|mm       | 2016-10-25T07:16:05.789Z INFO http server listening on port 5005
/root/.pm2/logs/mm-error-0.log last 10 lines:
0|mm       | npm ERR! Tell the author that this fails on your system:
0|mm       | npm ERR!     electron js/electron.js
0|mm       | npm ERR! You can get information on how to open an issue for this project with:
0|mm       | npm ERR!     npm bugs magicmirror
0|mm       | npm ERR! Or if that isn't available, you can get their info via:
0|mm       | npm ERR!     npm owner ls magicmirror
0|mm       | npm ERR! There is likely additional logging output above.
0|mm       |
0|mm       | npm ERR! Please include the following file with any support request:
0|mm       | npm ERR!     /root/MagicMirror/npm-debug.log

@blindarrow Please open an issue in the electron repository.
@Sillec123 Did you try? https://github.com/electron/electron-quick-start if not, please open an issue in the electron repository.

I've got the same issues, fresh installed OS, cloned your repo - but electonr does not work. Also the quick-start. I've receive the same messages like above.
Think we have to wait for a fix by electron.

It was a permission problem. Now everything works

Allright, I will have look at this. Do you have a hint which permissions caused the error? Thanks anyway for your feedback.

I also have the same problem on the current jessie lite and raspi 3.
I am working on a Mac with El Capitan and XQuartz as Xserver. If I am using ssh -X .... it is running without any problems. Maybe this helps.

Hi guys, I had this exact issue since this morning: make sure you have libgconf-2-4 and libxss1. I don't know how I figured this out but I installed those two and know in my RPi 2 MagicMirror runs perfectly

I get all work with a fresh new Raspbian Jessie install and running all the install since from the beggining in my RPI3 and worked like a charm.
Even though the grunt still warns me about not being installed.

Cheers mates.
Today i tryed to install the MM for the first time.
Jessie installation was good. Configuration like you wrote in you manual (http://michaelteeuw.nl/post/83188136918/magic-mirror-part-v-installing-the-raspberry-pi).
I got to the point where i used the automatic installer bash -c "$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)".
The installation took quite a while and i first thought my pi just froze. After lunch (about one hour later) the installation was kind of done.
Please find attached two screenshots wich i took.
 Since this discussion was about "electron is not starting", how do i handle the MM installation, when electron was not even installed?
Can i stop at this point and try the "server only" method? Or is the installation corrupted?
I am using the Raspberry Pi 3 Model B.

Hi.
Any updates here? i get the same error as casus90.

raspbery pi3 freeze and mm not work

@casus90  i got the same issue, but did not had patince to wait node-gyup rebuild... I just edited package.json to 'update' electron version,  In dependencies section (line 57) , update electron version from ^1.6.10"to '^1.7.9'  and sounds good. (no checked everything but install and start is OK)
(I'm using Rpi 3 on Stretch)
Hope it helps

I had the same issue on my Raspberry Pi 2 with a fresh install and after upgrading. Nothing above seemed to work.
Electron kept failing to be installed via the bash command/installer.
/usr/lib/node_modules was root.
I tried running:
npm install -g jsonlint
npm install -g electron

Both failed for me due to permissions issue.
I ran them both as sudo and this corrected the problem. I doubt this is the best way to do this. But hopefully this willl help get a fix in.
sudo npm install -g electron
sudo npm install -g jsonlint
cd ~/MagicMirror/
sh run-start.sh

Cheers,
I am sorry for my late response! I finally found some time to try it again.
This time, I just installed (Automatic Installer) everything from scratch again and it works just fine!
There is nothing else to it. I am sorry :D :D
Best,
Andreas


Fails to build on 32-bit FreeBSD

General description of bug:

What happened: build fails on 32-bit FreeBSD (armv6, armv7, i386, powerpc)
What should happen: build should succeed
Did it work in an older version:  no
Where did you get the binary:  self-built
Does this issue still occurs in the latest dev build? Yes

Error:
/wrkdirs/usr/ports/sysutils/fastfetch/work-full/fastfetch-2.0.3/src/detection/memory/memory_bsd.c:7:68: error: incompatible pointer types passing 'uint64_t *' (aka 'unsigned long long *') to parameter of type 'size_t *' (aka 'unsigned int *') [-Werror,-Wincompatible-pointer-types]
    if (sysctl((int[]){ CTL_HW, HW_PHYSMEM }, 2, &ram->bytesTotal, &length, NULL, 0))
                                                                   ^~~~~~~
/usr/include/sys/sysctl.h:1189:48: note: passing argument to parameter here
int     sysctl(const int *, u_int, void *, size_t *, const void *, size_t);
                                                   ^
/wrkdirs/usr/ports/sysutils/fastfetch/work-full/fastfetch-2.0.3/src/detection/memory/memory_bsd.c:12:62: error: incompatible pointer types passing 'uint64_t *' (aka 'unsigned long long *') to parameter of type 'size_t *' (aka 'unsigned int *') [-Werror,-Wincompatible-pointer-types]
    if (sysctl((int[]){ CTL_HW, HW_PAGESIZE }, 2, &pageSize, &length, NULL, 0))
                                                             ^~~~~~~
/usr/include/sys/sysctl.h:1189:48: note: passing argument to parameter here
int     sysctl(const int *, u_int, void *, size_t *, const void *, size_t);
                                                   ^
2 errors generated.

Fixed. Thanks for reporting.


Added $response->postalCode()

Depending on (in my case) which country I was querying coordinates from, postal code was either 8th (US) or 6th (NL) entry in address_components. Fixed this with a loop in a new method.

Merged. Thanks.


Flutter Driver: command extensions and extension feature cleanup

Description
As discussed in #62299, ability to reuse and extend flutter driver commands is the very last step to leverage remote execution tools like Appium, Selenium.
Grounds:

It was possible to extend Commands and CommandWithTargets, but it wasn't possible to interact with the flutter app from those extensions.
Private members and newly created factories were repackaged for the consistent codebase.
Documentation for finder extensions was missing explanations and references.

It is not a breaking change, as the moved imports were not accessible on any flutter branch due to a bug (#67711)
Related Issues
#62299
#67711
Tests
I added the following tests:
packages/flutter_driver/test/src/real_tests/extension_test.dart
Tests for command extensions.
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[X] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[X] I signed the [CLA].
[X] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[X] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[X] I updated/added relevant documentation (doc comments with ///).
[X] All existing and new tests are passing.
[X] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[X] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[X] No, no existing tests failed, so this is not a breaking change.

CC @dnfield @jonahwilliams

Added related issues:
#62489
#57792
#52940
#28753
#50626
#47448
#12810

@dnfield @goderbauer would you mind assigning someone who can make a review and decide about moving it forward? We heavily depend on this feature.

This has been on my queue, just forgot to assign. Sorry about that.

@dnfield thanks for the review. I've applied all suggestions and would like to ask for a re-review.

@dnfield I've fixed whitespace characters and applied documentation suggestions. Is that a proper use of See also block, you've mentioned?

@dnfield automatic checks caught issues with dart:ui imports within examples e2e tests. Indeed, it was invalid - Finders were indirectly used in host code.
I've split factories into separate files to avoid conflicts: https://github.com/flutter/flutter/pull/67916/commits/00b887c9b7f0288d474c46612a6b206eaa8559fc

The google testing failure is because this will require some internal build file changes to handle new files. Still LGTM.

@dnfield is there any way I can prevent internal testing breakage next time? Thank you for the merge.

No, a googler will have to update a build file internally.  It's not that big a deal :)


Add variadic to add_axis and add_mark

With this improvement, we can do
fig.add_axis(ax_x, ax_y, ax_z);

At the moment, we can only add one axis or one mark at a time.

I like the new api to insert with initializer lists
vec.insert(vec.end(), {
    ax_x,
    ax_y,
    ax.z
});

I wonder if we should have a type of observed sequence with STL-style API.


Wrong tables in inbound advanced warehouse configuration diagram

Hi,
in the following diagram https://github.com/MicrosoftDocs/dynamics365smb-docs/blob/main/business-central/media/design_details_warehouse_management_inbound_advanced_flow.png
included in the following page https://docs.microsoft.com/en-us/dynamics365/business-central/design-details-inbound-warehouse-flow
the wrong tables are listed in the first step (top left).
The tables should be "Purchase Order", "Transfer Order", "Sales Return Order" instead, since the posted documents are the result of the step 4 (top right).

Hello,
You're absolutely correct, and thanks for bring this bug to our attention. A fix is in the works and will be published in the near future.


No matching distribution found for pipeformer

When trying to install using pip install pipeformer as per the README generates the following error.
No matching distribution found for pipeformer
A search of https://pypi.org/ also does not show a package called pipeformer.

Hi @charles545587, thanks for your interest!
Pipeformer is actually a brand new project that we are just starting work on. Aside from the docs that are up now, I have an initial MVP almost ready for review. There should be a PR coming in for that this week.
Also, thanks for the bug on pypi. I've parked the name now and it will show you a placeholder message if you try to install it.


fix: webpack-dev-server doesn't exit on Ctrl+C

What kind of change does this PR introduce? (check at least one)

[x] Bugfix
[ ] Feature
[ ] Code style update
[x] Refactor
[ ] Docs
[ ] Underlying tools
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes
[x] No

Other information
1.background
We need to execute ctrl +c twice to stop the yarn serve
This is unbearable for developers

2.reproduction repo
vue-cli-5-mini-repo

3.webpack-dev-server issue

https://github.com/webpack/webpack-dev-server/issues/2168
https://github.com/webpack/webpack-dev-server/issues/1479
and so on

4.solutions
Usually Ctrl-C is interpreted as a SIGINT signal, And the termination of a process is interpreted as a SIGTERM signal
So we need to exit the child process when these two signals are thrown

Worked on my machine:

On my machine, Ctrl + C works if the build is finished.
It requires an additional Ctrl + C when the build is in progress because webpack-dev-server tries to gracefully shut down on the first try:
https://github.com/webpack/webpack-dev-server/blob/78c0802a99c27e7ca8aee455c21fa5ac65468db1/lib/Server.js#L1127-L1158

OK, Thank you for your reply
From the feedback I've gotten so far, All users in 5.0.0-beta.3 have this feedback, users in 5.0.0-beta.5 version and  MacOS 10  still have this issue

Using a external keyboard or not can also make some difference

I would using patch-packages to solve this problem within our company

Can you please merge this ASAP? It's really annoy.

Please first provide a reproduction that I can reproduce.

I think I may have found the actual cause of this issue:
https://github.com/yarnpkg/yarn/releases/tag/v1.22.11

This version fixes a problem where Yarn wasn't forwarding SIGTERM to the binary spawned via yarnPath

Please make sure you are using yarn > 1.22.11

I think I may have found the actual cause of this issue: https://github.com/yarnpkg/yarn/releases/tag/v1.22.11

This version fixes a problem where Yarn wasn't forwarding SIGTERM to the binary spawned via yarnPath

Please make sure you are using yarn > 1.22.11

It can't be yarn, I, get this issue when using npm 7.20.3

I have the same question, eg:

As can be seen in the recorded figure, Pressing Control + C for the first time will not exit immediately. Although the program has been terminated, the terminal will not exit the program until pressing Control + C for the second time.
yarn v1.22.19
MacOS Monterey


fix: correct checkstyle errors

fixes #71
This PR fixes the existing checkstyle errors.

[x] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
[x] Ensure that the pull request title represents the desired changelog entry
[x] Please describe what you did
[x] Link to relevant issues in GitHub or Jira
[x] Link to relevant pull requests, esp. upstream and downstream changes
[ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue

Oh this is great!

good stuff (comments realy help for new contributors :wink: .
I saw that th code I wrote is refactored with two spaces instead of 4, is that correct ?
It's to help me to choose the first configuration for the #51

Hello @philippart-s,
Good observation...
Is it correct? I am not sure, I think, It will depend on what we decide.
Steps that I took:

Used the mvn check command to see errors.
I saw some whitespace related errors & some wrong indentation errors
Instead of manually changing those, I installed checkstyle plugin for IntelliJ Idea IDE
Set the style to google styles and clicked "Reformat Code", it changed the following:
- Import order (which I had to undo manually)
- Indentation (4 --> 2)
- Trim whitespace and remove extra newlines
Manually fixed other errors :)

As I proposed in the https://github.com/jenkinsci/conventional-commits-plugin/issues/51#issuecomment-881937418 we can add the checkstyle verification in the maven's lifecycle project to check that the project is well formatting (and respect other good coding rules :wink: ).
At this point if we do this we will choose what configuration of checkstyle apply (goole, sun, custom).
To me the main advantage is to make easier the peer reviewing in the GitHub PR.
Otherwise if you and other maintainers think it's not necessary you can close the issue number #51 .


Err: Unfortunatly, Camera has stopped (android 8.1 (API 27))

I had problem with android 8.1 with my app. And then I tried to run your demo sample https://github.com/jamesmontemagno/MediaPlugin/tree/master/samples . And got the same err on the two different real devices with android 8.1(API 27) . It strange, but it worked on emulator with API 27. And it strange, but some times it works on the android 8.1, and I don't know why. I tried to build, rebuild, reboot, run on different PC with different VS, and got this error too.
Bug Information
Version Number of Plugin: <IP_ADDRESS>
Device Tested On: Android 8.1(API 27). LG Q6 Plus and xiaomi mi a1
Simulator Tested On:
Version of VS: 15.8.9
Version of Xamarin: <IP_ADDRESS>7273 (and also tried with <IP_ADDRESS>7583)
Versions of other things you are using:
Steps to reproduce the Behavior
I just run your sample on the real device with android 8.1. Them click "Take photo" button, then click button to take the photo on the native camera -> got err "Unfortunatly, Camera has stopped"
Code snippet
https://github.com/jamesmontemagno/MediaPlugin/tree/master/samples
Screenshots

+1

Do you have kill activities on in your developer settings?

Which settings do you mean?  (I can provide screenshots of settings screens from the phone or VS)
For example these settings on the Android Options tab:

We have the same problem, it works fine on some older android devices, and on the API 27 emulator, but on my LG G6 (Android 8.0.0 - API 26) I get that constant camera app crashing

just for information: if I open camera and switch from back to front camera, then switch to back again and make photo it works. So some strange bug

Another way around the bug is to turn off (not reboot, but simply press the power button to lock the screen) the phone and unlock it, this will allow to take a picture and you wont get the "Camera has stopped" error

Did somebody resolve this issue? Because it is still actual issue for my app.

I found one solution, you can check it here:
https://github.com/jamesmontemagno/MediaPlugin/issues/586#issuecomment-473931382


docs(troubleshooting): Add details of a couple of issues you might meet

See @benjie's  suggestion at https://github.com/postgraphql/postgraphql/issues/495#issuecomment-312487145

@ppKrauss Hope you don't mind I edited this file in-place.


healthcheck failed

With configured GRAYLOG_HTTP_EXTERNAL_URI=http://<IP_ADDRESS>:9000/ the healthcheck will fail.
A possible solution would be to parse the IP in the healtheck script and replace <IP_ADDRESS>.0 with <IP_ADDRESS>

but GRAYLOG_HTTP_EXTERNAL_URI is never used in the script ... so it defaults back to <IP_ADDRESS> ...

you are right.
thats my mistake and an older configuration in my test environment.


it is good but not support TypeScript

(17,30): Could not find a declaration file for module 'react-browser-detection'. '/Users/me/app_name/node_modules/react-browser-detection/lib/index.js' implicitly has an 'any' type.
  Try `npm install @types/react-browser-detection` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-browser-detection';`

Hi @shinriyo,
yeah, it would be great to add a ts declaration file.
Unfortunately 've never used typescript before, so it might take a while, but that's definitely something interesting.
If you want to contribute a PR is really appreciated 😄

I would also like to use this with typescript :) Maybe I'll dig into how to create @types for this repo

We are currently working with the following types:
declare module "react-browser-detection" {
  type BrowserOptions =
    | "chrome"
    | "googlebot"
    | "ie"
    | "edge"
    | "firefox"
    | "opera"
    | "safari"
    | "blink"
    | "unknown"
    | "android-chrome"
    | "android-googlebot"
    | "android-ie"
    | "android-edge"
    | "android-firefox"
    | "android-opera"
    | "android-safari"
    | "android-blink"
    | "unknown"
    | "android"
    | "default";

  export type BrowserDetectionConfig = {
    [K in BrowserOptions]?: (key: K) => React.ReactNode;
  };

  export interface IBrowserDetectionProps {
    /***
     * If true, function contained in children prop will be call only once. If false, it will be called on each render. Default true due to performance reasons
     * @default true
     */
    once?: boolean;
    /***
     * An object containing functions to handle different browsers. Properties would be called like browsers: chrome, firefox, ie, edge, safari, opera, blink, googlebot and default. If specified, the component will use the function under the property with the name of the browser, otherwise, it will use default. Each function take the browser name as parameter and must return a node
     */
    children: BrowserDetectionConfig;
  }

  export default class BrowserDetection extends React.Component<
    IBrowserDetectionProps
  > {}
}


[CUTLASS] Initial support for dynamic shape dense

This enables running cutlass on dynamic shape dense op. No effort was made to pick the most "reasonable" default kernels; I just chose the fastest ones on the workload in test_cutlass.py.
The signature of the generated function was changed to take in DLTensor* instead of raw pointers, to retrieve runtime shapes if static ones are not available.
cc @Laurawly @comaniac @zhiics

Thanks @comaniac


There is an error that can not be encoded when creating a server using a flask in python

VSCode Version: Code 1.17.2 (b813d12980308015bcd2b3a2f6efa5c810c33ba5, 2017-10-16T13:59:46.104Z)
OS Version: Windows_NT x64 10.0.17025
Extensions:
An error occurred when creating a server with a cylinder in python: UnicodeDecodeError: 'utf-8' codec can not decode byte 0xbd in position 0: invalid start byte
Extension|Author (truncated)|Version
---|---|---
html-snippets|abu|0.1.0
vscode-intelephense-client|bme|0.7.2
python|don|0.7.0
vscode-html-css|ecm|0.1.8
vscode-npm-script|eg2|0.3.2
php-debug|fel|1.11.1
php-intellisense|fel|1.5.4
phpcs|ika|0.7.0
cpptools|ms-|0.14.0

(1 theme extensions excluded)

Steps to Reproduce:

Reproduces without extensions: Yes/No

Please file this issue against https://github.com/DonJayamanne/pythonVSCode


Allow replay.mp4 rendering for robotics tasks

When a model is tagged with "reinforcement-learning", you've get a nice rendering if a file replay.mp4 is contained in the repo. It would be great to have it also for robotics.
For the moment, we're doing it, but with gifs in README.
Example: https://huggingface.co/lerobot/diffusion_pusht

cc @osanseviero

This is now done :fire:

Wonderful, thanks!


Remove unnecessary line of code

Observer already fires once after DOM loads

Thanks. I'm going to pick up this change in a separate commit so closing this one.

No problem!


chore: simplify python dependencies management

SUMMARY
POC around simplifying our python dependency setup. Goal ultimately is to:

restore dependabot support
untangle complex nested dependencies / simplify
get out of the current impasse with pip-compile-multi - where we may have to bissect 30+ upgrades to figure out which one breaks the build

Find more context here -> https://github.com/apache/superset/discussions/27413
Simplify from 6 to 2 bundles -> base.txt and development.txt
Currently we have 6 bundles -> base/development/testing/integration/docker/local
Here I'm aiming at bringing it down to 2 ->

a base/lean bundle
a development bundle (with everything)

While the benefits of simplifying are clear, the tradeoff is having a more bloated setup for development. My stance here that having a more bloated dev setup is better than having 3-4 that are confusing and half-broken at times. Also note that while it's super important for the production dependencies to be pinned, it matters a bit less going into the longer tail of dependencies.
I'm certain the current setup with 6 requirements files is overly engineered/complex and should be simplified. Is 2 the sweet spot? Do we need 3 to strike the right balance? Let's POC with 2 and see how it impacts CI / dev enviornments
This is a bit of a POC, if successful, next step could be to move away from
pip-compile-multi and onto a simpler pip-compile setup, and restore
dependatot support.
What's in this PR
I got pulled deeper than I expected in this PR, resulting in related
side-quests that I took on and want to list out here so you understand
what's in the 40 files touched by this PR:

Moved towards pyproject.toml the now-standard way to manage deps and project semantics.
This is compatible with dependabot and the ecosystem in general
created requirements/pip-compile-superset.py a simple utility/CLI that wraps pip-compile
commands and features around python dependency management, sure you can use pip-compile
directly, but this utility is a bit more opinionated (which files to generate with what input)
documented and spread the use of pip-compile-superset.py
Moved all requirements/*.in files into pyproject.toml
introducing a setup-backend github action to DRY the python-setup logic in one place.
now that is used consistently across a dozen+ actions, we have more consistency and can
ultimately tweak for more perf
moved all actions to use this reusable action

Mechanics

Moving to using the now standard pyproject.toml - as specified in PEP-517 & PEP-518
Using simple, basic pip-compile to

build the simple requirements/base.txt
build a more complex requirements/development.txt, by specifying many --extra that point to group of "extra_requires". This file is a superset of the base file, and contrarily to before, re-itemizes each dependency (pip-compile-multi was able to point one to another - so it'd be DRYer)

Composition in specific envs
How to use the existing constructs to build upon them in your own environment, like we do at Preset and Airbnb? What's the pattern to follow given these new mechanics. Listing out the needs/requirements around this:

allow "extending" the requirements with extra/external/arbitrary new libraries while specifying ranges
allow "overriding" rules for any library specified or inherited in the tree
reuse as much of the pinned list from the tested list, meaning we want to be as close to possible as base.txt except where specfied

Step by step:

create a new preset-prod-requirements.in that references the extra you want, first line should be something like -e .[hive,presto,mysql]
add your rules on top, things like cryptography>=3.0.0,<4.0.0 or some-lib-only-me-needs
copy the rich/tested development.txt output file as your target. cp requirements/development.txt requirements/preset-prod-requirements.txt so it becomes the basis for your environment.
compile with constraints pip-compile -o preset-prod-requirements.txt preset-prod-requirements.in -c requirements/base.txt. Note that the output here acts as an input as well, and that we're counting on the fact that our input file + the latest output file leads to a new deterministic output that fits the criteria above

TESTING INSTRUCTIONS
Let CI play its course. This is a draft for now.

@john-bodley this matured quite a bit since you look, would love to get your feedback on all this. I think it's viable as is and should address most of the origin goals while also addressing or mitigating concerns.

Problems with the current setup:

keeping base.txt and develpment.txt in locksteps - will dependabot know to submit PRs that update both base.txt and development.txt? likely not, might require post-processing
?

Now starting to think re-writing something like dependabot might be easier than all this ... I think I may factor out everything that's good/clear about this PR that's not related to pip-compile-multi (reducing to 2 .in files, improvements in GHA action re-use, ...)

Closing this for now in favor of simpler/less disruptive https://github.com/apache/superset/pull/27505 - might reconsider in the future.


GeneratorMessages Warning

Not sure if this is a problem on my end, but when I was writing updated tests for GeneratorMessages I could not get the GeneratorMessages.add_warning test to pass.
Failure/Error: Rainbow("WARNING: #{msg}").orange

       NoMethodError:
         undefined method `orange' for "WARNING: warning":Rainbow::Presenter

I then tested a warning message in one of the generators and the same error popped up. You should be able to reproduce this error if you add this to any generator.
def print_example_warning_message
   GeneratorMessages.add_warning("example warning message")
end

Which results in the same error:
format_warning': undefined method `orange' for "WARNING: example warning message":Rainbow::Presenter (NoMethodError)

The error points to this method in generator_messages.rb.
def format_warning(msg)
  Rainbow("WARNING: #{msg}").orange
end

I went through the rainbow docs and orange is a supported x11 color so I'm not sure why this is happening.

Also note that if change orange to yellow(or another base color), it works normally.

yellow is too light for a white background
orange worked fine for @robwise and me.

@aaronvb still an issue?

@justin808 Yes, I've pushed a branch in my repo with the new tests and still get the same error.
https://github.com/aaronvb/react_on_rails/tree/add_tests_to_generator_message
These are the tests I added: https://github.com/aaronvb/react_on_rails/commit/427ceac43a720fe1dbcd44cf2d2ff8d789810a84
And the test error that I keep getting:
1) GeneratorMessages has a method that can add warnings
     Failure/Error: Rainbow("WARNING: #{msg}").orange

     NoMethodError:
       undefined method `orange' for "WARNING: Test warning":Rainbow::Presenter
     # ./lib/generators/react_on_rails/generator_messages.rb:28:in `format_warning'
     # ./lib/generators/react_on_rails/generator_messages.rb:12:in `add_warning'
     # ./spec/react_on_rails/generators/generator_messages_spec.rb:13:in `block (2 levels) in <top (required)>'

I'm having trouble figuring out the problem. When I use the rainbow gem in a normal Rails app, I can use .orange no problem. But when used in react_on_rails, I get this error. Note that the error and info messages work no problem. Note that orange(warning) is an X11 color, and red(error) and green(info) are ANSI colors. I'm also using regular Terminal on El Capitan.

That's super weird..., can you pp Rainbow("WARNING: #{msg}").public_methods

Orange wont show up as a public method because rainbow uses a method_missing to capture the colors outside of the default ANSI.
Shown here: https://github.com/sickill/rainbow/blob/master/lib/rainbow/presenter.rb#L108
This is really weird, because there's no problem with the gem. I cloned it, ran their tests, and it all passes.
@robwise Would it be possible for you to add these tests https://github.com/aaronvb/react_on_rails/commit/427ceac43a720fe1dbcd44cf2d2ff8d789810a84 into generator_messages_spec.rb and see if it passes for you?
Here's the public method list:
color
foreground
fg
background
bg
reset
bright
italic
underline
blink
inverse
hide
black
red
green
yellow
blue
magenta
cyan
white
<=>
==
===
eql?
hash
casecmp
+
*
%
[]
[]=
insert
length
size
bytesize
empty?
=~
match
succ
succ!
next
next!
upto
index
rindex
replace
clear
chr
getbyte
setbyte
byteslice
scrub
scrub!
freeze
to_i
to_f
to_s
to_str
inspect
dump
upcase
downcase
capitalize
swapcase
upcase!
downcase!
capitalize!
swapcase!
hex
oct
split
lines
bytes
chars
codepoints
reverse
reverse!
concat
<<
prepend
crypt
intern
to_sym
ord
include?
start_with?
end_with?
scan
ljust
rjust
center
sub
gsub
chop
chomp
strip
lstrip
rstrip
sub!
gsub!
chop!
chomp!
strip!
lstrip!
rstrip!
tr
tr_s
delete
squeeze
count
tr!
tr_s!
delete!
squeeze!
each_line
each_byte
each_char
each_codepoint
sum
slice
slice!
partition
rpartition
encoding
force_encoding
b
valid_encoding?
ascii_only?
unpack
encode
encode!
to_r
to_c
unicode_normalize
unicode_normalize!
unicode_normalized?
shellsplit
shellescape
blank?
mb_chars
is_utf8?
pluralize
singularize
constantize
safe_constantize
camelize
camelcase
titleize
titlecase
underscore
dasherize
demodulize
deconstantize
parameterize
tableize
classify
humanize
foreign_key
to_time
to_date
to_datetime
in_time_zone
to_d
to_json_with_active_support_encoder
to_json_without_active_support_encoder
to_json
as_json
squish
squish!
remove
remove!
truncate
truncate_words
starts_with?
ends_with?
at
from
to
first
last
acts_like_string?
html_safe
exclude?
strip_heredoc
inquiry
indent!
indent
to_json_raw
to_json_raw_object
>
>=
<
<=
between?
psych_to_yaml
to_yaml
to_yaml_properties
present?
presence
acts_like?
duplicable?
deep_dup
try
try!
in?
presence_in
to_param
to_query
instance_values
instance_variable_names
with_options
`
html_safe?
nil?
!~
class
singleton_class
clone
dup
itself
taint
tainted?
untaint
untrust
untrusted?
trust
frozen?
methods
singleton_methods
protected_methods
private_methods
public_methods
instance_variables
instance_variable_get
instance_variable_set
instance_variable_defined?
remove_instance_variable
instance_of?
kind_of?
is_a?
tap
send
public_send
respond_to?
extend
display
method
public_method
singleton_method
define_singleton_method
object_id
to_enum
enum_for
gem
class_eval
silence_warnings
enable_warnings
with_warnings
silence_stderr
silence_stream
suppress
capture
silence
quietly
concern
equal?
!
!=
instance_eval
instance_exec
__send__
__id__
should_receive
should_not_receive
stub
unstub
stub_chain
as_null_object
null_object?
received_message?
should
should_not```

@aaronvb I'm getting this error when I just try to use orange in Pry. I agree, it seems the ANSI ones work fine but the X11 ones do not. @justin808 how do you want to proceed? Can we just an ANSI color here?
Also, please make sure the test files either require spec_helper or at least require the simplecov helper so that we get proper coverage analysis.

@aaronvb Please change to some color as you feel right, so long as the color works on both white and black backgrounds. @robwise, stay focused on the 1,000 other things we got going right now!


Removed onclick functions from left navigation

The PR is here but conflicts need to be addressed: https://github.com/killbill/killbill-docs/pull/432#issuecomment-1291569639


DataTable has no horizontal scroll bar when set "max-height" prop

TuSimple/naive-ui version (版本)
2.32.1
Vue version (Vue 版本)
3.2.37
Browser and its version (浏览器及其版本)
Chrome(104.0.5112.81)
System and its version (系统及其版本)
Windows 10
Node version (Node 版本)
v14.17.0
Reappearance link (重现链接)
https://codesandbox.io/s/funny-leakey-kfko0u
Reappearance steps (重现步骤)

define columns with width prop(so table will show horizontal scroll bar)
add "max-height" prop to table component
table show vertical scroll bar(as expected), but horizontal scroll bar disappear

actually i can use middle mouse button to control horizontal scroll bar, it just no show.
Expected results (期望的结果)
horizontal scroll bar show correctly, when "max-height" prop has been set
Actual results (实际的结果)
no horizontal scroll bar show, when "max-height" prop has been set
Remarks (补充说明)

ScrollX is not set. This is the actual reason.


Stop logging field errors on Sentry

Related to https://vikingco.atlassian.net/browse/MVBE-10054

Current coverage is 62.91% (diff: 100%)

Merging #15 into master will decrease coverage by 0.21%

@@             master        #15   diff @@
==========================================
  Files             7          7
  Lines           510        507     -3
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits            322        319     -3
  Misses          188        188
  Partials          0          0

Powered by Codecov. Last update 7533569...97eb4e0


feat: support helm

helm/risingwave-operator
helm/risingwave-example

After some investigation, providing a Helm package is far too complex than expected. Since the operator is not stable enough, we will postpone this problem until other things are completed, such as docs about how to test the RisingWave on Kubernetes.

I want to provide these charts for convenience:

risingwave, a chart containing only core APIs (Deployment/StatefulSet/Service/ConfigMap...) to start a RisingWave in the Kubernetes, just like what the operator does. It should provide the configurations in detail.
kube-risingwave-stack, which integrates the RisingWave Operator, Grafana, Prometheus Operator, Loki, Promtail, and related components like etcd and Kafka and starts a full stack of the RisingWave management system. It should provide options for the components and their configurations. IMO, it would be a complex chart with massive details.

If there're any other ideas, welcome to post a comment on this track.

It looks like we currently don't need a helm chart. I'll close it now. Please feel free to re-open it if you think the helm chart is necessary.


Delete any created load balancers in guestbook.sh

LGTM
I messed with this issue to test something on Github, not because of any particular interest in this issue. But I'll merge now since it seems fine.

This doesn't work. On the jenkins build, this failed due to a missing region flag:
For the following forwarding rules:
   - [e2e-test-jenkins-default-frontend]
  choose a region:
   [1] asia-east1
   [2] europe-west1
   [3] us-central1
  Please enter your numeric choice:
  ERROR: (gcloud.compute.forwarding-rules.delete) Unable to prompt. Specify one of the [--region, --global] flags.
  For the following target pools:
   - [e2e-test-jenkins-default-frontend]
  choose a region:
   [1] asia-east1
   [2] europe-west1
   [3] us-central1
  Please enter your numeric choice:
  ERROR: (gcloud.compute.target-pools.delete) Unable to prompt. Specify the [--region] flag.

@ixdy, I fixed the problem in #5294


footer added

Fixed #1209
Close #1209
In this PR I'm added footer into the footer pages.

@narayan954  here is updated footer as you required changes please review it.


Music: Nix God, Spittin' Code Like Fire!

Developed for NiXium infra management: https://github.com/kreyren/nixos-config
[Verse]
Livin' declarative, clean as machine code,
NixOS, got me flexin' like a cheat mode.
Rollin' through my system, configuration's beast mode,
Repos galore, got my setup set to reload.
Infinite snapshots, I never worry 'bout the crash pop,
Dependencies stay sorted, never needin' a mascott.
Precise packages, buildin' like a stack plot,
Eminent upgrades, always keep my track hot.

[Verse 2]
Immutable foundation, solid as encryption,
My config file, more sacred than scripture.
Systemd composin', like Mozart in the mixture,
Declarative is gospel, my configuration picture.
Hydra builds muscles, never gonna falter,
Channels straight flowin', never gonna alter,
Unify the workflow, snappier than a raptor,
Automated rollbacks if my system ever fractures.

[Chorus]
Nix God, spittin' code like fire,
Declarative, achievin', what the sysadmins desire.
Smooth transitions, painless rolls retire,
Got my system runnin' perfect, no need for rewires.
Nix God, configurational empire,
Precise control in hand, rise up higher.
From machines to scripts, I’ll always inspire,
NixOS the ticket, to the zen I aspire.

CC @gytis-ivaskevicius

Tried to embed it as a music player, but GitHub doesn't seem to allow that :/

Hey, can you rebase it? And do it something like this https://github.com/gytis-ivaskevicius/high-quality-nix-content/pull/22 either file or a link is fine


Buffering when trying to play Flex

This is a new thing that seems to happen just with channels that are setup with Time Slots. When a content ends, the Flex can't be loaded, Plex player just says "Buffering" and it stays like that (no error in console). You have to exit to the Plex Tv Guide and re-enter the same channel to see the Flex loading and playing without an issue; after that, when the flex ends, the next movie starts just fine.
This issue has been verified both on Plex for webos and Plex for Fire Tv.
Thanks

Are you sure this only happens when using time slots? If using flex in some other ways (like Add Breaks button), it doesn't happen?

Hi @vexorian; thanks for your help. I can confirm (just tested) that the same file used as Flex in another channel via the "Add Breaks" button plays smoothly; in the channel with the time slots it hangs on buffering (black screen). If you need I can provide you the file used as flex (but it appears to me that all files are affected) or some logs or a recording when it happens ;)

This is really weird. For the video player part of dizquetv, it makes no difference if Time Slots or adding time was added. Are you using the same filler list in both cases? It could be that in one case the filler list is really large.

Yes, i tried setting up the same filler list (only one video is added in it) and also adding the same clip as fallback. On a "normal" channel it plays perfectly, on time slotted channels it hangs (like you can see in this video, where it's stuck buffering after the movie ends but closing and reopening the channel makes it work). Apparently, no error is displayed in the log.

New idea, use time slots , but with pick "maximum days to precalculate" equal to 1 day. Maybe the buffering is caused by the channel selector having to go through a huge list of programs.

New idea, use time slots , but with pick "maximum days to precalculate" equal to 1 day. Maybe the buffering is caused by the channel selector having to go through a huge list of programs.

Just tried that (total programs in the list: 29), but the issue is still happening

@vexorian i think i found the culprit :) it' because of the "animated image"; to replicate:

add animated icon to a channel
activate "animated image" in ffmpeg
create time slots with flex (i can't say if this also happens for "regular" flex)
tune in to the channel before the flex is loaded, it will "hang" forever giving you errors

Also note that the flex in this case is set to "disable channel watermark when playing filler".
When turning off the animated logo, everything works perfectly ;)

That's really strange, but good to have it isolated.

Fixed in theory.

Fixed in theory.


[TS-4012] tcp_reused log field doesn't work for http2/spdy

JIRA: https://issues.apache.org/jira/browse/TS-4012

I think we have decided to put this off until we have a patch for TS-3612 which will make a much cleaner implementation possible.

Am going to close this PR then. When TS-3612 is done I'll make the change for this JIRA so that we've got this working in open source.


Start DevRel twitter

We have one official twitter account (@devprtcl) now. Its followers range from supporters, developers and people interested in DEV tokens.

I think we might be better to have a new twitter account because the only users DevRel will communicate with will be developers.
I prefer an official account rather than personal account. It takes time for a personal account to have influence, and it should be free to use. We are not a big company, so there is no risk of closing official account in future.
There are two kinds of developers we want to talk to: Web2 and Web3 developers. Since Web2 developers are not yet familiar with crypto, so if our conversations are biased towards crypto or finance, Web2 developers will stay away, so we need a balance with technology as the top priority.

@kazu80 I have written my idea here, please feel free to add your thinking 🙂

We have one official twitter account (@devprtcl) now. Its followers range from supporters, developers and people interested in DEV tokens.

I think we might be better to have a new twitter account because the only users DevRel will communicate with will be developers.
I prefer an official account rather than personal account. It takes time for a personal account to have influence, and it should be free to use. We are not a big company, so there is no risk of closing official account in future.
There are two kinds of developers we want to talk to: Web2 and Web3 developers. Since Web2 developers are not yet familiar with crypto, so if our conversations are biased towards crypto or finance, Web2 developers will stay away, so we need a balance with technology as the top priority.

@kazu80 I have written my idea here, please feel free to add your thinking 🙂

Thank you.

I think we might be better to have a new twitter account because the only users DevRel will communicate with will be developers.

Yes, I think it better too.

I prefer an official account rather than personal account. It takes time for a personal account to have influence, and it should be free to use. We are not a big company, so there is no risk of closing official account in future.

Definitely, I agree with you.

There are two kinds of developers we want to talk to: Web2 and Web3 developers. Since Web2 developers are not yet familiar with crypto, so if our conversations are biased towards crypto or finance, Web2 developers will stay away, so we need a balance with technology as the top priority.

I think separated account is better. So, I want prepare two account for Web2 and for Web3.
And, one more thing.
I think we should separate account for language English and Japanese.
@yumemayu

Thank you.

I think we might be better to have a new twitter account because the only users DevRel will communicate with will be developers.

Yes, I think it better too.

I prefer an official account rather than personal account. It takes time for a personal account to have influence, and it should be free to use. We are not a big company, so there is no risk of closing official account in future.

Definitely, I agree with you.

There are two kinds of developers we want to talk to: Web2 and Web3 developers. Since Web2 developers are not yet familiar with crypto, so if our conversations are biased towards crypto or finance, Web2 developers will stay away, so we need a balance with technology as the top priority.

I think separated account is better. So, I want prepare two account for Web2 and for Web3.
And, one more thing.
I think we should separate account for language English and Japanese.
@yumemayu

The Dev Protocol Twitter currently has less than 2,000 followers. If we keep sharding the branding and communications then there will be an information asymmetry that won't benefit the project. This has been done with Dev Protocol and Stakes Social which means the team needs to spend 2X the effort in building the marketing, communication, and awareness of two products. Kawakami should use the official Dev Protocol account and his personal account. The crypto community likes to engage with personal accounts and since Kawakami has an account I think he should leverage it.

The Dev Protocol Twitter currently has less than 2,000 followers. If we keep sharding the branding and communications then there will be an information asymmetry that won't benefit the project. This has been done with Dev Protocol and Stakes Social which means the team needs to spend 2X the effort in building the marketing, communication, and awareness of two products. Kawakami should use the official Dev Protocol account and his personal account. The crypto community likes to engage with personal accounts and since Kawakami has an account I think he should leverage it.

Microsoft for Developers, Oracle for Developers, etc exist because these are big companies where there's B2C and B2B. Dev Protocol doesn't have a big enough developer community to cater to in order to split the branding. Also, Dev Protocol's retail community is very much interested in the development updates because that shows the health of the project. This is why no other crypto team has a developer account. Lastly, if Dev Protocol for Developers account has very little followers then it won't be convincing for developers to integrate with Dev Protocol.

Microsoft for Developers, Oracle for Developers, etc exist because these are big companies where there's B2C and B2B. Dev Protocol doesn't have a big enough developer community to cater to in order to split the branding. Also, Dev Protocol's retail community is very much interested in the development updates because that shows the health of the project. This is why no other crypto team has a developer account. Lastly, if Dev Protocol for Developers account has very little followers then it won't be convincing for developers to integrate with Dev Protocol.

I think @defi-er's opinion is justified. I think it's a good idea to consider splitting after something goes wrong with one Twitter account.

I think @defi-er's opinion is justified. I think it's a good idea to consider splitting after something goes wrong with one Twitter account.

Ok, so we can start DevRel communication whenever we're ready! @kazu80

Ok, so we can start DevRel communication whenever we're ready! @kazu80

@defi-er
I want to separate Twitter accounts by language, what do you think about it?
Because there are many Japanese people who are stressed by reading English, so I want to resolve it.

@defi-er
I want to separate Twitter accounts by language, what do you think about it?
Because there are many Japanese people who are stressed by reading English, so I want to resolve it.


Splash screen doesn't work

Pull request #23 was merged into master recently. I've cloned the master branch and built the app, but I don't see the splash screen.
@andreban Have you tested the PR before merging?

Are you using Chrome Canary for testing?

I've changed the WebView provider in Android developer options from Chrome to Chrome Canary, but it didn't help.
Only removing (freezing) Chrome Stable helps.

@FluorescentHallucinogen
Trusted Web Activities are a browser feature, and not part of the WebView API. You can set Chrome Canary to be the default browser, so you won't have to uninstall Stable. Go to:
Settings > Apps & notifications > Advanced > Default Apps > Browser app
and select Chrome Canary. Make sure to close and re-start the app so it runs on Canary on the next start.

@andreban Thanks!


other rp2040 libraries

hello. i think your libraries for rp2040 is far more better for developing new programs by rp2040 than its SDK libraries distributed by its company. i want to know, have you developed libraries for other rp2040 peripherals like SPI or UART? if yes, can I have those?

Simple UART example is available here https://github.com/ataradov/mcu-starter-projects/blob/master/rp2040/main.c
A more complete example is here https://github.com/ataradov/free-dap/blob/master/platform/rp2040/uart.c
I don't have examples for SPI.


Add Sentry integrations to API

We should add the following integrations to sentry for the api component:

express
sql

accidental duplicate


⚠ Bofrost.fr has degraded performance

In b72838f, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1817 ms

Resolved: Bofrost.fr performance has improved in ba7d12c after 6 minutes.


analysis on performance bottlenecks in repo migration

Repo migration from Github can take a long time (eg this gitea repo takes more than 24h on a small VPS (hetzner CPX11)).
It's unclear (to me) if this is incurred by ratelimits of external services (GH API), or due to inefficiencies in Giteas migration module.
The aim of this issue is to identify the bottlenecks involved. For now the primary method for this is to collect pprof profiles, to investigate in which routines most time is spent.
This partly also gives insight into which network, disk, DB operations take much time, but only indirectly. For that, analyzing DB query times specifically might be more helpful. (If somebody can outline a good process for that, a comment here would be appreciated ;)
I sampled some pprof activity during a migration of https://github.com/go-gitea/gitea, including all entities except for releases, gitea 1.14.0+dev-713-gec06eb112. which ran over several hours. You can find several pprof profiles that were sampled for 30 seconds - 30 minutes attached:
pprof.gitea.samples.cpu.00.zip

To inspect them run go tool pprof -http :8080 <path to profile>
To collect you own profiles, set ENABLE_PPROF = true under [server] in app.ini, then call go tool pprof -seconds 1800 <IP_ADDRESS>:6060

Actual analysis of these samples will follow in the upcoming days..
Server utilization graphs for the middle 12 hours of migration:

This looks to me like the higher-utilization phases each hour are related to a reset of the github ratelimiter window, so we're down to ~33% of potential performance just through github ratelimits

A possible resolution to break rate limit is to create multiple account and migrations support multiple tokens.

quick and dirty look through those samples suggests just downloading and storing the releases is what's taking the time.
There's some delay due to encoding/json and it might be that using jsoniter here is a little quicker but I'm not certain it's huge.

#16070 may give some help for this issue.


Dart package publishing

In this PR we configure publishing spine_client package to pub.dev. This includes adding a few documentation files, such as README.md and CHANGELOG.md.
Also, with this PR we start using GitHub Actions instead of AppVeyor.

@armiol, PTAL.


Non-unique canonicalisation of SMILES string

Describe the bug
A rdkit molecule is created from a SMILES  whose atom order is specified by the order of coordinate lines in a structure file (using reordered_smiles_100 from (this website). The coordinate lines are then shuffled resulting in another equivalent SMILES. However, the canonicalization of these 2 SMILES result in different canonical SMILES.
In addition, I use the attribute _smilesAtomOutputOrder to access the indices mapping between atom-mapped and canonical SMILES (see function CanonicalizeMaps).  The mapping is somehow non-unique in a way that different atoms of the same element can be mapped to the same output (atom of the same element).
To Reproduce
educt1 = '[C]1=5%13.[C]12%14.[C]24%15%16.[C]34%17.[C]3=5%18.[O]=6.[C]=678.[C]7=9%19.[C]=9%10%20.[C]%10=%11%12.[O]=%11.[C]8%12%21%22.[I]%13.[I]%14.[I]%15.[I]%16.[I]%17.[I]%18.[I]%19.[I]%20.[I]%21.[I]%22'
educt2 = '[I]%20.[C]124%11.[C]=39%12.[I]4.[I]5.[C]=67%14.[O]=%17.[I]8.[I]%19.[I]9.[C]=%10%11%15.[C]%12%13=%16.[C]5=%10%14.[I]%15.[O]=%16.[C]=%17%18%21.[I]%22.[I]2.[C]=3%18%19.[I]7.[C]8%13%20%21.[C]1=6%22'
educt1 = Chem.MolToSmiles(Chem.MolFromSmiles(educt1))
educt2 = Chem.MolToSmiles(Chem.MolFromSmiles(educt2))

atom_mapped_educt1 = '[C:10]1([I:11])[C:12]([I:13])=[C:14]([I:15])[C:16]([I:17])[C:18]1([I:19])[I:20].[O:1]=[C:2]1[C:3]([I:4])([I:5])[C:6](=[O:7])[C:8]([I:9])=[C:21]1[I:22]'
atom_mapped_educt2 = '[C:10]1([I:11])=[C:12]([I:13])[C:14]([I:15])=[C:16]([I:17])[C:18]1([I:19])[I:20].[O:1]=[C:2]1[C:3]([I:4])([I:5])[C:6](=[O:7])[C:8]([I:9])=[C:21]1[I:22]'

def CanonicalizeMaps(m: Mol, *a, **kw) -> List[int]:
    """
    Create indices reference to canonical SMILES for atom-mapped SMILES
    """
    # atom maps are canonicalized, so rename them
    #  figure out where they would have gone
    #  and relabel from 1...N based on output order
    atomMap = "molAtomMapNumber"
    backupAtomMap = "oldMolAtomMapNumber"
    for atom in m.GetAtoms():
        if atom.HasProp(atomMap):
            atomNum = atom.GetProp(atomMap)  # Get atom map numbers of atoms
            atom.SetProp(backupAtomMap, atomNum)  # set backupAtomMap to atomNum
            atom.ClearProp(
                atomMap
            )  # removes atom map numbers of atoms --> somehow this steps alr canocalises SMILES

    # canonicalize
    smi = Chem.MolToSmiles(m, *a, **kw)
    # where did the atoms end up in the output string?
    atoms = [(atom_idx, pos) for pos, atom_idx in enumerate(
        eval(m.GetProp("_smilesAtomOutputOrder")))]
    atoms.sort()

    return [atoms[i][1] for i in range(len(atoms))]

Expected behavior
Shuffling atom coordinates should not alter canonical SMILES
Screenshots
If applicable, add screenshots to help explain your problem.
Configuration (please complete the following information):

RDKit version: 2021.09.2
OS: Ubuntu 20.04.03 LTS
Python version (if relevant): 3.8.12
Are you using conda? no
If you are using conda, which channel did you install the rdkit from?
If you are not using conda: how did you install the RDKit? pypi

Atom map numbers are used in the canonicalization process, removing or
changing these will also change the canonicalization.

>>> Chem.CanonSmiles("Nc1ccccc1")

'Nc1ccccc1'

>>> Chem.CanonSmiles("[N:1]c1ccccc1")

'c1ccc([N:1])cc1'

Otherwise smiles strings with atom maps couldn't be properly canonicalized.
Cheers,
Brian
On Mon, Dec 27, 2021 at 5:09 PM psireal9 @.***> wrote:

Describe the bug
A rdkit molecule is created from a SMILES whose atom order is specified
by the order of coordinate lines in a structure file (using
reordered_smiles_100 from (this website)
http://dalkescientific.com/writings/diary/archive/2010/12/28/reordering_smiles.html.
The coordinate lines are then shuffled resulting in another equivalent
SMILES. However, the canonicalization of these 2 SMILES result in different
canonical SMILES.
In addition, I use the attribute _smilesAtomOutputOrder to access the
indices mapping between atom-mapped and canonical SMILES (see function
CanonicalizeMaps). The mapping is somehow non-unique in a way that
different atoms of the same element can be mapped to the same output (atom
of the same element).
To Reproduce
educt1 = '[C]1=5%13.[C]12%14.[C]24%15%16.[C]34%17.[C]3=5%18.[O]=6.[C]=678.[C]7=9%19.[C]=9%10%20.[C]%10=%11%12.[O]=%11.[C]8%12%21%22.[I]%13.[I]%14.[I]%15.[I]%16.[I]%17.[I]%18.[I]%19.[I]%20.[I]%21.[I]%22'
educt2 = '[I]%20.[C]124%11.[C]=39%12.[I]4.[I]5.[C]=67%14.[O]=%17.[I]8.[I]%19.[I]9.[C]=%10%11%15.[C]%12%13=%16.[C]5=%10%14.[I]%15.[O]=%16.[C]=%17%18%21.[I]%22.[I]2.[C]=3%18%19.[I]7.[C]8%13%20%21.[C]1=6%22'
educt1 = Chem.MolToSmiles(Chem.MolFromSmiles(educt1))
educt2 = Chem.MolToSmiles(Chem.MolFromSmiles(educt2))
atom_mapped_educt1 = '[C:10]1([I:11])C:12=C:14C:16[C:18]1([I:19])[I:20].[O:1]=[C:2]1C:3([I:5])C:6C:8=[C:21]1[I:22]'
atom_mapped_educt2 = '[C:10]1([I:11])=C:12C:14=C:16[C:18]1([I:19])[I:20].[O:1]=[C:2]1C:3([I:5])C:6C:8=[C:21]1[I:22]'
def CanonicalizeMaps(m: Mol, *a, **kw) -> List[int]:
"""
Create indices reference to canonical SMILES for atom-mapped SMILES
"""
# atom maps are canonicalized, so rename them
#  figure out where they would have gone
#  and relabel from 1...N based on output order
atomMap = "molAtomMapNumber"
backupAtomMap = "oldMolAtomMapNumber"
for atom in m.GetAtoms():
if atom.HasProp(atomMap):
atomNum = atom.GetProp(atomMap)  # Get atom map numbers of atoms
atom.SetProp(backupAtomMap, atomNum)  # set backupAtomMap to atomNum
atom.ClearProp(
atomMap
)  # removes atom map numbers of atoms --> somehow this steps alr canocalises SMILES
# canonicalize
smi = Chem.MolToSmiles(m, *a, **kw)
# where did the atoms end up in the output string?
atoms = [(atom_idx, pos) for pos, atom_idx in enumerate(
    eval(m.GetProp("_smilesAtomOutputOrder")))]
atoms.sort()

return [atoms[i][1] for i in range(len(atoms))]

Expected behavior
Shuffling atom coordinates should not alter canonical SMILES
Screenshots
If applicable, add screenshots to help explain your problem.
Configuration (please complete the following information):

RDKit version: 2021.09.2
OS: Ubuntu 20.04.03 LTS
Python version (if relevant): 3.8.12
Are you using conda? no
If you are using conda, which channel did you install the rdkit from?
If you are not using conda: how did you install the RDKit? pypi

—
Reply to this email directly, view it on GitHub
https://github.com/rdkit/rdkit/issues/4830, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLOFIFLEXG5RDLT5VLEL6LUTDPX3ANCNFSM5K3BEFGA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I have a similar issue
I have downloaded the list of molecules from ChEMBL and I filtered the NaNs out of the default list of SMILEs and as the next step I would like to standardize the smiles.  Any help on how to get the output csv file out of this code by implementing the standardization would be highly appreciated. Here is my code
https://www.rdkit.org/
#https://github.com/rdkit/rdkit
from rdkit.Chem import AllChem
from rdkit import Chem
from rdkit.Chem import Descriptors
from rdkit.ML.Descriptors import MoleculeDescriptors
from rdkit.Chem.SaltRemover import SaltRemover
https://pandas.pydata.org
import pandas as pd
https://numpy.org/doc/stable/release.html
import numpy as np
#read drugs list
data = pd.read_csv("CHEMBL_SMILES.csv", sep=",")
print(len(data))
data.head(10)
df = data[data['SMILES'].notna()]
df.head()
def canonical_smiles(smiles):
def smiles_valid_and_standardise(smiles):
rm = SaltRemover()
df.loc["SMILES"] = df.loc[df.SMILES].apply(lambda x: smiles_valid_and_standardise(x))
mol = rm.StripMol(mol, dontRemoveEverything=True)
if len(Chem.MolToSmiles(mol).split('.')) > 1:
salt = Chem.MolToSmiles(mol)
frag_dict = {len(k): k for k in salt.split('.')}
max_frag = frag_dict[max(list(frag_dict.keys()))]
mol = Chem.MolFromSmiles(maVix_frag)
Error in this step
Canon_SMILES = canonical_smiles(df.SMILES)
print(Canon_SMILES)
KeyError: "None of [Index([  None],\n      dtype='object', length=8258)] are in the [index]"]
Put the smiles in the dataframe
df.loc["SMILES"] = Canon_SMILES
df.to_csv('chembl_canon_standardize_f.csv')

I'm closing this because it looks like it's not a bug. Please reopen if necessary.

@greglandrum so this can be closed, right? Since it's still marked as open