Script that uploads a file to Google Drive works, but when I try to run that script within another I get an HTTPerror

I'm somewhat of a beginner.
I have a script (morning3.py) that I run that writes and saves a text file and at the end of the script it's supposed to upload that file into google through the api by calling upon another python script called auth.py.
the morning.py file writes the new file but when it tries to upload the file I get this error:
Traceback (most recent call last):
  File "morning3.py", line 108, in <module>
    auth.uploadfile('test{}.txt'.format(datetime.date.today()), 'test{}.txt'.format(datetime.date.today()), 'txt/csv')
  File "/home/pete/google/auth.py", line 78, in uploadfile
    file = service.files().create(body=file_metadata,media_body=media,fields='id').execute()
  File "/home/pete/.local/lib/python3.8/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/home/pete/.local/lib/python3.8/site-packages/googleapiclient/http.py", line 871, in execute
    _, body = self.next_chunk(http=http, num_retries=num_retries)
  File "/home/pete/.local/lib/python3.8/site-packages/googleapiclient/_helpers.py", line 134, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/home/pete/.local/lib/python3.8/site-packages/googleapiclient/http.py", line 1054, in next_chunk
    return self._process_response(resp, content)
  File "/home/pete/.local/lib/python3.8/site-packages/googleapiclient/http.py", line 1085, in _process_response
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/upload/drive/v3/files?fields=id&alt=json&uploadType=resumable returned "Bad Request">

The weird thing is that I don't try to upload the file by importing auth.py and using the function that uploads the file...and run auth.py separately...it works fine!
This is auth.py, looking at this now I know there is probably ugly code here...but here it is:

from __future__ import print_function
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient.http import MediaFileUpload
import datetime

# If modifying these scopes, delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/drive']

def main():
    """Shows basic usage of the Drive v3 API.
    Prints the names and ids of the first 10 files the user has access to.
    """
    creds = None
    # The file token.pickle stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    service = build('drive', 'v3', credentials=creds)

    # Call the Drive v3 API
    results = service.files().list(
        pageSize=10, fields="nextPageToken, files(id, name)").execute()
    items = results.get('files', [])

    if not items:
        print('No files found.')
    else:
        print('Files:')
        for item in items:
            print(u'{0} ({1})'.format(item['name'], item['id']))

def uploadfile(filename,filepath,mimetype):
    creds = None

    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    service = build('drive', 'v3', credentials=creds)

    file_metadata = {'name': filename,}
    media = MediaFileUpload(filepath,
                        mimetype=mimetype,
                        resumable=True)
    #import pdb
    #pdb.set_trace()
    file = service.files().create(body=file_metadata,media_body=media,fields='id').execute()
    print ('File ID: %s' % file.get('id'))

if __name__ == '__main__':
    main()
    uploadfile('test{}.txt'.format(datetime.date.today()), 'test{}.txt'.format(datetime.date.today()), 'txt/csv')

in morning3.py, I import auth up top and then at the bottom I have this:
auth.uploadfile('test{}.txt'.format(datetime.date.today()), 'test{}.txt'.format(datetime.date.today()), 'txt/csv')

Hi @filifunk,
The error you are getting is 400 bad request - which means that something about the content of the request is invalid.
If you're calling out to the same function with the same arguments I would expect a discrepancy in the response. When you run python auth.py you don't see the error?

@busunkim96  exactly!  It works fine when I run python auth.py...the file shows up in my google drive and everything is good in the world.  There must be something I don't understand about api's or something...

Hmm, maybe the filepaths? Are the file to upload and the two scripts in the same directory?

Yep, same directory

I suggest you try enabling httplib2 logging and comparing the logs from the two runs.
This will print out the content of the HTTP requests and responses so it should be easier to figure out what's happening.
import httplib2
httplib2.debuglevel = 4

great! thanks @busunkim96 , I will get into it a little bit later and report back

hmmm...so this is the output:
connect: (www.googleapis.com, 443)
send: b'GET /discovery/v1/apis/drive/v3/rest HTTP/1.1\r\nHost: www.googleapis.com\r\ncontent-length: 0\r\nuser-agent: Python-httplib2/0.14.0 (gzip)\r\naccept-encoding: gzip, deflate\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Expires: Sun, 26 Jul 2020 15:53:39 GMT
header: Date: Sun, 26 Jul 2020 15:48:39 GMT
header: Cache-Control: public, max-age=300, must-revalidate, no-transform
header: ETag: "-2NioU2H8y8siEzrBOV_qzRI6kQ/rTlLGOr0iXp8xlYsWK1Z8ezzcns"
header: Vary: Origin
header: Vary: X-Origin
header: Content-Type: application/json; charset=UTF-8
header: Content-Encoding: gzip
header: X-Content-Type-Options: nosniff
header: X-Frame-Options: SAMEORIGIN
header: Content-Security-Policy: frame-ancestors 'self'
header: X-XSS-Protection: 1; mode=block
header: Server: GSE
header: Alt-Svc: h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
header: Transfer-Encoding: chunked
connect: (www.googleapis.com, 443)
send: b'POST /upload/drive/v3/files?fields=id&alt=json&uploadType=resumable HTTP/1.1\r\nHost: www.googleapis.com\r\naccept: application/json\r\naccept-encoding: gzip, deflate\r\nuser-agent: (gzip)\r\nx-goog-api-client: gdcl/1.10.0 gl-python/3.8.2\r\ncontent-type: application/json\r\nx-upload-content-type: txt/csv\r\nx-upload-content-length: 0\r\ncontent-length: 30\r\nauthorization: Bearer ya29.a0AfH6SMA8o2XCPviscTwLZYySmagZhsqOqQF4R3aiGqIvUnsWjyqJ34tOlmc43sBqMx8JUgBDIY5sQr7fuwvRNOryeGjZZXqdDf8Jizz9OgXFRdzq47uX_SKwfUzGQfo5ToVYUQgqCPlWs8ULskfa2XCrSKnFO9T25lOr\r\n\r\n'
send: b'{"name": "test2020-07-26.txt"}'
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Type: text/plain; charset=utf-8
header: X-GUploader-UploadID: AAANsUk2IDyqNxsQ20qnti7HA8DPinfnCsATlFsGsCO8OCypNIVbj6EGRQPaQGx8at879DFgZEB5rvLXrJpT2USdiQs
header: Location: https://www.googleapis.com/upload/drive/v3/files?fields=id&alt=json&uploadType=resumable&upload_id=AAANsUk2IDyqNxsQ20qnti7HA8DPinfnCsATlFsGsCO8OCypNIVbj6EGRQPaQGx8at879DFgZEB5rvLXrJpT2USdiQs
header: Vary: Origin
header: Vary: X-Origin
header: Cache-Control: no-cache, no-store, max-age=0, must-revalidate
header: Pragma: no-cache
header: Expires: Mon, 01 Jan 1990 00:00:00 GMT
header: Date: Sun, 26 Jul 2020 15:48:39 GMT
header: Content-Length: 0
header: Server: UploadServer
header: Alt-Svc: h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
send: b'PUT /upload/drive/v3/files?fields=id&alt=json&uploadType=resumable&upload_id=AAANsUk2IDyqNxsQ20qnti7HA8DPinfnCsATlFsGsCO8OCypNIVbj6EGRQPaQGx8at879DFgZEB5rvLXrJpT2USdiQs HTTP/1.1\r\nHost: www.googleapis.com\r\ncontent-range: bytes 0--1/0\r\ncontent-length: 0\r\nauthorization: Bearer ya29.a0AfH6SMA8o2XCPviscTwLZYySmagZhsqOqQF4R3aiGqIvUnsWjyqJ34tOlmc43sBqMx8JUgBDIY5sQr7fuwvRNOryeGjZZXqdDf8Jizz9OgXFRdzq47uX_SKwfUzGQfo5ToVYUQgqCPlWs8ULskfa2XCrSKnFO9T25lOr\r\nuser-agent: Python-httplib2/0.14.0 (gzip)\r\naccept-encoding: gzip, deflate\r\n\r\n'
sendIng a read()able
reply: 'HTTP/1.1 400 Bad Request\r\n'
header: Content-Type: text/plain; charset=utf-8
header: X-GUploader-UploadID: AAANsUk2IDyqNxsQ20qnti7HA8DPinfnCsATlFsGsCO8OCypNIVbj6EGRQPaQGx8at879DFgZEB5rvLXrJpT2USdiQs
header: Content-Length: 37
header: Date: Sun, 26 Jul 2020 15:48:39 GMT
header: Server: UploadServer
header: Alt-Svc: h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"

The thing that jumps out to me is the "must revalidate."  Is there anything else I should plug into morning3.py?
All I have in there for the purpose of uploading the file is:
import auth
and
auth.uploadfile('test{}.txt'.format(datetime.date.today()), 'test{}.txt'.format(datetime.date.today()), 'txt/csv')
and I tried it again today and morning3.py gives me the error, but running auth.py uploads

You might want to try renaming auth.py to something else. It might be interacting with the auth library's google.auth module in weird ways.
As a side note, make sure to redact sensitive information from logs before you post it to the issue tracker. I've removed the text after "Bearer" because that is an authorization token.

Unfortunately, I changed the name to sendit.py and still get the same issue.  Thanks for redacting!  I had no idea!

Hi @filifunk ,
I'm sorry that it took a while to provide a response. I created a file auth.py with the code you provided and then in another file I called auth using the code below and everything worked.  I wasn't able to re-produce the problem. I have a PR open (#1126) to improve support for error_details and I'm hoping that, once the fix is merged, you'll get better error detail  when you encounter HTTP 400 errors rather than just 'Bad Request'.  I'm going to close this issue but if you're still having trouble please re-open this issue with additional information.
import auth
import datetime
import httplib2
import logging

httplib2.debuglevel = 4
logging.basicConfig(level=logging.INFO)

auth.uploadfile('test{}.txt'.format(datetime.date.today()), 'test{}.txt'.format(datetime.date.today()), 'txt/csv')


ISPN-11535 Remove Transitive Dependencies

~for testing purposes...~
https://issues.redhat.com/browse/ISPN-11535

LGTM, are we waiting on anything or is this Ok to be merged?

I'm waiting for @tristantarrant green light :)

@tristantarrant Seems like we need your input here

LGTM

@pruivo if you rebase I would love to integrate this.

@wburns done! thanks!
Let CI run first...

Integrated into master, thanks @pruivo !


[BUG] Error Coonect-PnPOnline and Connect-SPOService with credential Parameter

PS C:\WINDOWS\system32> C:\Users\at84580\Documents\Random Scripts\Delete Folder.ps1
Connect-PnPOnline : The sign-in name or password does not match one in the
Microsoft account system.
At C:\Users\at84580\Documents\Random Scripts\Delete Folder.ps1:2 char:1

Connect-PnPOnline -Url 'https://ssecom.sharepoint.com/sites/dev-ardia ...

CategoryInfo : NotSpecified: (:) [Connect-PnPOnline], IdcrlExce
ption
FullyQualifiedErrorId : Microsoft.SharePoint.Client.IdcrlException,Share
PointPnP.PowerShell.Commands.Base.ConnectOnline

Right. That is correct. If you have MFA enabled on your tenant you will have to use a different way of authenticating. With the legacy PnP PowerShell (e.g. the 'old' version) you have to use -UseWebLogin and enter your credentials. With the new PnP PowerShell you can use -UseWebLogin, however, if possible we recommend you to use '-Interactive' which is a technically better supported option. See https://pnp.github.io/powershell/articles/authentication.html

Notice that this not a bug, but a limitation of CSOM. CSOM does not allow you to authenticate OOTB when MFA is enabled for a tenant. If you want to run your scripts attended we recommend you to register an Azure AD App and use a clientid and certificate to authenticate towards your environment (basically app-only authentication).


Remove subgop return value of new_inter_frame.

Coverage decreased (-0.002%) to 80.949% when pulling dc66ef1492ffd30c81493f578c25dd250b67c1db on tdaede:gross_2 into 47cea49ada2684410e250602b07176977d8f0cbc on xiph:master.


Delete of Serverside objects when key is regenerated

As described in the docs using Serverside() creates a new key for the data each time a callback is run. However, the old piece of data remains in the redis storage until it expires or redis fills up and starts emptying itself. The issue is that redis may start emptying data of other users whos data has not expired. You also can't tell if you genuinly do need more redis storage to accomodate a greater number of users.
The whole issue would be solved if it's possible to automatically delete the old key/value when a new key is generated.
I would be happy to PR but I can't find where this code is implemented.

Hi Matt thanks for the idea, is that still going to use a unique key for different sessions/users? Or will it literally use that key for every user

I wouldn't think about users so much as callback invocations. So for example, you could set up your application so that multiple users will access one instance of your application, so there will be multiple user requests for a session instance. In that case, you should not use the constant key and let the keys uniquely generate each time the callback is invoked, because otherwise the application will overwrite another user's data with the newest callback invocation, potentially from a different user. I don't see a way around this if multiple users will share an instance/session.
Conversely, you could somehow enforce that each user gets a separate instance (i.e. each user gets a new containerized application), and in that case you can use the constant keys because you know that only one user is invoking the callbacks for a particular session.
In my application, we have the CLI option to toggle this on or off.

I am dealing with trying to understand the implications of fixed keys as well (#314). In my application, I have been using fixed keys mostly successfully, which makes me think that each user is invoking a unique session. However, because I am using Serverside() I often experience "missing data" if I open up the website the next day, and need to refresh to get the data to load. Any thoughts on this behavior @matt-sd-watson? Is there a clever way to implement FileSystemStorage cleanup without running a separate job since my application lives inside a docker container?

So a proposed solution for different users (also more secure than local host maybe for static keys?):
Setting the storage with Serverside(data, session={lambda: session.sid}, key="data-store") on a component with id="data-store" would set a cache key of "{session.id}-data-store"
However, I would not want dash-extensions to store the key in local storage as it now has the session id:
Key                   Value
data-store	"SERVERSIDE_{"backend_uid": "RedisBackend", "key": "87sdghfoib3k083ip"}"

Should be:
Key                   Value
data-store	"SERVERSIDE_{"backend_uid": "RedisBackend"}"

Retrieving would be some kind of decorator that calls the session id function and appends it to get the key it needs to retrieve from.


[zh] fix miss Linux kernel: v5.12 in 2024-04-23-recursive-read-only-mounts.md

fix: https://github.com/kubernetes/website/issues/46220
add Linux kernel: v5.12 or later in Feature availability section

HI @my-git9 , @windsonsea, @tengqm  would you please help to review it


Integrate omitobject handling with omitthemeprops

Closes #1322
Description
Integrate omitObject handling with omitThemeProps
Is this a breaking change (Yes/No):
No

Thanks!


Change Asn1BlockExtensions::as_bytes & as_sequence to return slice

Slices are more generally useful. This can avoid some conversions.

Rebased and merged as d39975a6c682cdd8db739049adb15513e17b2a70. Thanks!


get_short_name should return a Cow most likely

What problem does this solve or what need does it fill?
bevy_utils::get_short_name returns a String. This results in unconditional allocation, even if the short name can be expressed as a slice of the full name.
What solution would you like?
Returning a Cow (similarly to how from_utf8_lossy works) would reduce allocation.
What alternative(s) have you considered?
Sometimes, get_short_name is used for debug/display purposes. We could also provide a wrapper type that specifically implements Display for &str with the get_short_name heuristic to remove all type prefixes.
Additional context
I saw a "hand made" version of get_short_name in a fmt::Debug impl in asset_v2

get_short_name was moved to https://github.com/bevyengine/disqualified. Is this still relevant?

The issue should be moved


add a new theme "flex-block"

[x] Read the theme publishing doc or plugin publishing doc.

Sorry, I forgot to check the size of my image, it has been modified.

Thank you for your contribution :)


get full article

some rss feed not have full content
is it possible to add a feature to get full article?
some project like Handy News Reader has this feature

Hi! Does download-full-page help?

i add this to my config
download-full-page yes

i refresh feed but my article not change

Hi! Does download-full-page help?

add that to my config file and refresh specific feed but noting change

Ah, sorry, the option is only applied when the feed is actually downloaded. Newsboat tries to cache stuff as much as possible, so it may take a while. To work around that, temporarily add always-download to your config. You can remove it after checking if download-full-page did anything.

Ah, sorry, the option is only applied when the feed is actually downloaded. Newsboat tries to cache stuff as much as possible, so it may take a while. To work around that, temporarily add always-download to your config. You can remove it after checking if download-full-page did anything.

i add this line to my config but noting change
download-full-page yes
always-download "https://url.com/feed"

@Monirzadeh Are you sure the content of the RSS item is just a link, without any text around it? Can you give me a URL of the feed on which you're observing this?
I took a peek at Handy News Reader. They have a button each article that says "Load full text", and also have a similar checkbox when I'm adding a feed. Button press invokes EntryFragment::LoadFullText(), which in turn calls FetcherService::mobilizeEntry that does all the heavy lifting. I didn't understand all the details, but it seems like it takes the item's contents, extracts the first link, fetches that, then applies readability-like cleanups (removing sidebars, headers, footers, comments etc.), and presents the result.
It's feasible to implement in Newsboat, but I won't work on it myself right now. Happy to help someone who is interested in implementing this!

@Monirzadeh Are you sure the content of the RSS item is just a link, without any text around it? Can you give me a URL of the feed on which you're observing this?

it has some text not just link

Button press invokes EntryFragment::LoadFullText(), which in turn calls FetcherService::mobilizeEntry that does all the heavy lifting. I didn't understand all the details, but it seems like it takes the item's contents, extracts the first link, fetches that, then applies readability-like cleanups (removing sidebars, headers, footers, comments etc.), and presents the result.

yes i talk about something like this


Passing samples instead of filepath to get embeddings

I already have the audio file loaded and I want to avoid an extra file I/O by using this API:
emb1 = model({'audio': '/path/to/file1.wav'})

Is there a way to pass the samples and sampling rate to get the embedding?

Hello,
For the record, if you have a waveform loaded as a numpy array, I believe pyannote let's you bypass the file loading with the 'waveform' key:
emb1 = model({'waveform': wave})

Notice that for this to work, the waveform has to have shape (seq_len, 1).


Multiple instance error

In orde to include an autocomplete input for places, I am preloading the Maps api with Helmet:
script={[
{'type':'text/javascript', 'src':'https://maps.google.com/maps/api/js?libraries=places&sensor=false&key=my_key'}
]}

However, I also need to include a map, which I'm initializing with the component:
<GoogleMap
  bootstrapURLKeys={{ key: config.mapsApiKey }}
  center={this.props.center}
  defaultZoom={this.props.zoom}
  options={this.getMapOptions}>
  <Marker type="user" lat={this.props.center[0]} lng={this.props.center[1]} />
  {this.props.markers}
</GoogleMap>

I read that google-map-react should check for a preloaded instance and just use that, but I'm getting the below error:
You have included the Google Maps API multiple times on this page. This may cause unexpected errors.
Removing the GoogleMap component allows address autocompletion to work properly.
Thoughts? :-)

Semi-solution is to set the libraries key in bootstrapURLKeys:
bootstrapURLKeys={{ key: config.mapsApiKey, libraries: "places" }}

This works if you want the map on the same screen, so solves my issue for now, but the preloading issue would remain in other scenarios.


Update external documentation to point to renamed package

It seems that this package is a newer/renamed version of ng2-translate.
I would suggest ensuring that the old ng2-translate npm page  https://www.npmjs.com/package/ng2-translate be updated to let people know that the newest version has a different name and pointing them in the right direction.
Also would be a good idea to ensure that the ionic 2 docs (https://ionicframework.com/docs/v2/resources/ng2-translate/) get updated as well

The url for the old package redirects here. The old package doesn't support the new versions of Angular, I'm confident that they will find this one whenever they need to update.


Exclude tests from DI

Coverage remained the same at 75.49% when pulling b8f38ca860b3efff9d907d499a6fb919cb1e67a8 on init into 41b194fb436fd76f8c8614073d11badb2c6aa5cd on master.


Glucose Direct

Add CGM app Glucose Direct (https://github.com/creepymonster/GlucoseDirectApp.git) to CGM list. Is uses same default app group as xdripswift and FreeAPS X, so no further settings are required.

I think we need to add some more info for GB sources, with links etc


Refactor To Match Rust Standards

All the direct extern bindings should be moved to a libnx-rs-sys crate, and libnx-rs should only contain a Rusty API wrapping that crate.

For formatting it properly, try:
cargo fix --edition
cargo fix --edition-idioms
cargo fmt

I've had some trouble with cargo fix when cross-compiling, but cargo fmt should work fine.


UNMET PEER DEPENDENCY<EMAIL_ADDRESS>

UNMET PEER DEPENDENCY<EMAIL_ADDRESS>npm WARN EPEERINVALID<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

hey, Peer Dependencies means that this generator expects yo to be installed but it won't install itself to avoid duplication.
Just npm install -g yo


Lidar-agnostic scan message type

Hi, I see you're building a universal lidar driver. As such, I think it would benefit from a unified intermediate representation similar to what LaserScan is for 2D lidars. Such representation carries more information than a point cloud (e.g. missed rays, ray directions...) while being more compact. And there is a straight way how to convert it to PointCloud2.
A few years ago I tried to kick it off, but it didn't work out. Would you like to try to revive it again?
The work I've done is described here: https://github.com/ros/common_msgs/issues/150
One of the reasons why it hasn't been considered for merging into common_msgs is that there was no implementation in the wild using the proposed messages. So it would even help if you just created some similar messages in your repo...

@peci1
Hi, thanks for bringing this to us. The idea looks interesting, and it would also help us get traction with this project.
From my side, I am worried about using intermediate representations since currently we prioritize reducing latency the most, and (our) downstream tasks all use PointCloud2.
The bulk of nebula architecture discussions happens in our work group meetings, so if you are interested, it would be nice if you could bring this topic to the next's meeting. For example this is the link to the last meeting:
https://github.com/orgs/autowarefoundation/discussions/4116

Thanks for your answer. If you're after latency, then the intermediate representation could really be against your goals and there's not much to do about it.
I see at least 2 potential advantages it could have even for Autoware:

Representing even the missed rays, it can be used for better clearing of occupancy maps. There might be nonstandard ways to represent this even in PointCloud2, though (like publishing a point with NaN XYZ and adding viewpoint, direction and time offset fields).
Datasets and logs with less preprocessed data. PointCloud2 is usually the result of quite some processing logic that might have parameters or choices. The intermediate representation could remove this additional processing and allow storing almost raw data, while being a standardized, vendor-agnostic format.

I still wonder why 2D lidars settled on LaserScan messages so easily, while 3D lidars have never even tried having something similar. I think the 2D case clearly shows that sometimes it is worth sacrificing a bit of performance to gain a standardized approach. I've never worked with any binary data stream from a 2D lidar, all of them directly offer LaserScan messages and nobody even thinks of providing a ROS driver that would directly output PointCloud2 or some other format...
I don't think I'll attend the meeting as I'm quite busy these days. However, I'd be glad if you could spend a word or two about this on the meeting, leaving it to the individual attendees whether they're interested in continuing this discussion. If there'd be some people really interested in moving in this direction, I'd be glad to connect with them.


[Add] Listening Perception Survey

Survey Title
Survey Purpose
Reflects the behaviors of the actual listener
Survey Source
Lipetz, Liora, Avraham N. Kluger, and Graham D. Bodie. "Listening is listening is listening: Employees’ perception of listening as a holistic phenomenon." International Journal of Listening 34.2 (2020): 71-96.

Interpersonal listening research is marked by a wealth of conceptual definitions and
measurement instruments, with a consensus about neither.  Therefore, we sought to discover  how laypeople, rather than theoreticians, construe listening, and to construct a scale that
reflects these perceptions.

Used in
Itzchakov, Guy, Netta Weinstein, Nicole Legate, and Moty Amar. 2020. “Can High Quality Listening Predict Lower Speakers’ Prejudiced Attitudes?” Journal of Experimental Social Psychology 91 (November): 104022.

All measures were anchored on a 7-point Likert type scale (1 = ‘not  at all’; 4 = ‘moderately’; 7 = ‘very much’) as described in the pilot study  materials (see supplementary materials).
Listening perception  (manipulation check).  Speakers'  listening  perception  was  assessed  on  the  10-item  Layperson-Based  Listening  Scale (α = 0.98; Lipetz et al., 2018). An example item is: “To which  extent did you feel that your conversation partner showed interest in  what you had to say?”

Survey Overview
Tasks

[ ] Create a new folder in surveys/src/surveys w/ descriptive, easy-to-read name superSpecialSurvey/
[ ] Create SurveyJS .json file (e.g. superSpecialSurvey/superSpecialSurvey.json)
[ ] Create a .bib file citing your references for the survey (always: references.bib)
[ ] Create a storybook markdown file to document (e.g. superSpecialSurvey.stories.mdx)

[ ] Survey purpose
[ ] Expected behavior
[ ] Design rationale
[ ] APA-style bibliography

[ ] Create file with function to aggregate survey data (e.g. superSpecialSurvey.score.js)
[ ] Create PR and link to this issue

"My partner was a good listener during our conversation" (Huang, Karen, Michael Yeomans, Alison Wood Brooks, Julia Minson, and Francesca Gino. 2017. “It Doesn’t Hurt to Ask: Question-Asking Increases Liking.” Journal of Personality and Social Psychology 113 (3): 430–52.)

whether people felt listened to by their partner (an additive index was formed of four items that asked the extent to which participants agreed they felt “listened to,” “heard,” “understood,” and “seen”) (Santoro, Erik, and David E. Broockman. 2022. “The Promise and Pitfalls of Cross-Partisan Conversations for Reducing Affective Polarization: Evidence from Randomized Experiments.” Science Advances 8 (25): eabn5515.)

“When  listens to me, most of the time, s/he...”1. Tries hard to understand what I am saying2. Asks questions that show his/her understanding of my opinions3. Encourages me to clarify a problem4. Expresses interest in my stories5. Listens to me attentively6. Pays close attention to what I say7. Gives me time and space to talk8. Gives me his/her undivided attention9. Creates a positive atmosphere for me to talk10. Allows me to express myself fully(Kluger, Avraham N., and Osnat Bouskila-Yam. 2017. “Facilitating Listening Scale (FLS).” In The Sourcebook of Listening Research, 272–80. Hoboken, NJ, USA: John Wiley & Sons, Inc.) (Lipetz, Liora, Avraham N. Kluger, and Graham D. Bodie. 2020. “Listening Is Listening Is Listening: Employees’ Perception of Listening as a Holistic Phenomenon.” International Journal of Listening 34 (2): 71–96.)

Full listening behaviors scale: https://github.com/Watts-Lab/surveys/blob/main/surveys/constructiveListeningBehaviors/README.md | "participants answered one question about their impressions of the listener’s listening ability, “Do you think this person is an attentive listener?” (1=Strongly disagree; 5=Strongly agree)" (Ren, Zhiying, and Rebecca Schaumberg. 2023. “Disagreement Is a Short-Hand for Poor Listening: Why Speakers Evaluate Others’ Listening Quality Based on Whether Others Agree with Them.” https://doi.org/10.2139/ssrn.4394203.)

"Do you feel your counterpart(s) listened to your concerns?" (1 Not at all, 4 Moderately, and 7 Perfectly; includes an option NA) (Curhan, Jared R., Hillary Anger Elfenbein, and Heng Xu. 2006. “What Do People Value When They Negotiate? Mapping the Domain of Subjective Value in Negotiation.” Journal of Personality and Social Psychology 91 (3): 493–512.)


Not swiping when archive action is set

Checklist

[X] I have used the search function to see if someone else has already submitted the same bug report.
[X] I will describe the problem with as much detail as possible.

App version
6.708-SNAPSHOT
Where did you get the app from?
Other
Android version
10
Device model
Samsung A6
Steps to reproduce

go to Settings
click on General settings
click on Interaction
click on swipe actions
click on right swipe
select Archive
go to the message list
Swipe to the right of one of the items

Expected behavior
swipe, and after the swipe is completed, show a Toast to the user that the archive folder is not selected
Actual behavior
We see that the swipe does not happen, because we have not created an archive folder.
Logs
No response

I think it's OK to not swipe when the Archive folder has not been set. But It's better to show a warning to the user when he/she wants to set Archive for swipe action while didn't set archive folder.

We talked a bit about this internally and don't think that showing a toast/snackbar is the way to go. Ideally, the app should try to prevent this situation from happening. Failing that, it should help the user to resolve the problem.
There's a couple of cases we need to consider:

The user chooses "archive" for a swipe action but not all of the accounts have an archive folder configured or support the archive action.
The user chooses "archive" for a swipe action but none of the accounts have an archive folder configured.
The user chooses "archive" for a swipe action but none of the accounts support the archive action (POP3).
The user chooses "archive" for a swipe action and all accounts have an archive folder configured. (There's nothing we need to do in this case.)

Some ideas on how to address these cases (This is not an official plan; Don't implement yet!)

When the user configures the swipe actions, we could show a dialog to let the user know that the archive action is not available in all accounts. This would only be informational and not block the user from configuring the archive swipe action.
The first time the swipe action is used in an account that doesn't have an archive folder configured, display a dialog to inform the user that no archive folder is configured. Allow them to select an archive folder in the same dialog. This dialog should only be displayed once per account. Or at least have a checkbox to not show the dialog again in the future. (Having only some accounts with an archive folder configured is a valid choice. We shouldn't annoy the user by displaying a dialog whenever they accidentally use the archive swipe action in an account where it is not available). This dialog could also allow the user to change the swipe action instead.
This could be handled like case 1. The message should probably be slightly different ("not all of your accounts" vs "none of your accounts").
The app could hide the archive action in the "swipe actions" screen. But it's possible to move from case 1 to this case by removing the last archive-capable account. Also, this can happen when importing settings. To avoid having to change all these places, we should simply show a warning in the "swipe actions" screen when the archive swipe action is selected. Additionally, we could prevent the user from selecting the archive action until an archive-capable account is added.

Since there's always the chance that not all accounts can use the archive action, we also need to think about how to handle the actual swipe gesture. Currently the app behaves like no swipe action was configured, i.e. the message list item can't be moved to the side. Instead, we could allow moving the message list item a little bit to the side and reveal a grey/disabled color underneath to signal the action is not available.

In terms of user experience, a few things would make sense:

allow swipe to happen, even if feature is unavailable

list item a little bit to the side and reveal a grey/disabled color

that's a great solution, which preserves the consistency of the experience, while communicating the feature is unavailable. Could be a greyed out color, a crossed out archive icon, and text that says "No archive folder for that account" (or something more concise)

offer trying to create an archive folder:

For IMAP/exchange accounts, Thunderbird should offer to create or set needed folders as part of the adding account workflow. Correct folders would be set for non standard mailboxes, and mailboxes that do not come with an archive folder by default could have it created there. (maybe for pop3 it should create a local folder ?)

signpost users to the right settings to fix the situation from the swipe action menu

If archive selected, a concise warning banner could appear at the top of the settings page: "One or more account has no archive folder selected. Go to manage your accounts to fix this"

Don't conditionally hide the option

In my opinion, thunderbird is having a swipe that is greyed out and has no effect, with good explanations and signposting, than conditionally hiding or disabling the feature entirely.


mta - version:bump to v1.32.2

Backstage release v1.32.2 has been published, this Pull Request contains the changes to upgrade mta to this new release
Please review the changelog before approving, there may be manual changes needed:

Changelog: v1.32.2
Upgrade Helper: From 1.30.0 to 1.32.2

Created by Version Bump<PHONE_NUMBER>2

Hey, can you review this @ibolton336 ?

Hi @nickboldt and @ibolton336, as you may not be able to make changes to this PR I logged an issue about this and left some comments on it baed on what I saw: https://github.com/backstage/community-plugins/issues/1676.
Any issues with me closing this PR? As you'll need a branch that you can commit to and you most likely won't be able to with this one.

Sounds good 👍

OK, closed. By the way since moving to a new backstage version is a significant change, you might prefer to use a minor bump in your changeset, so that if there are security patches needed against your Backstage 1.30-based plugin, you have "version space" to make changes there.

Thanks @nickboldt


[Bug Report] Popover is not positioned correctly if visible on load

Element UI version
2.13.0
OS/Browsers version
Chrome
Vue version
2.6.10
Reproduction Link
https://jsfiddle.net/4zmef6bh/
Steps to reproduce
Create a popover that is visible by default (by setting trigger="manual" and :value="true")
What is Expected?
The popover should be correctly positioned next to the reference

What is actually happening?
When the popover loads it is over the reference making it unreadable, instead of being positioned on the right

 this.$nextTick(()=>{         this.visible = true     })
it works


[VL] RAS: Add EnumeratedApplier to manage columnar rule applications when ras is enabled

Add API ColumnarRuleApplier
Move heuristic rule application code into implementation HeuristicApplier
Move enumerated rule application code into implementation EnumeratedApplier
Move adaptive context code to independent class AdaptiveContext (original PR: https://github.com/apache/incubator-gluten/pull/3294)

After this, most of the further development work on Gluten ras integration will take place inside a single source folder gluten-core/src/main/scala/org/apache/gluten/extension/columnar/heuristic.

Thanks for reviewing @PHILO-HE . I'll add some comments to newly added components in further PR.


feat(v2): add notifications for commands

Motivation
I found this really cool library for dealing with notifications, so I thought why not implement it here. I've implemented notifications for start, swizzle, build, and deploy so far.
Have you read the Contributing Guidelines on pull requests?
yes
Test Plan
Start:

Swizzle:

Build:

Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/docusaurus, and link to your PR here.)

I find notification a bit annoying. May be adding  config to enable it might be good.

@taylorallen0913 tell me if you are interested to update the PR, and making this feature optional.

I would be willing to continue this feature, but I am not sure what config you are intending to hold this in. Where would you suggest putting the setting?

I would be willing to continue this feature, but I am not sure what config you are intending to hold this in. Where would you suggest putting the setting?

I think adding a flag to each command is a good place.
eg: yarn build --notify

I'd rather have a notification: true/false (false by default) in site config than a new cli option. People can use env variables if they want it to be dynamic anyway.

Hi @taylorallen0913 , I'm closing for now but if you want to do the changes I'll re-open


NaN in the new group title

If there is no numbered groups, only renamed, a new group gets title "Group NaN"

Thank You!


False positive in fluent-chaining rule when chaining with first call on second line

The fluent-chaining rule was complaining about this saying "Member expression should not span more than 2 lines" for the _.chain line. This should be allowed.
obj.foo = _.chain(obj.something)
   .map(function(something) {
      return computeSomething(something);
   })
   .filter(_.identity)
   .value();

Fascinating ... I took the real code where we had this false positive, stripped it down to remove anything that was proprietary, and didn't even think the comment would've caused it, so removed the comment.
I think we should allow comments mid-expression, but that makes this much lower priority. I can put the comment at the end of the line (in this example after the .filter call).

This was actually accidentally opened on the wrong project. Now moved to https://github.com/silvermine/eslint-plugin-silvermine/issues/2


[#552] Improve the base navigation with a "MainNavGraph"

Closes https://github.com/nimblehq/android-templates/issues/552
What happened 👀

Define a "MainNavGraph" (and also "OnboardingNavGraph" later) nested graph between AppNavGraph (AppNavigation) and the app screens as default to improve the app navigation logic.

Insight 📝
The final app navigation structure will look like this:
AppNavGraph
├── OnboardingNavGraph
│   └── LoginScreen
└── MainNavGraph
    └── HomeScreen

Proof Of Work 📹
The app works properly ✅

What if some screens can be accessed from any screen, such as pin login, or some screen is reused by another flow? Shall we have a sample for that case here too?

@lydiasama for that case, we can separate these screens into a new nav graph to be navigated from any previous nav graph easily. However, the sample is a bit out of this PR's scope. I recommend doing it in a separate task if we really need to have that sample.


For each question, write a Karma integration test to ensure that all the tasks can be passed.

In order to make sure that at least the demo questions are playable end-to-end, as well as guard against possible errors on the part of the question author, it might be nice to write a Karma test (for each question) that mimics a complete answer/feedback flow, all the way to the completion of all the tasks in the question. This would ensure that each question is completable, and help guard against errors arising during content development.
It might also be helpful to have one e2e Protractor test that mimics an end-to-end playthrough of a single question and checks that the right things get displayed in the right places.

Note: This might be as straightforward as specifying a "correct answer" in each question schema, which would pass all the tests.


Increment version for dataprotection releases

Increment package version after release of Azure.ResourceManager.DataProtectionBackup

/check-enforcer evaluate

/check-enforcer override

/check-enforcer override

@benbp:  Looks like there's a check-enforcer leg stuck here.   Not sure if it's related to the recent change.   Can you help to force-merge this?


Icons for face loop selection are inversed

As it stands, from the testing I've done on the 3.4 branch, the Loop with an icon for a horizontal one seems to select faces vertically and the opposite goes for the horizontal one.
I'd also recommend naming the buttons accordingly to their function and icon, ie "horizontal loop" and "vertical loop"

They aren't actually inverted, they are somewhat arbitrary. I think long term I want to implement alt+click for loop selection though.

Gotcha, in that case let's wait for that :)


Backing up Kafka messages timestamp

Hi,
As you are probably aware, Kafka 0.10 message format includes a timestamp field. I wonder if you are thinking about providing some mechanism to back up this field as well. At the moment, only Offset, Key and Payload fields are saved.
I have made some changes for MessagePackSequenceFileReader and Writer in my fork to support this so, I could open a PR if this is something you want to have as part of Secor.
Thanks 😃

In https://github.com/pinterest/secor/commit/cff776388fc497d4193d910feb182eeffeab74ab, tygrash added the capability of using the timestamp field from kafka 10 message.
How do you use the the timestamp in your fork?

Thanks for replying so quickly. Maybe I'm missing something. What I want to do is backup messages from one environment including the timestamp and restoring them in other environment using a Kafka Client 0.10 that allows to specify the timestamp of a given message.
The tool I have to restore messages is using a reader created with MessagePackSequenceFileReaderWriterFactory to read the files produced by Secor. The reader allows us to iterate over a collection of KeyValue which contain the fields: offset, key, value. I have noticed that, at least in the MessagePackSequenceWriter, the offset is encoded as part of the key. I have just leveraged the fact that ParsedMessage contains already the timestamp field, added a timestamp field to KeyValue and changed how the message is encoded and decoded using MessagePack to consider the new timestamp field as well.
        @Override
        public void write(KeyValue keyValue) throws IOException {
            byte[] kafkaKey = keyValue.getKafkaKey();
            // output size estimate
            // 1 - map header
            // 1 - message pack key
            // 9 - max kafka offset
            // 1 - message pack key
            // 9 - kafka timestamp
            // 1 - message pack key
            // 5 - max (sane) kafka key size
            // N - size of kafka key
            // = 26 + N
            ByteArrayOutputStream out = new ByteArrayOutputStream(26 + kafkaKey.length);
            MessagePacker packer = MessagePack.newDefaultPacker(out)
                    .packMapHeader((kafkaKey.length == 0) ? 2 : 3)
                    .packInt(KAFKA_MESSAGE_OFFSET)
                    .packLong(keyValue.getOffset())
                    .packInt(KAFKA_MESSAGE_TIMESTAMP)
                    .packLong(keyValue.getTimestamp());
            if (kafkaKey.length != 0) {
                packer.packInt(KAFKA_HASH_KEY)
                        .packBinaryHeader(kafkaKey.length)
                        .writePayload(kafkaKey);
            }
            packer.close();
            byte[] outBytes = out.toByteArray();
            this.mKey.set(outBytes, 0, outBytes.length);
            this.mValue.set(keyValue.getValue(), 0, keyValue.getValue().length);
            this.mWriter.append(this.mKey, this.mValue);
        }

When I saw tygrash's changes I couldn't find where the timestamp was being encoded and stored with the message. I thought that was just a way to group messages in S3 by timestamp.
Thanks

We didn't use MessagePack here, so my knowledge might be limited.
tygraph's change is basically using the timestamp in k10's meta fields if
it is present, (previously most people are specifying a timestamp field
inside the message).  It is for time-bucket the sequence file, that's
actually how most people using secor for.
If you want to add timstamp field inside KeyValue class, I am fine with
that, but make sure you take care of the case that timestamp field is
optional in k10.  And if you want, you can also try to handle the cases
where timestamp is specified inside the message body (you can look at
TimestampedMessageParser).
On Thu, Jun 8, 2017 at 11:27 AM, Nacho Muñoz Gómez<EMAIL_ADDRESS>
wrote:

Thanks for replying so quickly. Maybe I'm missing something. What I want
to do is backup messages from one environment including the timestamp and
restoring them in other environment using a Kafka Client 0.10 that allows
to specify the timestamp of a given message.
The tool I have to restore messages is using a reader created with
MessagePackSequenceFileReaderWriterFactory to read the files produced by
Secor. The reader allows us to iterate over a collection of KeyValue
which contain the fields: offset, key, value. I have noticed that, at least
in the MessagePackSequenceWriter, the offset is encoded as part of the key.
I have just leveraged the fact that ParsedMessage contains already the
timestamp field, added a timestamp field to KeyValue and changed how the
message is encoded and decoded using MessagePack to consider the new
timestamp field as well.
    @Override
    public void write(KeyValue keyValue) throws IOException {
        byte[] kafkaKey = keyValue.getKafkaKey();
        // output size estimate
        // 1 - map header
        // 1 - message pack key
        // 9 - max kafka offset
        // 1 - message pack key
        // 9 - kafka timestamp
        // 1 - message pack key
        // 5 - max (sane) kafka key size
        // N - size of kafka key
        // = 26 + N
        ByteArrayOutputStream out = new ByteArrayOutputStream(26 + kafkaKey.length);
        MessagePacker packer = MessagePack.newDefaultPacker(out)
                .packMapHeader((kafkaKey.length == 0) ? 2 : 3)
                .packInt(KAFKA_MESSAGE_OFFSET)
                .packLong(keyValue.getOffset())
                .packInt(KAFKA_MESSAGE_TIMESTAMP)
                .packLong(keyValue.getTimestamp());
        if (kafkaKey.length != 0) {
            packer.packInt(KAFKA_HASH_KEY)
                    .packBinaryHeader(kafkaKey.length)
                    .writePayload(kafkaKey);
        }
        packer.close();
        byte[] outBytes = out.toByteArray();
        this.mKey.set(outBytes, 0, outBytes.length);
        this.mValue.set(keyValue.getValue(), 0, keyValue.getValue().length);
        this.mWriter.append(this.mKey, this.mValue);
    }

When I saw tygrash's changes I couldn't find where the timestamp was being
encoded and stored with the message. I thought that was just a way to group
messages in S3 by timestamp.
Thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/342#issuecomment-307188025,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHCX_9vNjR179LKgFz52zN2asUN0fHXsks5sCD0ngaJpZM4Nz2hm
.


Fix problem with nodes add

Removed args.id for nodes action, because when doing "nodes add X", args.id got X while peerlist got no value.

Looks like this fixes the programming error but the help text would be wrong still. None would know that they should specify a node id for info cmd.

Changed to add argument groups instead.
(test-calvin) calvin-base(nodes-add)$ cscontrol http://localhost:5002 nodes -h
usage: cscontrol  nodes [-h]
 []
[ [ ...]]
positional arguments:
   one of info, list, add, stop
optional arguments:
-h, --help  show this help message and exit
info:
   id of node to get info about
list, add, stop:
  list of peers of the form calvinip://:
(test-calvin) calvin-base(nodes-add)$ cscontrol http://localhost:5002 nodes info
Error No node id given

merged

Merged. Closing.


Roomba No running

Current Behavior
I proceed to the installation following your instructions but when I add the bridge and the api on my iPhone nothing happened... On my phone, a new roomba switch is available but "This accessory does not answer".
It is my first plugin installation, so I hope I don't forget anything.

Steps to Reproduce (for bugs)

Versions

Homebridge : 1.1.6
Node : v14.15.1
Plugin : v1.1.0

Configuration
{
"bridge": {
"name": "Homebridge",
"username": "0E:D5:56:82:2B:8D",
"port": 51744,
"pin": "364-61-848"
},
"accessories": [
{
"accessory": "Roomba2",
"name": "Conchita",
"model": "980",
"blid": "XXXXXXXXX",
"robotpwd": "XXXXX",
"ipaddress": "192.168.1.XX",
"autoRefreshEnabled": true,
"keepAliveEnabled": true,
"dockContactSensor": true,
"runningContactSensor": true,
"binContactSensor": true,
"cacheTTL": 30
}
],
"platforms": [
{
"name": "Config",
"port": 8581,
"auth": "form",
"theme": "auto",
"tempUnits": "c",
"lang": "auto",
"platform": "config"
}
]
}
Homebridge Log / Command Output
[12/4/2020, 7:15:58 PM] [Conchita] Running status requested
[12/4/2020, 7:15:58 PM] [Conchita] Bin status requested
[12/4/2020, 7:16:02 PM] [Conchita] Running status requested
[12/4/2020, 7:16:02 PM] [Conchita] Battery level requested
[12/4/2020, 7:16:02 PM] [Conchita] Charging status requested
[12/4/2020, 7:16:02 PM] [Conchita] Battery status requested
[12/4/2020, 7:16:02 PM] [Conchita] Docked status requested
[12/4/2020, 7:16:02 PM] [Conchita] Running status requested
[12/4/2020, 7:16:02 PM] [Conchita] Bin status requested

How did you get your blid and robot info? And did you use sudo to run the command?

I did exactly the instructions: cd /usr/local/lib/node_modules/homebridge-roomba2
sudo npm run getrobotpwd 192.168.x.xxx (with the Roomba IP). I press on the Home button until the Roomba rings. The informations are printed with the blid and others more (ip, MAC, proto, etc).

I did exactly the instructions: cd /usr/local/lib/node_modules/homebridge-roomba2
sudo npm run getrobotpwd 192.168.x.xxx (with the Roomba IP). I press on the Home button until the Roomba rings. The informations are printed with the blid and others more (ip, MAC, proto, etc).

Try to install the other plugin as I suspect the script portion that fetches the pwd is exactly the same.  This would rule out the roomba2 plugin.  I originally setup my Roomba with this one. homebridge-roomba-stv v1.6.0 (2020-05-13). I didn't have to change anything with respect to the unit IP or password, etc... as that is not customized by the plugin.  You can at least prove basic install and functionality with the other - then go to roomba2 for future use.

I did exactly the instructions: cd /usr/local/lib/node_modules/homebridge-roomba2
sudo npm run getrobotpwd 192.168.x.xxx (with the Roomba IP). I press on the Home button until the Roomba rings. The informations are printed with the blid and others more (ip, MAC, proto, etc).

Try to install the other plugin as I suspect the script portion that fetches the pwd is exactly the same. This would rule out the roomba2 plugin. I originally setup my Roomba with this one. homebridge-roomba-stv v1.6.0 (2020-05-13). I didn't have to change anything with respect to the unit IP or password, etc... as that is not customized by the plugin. You can at least prove basic install and functionality with the other - then go to roomba2 for future use.

Thanks for your answer. I try to install this plugin but same behavior. I reset homebridge and update my Home application on my iPhone. The Roomba button is here but no response :(

I don’t think the binding process is successfully completed.  If it failed on both - it’s not the plugin, it’s the binding process.  Is the Roomba assigned a static ip?  Maybe reboot your machine that is performing the binding process?

On Dec 8, 2020, at 11:21 AM, alexgow95<EMAIL_ADDRESS>wrote:
I did exactly the instructions: cd /usr/local/lib/node_modules/homebridge-roomba2
sudo npm run getrobotpwd 192.168.x.xxx (with the Roomba IP). I press on the Home button until the Roomba rings. The informations are printed with the blid and others more (ip, MAC, proto, etc).
Try to install the other plugin as I suspect the script portion that fetches the pwd is exactly the same. This would rule out the roomba2 plugin. I originally setup my Roomba with this one. homebridge-roomba-stv v1.6.0 (2020-05-13). I didn't have to change anything with respect to the unit IP or password, etc... as that is not customized by the plugin. You can at least prove basic install and functionality with the other - then go to roomba2 for future use.
Thanks for your answer. I try to install this plugin but same behavior. I reset homebridge and update my Home application on my iPhone. The Roomba button is here but no response :(
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/iRayanKhan/homebridge-roomba2/issues/17#issuecomment-740777618, or unsubscribe https://github.com/notifications/unsubscribe-auth/APK2HVVMFTFTGSTCL6H6APLSTZOAFANCNFSM4UNZHMTQ.

I don’t think the binding process is successfully completed. If it failed on both - it’s not the plugin, it’s the binding process. Is the Roomba assigned a static ip? Maybe reboot your machine that is performing the binding process?
…

I reboot my Mac several times since the first try of installations. So I don't think it is the problem.
I reinitialize my robot and I can set a static IP address. Is it mandatory to configure plugins in homebridge? What IP address can I put? Thank you very much for your help

I honestly set all my automation appliances to static IPs just to eliminate “weirdness” from happening.  If I can plug it in - I do.  If its’ wireless, ok, but all my low bandwidth appliances are on the same network - usually a 2.5G network. Anything on the default ring should be fine as I’m guessing your not slinging over 200 IPs.  Given your problems, I’d suggest changing the ip to the next available one and try to start fresh.  And make sure you are in usr - nor “user”.  Maybe getting there from the finder will help - then once you’re there, run the terminal from that location.

On Dec 8, 2020, at 11:36 AM, alexgow95<EMAIL_ADDRESS>wrote:
I don’t think the binding process is successfully completed. If it failed on both - it’s not the plugin, it’s the binding process. Is the Roomba assigned a static ip? Maybe reboot your machine that is performing the binding process?
… x-msg://29/#
I reboot my Mac several times since the first try of installations. So I don't think it is the problem.
I reinitialize my robot and I can set a static IP address. Is it mandatory to configure plugins in homebridge? What IP address can I put? Thank you very much for your help
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/iRayanKhan/homebridge-roomba2/issues/17#issuecomment-740787262, or unsubscribe https://github.com/notifications/unsubscribe-auth/APK2HVX6YBGDCL2T6QLZQYTSTZPZNANCNFSM4UNZHMTQ.

Ok I will set a static IP but I never do that. Could you send me an example of your configuration plz?
Thank you in advance.

{
"name": "Rosie",
"model": "s9",
"blid": "XXXX",
"robotpwd": ":X:XXXX",
"ipaddress": "<IP_ADDRESS>",
"dockContactSensor": true,
"binContactSensor": true,
"cacheTTL": 30,
"accessory": "Roomba2"
},

On Dec 8, 2020, at 4:25 PM, alexgow95<EMAIL_ADDRESS>wrote:
Ok I will set a static IP but I never do that. Could you send me an example of your configuration plz?
Thank you in advance.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/iRayanKhan/homebridge-roomba2/issues/17#issuecomment-741134101, or unsubscribe https://github.com/notifications/unsubscribe-auth/APK2HVS54QVGBHASZC76OB3ST2RURANCNFSM4UNZHMTQ.

@alexgow95 what kind of router do you have?

{ "name": "Rosie", "model": "s9", "blid": "XXXX", "robotpwd": ":X:XXXX", "ipaddress": "<IP_ADDRESS>", "dockContactSensor": true, "binContactSensor": true, "cacheTTL": 30, "accessory": "Roomba2" },
…

I mean your Roomba configuration on the iRobot's Apps (IP address, MAC, DNS). IDK how I  need to set this.

@alexgow95 what kind of router do you have?

My router is my internet box (Orange).

Hi,
I just installed the roomba2 plugin and I run into the exact same issue as @alexgow95 : in the Home apps, the Roomba-related items show "No Response". I have two dozens of accessories and platforms which are working perfect. I entered the blid and Robot password correctly (checked twice at least), fixed IP for the robot (<IP_ADDRESS>).
No other error are displayed in Homebridge.
My Roomba data as reported by getrobotpwd are:

<EMAIL_ADDRESS>getrobotpwd /usr/local/lib/node_modules/homebridge-roomba2
cd node_modules/dorita980 && npm install && node ./bin/getpassword.js "<IP_ADDRESS>"

npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^3.0.0 but none is installed. You must install peer dependencies yourself.
audited 355 packages in 2.463s
4 packages are looking for funding
run npm fund for details
found 3 vulnerabilities (2 low, 1 critical)
run npm audit fix to fix them, or npm audit for details
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Then press any key here...
Robot Data:
{
ver: '3',
hostname: 'Roomba-3144411C02335680',
robotname: 'Corniche',
ip: '<IP_ADDRESS>',
mac: 'F0:03:8C:EB:84:5A',
sw: 'v2.4.8-44',
sku: 'R966040',
nc: 0,
proto: 'mqtt',
cap: {
pose: 1,
ota: 2,
multiPass: 2,
pp: 1,
binFullDetect: 1,
langOta: 1,
maps: 1,
edge: 1,
eco: 1,
svcConf: 1
},
blid: '3144411C02335680'
}

More information: after having restarted another time HomeBridge, opening the Home app, the Roomba items do not show the "Not Responding" status (and the "Battery status does not appear). However, if I open the home app a second time, I get in the HomeBridge logs:
[20/12/2020 10:24:11] Error: This callback function has already been called by someone else; it can only be called one time.
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/util/once.ts:6:13
at /usr/local/lib/node_modules/homebridge-roomba2/index.js:225:17
at roombaAccessory.getStatus (/usr/local/lib/node_modules/homebridge-roomba2/index.js:274:16)
at roombaAccessory.getFilterStatus (/usr/local/lib/node_modules/homebridge-roomba2/index.js:223:15)
at ContactSensorState.emit (events.js:315:20)
at ContactSensorState.EventEmitter.emit (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
at ContactSensorState.Characteristic._this.getValue (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Characteristic.ts:489:12)
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1239:22
at Array.forEach ()
at Bridge.Accessory._this._handleGetCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1167:10)
at HAPServer.emit (events.js:315:20)
at HAPServer.EventEmitter.emit (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
at HAPServer._this._handleCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/HAPServer.ts:756:12)
at IncomingMessage. (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/src/lib/HAPServer.ts:280:24)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)

Hi, I'm having the same issue with a Roomba model 671, Roomba "not responding". Configuration is OK, IP, blid and robotpwd, but Roomba is still not responding.
I had installed previously "homebridge-roomba-stv" plugin, but stopped working and is not optimized with latest version of Homebridge.
Homebridge: 1.3.0
NodeJS: 14.15.5
Npm: 6.14.11
Homebridge UI: 4.39.0
{
            "name": "Roomba",
            "model": "671",
            "blid": "XXXX",
            "robotpwd": "XXXXXX",
            "ipaddress": "XX.XX.XX.XX",
            "keepAliveEnabled": true,
            "dockContactSensor": true,
            "accessory": "Roomba2"
        }
Please help to make it work.

Hi,
from my experience, during the tries I made to have the plugin working with the Roomba, sometimes the connection becomes stuck (for instance if you interrupt it half way or have 2 connections occurring simultaneously, which may happen in the case keepAliveEnabled is true and you try to use another tool like Roomba980-Python-1.2.8).
I suggest you restart your Roomba (on a 960, you just have to push for 10 seconds the big "CLEAN" button, not sure what you need to do on a 671 but this page may help: https://homesupport.irobot.com/app/answers/detail/a_id/9087/~/rebooting-or-resetting-your-robot ): according to that page, you need to "Press and hold HOME and SPOT Clean buttons on your robot for 10 seconds. When the button is released, Roomba® will play the reboot tone."

@MichelRabozee I am making a lot of changes to the way the connections are handled. If you're still interested, please try installing the latest beta and report back.

Hello, sure, I installed the update. My Roomba runs every Wednesday hence I will monitor the behaviour of the plug in next week and of course report back. Currently everything seem fine (still in keepAlive mode).

So far the problem with "no response" appears to be fixed for me in 1.3.0-beta.6: https://github.com/karlvr/homebridge-roomba2/issues/75#issuecomment-926956051
Looking forward to your results, @MichelRabozee. I hope it works well for you too. :)

It is on its base station, so far, no issue whatsoever, logs are clean too. I will check on Wednesday how it behaves with the bin, the charge, etc.

Hello, my Roomba did a cleaning cycle successfully, and the plugin behaved correctly (dock sensor, battery indication follow-up, running state, bin full state). So everything OK for me !


fix(preview): Add 'allow-scripts' to iframe sandbox

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Addressed currently open issue (replace XXXXX with an issue no in next line)

Closes #16305
Description

Add 'allow-scripts' to the iframe sandbox
Some browser implementations are a bit jumpy about JavaScript being injected into iframes. This setting tells them to calm down a bit.

@Bouncey What are you trying to fix here?

Some browser implementations are a bit jumpy about JavaScript being injected into iframes. This setting tells them to calm down a bit.

Isn't that default CSP safety level that we should be adhering to?
P.S: PR should come from forks

Closing as I didn't understand the issue correctly


Implement the transformer protocol (transducers)

This implements the transformer protocol (Issue #538) as described in:
https://github.com/cognitect-labs/transducers-js#transformer-protocol
PR #550 had the protocol, but was lacking tests. Map, List, Set and Stack has gone through some changes since then and didn't merge cleanly.
This adds the transformer protocol as well as a few tests with transduce and the immutable data structures. However, I'm not sure adding transducers-js as a devDependency is ok?

Still waiting for feedback on this

This looks great, thanks for your help and your patience.
I'll get this manually merged for you to work around the conflict


DLL name for python addins

I just spent a frustrating few hours trying to get addins written in C++ to work in Python. What neither this page nor the equivalent page at https://docs.python.org mention is that the resulting dll must be renamed to <modulename>.pyd (you can of course do this in the linker with a /OUT directive).

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

ID: 40e3b6b1-a3d2-f4f2-b1ad-dd654a062343
Version Independent ID: b2418b84-04f4-60d2-ec1d-291a5d4d0c51
Content: Write C++ extensions for Python - Visual Studio
Content Source: docs/python/working-with-c-cpp-python-in-visual-studio.md
Product: visual-studio-windows
Technology: vs-python
GitHub Login: @JoshuaPartlow
Microsoft Alias: joshuapa

@zooba - Could you comment here?

I'm addressing this in https://github.com/MicrosoftDocs/visualstudio-docs/pull/6632


Heavily comment the integration_test_lib

Problem
There are very few comments in the integration_test_lib. This makes the learning curve too steep.
Assessment Criteria
Commonly used testing functions will have numerous comments to aid test writers.
Tasks

[ ] Add comments to Intf module values, types, modules, and signatures
[ ] Add comments to Dsl module values, types, modules, and signatures
[ ] Add comments to Test_config module values, types, modules, and signatures
[ ] Add comments to Malleable_error module values, types, modules, and signatures
[x] Add comments to Test_common module

WIP PR for Test_common and integration test improvements https://github.com/MinaFoundation/mina/pull/18


Add push_type argument for client.send_notification

Add a push_type argument to client.send_notification. Currently I have to make use of the code to deduce the push_type from the topic, which is forcing me to create a topic when I think it's easier to just pass in the push_type
This argument is already present in the method client.send_notification_batch so simply mimicking it.

Hi
Thanks for contribution! Can you fix indentation to not use mixed tab/spaces?


Auto-release

I no longer like this approach. I would prefer a different one:

Create the version tag without updating asterisk/config.yaml's version
GitHub Actions will build the docker images for such new version, but Supervisor will not try to update, since asterisk/config.yaml still points to the old version
Once all images are generated, make GitHub Actions automatically change the asterisk/config.yaml's version, commit and push it.
Maybe also change the ref of the tag to point to the newest commit and force push it.


refactor: updated svelte-preprocess dependency from version 4 to 5

Description
Updated svelte-preprocess dependency, that mainly has those breaking changes included:

Languages must be explicitly defined via the lang attribute.
[x] Minimum node version was bumped from 9 to 14
this project already expects Node version 16, both locally, as well as in CI/CD.
Cannot use "type" attribute to identify the language of a style or script tag anymore. Use lang instead
[x] node-sass is not supported anymore. Use sass instead
not in use by this project
[x] minimum node version changed to v14
this project already expects Node version 16, both locally, as well as in CI/CD.

@mfranzke build errors in CI, you might need to run yarn in the project to update some things.

I've provided an update.

Thanks @mfranzke !


Fix missing error check on s.Shutdown()

fixes #1689

This fails the build.

The pushed bindata.go does not reflect the change in the template, but many others. Looks like the generation was not performed on a clean branch

All failing tests are related to line endings (I'm on windows)
Do you mind if I also add a .gitattributes file with the following code to avoid this issue next time ?
*.gotmpl		text eol=lf

go ahead


[Crosswalk-18][wrt] Update uiautomator steps due to test website changed

Impacted tests(approved): new 0, update 5, delete 0
Unit test platform: Crosswalk Project for Android 18.48.475.0
Unit test result summary: pass 5, fail 0, block 0
https://crosswalk-project.org/jira/browse/XWALK-6143

LGTM


Update for OS release 4.5.0

Signed-off-by: Jorma Virkkunen<EMAIL_ADDRESS>

Changes done:

removed one item (Gemini, horizontal)
marked 2 items as fixed on 4.5.0
dropped the 4th digit of the OS release IDs (too precise)
added 4 items to reflect the current status
added links to Forum where possible
replaced Zendesk links with Sailfish Docs links

<IP_ADDRESS> is out now.


Add documentation for bootstrap-rails

In the README there is a portion about using bootstrap for styling. I dropped in https://github.com/seyhunak/twitter-bootstrap-rails and found that javascript show/hide of different api documentation sections doesn't work. It would be great to specify what version of bootstrap is compatible with the view templates.

(https://github.com/Realm-Of-Mianite) is wanting to help out.


Render route labels with route color

Currently, transitive.js renders route labels with a fixed background color #008:
https://github.com/conveyal/transitive.js/blob/50d9e7973a4fd82cc6b765d45e790240c07593a0/lib/styler/styles.js#L205-L210
To match agency styling, we should instead rely on route_color (and use the inverse color for label text).

:tada: This issue has been resolved in version 0.13.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


WIP: Cirrus: Integration-test sub-sets

As tests are added, total runtime increases beyond (IMHO) optomal 45
minutes (more or less) for PR testing.  Fix this by utilizing an
additional matrix of VMs to divide up testing for parallel execution.
fixes #2649
Signed-off-by: Chris Evich<EMAIL_ADDRESS>

NOTE: This is not fully-cooked, beware of consuming raw meat.
The 1_3, 2_3, and 3_3 files are not ready yet, and I'm not even sure my scripting is sane :grin:

@baude WDYT about this approach (selectively deleting test source files)?
TBH, I kinda don't like the explosion of new tests, and it complicates debugging: "find $NEEDLE results" among so many $HAYSTACKS

PITA


searching for two words should search for, and return results in the order of two words, two, words

closed in c7e4c880a483e37e4e5f81591096bb36c57421a0


Improve phone switch / factory reset

Is your feature request related to a problem? Please describe.
I have factory wiped my phone and pointed lespas to its directory in nextcloud but it does not show the camera roll photos that are in the lespas directory in nextcloud. But it syncs new files into the same directory.
The same problem applies to the pictures directory and this also means i am not able to re-download the camera roll or the pictures directory on the wiped phone.
Describe the solution you'd like
I can think of 2 possible ways:

Just use the present data from the camera roll and pictures directory in nextcloud and show it in the app + allow download.

Rename the present directories in nextcloud and show them in the app as own directories + allow download. But to allow the download in this case the user should have the option to either merge the directories (old camera roll into new one, pictures into picturea) or to put them in a new directory in pictures (something like 'Camera Roll - Phone Name 01')

Describe alternatives you've considered
Download the files with the nextcloud app and move them into the correct dirs on the phone manually
Additional context

I have wiped the phone, so my backup directory names are the same, i do not know how this works with a different phone but in this case the user should also be able to somehow get all the photos back on the phone or in the lespas app as easy as possible

No offense, but i would argue it is not a design principle that you cannot restore a backup (not even showing it as a album) it is a design flaw.
A lot of people do not create any albums, they just have the camera roll, and switching to a new phone on android is already painful enough without the need to migrate the lespas directories because it is designed in this way.
Switching to a new phone is something that should be trivial, because a lot of people get new phones every 2 years.
The current setup leads to following problems:

I have reset the phone, how do i restore camera roll? -> If i copy it to the phone, will lespas duplicate them in the nextcloud?
Lespas creates a directory structure like: /DCIM//Camera and uploads the camera roll in there...

what happens if i have 2 phones with the same name?
if i reset the phone and setup lespas and create new photos, they will just end in the same directory but the already existing ones are not shown in the app and not downloadable

Not sure about this. If you don't like playing with albums, why choose Les Pas at the first place? Nextcloud android client can do the job.

I did not say that i do not use albums, and that is not even relevant for this issue. I described it very clear that there are multiple problems with how the app works at the moment.
I just think you are out of touch with the userbase here, the setup of a new phone is absolute unclear.
My solution to the new phone setup was to disable lespas backup, manually copy the camera roll back to the phone, delete the backup in nextcloud (just in case) and let it re-sync. If you think this is an acceptable solution for such an app then feel free to close this issue, but i think the optimum way would be an apple-like solution.


bug: the keyboard doesn't work well in android

Type: bug
Platform: android 4.4 webview
please see  the  picture

when i click  1 input  , 2 input  and  after 4 input , it works well.However when i click  3 input ,the tabs  just  covers   the  3 input, when i  add some number, the 3 input  just  shoot  up  and  then  you will find  that in the content bottom there is an extra dimension.

Hello (: Are you still experiencing this issue with the latest version of ionic?

Since it has been a little while since there was any activity on this issue i will be closing it, but feel free to respond back if your still having the issue! Thanks again


Android uses different types of logical pixels for font sizes than for view layouts

https://developer.android.com/guide/topics/resources/more-resources.html#Dimension
In Android, view layout sizes are given in density-independent pixels (dp) while font sizes are given in scale-independent pixels (sp).  The difference between the two appears to be that sp are sensitive to accessibility settings for font size, while dp are not.
Does Flutter respect system accessibility settings like this when it's applying layout measurements to a view versus text?

Not currently, but we certainly could.

After https://github.com/flutter/flutter/pull/5936, the default interpretation of a font size will be in sp.  We'll still need to wire up the conversion factor for sp to dp, which is https://github.com/flutter/flutter/issues/5085

Nice going, guys!


Fixing possible typo in TIMES prefix definition

Due to sentence "This is partly present as NASM's equivalent of the DUP syntax supported by MASM-compatible assemblers, in that you can code" I assumed that the line of code should be with MASM stuff, so I corrected it.

Thank you. But this repository is no longer updated. 😢
Please purpose your PR to the official repo or the most recent github fork.


Wire in Inclusion verification post addLeaf

Just for my own education, what is the purpose of this? Just to add a sanity check inside the server (personality) that trillian acted correctly, on top of the response/error code?

Yep, pretty much. when using add the server trillian will reply that it has queued the leaf, calling GetInclusionProofByHash will ensure its actually hashed into the tree.
The function is already there, we just need some sort of poll / wait after add to verify its in.
Having thought about it though, I think clients should look after this and make the call themselves. So they would call add and then getproof as a follow up, this means less connections tied up for less time awaiting an inclusion proof.


fix handling of --with-gmp-* configure arguments

This fixes part of issue #159.

Many thanks @kgardas!
I have a question about this piece of code:
configMk <- liftIO . readFile $ gmpBase -/- "config.mk"
if "HaveFrameworkGMP = YES" `isInfixOf` configMk
then do
    putBuild "| GMP framework detected and will be used"
    copyFile gmpLibraryFakeH gmpLibraryH
else if "HaveLibGmp = YES" `isInfixOf` configMk
     then do
       putBuild "| GMP detected and will be used"
       copyFile gmpLibraryFakeH gmpLibraryH
     else do [...]

It looks like the first two checks can be combined into one:
configMk <- liftIO . readFile $ gmpBase -/- "config.mk"
if "HaveFrameworkGMP = YES" `isInfixOf` configMk || "HaveLibGmp = YES" `isInfixOf` configMk
then do
    putBuild "| GMP framework detected and will be used"
    copyFile gmpLibraryFakeH gmpLibraryH
else do [...]

Do you know if these two checks should indeed be handled in the same way? If yes, perhaps you can merge them as above to simplify the code.
Which of the two checks is activated on your machine? I presume the one with HaveLibGmp.

@snowleopard yes, checks can be combined, but then for initial testing I kept this in a way to see the difference in detection of frameworks-based or plain GMP. Honestly "framework GMP" is IIRC Mac OS X specific thing.
And yes, you are right on Solaris and everywhere else except probably Mac OS X, HaveLibGmp is YES when the GMP library is detected.
OK! Will merge the checks now...

I kept this in a way to see the difference in detection of frameworks-based or plain GMP

Another question (sorry, I have very little understanding of GMP): what is the difference between "plain" and "framework-based" GMP?

My rough understanding is that Mac is too cool to use libraries like everyone else, so they use frameworks, which I've always viewed as an alternative to a set of dll/so but with more metadata. See http://stackoverflow.com/questions/4618027/what-exactly-is-a-framework-in-mac-os-x-framework-folders.

@snowleopard don't know any information about framework GMP except that the term is used in GHC and the check is done in a different way, see the code in libraries/integer-gmp/aclocal.m4:
AC_DEFUN([LOOK_FOR_GMP_FRAMEWORK],[
    if test "$HaveLibGmp" = "NO"
    then
        case $target_os in
        darwin*)
            AC_MSG_CHECKING([for GMP.framework])
            save_libs="$LIBS"
            LIBS="-framework GMP"
            AC_TRY_LINK_FUNC(__gmpz_powm_sec,
                             [HaveFrameworkGMP=YES; GMP_FRAMEWORK=GMP])
            LIBS="$save_libs"
            AC_MSG_RESULT([$HaveFrameworkGMP])
            ;;
        esac
    fi

and in configure.ac in the same dir:
AC_ARG_WITH([gmp-framework-preferred],
  [AC_HELP_STRING([--with-gmp-framework-preferred],
    [on OSX, prefer the GMP framework to the gmp lib])],
    [GMP_PREFER_FRAMEWORK=YES],
    [GMP_PREFER_FRAMEWORK=NO])

looks like pure Mac-ism...

@ggreif silly me, indeed map is working also on empty lists. @snowleopard I'll provide simplified version based on @ggreif code...

Many thanks all! Looking forward to the last revision, ready to merge.

Let me hold on with the merge while I'm checking how to fix the Travis regression which happens when GMP is already installed. I wonder why @kgardas hasn't experienced the same error...

@snoleopard the build fails when gmp is installed/detected and fails with:
Error when running Shake build system:
* utils/compare_sizes/stage1/build/tmp/compareSizes
* .build/stage1/libraries/integer-gmp/build/libHSinteger-gmp-<IP_ADDRESS>.a
* getDirectoryFiles  [.build/stage0/gmp/objs/*.o]
.build/stage0/gmp/objs: getDirectoryContents: does not exist (No such file or directory)

that probably means that some from the infrastructure still counts with the object file from in tree built GMP and would like to do something with it.

So seems @kgardas is hit by this bug. It's a Shake bug :( Workaround is to doesDirectoryExist first, which is deeply sad, as I previously told @snowleopard it definitely wasn't required (and thus my beer count increases further).

Let me merge this and temporary fix the bug with an extra doesDirectoryExist check.

With the above fix we no longer have the getDirectoryContents error. However, on my machine I get a linking error when using installed GMP. Will investigate now.

I found the following comment in the old build system:
# Apparently building on Windows fails when there is a system gmp
# available, so we never try to use the system gmp on Windows

I think we can mirror the old build system here. Maybe we will come back to fixing system GMP on Windows in future.

Done.


PDF export in dark mode is white text on white background

Pulse v4.0.5
If the phone is in dark mode, the PDF export is white text on white background.

Thanks for the report. PRs are welcome!


Feat/ci version check

New Features

Add version compare to master in CI

Breaking Changes
Bug Fixes
Improvements
Dependency updates
Deployment changes

Moved to pre-commit


Finding the most convenient way to login.

After discussing this issue with a few people, I've come to know 3 possible ways to go about this.

Keep a desktop icon that logs in for you, whenever you double-click.
Keep a Chrome extension that you can click on.
Leave a background process that continuously polls for network state and logs in automatically when you connect to a Wifi. (Gets tricky fast :P)

I'd love it if you guys suggested anything else or possibly, enhancements of the above; considering cross-platform compatibility and a user-friendly approach.

I thinks we should go with the first option. The second one limits its usage to people who use chrome and as we had discussed, continuously polling the network would consume more battery.
A better plan would be to check, whenever there is a network change and the app activates on its own, else be a double-click one.
@kaivalyar , @kukreja-vikramaditya : Any comments?

I would prefer a chrome add on and firefox extension as installation is way easier and platform independent (windows/linux/macOS).

Though addons seems interesting, it may be an overkill. It also means at the end I am still opening my browser. I think that option 1 is fine for now.
The network change listener approach is actually the best but the implementation may vary with the OS. The guys who are making the mobile app are working on the same idea. They 'listen' for any network change broadcasts and login accordingly

I would stick with my suggestion of the browser extension - for a desktop app that logs a user onto bitsnet - it seems the only likely usage is through the browser. A double click on the desktop leads to user experience like:

open laptop
double click open-sesame
open browser
browse

the in-browser extension is better, especilly because i can't think of applications where people would log in to their bitsnet ids but not browse the net after doing so. the user experience would now be:

open laptop
open browser
click open-sesame
browse

IMHO, this is more convenient, and cross platform. We lose the safari crowd - but maybe we can figure that out later?

I use third way.
#!/bin/bash
while true
	do
		wget example.com -O 6DFRyBCMWv.html
		# 6DFRyBCMWv.html : a random filename not likely to be used for any other purpose
		l=$(head -n 1 6DFRyBCMWv.html)
		rm 6DFRyBCMWv.html
		i=${l:1:1}
		if [ $i != "!" ]
		# second character of example.com is "!" (<!doctype html>)
		# second character of cyberoam login page is "H" (<HTML>)
		then
			# net gg
			timeout 10 npm start
		else
			sleep 10m
		fi
	done

This check internet connectivity every 10 min and tries to reconnect if disconnected.

@prampey . Can you take a look at this?

@Rushi98 That seems to be a nice hack to check. However, I have come across a more convenient way to do the same, sans the dirty website checking.
Hitting this URL: http://captive.apple.com/hotspot-detect.html , gives me a 'Success' if there is an internet connection or an instant redirect to the corresponding login portal.
This finally hit me one fine morning when I realized my Mac automatically knows when I have a portal to login to. Since this is a universal 'Apple' thing, I suppose all routers knowingly serve a redirect to this request. The above URL definitely redirects faster than ordinary website requests.

even phones just "know" when there is a WiFi network to be signed into, and often redirect to the corresponding login portal. Neat solution, @prampey ! :+1:

Thanks @prampey.
I don't know why ping doesn't work on bpgc network. That would have been a cleaner way.

@Rushi98 The router was probably programmed to not accept the kind of packets employed in pings. Anyways, I just committed a skeletal version of the new method. You can test it and tweak it as you like.


Add a "production users" page and give it some initial content

Rendered.
 It's useful and expected marketing for both us and those listed. The page is presently linked from a new FAQ entry, and in the future will be linked more prominently.
The page links to a pre-filled form on the www issue tracker that asks for all the required information. Every logo we add needs to come with contact information in case we need to make substantive changes to the page in the future. To submit the contact info they can either put it in the form or submit to<EMAIL_ADDRESS>which is an alias for the core team. The contacts are maintained in a private spreadsheet to which the core team has access.
Once this is live I will post to the forum and reddit to try to encourage more users to contribute their logos.
All logos approved by their respective owners.
cc @jonathandturner @rust-lang/core

r? @nikomatsakis
(rust_highfive has picked a reviewer for you, use r? to override)

I'm interested in what you think of "and that makes us happy". There are very few words on this page, so it's important that they all be good.

Another thing to note: similar pages put the info about how to submit your logo at the bottom of the page, which I think makes us seem less greedy. I have a concern right now that the text is too us-focused instead of them-focused.

Big :+1: overall!

I'm interested in what you think of "and that makes us happy".

and

I have a concern right now that the text is too us-focused instead of them-focused.

I think I share this slightly. I found "and that makes us happy" confusing to read; I thought it was about how we made them happy, and that there would be specific reasons there. I do like the sentiment, but I will try to think of an alternate wording. First shot:

We love people doing wonderful things with Rust! These organizations use Rust in production. To add...

Not sure if that's too heavy-handed...

+1 on putting the text at the bottom
I like how Ember (http://emberjs.com/ember-users/) just has a brief bit about the users and how they might have different usage.  TypeScript (http://www.typescriptlang.org/community/friends.html) just doesn't say anything but "Friends of TypeScript" which also works.

I wonder if asking for issues to submit logos risks us not noticing the issues. I know I periodically check the rust-www PRs, but not often the issue tracker.

I have emails turned on for this repository, so I will get an email about it, atl east.

I pushed an update that changes the top to say only "Who uses Rust?", and puts new instructions at the bottom.

Nice!
I wonder if we should be more explicit about this being production users? That info only seems to be hinted at in the user-facing text at the moment. If we want to be more general and this be about significant users of Rust, then maybe we should add the Universities which use it in courses and research projects, etc.

@nrc It needs to be both clear and subtle that this isn't a list for every user, and the definition of "production" needs to be kinda fuzzy.
Right the hint is in the footer: "If your organization uses Rust in production". @jonathandturner suggested to me that the title could be a bit more delicate than "Who uses Rust?". TypeScript e.g. says "Friends of Rust", but that is too inviting to go without further qualification. Everybody's a friend of Rust!
Another possibility taken from @jonathandturner for what to put in this page: "Friends of Rust - Organizations betting on Rust in production".

I like the idea of adding Universities.

It needs to be both clear and subtle that this isn't a list for every user

Yeah, it's kind of delicate, I don't want to list every weekend project written in Rust

Organizations betting on Rust in production

I love this definition of significance

OK. Further updates. Now the url is friends.html and the header is "Friends of Rust (Organizations running Rust in production)".
I am happy with this and intend to publish it very shortly.

I'm late to the party, but how is tessel on that page? Their rust support is dropped and basically a community effort currently.


The results of CPMNet in MICCAI2021(song et al.)

Hi, Dr. Michael Baumgartner,
Great work for medical image detection, thank you for reviewing our work (CPMNet in MICCAI2021) in this repo. To better report the results of our work, we list the detailed result: 0.125（72.3）0.25（83.8）  0.5（88.7） 1（91.1）2（92.8）4（93.4）8（94.8）average 88.1. And more recent work, SANet: A slice-aware network for pulmonary nodule detection (TPAMI2021) also report the results on LUNA16.
Best,
Xiangde.

I added a table with all numerical values and references in 07f22a0 . Thanks again, for the complete set of numbers. Since this list only includes methods that were published before we submitted our Paper in March 2021, I did not add SANet to the list.


Bug: cannot retrieve organization details

Prerequisites

[X] I have searched the repository’s issues and Kinde community to ensure my issue isn’t a duplicate
[X] I have checked the latest version of the library to replicate my issue
[X] I have read the contributing guidelines
[X] I agree to the terms within the code of conduct

Describe the issue
I'm logging in to the organization but cannot retrieve these data in NextJS. I'm unable to get these details by using the following code in the main Layout.ts file.
const kinde = getKindeServerSession();
const userOrganizations = await kinde.getUserOrganizations();
console.log(userOrganizations); // { orgCodes: [], orgs: undefined }

ID token returns the following data:
console.log(await kinde.getIdToken());
// {
//   ...
//   sub: 'kp_d56abde76a3044509cfc3fb0113639a7',
//   'x-hasura-ext-provider': {},
//   'x-hasura-org-codes': [ 'org_2fb99a3e2a5' ],
//   'x-hasura-organizations': [ { id: 'org_2fb99a3e2a5', name: 'docker' } ]
// }

Let me know if you need anything else from my side. This is quite an important issue for me, as it blocks my development. Thanks for your support!
Library URL
https://github.com/kinde-oss/kinde-auth-nextjs/
Library version
2.3.6
Operating system(s)
macOS
Operating system version(s)
14.6.1
Further environment details
No response
Reproducible test case URL
No response
Additional information
No response

Thanks @dam6pl, this is a bug - we'll fix this for you asap

In the meantime would you be able to grab the orgs from the idToken / using the getClaim helper

Just double checking that you have enabled Hasura mapping intentionally.
We will have to support the hasura mappings in the SDK :)
I am working on it now

Thanks @dam6pl, this is a bug - we'll fix this for you asap

hey @peterphanouvong, do you know when I can expect a complete fix to be released?

Hey @peterphanouvong, I checked the fix, but not sure if the issue has been fully resolved. Please take a look at the details below. When I try to get user organizations I get nothing.
const organizations = await kinde.getUserOrganizations();
console.log(organizations); // null

But, when I check the ID token, I can see organizations.
console.log(await kinde.getIdToken());
// {
//   ...
//   sub: 'kp_b224d812a8db41e4826d1cd376097c8c',
//   x-hasura-ext-provider: {},
//   x-hasura-org-codes: [ 'org_e7b4dc67239e', 'org_934cf51676099' ],
//   x-hasura-organizations: [
//     { id: 'org_e7b4dc67239e', name: 'Test DN' },
//     { id: 'org_934cf51676099', name: 'dntest' }
//   ]
// }

Can you suggest if I'm doing something wrong, please? Thanks!

Hey @dam6pl you're not doing anything wrong! I haven't yet pushed a fix just yet, are you able to grab the information you need by taking from the IdToken instead of using the getUserOrganizations helper for now?
We're preparing a more substantial fix to support hasura mappings :)

I have a same problem... waiting fix getUserOrganization.
I am using sdk nextjs 14.x

How is this going? I have the same problem, but I do not have Hasura Mapping enabled.


(PUP-7326) Handle unresolvable SIDs in Windows groups

CLA signed by all contributors.

@glennsarti / @michaeltlombardi this is ready for merge based on @glennsarti feedback.

Appveyor says No.

Appveyor error is due to;
The parallel spec process which groups specs is throwing an error when it figures out how many spec files exit.
An error occurred while loading ./spec/integration/indirector/direct_file_server_spec.rb.
Failure/Error: module_function :octet_string_to_sid_string

NameError:
  undefined method `octet_string_to_sid_string' for module `Puppet::Util::Windows::SID'
# ./lib/puppet/util/windows/sid.rb:235:in `module_function'
# ./lib/puppet/util/windows/sid.rb:235:in `<module:SID>'
# ./lib/puppet/util/windows/sid.rb:4:in `<module:Windows>'
# ./lib/puppet/util/windows/sid.rb:3:in `<top (required)>'
# ./lib/puppet/util/windows.rb:20:in `require'
# ./lib/puppet/util/windows.rb:20:in `<module:Windows>'
# ./lib/puppet/util/windows.rb:1:in `<top (required)>'
# ./lib/puppet/file_system/windows.rb:2:in `require'
# ./lib/puppet/file_system/windows.rb:2:in `<top (required)>'
# ./lib/puppet/file_system.rb:11:in `require'
# ./lib/puppet/file_system.rb:11:in `<module:FileSystem>'
# ./lib/puppet/file_system.rb:1:in `<top (required)>'

Localization follow-on PR at #6695