TimeoutException on wait.until(EC.element_to_be_clickable((By.ID, "faresOutbound"))

Hello, cool idea for a project!
I gave this a try by running with one of the example commands you provide, but got the following error:
$ python3 app.py --company Southwest --depart HOU --arrive MDW --departure-date 05/12/2018 --return-date 05/14/2018 --passengers 2 --max-price 215 --interval 30
[2018-04-08 22:29:06] Submitting form...
Traceback (most recent call last):
  File "app.py", line 17, in <module>
    main()
  File "app.py", line 12, in main
    real_total = swaScraper.scrape(args)
  File "/home/dev/Documents/src/SWA-Scraper/swaScraper.py", line 78, in scrape
    wait.until(EC.element_to_be_clickable((By.ID, "faresOutbound")))
  File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Screenshot: available via screen

(I actually tried various things to get it to output a screenshot, but couldn't get it to do so -- selenium/phantom is not something I'm terribly familiar with)
Here's my phantomjs version:
$ /usr/local/bin/phantomjs --version
2.1.1

If you have any ideas, please let me know! thanks.

Also, I'm on linux, and I'm using the 64-bit version of phantomjs.

Hi @AndrewJDR,
Thanks for your message. Looking at the error log, I can't immediately see what's wrong. When I have some free time this week (probably on the weekend), I'll investigate this issue and get back to you. Wanted to once again thank you for showing interest in the project!

I'm getting the same error, so it's not just you. My initial guess is that Southwest has changed their website a little bit, making it harder to scrape. I'll do some investigating and see if I can fix the problem.

After some debugging, I figured out the reason why this is happening. Southwest has completely changed the page that contains flight prices.
Old page: URL. Screenshot.
New page: URL. Screenshot.
The table with ID "faresOutbound" does not exist in the new page; consequently, the program times out. It should be fairly straightforward to fix. The logic should remain the same, but the names of the HTML elements have changed.

There are a few reasons why I won't fix this issue right away:

I'm quite busy these days and don't have the time to make this fix.
Southwest could change their flight prices page again, and all our work will be for naught.

I'll keep this on my TO DO list, albeit it at the bottom. If I have some free time, I'll look into fixing this problem, though I'm not sure when it will be done. Meanwhile, if somebody else could attempt to fix this issue, I'm sure we would all appreciate it. Thanks.

I have some free time today, so I'll try and fix this. Will keep everyone posted.

Fixed. Let me know if it works. Thanks for alerting me of this problem!

Hey thanks for taking a look!
Unfortunately, I gave this a try (same command as before), and it's not working for me. Very similar error:

Traceback (most recent call last):
  File "app.py", line 17, in <module>
    main()
  File "app.py", line 12, in main
    real_total = swaScraper.scrape(args)
  File "/home/ajohnson/Documents/src/SWA-Scraper/swaScraper.py", line 78, in scrape
    wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "currency_dollars")))
  File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Screenshot: available via screen

I gave a shot at trying to fix it myself, but when I looked at the source of the page I couldn't actually find anything with a css class of "currency_dollars". Hmm, I guess it's possible they changed their site already, if so, that was quick!

Just tried it again, it's working for me. It's possible that they route people to different pages, though I don't think that's what's going on. Let's try debugging it.
In swaScraper.py, can you replace the following lines (81-83):
 except TimeoutError:             print("[%s] Results took too long!" % (                 datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
with:
        except Exception as e:             print(browser.current_url)
And then can you post that URL that is printed? Thanks.

Here we are:
https://www.southwest.com/air/booking/index.html?originationAirportCode=&destinationAirportCode=&returnAirportCode=&departureDate=2018-05-12&departureTimeOfDay=ALL_DAY&returnDate=2018-05-14&returnTimeOfDay=ALL_DAY&adultPassengersCount=2&seniorPassengersCount=0&fareType=USD&passengerType=ADULT&tripType=roundtrip&promoCode=&reset=true&redirectToVision=true&leapfrogRequest=true&validate=true

As you can see, it thinks the departure and arrival haven't been filled out. To dig into this a little more I am outputting a screenshot in this "Submit Form" block (lines 65-69):
        # Submit Form
        search = browser.find_element_by_id("submitButton")
        print("url: %s" % (browser.current_url))
        browser.get_screenshot_as_file('/tmp/sw.png')
        search.click()

Here's that screenshot:

Based upon this, it appears to be having difficulty clearing the popup menus for the departure/arrival fields and possibly the date fields as well. Though, I'm not entirely sure if that's actually what is causing an issue. What kind of result do you see if you output a screenshot in that same place?
I tried some things, like sending the tab key just after line 37, like so:
depart_date.send_keys(args.departure_date)
depart_date.send_keys(Keys.TAB)

But haven't had much luck with that.
That said, it looks like we can just plug the commandline arguments right into this query string, like so:
https://www.southwest.com/air/booking/index.html?originationAirportCode=HOU&destinationAirportCode=MDW&returnAirportCode=&departureDate=2018-05-12&departureTimeOfDay=ALL_DAY&returnDate=2018-05-14&returnTimeOfDay=ALL_DAY&adultPassengersCount=2&seniorPassengersCount=0&fareType=USD&passengerType=ADULT&tripType=roundtrip&promoCode=&reset=true&redirectToVision=true&leapfrogRequest=true&validate=true

That way the first step of this whole thing doesn't really have to do simulated button presses and things like that?

I think the query string idea holds quite a bit of merit as far as design goes. Means we skip a whole step of the process which would speed the whole process up and means that we can implement the same method for every other website we add.
The backend API for these websites is less likely to be changed than the front end too, which means that less maintenance will be needed long-term.
On 16 Apr 2018 04:00, Andrew Johnson<EMAIL_ADDRESS>wrote:
Here we are:
https://www.southwest.com/air/booking/index.html?originationAirportCode=&destinationAirportCode=&returnAirportCode=&departureDate=2018-05-12&departureTimeOfDay=ALL_DAY&returnDate=2018-05-14&returnTimeOfDay=ALL_DAY&adultPassengersCount=2&seniorPassengersCount=0&fareType=USD&passengerType=ADULT&tripType=roundtrip&promoCode=&reset=true&redirectToVision=true&leapfrogRequest=true&validate=true
As you can see, it thinks the departure and arrival haven't been filled out. To dig into this a little more I am outputting a screenshot in this "Submit Form" block (lines 65-69):
    # Submit Form
    search = browser.find_element_by_id("submitButton")
    print("url: %s" % (browser.current_url))
    browser.get_screenshot_as_file('/tmp/sw.png')
    search.click()

Here's that screenshot:
[sw]https://user-images.githubusercontent.com/1588857/38787793-0f2333b2-40e5-11e8-8301-c96fff3b3e02.png
Based upon this, it appears to be having difficulty clearing the popup menus for the departure/arrival fields and possibly the date fields as well. Though, I'm not entirely sure if that's actually what is causing an issue. What kind of result do you see if you output a screenshot in that same place?
I tried some things, like sending the tab key just after line 37, like so:
depart_date.send_keys(args.departure_date)
depart_date.send_keys(Keys.TAB)
But haven't had much luck with that.
That said, it looks like we can just plug the commandline arguments right into this query string, like so:
https://www.southwest.com/air/booking/index.html?originationAirportCode=HOU&destinationAirportCode=MDW&returnAirportCode=&departureDate=2018-05-12&departureTimeOfDay=ALL_DAY&returnDate=2018-05-14&returnTimeOfDay=ALL_DAY&adultPassengersCount=2&seniorPassengersCount=0&fareType=USD&passengerType=ADULT&tripType=roundtrip&promoCode=&reset=true&redirectToVision=true&leapfrogRequest=true&validate=true
That way the first step of this whole thing doesn't really have to do simulated button presses and things like that?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/wcrasta/SWA-Scraper/issues/30#issuecomment-381466859, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQXR5XMTfBbS3Nrc5faQjdVkEDQMRQpJks5tpAlMgaJpZM4TL9ug.

I just made a pull request hopefully fixing the issue, #32. Using a HTTP GET submit, you can directly request ticket prices without having to simulate clicking on a form.
With the booking URL mentioned in previous posts, "booking/index.html,"  you still have to click submit, there is a slightly different URL, "booking/select.html," with the same form arguments that directly gives those ticket prices.

Hrm... I have similar error here even after applying your patch :/
$ python3 app.py --company Southwest --depart HOU --arrive MDW --departure-date 05/12/2018 --return-date 05/14/2018 --passengers 2 --max-price 215 --interval 30
[2018-04-24 21:31:34] Submitting form...
Traceback (most recent call last):
  File "app.py", line 17, in <module>
    main()
  File "app.py", line 12, in main
    real_total = swaScraper.scrape(args)
  File "/home/dev/Documents/src/SWA-Scraper/swaScraper.py", line 150, in scrape
    wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "currency_dollars")))
  File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Screenshot: available via screen

Ok. So I changed my phantomjs to beta 2.5.0 on this page:
https://bitbucket.org/ariya/phantomjs/downloads/
And it seems to be working now!
For whatever reason, the latest phantomjs 2.1.1 available from the website simply does not work for me.

Great discussion here guys, thanks everyone. I'll review @dcm684's PR soon and discuss the merits of simulating clicking through a form vs. entering arguments via URL and will respond.
@AndrewJDR, glad to hear that things are working for you. To be clear, after changing your version of PhantomJS, is my code working, @dcm684's code working, or both?

@AndrewJR, That's interesting, I'm using PhantomJS 2.1.1 and having been running the script with my changes on 2.1.1 for the past two days without any issue. I just tried it with the arguments that gave you a time out error, and it worked. Lowest outbound $115 and lowest return $117.
I am using Windows if that makes any difference.

@dcm684 I'm using Ubuntu 14.04 here, so perhaps that's a factor.
@wcrasta Using phantomjs 2.5.0 beta, things work as expected when using 540762e + PR #32, but I get the following error when I use 540762e by itself:
Traceback (most recent call last):
  File "app.py", line 17, in <module>
    main()
  File "app.py", line 12, in main
    real_total = swaScraper.scrape(args)
  File "/home/dev/Documents/src/SWA-Scraper/swaScraper.py", line 24, in scrape
    depart_airport = browser.find_element_by_id("originAirport_displayed")
  File "/home/dev/Documents/src/SWA-Scraper/env/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 269, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/home/dev/Documents/src/SWA-Scraper/env/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 752, in find_element
    'value': value})['value']
  File "/home/dev/Documents/src/SWA-Scraper/env/lib/python3.4/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/home/dev/Documents/src/SWA-Scraper/env/lib/python3.4/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: {"errorMessage":"Unable to find element with id 'originAirport_displayed'","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"104","Content-Type":"application/json;charset=UTF-8","Host":"<IP_ADDRESS>:49837","User-Agent":"Python-urllib/3.4"},"httpVersion":"1.1","method":"POST","post":"{\"sessionId\": \"e9f8ef60-4935-11e8-a619-975a50cd99a7\", \"using\": \"id\", \"value\": \"originAirport_displayed\"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/e9f8ef60-4935-11e8-a619-975a50cd99a7/element"}}
Screenshot: available via screen

This is using the command:
python3 app.py --company Southwest --depart HOU --arrive MDW --departure-date 05/12/2018 --return-date 05/14/2018 --passengers 2 --max-price 300 --interval 30

@AndrewJDR I tried the same command as you, and I got the same identical error as you. I believe that the element 'originAirport_displayed' doesn't exist on that website anymore so the script needs to change. Well, at least that element with that id. Does anyone know what was that element, and what is the current name of it?
OS: Windows 10
phantomjs: 2.1.1-windows

@var-che please try using PR #32

@AndrewJDR Thank you for your fast response. It did fix the problem for me, and I recommend that OP consider reviewing pull request.

My apologies all, I haven't had much time to review the PR. I'm not sure when I'll get to it, but hopefully within the next couple of days. I've been putting it off, since the code change is probably a whole different idea/design and will need quite a bit of reviewing. In the meantime, feel free to add your review/comments to PR #32 to help make my job a little easier. Thanks!

I had my own version of something similar and ran into the same issue.  I used to just be able to use requests and not need selenium at all.  I had a function that looked like:
def enter_single_search(origin,destination,outbound_date_str,return_date_str,
    method='dollars',driver=None,
    url='https://www.southwest.com/flight/search-flight.html?',
    available_codes=None, wait_time=.2,
    proxies=None):

    if not driver is None:
        logging.warning('you specified a driver...we no longer use selenium, Driver should always be None...continueing')

    payload = {
        'twoWayTrip': True,
        'airTranRedirect': "",
        'returnAirport': "RoundTrip",
        'outboundTimeOfDay': "ANYTIME",
        'returnTimeOfDay': "ANYTIME",
        'seniorPassengerCount': 0,
        'fareType': "DOLLARS",
        'originAirport': origin,
        'destinationAirport': destination,
        'outboundDateString': outbound_date_str,
        'returnDateString': return_date_str,
        'adultPassengerCount': 1}

    verify = get_verify(proxies)
    r =requests.post(url,params=payload,proxies=proxies,verify=verify)

    logging.info('Got payload back from SW')
    return r

I've attempted to do the same with the new URL that the new website gives similar to PR #32, but it gives an empty results.  Just thought I'd share.

I've merged in PR #32 which hopefully fixes most of the issues. There are some bugs/errors here and there, which I'll need to review and fix. Due to time constraints, I'm not sure when I'll get around to validating that everything works. I would, however, be very grateful to anyone who fixes whatever's broken. Thanks.

Finally got around to reviewing the code and testing it quite a bit to make sure that it's error-free. Commit 59d32929fbf81461c958156e77e87700de2c0741 should do the job. Thanks especially to @dcm684, who got the ball rolling with the re-write of the code. Going forward, I'll try and do a better job of reviewing/merging code in a more timely manner.


Publish single-jar version of ktlint to maven central?

Hello there! First of all, thank you very much for the awesome work on Ktlint. It's been an invaluable tool to get rid of style nitpicks during code reviews for my team! :bow: :bow: :bow:
Currently, ktlint is published as both:

A single file version, available in the releases tab
A regular jar with dependencies, that gets pushed to maven central

I would like to request that a third option gets added: publishing the jar that the single file version uses to maven central.
Why? The single-file version massively simplifies dependency management, but downloading the latest version from github is always a bit awkward/different from how we deal with other dependencies (for instance -- it does not have checksums, as requested in #695).
Having the single-jar version in maven central would simplify a lot the integration/updates of ktlint we have on our team.
Thanks, and have a great day!

I think it's already published, if you check here the all version is exactly the one ktlint executable is using

Ah, interesting! I did not find it in my searches, but that should be enough for my setup, thank you :pray:


PP-5181 card types settings redesign

Conor has redesigned each of the settings pages to make them more coherent with each other and also Notify. This is the first part of that work

Conor wants to hold off merging whilst we just check a few things with product people


Off-by-one in progress tracker?

Describe the bug
On some reruns for generating textbooks, I'm getting overlapping sections and off-by-one (i.e regen's the same last section). In addition, while I took it out for my code, restarting a run in between will always write the "This is an AI Generated..." in the textbook.
To Reproduce
Start a job, kill it halfway, watch where it restarts.
Expected behavior
I think the code is basically setting the start_flag too early (or the check + generation order should be switched).
Basically, right now, it regenerates the last section (i.e the sections described in {textbook}_progress.txt, but should actually generate the next one.
I will open this issue rn and investigate later today, keeping this issue updated and if needed, opening a PR to fix the issue. (I have some runs going, so don't want to disturb those)

hey @bhairavmehta95 - I removed the start_flag from the textbook generator since it was sloppy/untested.
Have you gotten a chance to run with the latest generator?


Deprecated i2s_read_bytes function

Hi,
I tried to run the project on an older version of Arduino IDE and it works fine. However, when tried on the latest version, it throws back an error saying i2s_read_bytes isn't defined in the scope. When I did some troubleshooting, I discovered i2s_read_bytes has been deprecated and replaces with i2s_read.
The problem I'm having is a "too few arguments" whenever the verification reaches the i2s_read function. I looked up the function definition and it has an extra parameter (size_t *bytes_read) compared to i2s_read_bytes.  I'm not sure what should go in there?
Any help would be greatly appreciated
Regards, Ali

check the URL, someone did asked this before
https://esp32.com/viewtopic.php?f=13&t=30632
Not sure if it was solved.

you would help a lot if you rewrote using the new i2s_write method

int I2S_Read(char *data, int numData)
{
size_t bytes_read;
return i2s_read(I2S_NUM_0, (char *)data, numData, &bytes_read, portMAX_DELAY);
}

Use this function

I'm trying to use an MSM261S4030HO I2S microphone without success. The recorded .wav file shows that something is being recorded but is just a low amplitude low frequency buzz (approx 50 Hz but not a mains hum as I'm powering from a power bank). Any ideas?


[FIXED JENKINS-36431] Adds CredentialsUnavailableException

A runtime exception to be thrown from Credential getter methods.

Includes tests of expected throw points to verify that this RuntimeException does not break Jenkins

JENKINS-36431
@reviewbybees

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.

:bee:


macOS crash on server join

Include the following information in your report:

How you encountered the issue
Playing on casual or community (mge), about once every two or three times i'd join a server or the map would switch my game would hang and crash. Removing the custom vpks and switching back to my old config (b4nny) solved the problem.

Config version (don't say latest, say the actual version, found in the
startup console output)

Config preset and addon(s)
Competitive (now medium after update, present with both)
badgpu (present with and without)

Custom values (if any)
none

DX level
92

Launch options
-novid -nojoy -nosteamcontroller -noff -softparticlesdefaultoff -reuse

Operating system (OS)
OSX Yosemite 10.10.3

Graphics card (GPU)
Intel HD 5000

Processor (CPU)
i5-4260U

HDD or SSD
500gb HDD

RAM size in MB or GB
8gb ddr3 1600

Would you happen to know your config version?

sorry forgot to include that,
comp (original): 6.5.8
medium (troubleshoot): 6.7.0

Could you try the 7.0.0a2 pre-release?

Okay, I'll get back to you with that

Any updates?

lol sorry, never finished responding to this, have had this open in a tab and not send for a couple of days.
using the vpk in the a2 release seems to have fixed it!


Allow enumerables to return non-const references

Is that possible for the linq operations to return a vector of references to the element in the original vectors? like a vector of reference_wrapper?
It's useful when the object is stored as value(vector) but I want the reference to the original element in the vector after some linq operations.
Is that possible? Or there is some alternative ways?
Thanks 😄

Some operators, like distinct, except, etc. already work this way - they return references to the elements in the original sequences. Other operators cannot because they transform the elements, like select.
Were you having problems with a specific operator that I could look at?

Uhmm, let say I want to modify the content of all element from a subset of original elements...
vector<Request> requests = <source of things here>
	| where([&](Request request) { return <some predicate>; })
	| to_vector();
for (auto request : requests)
{
	request.Status = "modify something here...";
}

(Am I doing this right?)

to_vector cannot return references, because if they come from a temporary, that would result in invalid refs. However, it's not necessary to actually convert this to a vector - you can use the result of the where operator directly:
auto requests = <source of things here>
              | where([&](const Request& request) { return <some predicate>; });
for (auto& request : requests) {
    request.Status = "modify something here...";
}

This way, you should be able to modify the elements of the original sequence directly.

Thanks! I will give it a try!

I tried it and it doesn't work. I forgot that the LINQ operators generally return enumerables, which always return const refs.
This was a design choice to keep enumerable simple (otherwise you'd have to deal with const-ness in a lot of places)... so I'd say that, right now, it's a limitation of the library and it's not possible to do what you're trying to do. Sorry.

Uhmmm.. Never mind!
There is always an alternative, right?
😄

I'll turn this into an enhancement - there might be a clean way of doing it. :-)

There is a new pre-release version of coveo::linq that now supports non-const references. This means the following code should work:
std::vector<int> v = { 42, 23, 66, 7 };
using namespace coveo::linq;
auto evens = from(v)
           | where([](int i) { return i % 2 == 0; });
for (int& i : evens) {
    i *= 2;
}
// v is now { 84, 23, 132, 7 }

Feel free to try it and see how it goes on your end. I'm going to perform a few more tests before I release it officially.

Ok sure!
Thanks! 😄

This is now live as of release 2.0.

Seems like after https://github.com/coveo/linq/commit/28f22828d2bd196da0ca3ca9982b9cca1b8a6c1c, operators like last, first, etc do not return reference to the element anymore? Anyway to get back the original behavior?
after almost 1 year, I came back and used this library for my uni project again... and man C++ still feels like dark magic to me...

Yeah, that's actually a bugfix for them to work with some LINQ operators... I don't really like the current implementation of enumerable that returns references to temporaries inside the iterator, it breaks the C++ way of doing things. It's the best we have right now, but it's definitely on my radar to be modified in some way in the future.


Proxy support in a UI Extension for remote connections

This is Shantnu from Azure ML - Remote Extension team
One of our customers is trying to use proxy support in VSCode by setting the field "http.proxy" in the VSCode settings
But, when he is trying to open up a remote connection, it doesn't work
Upon inspecting the settings in the remote window, we couldn't find the setting "http.proxy" under user settings and the Remote settings were empty
Do you know how we can use the proxy settings for a UI extension ?

@sandy081 Should the http.proxy setting be available in user and remote settings? I seem to remember that you made this a special case to support different values in local and remote extension hosts.

This setting is machine scoped unless the remote says to use host proxy. This means, in remote this setting is read from remote machine unless the remote says not to.

Upon inspecting the settings in the remote window, we couldn't find the setting "http.proxy" under user settings and the Remote settings were empty

So in this case, it is available in remote machine settings.

@sandy081 I understand that the proxy settings for the remote machine is under remote machine settings and that can be used by a workspace extension but my question is:
How does a UI extension deal with proxy setup on the host machine when making HTTP/Websocket calls from inside the resolver ?
My understanding is for workspace extensions, VSCode takes care of the proxy settings in the background by patching the HTTP library, but does it also work for UI extensions ?

This should work with all extensions (it is a feature the extension host implements). Which Remote extension are you looking at?

vscode-ai.azureml-remote

@chrmarti Just a quick update:

The step which is failing does not make a HTTP request but rather uses . @jupyterlab/services npm package to open a Websocket connection.
An  another step which is making  HTTP request is completed successfully.

Is there anything special about Websockets that we need to do on our side or is it the same behavior like HTTP when behind a proxy ?

How is the websocket connection set up? The proxy support only patches the http/s modules.

I am not really sure how @jupyterlab/services does it but most of the services use npm's ws package

@chrmarti This was a customer issue that came a long time ago. We haven't heard from the customer or for that matter any other customer, so I am assuming the issue was resolved. You can close this now :)


selected or unselected attributes color issue

Hi,
Selected or unselected color attributes ((un)selectedStrokeColor, (un)selectedTextColor ... ) cannot be white. They accept any other colors, even a white color with alpha value, but it cannot be fully white (#ffffff).

Hi, the white color problem is now solved, here is the new version
implementation 'com.github.RobertApikyan:SegmentedControl:1.1.3'


add unwrapF and unF

fixes #10

This came up in slack just now.  I mentioned that Invariant (imap unwrap wrap) might make more sense as the constraint because this is still applicable to contravariant functors.  But having said that; we rarely seem to use Invariant, so perhaps having multiple declarations would be better - one for Functor and one for Contravariant?

I see this unwrapF useful for structures which contain multiple values: Array, List, some other Tree structures, as otherwise you would need to iterate on all values and apply id to each of them.
All this are Functors. As I understand most Contravariant functors have a function underneath so f a "consumes" values of type a and usually they consume just one a so it's not that costly to cmap unwrap when you are going to run the unwrap on one value. I might be missing something  tho, but if not, it means the unwrap specialized for Contravariant will be not that useful.
If you think it's worth adding tho what you think about the names? are this fine: unwrapCF and unCF ?

Since we're implementing this as a straight coerce, we could drop the constraint entirely too?

If we drop than it might be unsafe

Yes, it actually seems to be safe even for contravention functions

There is no telling what a parameter is used for in the general case. Many libraries use unsafeCoerce themselves under the guard of carefully constructed types. The existence of wrapF and unwrapF without the Functor constraint means anyone can reach inside any type and wreck havoc.

@eric-corumdigital there is wrap defined as part of class Newtype, but there is nowrapF. this pr is proposing addition of unwrapF an unF (note this functions have Newtype constraint). It should work fine for bot functors and contravariant functors. Can you point out some example where current definition of unWrapF can cause some issues?

Yes, it works fine for Functors, but wrapF and unwrapF are not constrained to Functor, which is why there is a problem.

.... which is why there is a problem.

But what exactly is a problem? Can you point out some concrete example where the problems of unWrapF (as it's defined now) are ilustrated?

@safareli Data.Set.Set.

Now that we have safe coercions we could, in the spirit of https://github.com/purescript/purescript-newtype/pull/22, constrain unwrapF and unF with Coercible (f t) (f a) instead of Functor f and support both covariant and contravariant functors!
This would make the Newtype t a constraint redundant but we probably want to keep it to aid inference. Ideally we would have a Representational f constraint (given type Representational f = forall a b. Coercible (f a) (f b)) instead of Coercible (f t) (f a) but this requires constraint kinds and quantified constraints, we’re not there yet.

#22 was merged, so this can move forward.

Is this needed now that we have Coercible? I’d suggest letting people use coerce directly and being done with it.

Those functions could benefit from the functional dependency brought by the Newtype constraint, I’d be inclined to revisit this after 0.14 though: perhaps bare coerce will be enough for most cases and perhaps we’ll discover more helpful combinators for the rest.

I've addressed the merge conflict. Are we still interested in adding this?

CI is now failing with:
[1/1 NoInstanceFound] src/Data/Newtype.purs:62:11

  62  unwrapF = coerce
                ^^^^^^

  No type class instance was found for

    Prim.Coerce.Coercible (f0 t1)
                          (f0 a2)

  while checking that type forall (a :: Type) (b :: Type). Coercible @Type a b => a -> b
    is at least as general as type f0 t1 -> f0 a2
  while checking that expression coerce
    has type f0 t1 -> f0 a2
  in value declaration unwrapF

  where f0 is a rigid type variable
          bound at (line 62, column 11 - line 62, column 17)
        t1 is a rigid type variable
          bound at (line 62, column 11 - line 62, column 17)
        a2 is a rigid type variable
          bound at (line 62, column 11 - line 62, column 17)

           Src   Lib   All
Warnings   0     0     0
Errors     1     0     1


Draft of Storage Bucket Level IAM samples

TODO:

[ ] push functional tests to this pull request

Check out the failing tests - the code standards are off.  It should be pretty straightforward to follow  (see here)
Remove the preceeding \ from all those exceptions.


Problem Decoding Public Key

I'm trying to submit a signed transaction.
I have everything working up to the point of submitting the signed transaction to the backend after clicking "allow" on the approval window, and getting back the users object as well as the signedTransactionHex.
However, when I try to submit to the "submit-transaction" endpoint with the signed request, I keep getting the following error:
2021-05-14T00:30:00.151Z	71abea49-9d49-4fdc-836c-fa8e9b8194a9	INFO	{
error: ': SubmitPost: Problem decoding public key : : CheckDecode: Invalid input format'
I have checked and re-checked and the public key input format seems fine. I am assuming this is the public key of the active user which is the "publicKeyAdded" property.
Any help would be appreciated. Thanks!!

Nevermind, looks like I was hitting wrong endpoint.


[signing] Offline signing demo

Offline Signing Demo with SoftHSM2
This is a demonstration of offline signing using SoftHSM2 as a stand-in for a PKCS#11 HSM.
The SoftHSM configuration is described in //signing/softhsm/README.md
The configuration (such as it is) simply initializes a SoftHSM2 token.
The offline signing process is described in //signing/rom_ext/README.md
The process has three major steps:

Generate pre-signing artifacts.
Use the HSM to sign those artifacts.
Attach the signatures to the pre-signed artifacts.

HSM operations are performed by a simple python script in //sw/host/hsmtool.  This script will grow to accommodate real (physical) HSMs.

Obsolete


[ENHANCEMENT] Delete [default_]type_parameters(::Type, ::Tuple), use [default_]type_parameters.(::Type, ::Tuple) instead

@lkdvos I guess this was completed in #9?

yes, both type_parameters and default_type_parameters have that behavior


Lcov coverage

Added action to generate code coverage using lcov.
My lane as example :
desc "Runs all the tests"
  lane :test do
    xctool :test , [
      "-workspace", "MyWorkspace.xcworkspace",
      "-scheme", "MyScheme",
      "-configuration", "Debug",
      "-reporter", "plain",
      "-sdk","iphonesimulator",
      "GCC_GENERATE_TEST_COVERAGE_FILES=YES", #Needed to gen coverage files used by lcov
      "GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES"#Needed to gen coverage files used by lcov
    ].join(" ")

    lcov(
      project_name: "MyProjectName",
      scheme: "MyScheme",
      output_dir: "cov_reports" #Optional value . Default is coverage_reports
    )
  end

Weird why its complaining about a change in actions md , I've ran all the tests everything is working fine . I've also deploy the gem and tested through , everything is fine . =X

Thanks for the pull request, I'll review it today :+1:
It's complaining, because the test coverage was decreased by 0.07%.

Looks great, thanks @thiagolioy for working on this :+1: I added some comments.

Could you also get rid of
@@derived_data_path

I don't think we should be using @@

Instead make a method
def derived_data_path
  "path"
end

Sure .. :)

I added some more comments before it's ready to merge. Sorry for being so picky :wink:

Ok .. No problem at all
Sent from my iPhone

On Jul 2, 2015, at 6:26 PM, Felix Krause<EMAIL_ADDRESS>wrote:
I added some more comments before it's ready to merge. Sorry for being so picky
—
Reply to this email directly or view it on GitHub.

Looks great, thanks for contributing :+1:

I just checked, we don't need the handle_exceptions part, as this is done by the config items themselves.
I removed the code and tests for that part.
Thanks again :rocket:


Coding Standards

What are the coding standards used for the project ?
My IDE (phpstorm) is configured with Symfony2 CS but I see @pierrejoye fixing the spaces between . on string concatenation :stuck_out_tongue:
As I've the habit of regularly launch the auto-format of the code, it would be usefull to know which CS is used and perhaps enforce verification via a tool like https://github.com/M6Web/Coke on build process on Travis CI.

Old habit :)
I will try to pay more attention :D
I however run php-cs regularly!
On Apr 20, 2015 1:55 AM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

What are the coding standards used for the project ?
My IDE (phpstorm) is configured with Symfony2 CS but I see @pierrejoye
https://github.com/pierrejoye fixing the spaces between . on string
concatenation [image: :stuck_out_tongue:]
As I've the habit of regularly launch the auto-format of the code, it
would be usefull to know which CS is used and perhaps enforce verification
via a tool like https://github.com/M6Web/Coke on build process on Travis
CI.
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/pickleweb/issues/17.

and php-cs-fixes says:

operators_spaces                   [symfony]
Operators should be arounded by at
least one space.

not sure anymore. Up to you, if you have a config file, we can use it :)

I use https://github.com/M6Web/Symfony2-coding-standard as config file to use with coke.
I can share my phpstorm conf if anyone is interested. I'll add the dependancies in composer.json at noon and fix the CS.

Done in a3f5f7122b0750363090188ea9b2cb7bb56cfd26

Do you have the file for php-cs? Or is it the same?
On Apr 20, 2015 6:17 PM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

Done in a3f5f71
https://github.com/FriendsOfPHP/pickleweb/commit/a3f5f7122b0750363090188ea9b2cb7bb56cfd26
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94426482
.

Coke is a wrapper around php-cs so the m6web coding standards will work with it

Great, so I can use this file for php-cs, maybe add it to /doc?
On Apr 20, 2015 7:27 PM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

Coke is a wrapper around php-cs so the m6web coding standards will work
with it
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94438515
.

No need, it is handled by composer

I run php-cs before every commit, that's why
On Apr 20, 2015 8:41 PM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

No need, it is handled by composer
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94453877
.

so run vendor/bin/coke now ;)
On 20/04/2015 15:49, pierrejoye wrote:

I run php-cs before every commit, that's why
On Apr 20, 2015 8:41 PM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

No need, it is handled by composer
—
Reply to this email directly or view it on GitHub

https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94453877

.

—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94455921.

Wooot! You rock!
On Apr 20, 2015 9:02 PM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

so run vendor/bin/coke now ;)
On 20/04/2015 15:49, pierrejoye wrote:

I run php-cs before every commit, that's why
On Apr 20, 2015 8:41 PM, "Bruno CHALOPIN"<EMAIL_ADDRESS>wrote:

No need, it is handled by composer
—
Reply to this email directly or view it on GitHub

<
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94453877>

.

—
Reply to this email directly or view it on GitHub
<
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94455921
.

—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/pickleweb/issues/17#issuecomment-94459400
.


[BUG] Stray space in "homepage", pacakge.json

Describe the bug
Inside package.json, the "homepage" value has an extra space in it:
https://github.com/chenasraf/simple-scaffold/blob/ff142d7532bc18b9005e0d2a92966f917a0c8971/package.json#L5C4-L5C13
How To Reproduce
Steps to reproduce the behavior:

npm home simple-scaffold
npm error Invalid URL: https:%20//chenasraf.github.io/simple-scaffold

Expected behavior**
Browser window opens pointing at https://chenasraf.github.io/simple-scaffold
Desktop (please complete the following information):

OS: macOS
OS Version: 14.8.1
Node.js: v22.7.0
Simple Scaffold Version 2.2.1

Thanks for the report! I will fix it asap
Just out of curiosity, is there any sort of impact for you other than the warning?

It wasn't just a warning, the URL didn't work, making me think the project was dead.  The third time this happened to me and I actually looked at the URL instead of making assumptions, I figured I'd file a bug. :)
Thanks for the quick fix!

Dunno how it got in there :P thanks again for the report, if you have any more ideas/feedback let me know :)


Add gutter icon for runnable targets in Blaze Build file

Background:
Currently you can right-click a build target and get contextual run actions. However this action isn't very discoverable and I was surprised when several of my colleagues didn't know the IDE supported this feature.
Goal:
I propose that a gutter icon be added to runnable build targets similar to how Intellij already adds a gutter icon to junit tests.

Design:
It seems straightforward leverage the ideas from BlazeBuildFileRunConfigurationProducer and put them into a RunLineMarkerContributor.

This sounds like a good idea. The two main issues I can think of:

the options should exactly match those you get in the context menu (possibly don't show the 'create' option, to keep it consistent with upstream gutter actions, though personally I use that a lot)
avoid any work on the EDT

Otherwise, sounds great -- thanks for the suggestion and PR. Rather than go back-and-forth on the PR, I'll look at applying this upstream, modifying to fit our code style, etc.

Good morning, @brendandouglas. That's excellent news, let me if you need any help.

the options should exactly match those you get in the context menu (possibly don't show the 'create' option, to keep it consistent with upstream gutter actions, though personally I use that a lot)

I may be mistaken but I believe ExecutorAction.getActions() eventually gets delegated to
BlazeBuildFileRunConfigurationProducer which powers the context menu and will produce the same actions.

avoid any work on the EDT

Good point! I was concerned about tying up essential threads but I didn't know what concurrent options were available. My concerns were abated when I took a cursory look at other RunLineMarkerContributor classes in the codebase and didn't find any explicit concurrent programming -- although it's no reason not do things correctly in this file.

Should be done in the next release -- closing.

Cheers! That's great news. Thank you for getting the feature in.


'issubclass() arg 1 must be a class' with generic list

Initial Checks

[X] I have searched GitHub for a duplicate issue and I'm sure this is something new
[X] I have searched Google & StackOverflow for a solution and couldn't find anything
[X] I have read and followed the docs and still think this is a bug
[X] I am confident that the issue is with pydantic (not my code, or another library in the ecosystem like FastAPI or mypy)

Description
issubclass fails on when the type checked is a generic container
Example Code
import pydantic

class MyModel(pydantic.BaseModel):
    pass

issubclass(list, pydantic.BaseModel)
# False
issubclass(list[MyModel], pydantic.BaseModel)
# TypeError: issubclass() arg 1 must be a class

Python, Pydantic & OS Version
pydantic version: 1.10.2
            pydantic compiled: False
                 install path: /home/matte/.cache/pypoetry/virtualenvs/gsmtasks-client-enuYBuiM-py3.9/lib/python3.9/site-packages/pydantic
               python version: 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110]
                     platform: Linux-5.10.0-19-amd64-x86_64-with-glibc2.31
     optional deps. installed: ['email-validator', 'typing-extensions']

Affected Components

[ ] Compatibility between releases
[ ] Data validation/parsing
[ ] Data serialization - .dict() and .json()
[ ] JSON Schema
[ ] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[X] Other Model behaviour - construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

this is just python, it's not specific to pydantic.

Is it a good work-around? (works for me so far - with the generic list)
pydantic.BaseModel in inspect.getmro(typ)

no, you're better to use typing_extensions.get_origin.

But I don't know if it's a generic class there. Could be str

Then you'll need to write some more complex logic 😀.


Charts[Gateway] Add Gateway API Route For Hedera Explorer

Feature to Enhance
Need to be able to to expose hedera-explorer using a Gateway Port
Requested Enhancement
Expose a port for hedera-explorer through Gateway API. For now we can expose it at 8888
Business Need
This enables users to view the hedera-explorer running within the cluster.
Additional Context
No response

Here are some existing routes for reference: https://github.com/hashgraph/full-stack-testing/tree/main/charts/fullstack-deployment/templates/gateway-api
We need to add  httproute in a new yaml file: hedera-explorer-routes.yaml

Currently we can expose the svc/fst-hedera-explorer directly as below:
kubectl port-forward svc/fst-hedera-explorer 8888:80

and view in the browser as below:

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Fix write fails for multiple points when tag starts with quote

Quotes in tags should are not special.  We were scanning to far if there was an unbalanced quote in the tags section.  This updates scanLine to only handle quotes differently if it's scanning in the fields section or later.
Fixes #3928

Just so I am clear, what is meant to happen here? Does the leading quote become part of the tag value?

@otoolep Yes
> show series
name: baz
---------
_key		mytag
baz,mytag="a	"a
baz,mytag=a	a

Some minor feedback, but +1.


Staging

Deploy preview for fcccolumbus processing.
Built with commit 210ed98f2892725221cb6b6ad42e2f8106c86f87
https://app.netlify.com/sites/fcccolumbus/deploys/5b2007c1dd6a540f23efc80d

Coverage remained the same at 64.286% when pulling 210ed98f2892725221cb6b6ad42e2f8106c86f87 on staging into 9b95e2cb658818729d6a51d2093129c91305d6d0 on master.


renovatebot(deps): update dependency org.jruby:jruby-complete to v<IP_ADDRESS>

This PR contains the following updates:

Package
Update
Change

org.jruby:jruby-complete
patch
<IP_ADDRESS> -> <IP_ADDRESS>

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR is stale, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Move the Steam username to configuration file

The environment variable should still be used in priority.
The configuration value should be used when no environment variable is set.


update wizard for new flags

We have deprecated the X experimental flags for SNAP and CHECKPOINT. This PR reflects those changes.

Awesome - this is great! Please let me know how we can help on the Besu side. We have the authorized dev account ready this time as well.


Breakpoints can be improved

Currently, the breakpoints are handled like this:
@media (max-width: 486px) { ... } // mobile
@media (min-width: 487px) and (max-width: 768px) { ... } // landscape-mobile
@media (min-width: 769px) and (max-width: 991px) { ... } // tablet
@media (min-width: 992px) and (max-width: 1399px) { ... } // small-monitor
@media (min-width: 1400px) { ... } // monitor

This approach has a few problems:

It is neither mobile-first nor desktop-first. Breakpoints should typically only travel in one direction (pick one of the ends as a default, and then use only min-width or only max-width. There are very limited uses for specifying both constraints.
It doesn't account for fractional widths (e.g. 486.5px will match neither mobile nor landscape-mobile) which are sometimes possible, especially with iframes.
The breakpoints should be converted from pixels to rems for better accessibility.
The values picked for each breakpoint don't exactly match up with the real screen resolutions; I'm not sure why those random values were chosen. I took some time to map out global screen resolution stats according to widths and found that 500px, 1100px and 1500px work great as breakpoint values.

This will still not account for the many permutations within these sizes, e.g. changed font size, resized window, multi-window on android/ipad. And that's fine, it is still a much more methodic approach based on real data rather than picking random values from other projects (which might in turn be based on random values picked by yet other projects).

Further reading: https://www.freecodecamp.org/news/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862/

Breakpoints were chosen based on this article: https://polypane.app/blog/css-breakpoints-used-by-popular-css-frameworks/ (not random)

Also, breakpoints were chosen based on the same article that you gave here, that says not to take some specific resolution.

Breakpoints were chosen based on this article: polypane.app/blog/css-breakpoints-used-by-popular-css-frameworks (not random)

Those are random though. We don't know how those frameworks came up with those values, and they might have copied even other frameworks.

Also, breakpoints were chosen based on the same article that you gave here, that says not to take some specific resolution.

Then how did we arrive at values like 769 and 991? Those are currently the bounds of tablet breakpoint and they will not match 768x1024 and 1024x1366, both of which are tablets. I think there are also some smaller tablets with resolutions like 601x962.

Even if you insist on keeping the same breakpoint values, the other three points I mentioned still apply.


Same Lock Icon is being Displayed for both Allow Transfer and Disable Transfer

Describe the bug
In patient details page the dynamic button to change the transfer status has same icon in both cases
To Reproduce
Steps to reproduce the behavior:

Select a patient
Click on Patient Details
Tap on Allow Transfer / Disable Transfer
See error

Expected behavior
The lock icon should change from lock to unlock and unlock to lock on click
Screenshots

Desktop (please complete the following information):

OS: Windows
Browser Chrome
Version Latest

I want to work on this issue @rithviknishad @Jacobjeevan


Fixes/improves introductory tutorial

introduces numbering of sections
fixes #6359

Coverage remained the same at 78.18% when pulling fcdcc0a516dddf56eaab6b8b91b94b700d06dd71 on fix-intro-docs into 61dfbdb58664f6468ebb0b189fe9403404b49272 on develop.


Python Twisted Wokkel keeps disconnecting

For some reason my bot keeps disconnecting, following by a reconnect. I thought it might had to do with responding to probes to keep alive, but I'm still being disconnected after ~3 minutes. Example code:
from twisted.words.xish import domish
from wokkel.xmppim import MessageProtocol, AvailablePresence
from twisted.words.protocols.jabber.jid import JID
from wokkel.client import XMPPClient
from wokkel import component, server, xmppim

#Config
THIS_JID =<EMAIL_ADDRESS>ROOM_JID =<EMAIL_ADDRESS>NICK = 'Bad Robot'
SECRET = 'testpwd'

# Protocol handlers

class PresenceAcceptingHandler(xmppim.PresenceProtocol):
    """
    Presence accepting XMPP subprotocol handler.

    This handler blindly accepts incoming presence subscription requests,
    confirms unsubscription requests and responds to presence probes.

    Note that this handler does not remember any contacts, so it will not
    send presence when starting.
    """
    def subscribedReceived(self, presence):
        """
        Subscription approval confirmation was received.

        This is just a confirmation. Don't respond.
        """
        pass

    def unsubscribedReceived(self, presence):
        """
        Unsubscription confirmation was received.

        This is just a confirmation. Don't respond.
        """
        pass

    def subscribeReceived(self, presence):
        """
        Subscription request was received.

        Always grant permission to see our presence.
        """
        self.subscribed(recipient=presence.sender,
                        sender=presence.recipient)
        self.available(recipient=presence.sender,
                       status=u"I'm here",
                       sender=presence.recipient)

    def unsubscribeReceived(self, presence):
        """
        Unsubscription request was received.

        Always confirm unsubscription requests.
        """
        self.unsubscribed(recipient=presence.sender,
                          sender=presence.recipient)

    def probeReceived(self, presence):
        """
        A presence probe was received.

        Always send available presence to whoever is asking.
        """
        self.available(recipient=presence.sender,
                       status=u"I'm here",
                       sender=presence.recipient)
        print "probe send!"

class EchoBotProtocol(MessageProtocol):
    def connectionMade(self):
        print "Connected!"

        # send initial presence
        self.send(AvailablePresence())

    def connectionLost(self, reason):
        print "Disconnected! "+str(reason)

    def onMessage(self, msg):
        print str(msg)

        if msg["type"] == 'chat' and hasattr(msg, "body"):
            reply = domish.Element((None, "message"))
            reply["to"] = msg["from"]
            reply["from"] = msg["to"]
            reply["type"] = 'chat'
            reply.addElement("body", content="echo: " + str(msg.body))

            self.send(reply)

if __name__ == "__main__":
    # Start as a regular Python script.

    import sys
    from twisted.python import log
    from twisted.internet import reactor

    log.startLogging(sys.stdout, setStdout=0)
    client = XMPPClient(THIS_JID, SECRET)
    client.logTraffic = False
    client.send('<presence/>') # Hello, OpenFire!
    client.startService()

    presenceHandler = PresenceAcceptingHandler()
    presenceHandler.setHandlerParent(client)

    personalHandler = EchoBotProtocol()
    personalHandler.setHandlerParent(client)

    reactor.run()
else:
    # Start as a Twisted Application

    from twisted.application import service
    application = service.Application("MUC Client")

    client = XMPPClient(THIS_JID, SECRET)
    client.logTraffic = False
    client.setServiceParent(application)

    presenceHandler = PresenceAcceptingHandler()
    presenceHandler.setHandlerParent(client)

    personalHandler = EchoBotProtocol()
    personalHandler.setHandlerParent(client)

The log looks like this:
Connected!
Disconnected! [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionDone'>: Connection was closed cleanly.
]
2012-03-08 11:24:06+0100 [XmlStream,client] <wokkel.client.XMPPClientConnector instance at 0x1016d1ea8> will retry in 3 seconds
2012-03-08 11:24:06+0100 [XmlStream,client] Stopping factory <twisted.words.protocols.jabber.xmlstream.XmlStreamFactory object at 0x1016d4710>
2012-03-08 11:24:09+0100 [-] Starting factory <twisted.words.protocols.jabber.xmlstream.XmlStreamFactory object at 0x1016d4710>
2012-03-08 11:24:09+0100 [-] DNSDatagramProtocol starting on 56948
2012-03-08 11:24:09+0100 [-] Starting protocol <twisted.names.dns.DNSDatagramProtocol object at 0x1016f0a50>
2012-03-08 11:24:09+0100 [-] (UDP Port 56948 Closed)
2012-03-08 11:24:09+0100 [-] Stopping protocol <twisted.names.dns.DNSDatagramProtocol object at 0x1016f0a50>
Connected!

Enabling logTraffic doesn't help, as I don't see any messages about my disconnect. Can you help me out? Many thanks!

It might be that your server is configured to close idle connections after a while. Three minutes sounds really quick, though. Are you talking to a public server? If so, which one? If not, which server implementation is it? I've noticed this behavior with OpenFire servers.
A few notes on the code itself:

You should use AvailabilityPresence instead of AvailablePresence. It doesn't matter much in this case, but when I get around moving stuff to Twisted proper, I'll only move PresenceProtocol and its associated Stanza-derived classes.
Presence is being sent twice on the first connect if you are not using twistd, because of the client.send('<presence/>'). Just sending presence from connectionInitialized suffices, and also works on reconnects.
You might want to use PresenceProtocol.available instead of crafting the stanza itself. This could be done either by calling it from PresenceAcceptingHandler.connectionInitialized (be sure to up call!) or by passing a reference to that handler to EchoBotProtocol and call available from there.


[google_sign_in] Add ability to request serverAuthCode on Android

Description
Before this it was not possible to request an authCode from GoogleSignIn in order to authenticate with a backend.
Related Issues
flutter/flutter#16613
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

I signed it!

It seems to be similar to https://github.com/flutter/plugins/pull/879.
@ambernardino Is your PR trying to do the same thing as the other PR?

It seems to be similar to #879.
@ambernardino Is your PR trying to do the same thing as the other PR?

It seems they are solving similar problems. This one is using what's in google-services.json whereas #879 is requiring the developer to pass the serverClientID manually.

Closing this PR since it doesn't have iOS implementation.
https://github.com/flutter/plugins/pull/2116 seems have both implementations.


Missing Images

In one of my scenes I added a bunch of screenshots then used excalidraw to comment on top of them. Everything was fine for a week but today all the images won't load and I'm not sure what changed. My others scenes all seem to be working just fine.

can you open in markdown view mode and take a look at the filenames? It seems Excalidraw cannot find the files. Do those links in markdown view look ok? if you click them do the images open?

By other scenes do you mean using using multiple tabs ?

On the left hand side you can see different "scenes" (seems to be the excalidraw terminology) and those others have their images rendering just fine

Forgot to get back, but this should have been fixed for some time now. If you're still experiencing any issues, please contact us on<EMAIL_ADDRESS>


ZSCV_SEARCH_INDEXER Job running for 4 hrs

Hi ,
@alwinvandeput
I just imported latest version of repository in the sytem.
As a first step, I scheduled job (Refresh full update) and it's been runnning for 4 hrs and still active. Note that this is Demo system.

PFB HANA version.

I wonder how long it takes on a customer system which is on (S4HANA 2021).

Job got finished finally after 5 hours.


Generate reference from GDScript comments

GDScriptify might work with some patching

I'm considering this impossible for now, with the following options evaluated:

GDScriptify

Generated broken links
Adds unnecessary spaces to class- and filenames

gdscript-docs-maker

Fails without any error message
Trying to run the scripts in the project crashes the editor

Godot CLI

Does not consider addon code by default
Refuses to load autoloads if it's project code
Refuses to load recursively if it's used with --gdscript-docs <path>

As a workaround, I'll write a dedicated docs page for the major classes, but methods and such will be enumerated at most.


widthForComponent not setting desired width

I am attempting to set a custom width for devices > 375 technically ipads to take a specific amount of width but not matter the width I return the drop down menu's width stays at I guess the default size. In addition, I have set the setUseFullScreenWidth to NO on viewDidLoad, if that makes any difference. This is the code I am using and a screenshot of the simulator on ipadAir2 is attached as well
- (CGFloat)dropdownMenu:(MKDropdownMenu *)dropdownMenu widthForComponent:(NSInteger)component {
    if(self.view.frame.size.width > 375) {
        [dropdownMenu setUseFullScreenWidth:NO];
        return 100.0;
    } else {
        [dropdownMenu setUseFullScreenWidth:YES];
        return 0;
    }
}

Hi @serjooo!
If I understood your setup correctly, you have 2 components in your menu.
The width for components is calculated left-to-right. If you provide the same value for all components and the total view width is greater than the sum of all components' widths, then the last (right-most) component will take the rest of the space, ignoring the specified number.
To work around this issue, you can specify the exact width for the desired component and set automatic width for the others:
- (CGFloat)dropdownMenu:(MKDropdownMenu *)dropdownMenu widthForComponent:(NSInteger)component {
    if (self.view.frame.size.width > 375) {
        [dropdownMenu setUseFullScreenWidth:NO];
        return component == 1 ? 100.0 : 0.0;
    } else {
        [dropdownMenu setUseFullScreenWidth:YES];
        return 0;
    }
}

Also, you can take a look at the following delegate method:
/// Return NO if the component is used as a dummy space for other components
/// and should not be interacted with. The disclosure indicator is hidden
/// for such components. Default = YES.
- (BOOL)dropdownMenu:(MKDropdownMenu *)dropdownMenu enableComponent:(NSInteger)component;

In case you need some specific layout for your menu, you can add some empty components.
Hope this helps 🙂

Hello,
Sorry I'm late for replying, got really busy and had found a different workaround for this. However, the setup you thought I have is wrong. I have One component and this component I was attempting at giving it different widths according to screen size. However, no matter the size I return, the width of the component was staying at the default size set in the class.

@serjooo I tried to reproduce your issue with one component, but it all worked as expected. The device screen size also didn't matter.
Did you have any issues with implementing the same thing with the Demo app? If you provide more details on your menu setup, I'd be happy to help.

I can confirm this bug. I set the width as below, and in iPhone SE it takes over the whole width. The funny thing is in iPhone 6, it the margins work. But in iPhone SE, it is full width no matter what value I set this to.

(CGFloat)dropdownMenu:(MKDropdownMenu *)dropdownMenu widthForComponent:(NSInteger)component {
return CGRectGetWidth([UIScreen mainScreen].bounds)-32.0;
}


Hitting secondary rate limits

e.g. https://github.com/nodejs/nodejs-dependency-vuln-assessments/actions/runs/3341823626
https://github.com/nodejs/nodejs-dependency-vuln-assessments/actions/runs/3341823626/jobs/5533421701
ℹ  info      Fetching all issues with title "CVE-2022-3358 (OpenSSL) found on main"
Error: You have exceeded a secondary rate limit. Please wait a few minutes before you try again.
✖  fatal     HttpError: You have exceeded a secondary rate limit. Please wait a few minutes before you try again.
    at /home/runner/work/_actions/dblock/create-a-github-issue/v3/dist/index.js:6038:21
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async createAnIssue (/home/runner/work/_actions/dblock/create-a-github-issue/v3/dist/index.js:37939:[32](https://github.com/nodejs/nodejs-dependency-vuln-assessments/actions/runs/3341823626/jobs/5533421701#step:3:33))

@facutuesca

@richardlau that might be because with your update to generate the list of streams we now do all lines at the same time, versus having them spread out a bit? I know that I had scheduled at least some of them to run several hours appart.
Is there some way that we can lauch the jobs for each version spaced out in time ?

@richardlau @mhdawson I created a PR to try to fix it: https://github.com/nodejs/nodejs-dependency-vuln-assessments/pull/81

@richardlau, @facutuesca can you take a look. I think the job I started to test looked ok, but would be good to have a few other people confirm

The job looks good to me (no rate limits failures). Looking at Github's docs on secondary rate limits:

Make requests for a single user or client ID serially. Do not make requests for a single user or client ID concurrently.

The merged PR should have taken care of it by running each action/step sequentially instead of in parallel

k, going to close out this issue.


Split out NLayout rust class into standalone Python module

Summary
This commit moves the NLayout rust class out of the stochastic swap python module into a new standalone nlayout module in qiskit._accelerate. The NLayout class was originally added with the stochastic swap rust code, but since then it's started being used by other rust code including SabreSwap (and soon to be VF2Layout and VF2PostLayout scoring in #9026).
Details and comments

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

8 of 9 (88.89%)  changed or added relevant lines in 5 files are covered.
19 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.03%) to 84.488%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/nlayout.rs
3
4
75.0%

Files with Coverage Reduction
New Missed Lines
%

src/optimize_1q_gates.rs
1
95.16%

src/sabre_swap/mod.rs
1
95.3%

qiskit/extensions/quantum_initializer/squ.py
2
79.78%

src/results/marginalization.rs
15
79.89%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
62348

Relevant Lines:
73795

💛  - Coveralls


Add support for environment

In some environments, the node names are reasonably obscure so it may be good to include an option to send the chef environment. I believe this is usually accessed via node.chef_environment.

@c-knowles how are you envisioning this on the slack end? "#{node. chef_environment}:#{node.name}" vs "#{node.name}"?

I've got most of this ready in my fork but not pushed it yet. I was thinking "#{node.name} (#{node.chef_environment})" at first but perhaps putting the environment first makes more sense. Let me know what you think and I can change it before I finalise the push.

Personally i think env first makes sense, however with the env in () after would work too

How about we go with the explicit version of "env #{node.chef_environment}, node #{node.name}"?

Resolved in https://github.com/rackspace-cookbooks/chef-slack_handler/pull/24


Download Flagged by antivirus and windows defender

Download Flagged by antivirus and windows defender is this safe to download?

Above your actual script, just add an additional script which disables Real-Time protection in Windows. And it should download without issues.


Javascript updates merged

I manually merged your master with mine, so it should be ok. we were working on different things so it wasn't hard.
but the premade buttons for attacks don't work, so i messed up something. every other roll button works that I tried.
I mainly stuck to pages 1-4.

I'm still learning github.  I tried to manually merge due to conflicts detected, but after following the instructions on git I gave up when it felt like I was going to totally screw the pr to the master repo.  Used your code to make a new PR.  Closed this one.


Selecting multiple buildings

Cannot select multiple buildings.
Lasso select ALWAYS selects points, and NEVER buildings. Even when EVERYTHING except buildings are hidden using the Map Data panel. It always insists on selecting points.
It also doesn't even select points when zoomed out to some point. It then just becomes a fancy drawing tool that doesn't do literally anything.

This is a duplicate of #7375.
As of #8264, there’s a shortcut you can press to select the buildings instead of their vertex nodes. Drag a ring around the buildings while holding down Shift, then press |. This feature hasn’t been released yet, but you can try it out in the development preview for now.

Press what? Is that an l, 1 or | ? 🙂

Press what? Is that an l, 1 or | ? 🙂

Sorry for the late reply. That was a vertical bar. Thankfully, the shortcut has been changed back to Ctrl plus the up arrow (⌘↑ on macOS), and it is now available on osm.org.

could someone then also make it so that selection never selects hidden features?

I can’t reproduce this issue in iD v2.23.0. Is it still selecting hidden features for you?

Yes it is. Just tried it seconds ago:

On the left & on the map, you can see it has managed to select points. On the right, you can see I have unticked points, and only ticked the buildings checkbox.


Source isn't mounted with local source code

I try to run the node_hello example and look likes if build points to local folder, cage status will report the source is mounted but actually it doesn't. I check docker-compose output inside .cage and there is no volumes mount.

Could you please provide me with a walkthrough of how you triggered this using https://github.com/faradayio/cage/tree/master/examples/node_hello ? What commands did you run? What output did you see? What output did you expect?
It's possible this is just a bug in cage status and that you might be able to get correct behavior using cage source mount node_hello. But it's also possible that local source directories don't work with certain cage features, and that I need to fix this.

Hi, here is how to reproceduce the bug:

Clone cage and go into node_hello example

~ cage status
WARNING: No /tmp/cage/examples/node_hello/config/project.yml file, using default values (from cage::project)
frontend        enabled type:service
└─ web          ports:3000 mounted:node_hello

~ cat .cage/pods/frontend.yml
---
"services":
  "web":
    "build": "/tmp/cage/examples/node_hello/pods/../src/node_hello"
    "environment":
      "NODE_ENV": "development"
    "image": "faraday/node_hello"
    "labels":
      "io.fdy.cage.pod": "frontend"
      "io.fdy.cage.target": "development"
    "ports":
      - "3000:3000"

So cage status is wrong here.
~ cage source mount node_hello
WARNING: No /tmp/cage/examples/node_hello/config/project.yml file, using default values (from cage::project)
Now run `cage up` for these changes to take effect.
~ cage up
WARNING: No /tmp/cage/examples/node_hello/config/project.yml file, using default values (from cage::project)
Creating network "nodehello_default" with the default driver
Creating nodehello_web_1 ...
Creating nodehello_web_1 ... done
~ cat .cage/pods/frontend.yml
---
"services":
  "web":
    "build": "/tmp/cage/examples/node_hello/pods/../src/node_hello"
    "environment":
      "NODE_ENV": "development"
    "image": "faraday/node_hello"
    "labels":
      "io.fdy.cage.pod": "frontend"
      "io.fdy.cage.target": "development"
    "ports":
      - "3000:3000"

So it looks like cage source mount isn't working at well. On other hand, other examples with remote source works as expected.

Hello @emk, any updates on this?

No, but thank you for reminding me! I did have just enough time to experiment with this and verify that yes, it does appear to be broken.


Bump for notifications

📈
Sent with GitHawk

@rnystromtest
Sent with GitHawk

Bump
Sent with GitHawk

👩⚕
Sent with GitHawk

👨💻👩💼👩🚀
Sent with GitHawk


Error handling for commands

Hey!
Can't seem to find anyway to handle errors at the command methods themselves. I suggest that in cases where a user run a command but don't add enough arguments or invalid data, a helpful string (such as a usage guide) would be better than a "BadArgCount: The input text has too few parameters.".  Would it be something you'd be interested in to add?

This is already something you could handle yourself... If you'd give this a quick read: post execution handling

Thank you for the quick response! Huh, haven't seen these docs before. Will definitely give a read! Sorry for the inconvenience!


Add click sound (Record)

I think it cool real bcs so many want record Archeron or smth with click sounds

yea fr zcb live literally lagged my whole gd in nessus and pplllife

YEA GOOD IDEA/with noise pls


feat: Seperate deployment location from metadata location

Description

Changed test template parameter from location to resourceLocation in order to not overlap with the deployment invocation's (e.g., New-AzDeployment) '-Location' parameter
In order to use the parameter, we use the existing AdditionalParameters parameter and pass the resourceLocation in (both in the local test script, as well as in the pipeline)
As a result, the original '-Location' parameter will continue to be used with a default location (e.g., 'WestEurope') for the metadata. The dafault is set as a default in the scripts.

The reason for the change is that you cannot store deployment metadata in more than 10 locations per subscription. So that's a limitation we have to cope with, while the same limitation does not exist for the resoruce locations.

Pipeline

 (unrelated error - name in use)

Looks good to me and can add follow up amendments to the script in #829


Remove version: taers232c.GAMADV-XTD3 version 6.80.06

This version is older than what has been set in max-versions-to-keep by the publisher.
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/taers232c/GAMADV-XTD3/releases/download/v6.80.06/gamadv-xtd3-6.80.06-windows-x86_64.msi
OK
(Automated message - build 916)


Add min_width param to AlignTestCases transformer

#242

Codecov Report

Merging #245 (2f945b7) into main (33cd128) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #245   +/-   ##
=======================================
  Coverage   96.42%   96.43%
=======================================
  Files          31       31
  Lines        1819     1824    +5
=======================================
+ Hits         1754     1759    +5
  Misses         65       65

Impacted Files
Coverage Δ

robotidy/transformers/AlignTestCases.py
89.13% <100.00%> (+0.40%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 33cd128...2f945b7. Read the comment docs.


fixed texture uploading for rpi2w

glBindBuffer(GL_PIXEL_UNPACK_BUFFER, output.pbo) is not available in ES2.0 profile. It is part of ES3.0 profile.
Texture upload fails on RPI Zero 2 W. ES2.0 profile should use direct texture upload.
Note: It is available in Opengl CORE 2.0 profile as extension ARB_pixel_buffer_object which is present on RPI Zero 2W.
However my tests show that runnig Core profile with PIXEL_UNPACK_BUFFER works significantly slower then direct texture uploading with ES2.0 profile.
With CORE 2.0 profile it barely keeps 20 FPS 640x480 due to slow texture uploading. With ES20 direc texture uploading it works fine at 800x600 30 fps.

Could you please open issues tab in your repository?

sorry for late response.... I have not recv the email from github.
Thank you for the pr.  Actually I know little about opengl, and your pr seems good.
The only point is that:
Do we need to define the macro IMGUI_IMPL_OPENGL_ES2 in Makefile? or It will auto defined when building IMGUI?

Macro is defined in Makefile already:
CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2

merged, thank you!


Fix Showcase acceptance tests

The tests use GRPC, but Gax recently fixed loading grpc too early.
Because of this, the tests need to require grpc in order to use it.

These changes were included in #145, which was accepted and merged. Therefore this PR can be closed.


NamedRouteCollection’s routes is private in Rails 5

After https://github.com/rails/rails/commit/7187339854d8454fdb3338b3041f89c6ce7e1e41, routes instance variable will not be accessible anymore. Changing that to using key? so this gem can support Rails 5.

this looks good to me, thanks


Character GAN

Experiments for one-hot and real valued character encodings.

Needs:

[] Random Search integration
[] Working trainer
[] Support #84

This works but doesn't converge yet.  I'm going to merge it in and we can treat it as a bug.


[Feature Request]: Converting the query result to Apache Arrow format in server side.

Is there an existing issue for the same feature request?

[X] I have checked the existing issues.

Is your feature request related to a problem?
No response
Describe the feature you'd like
Currently, query results are stored in memory in a columnar format. However, the client expects the results in Apache Arrow format. At the moment, the format conversion is executed on the Python client, but this worsens the performance, so we plan to convert the results to Apache Arrow format on the server side before sending them to the client.
Describe implementation you've considered
No response
Documentation, adoption, use case
No response
Additional information
No response

@JinHai-CN  Hi, I did some investigation on the codebase, mainly focusing on the protocol layer and execution engine of Infinity. Regarding this issue, I have some questions:

Are we planning to use Arrow in-memory format to replace the current in-memory columnar format, or do we only need to support converting the in-memory columnar format to Arrow in-memory format while returning the query result?
Why does our client need to convert query results to Arrow format? Is it for interacting with Infinity using Python SDK in applications integrated with Arrow? I noticed that our examples and tests barely use the to_arrow method.
Why does converting to Arrow format on the client side degrade performance? Here is my understanding:

The conversion from Pandas DataFrame or Polar DataFrame to Arrow format requires serialization and deserialization of metadata and data.
Conversely, if we serialize query result to Thrift or HTTP response using Arrow IPC protocol on the server side, and then deserialize the result using Arrow IPC on the client side, we only pay the cost of serializing and deserializing the metadata since Arrow IPC protocol does not need to serialize the deserialize the data.
In fact, serialization and deserialization overhead for metadata in Arrow IPC protocol can be eliminated in certain scenarios. I have implemented this optimization for GreptimeDB before.
I am not sure if Thrift and HTTP protocols themselves perform additional serialization and deserialization. If we can support the Arrow Flight protocol, we do not need to worry about this overhead.

Is it mandatory for the server to convert query results to Arrow format? Is this conversion a default behavior, or is it optional? If optional, is it configured via server config, or controlled through options sent in client requests?
Do all protocols need to convert query results to Arrow? Does the Query Result in the Embedded API need conversion? Where is this conversion performed for the Embedded API?
What is the recommended way to implement such a conversion? How about adding a pluggable middleware in the server side?

@JinHai-CN Hi, I did some investigation on the codebase, mainly focusing on the protocol layer and execution engine of Infinity. Regarding this issue, I have some questions:

Are we planning to use Arrow in-memory format to replace the current in-memory columnar format, or do we only need to support converting the in-memory columnar format to Arrow in-memory format while returning the query result?

The plan have two steps:

Use arrow format as the query result and transfer it to the client.
Replace the in-memory columnar format with Arrow. This part need to deeply investigate the feasiblity.

Why does our client need to convert query results to Arrow format? Is it for interacting with Infinity using Python SDK in applications integrated with Arrow? I noticed that our examples and tests barely use the to_arrow method.

Yes, the examples are barely use to_arrow method. But arrow or data-frame are massively used in most production environments.

Why does converting to Arrow format on the client side degrade performance? Here is my understanding:

The conversion from Pandas DataFrame or Polar DataFrame to Arrow format requires serialization and deserialization of metadata and data.
Conversely, if we serialize query result to Thrift or HTTP response using Arrow IPC protocol on the server side, and then deserialize the result using Arrow IPC on the client side, we only pay the cost of serializing and deserializing the metadata since Arrow IPC protocol does not need to serialize the deserialize the data.
In fact, serialization and deserialization overhead for metadata in Arrow IPC protocol can be eliminated in certain scenarios. I have implemented this optimization for GreptimeDB before.
I am not sure if Thrift and HTTP protocols themselves perform additional serialization and deserialization. If we can support the Arrow Flight protocol, we do not need to worry about this overhead.

Yes, your understanding is correct. We plan to support Arrow flight protocol to eliminate the serialization and deserialization cost.
And the HTTP API didn't use thrift in the past, and won't use Arrow flight protocol in the future.

Is it mandatory for the server to convert query results to Arrow format? Is this conversion a default behavior, or is it optional? If optional, is it configured via server config, or controlled through options sent in client requests?

Mandatory.

Do all protocols need to convert query results to Arrow? Does the Query Result in the Embedded API need conversion? Where is this conversion performed for the Embedded API?

Excepts HTTP API, it shall works on all RPC protocols  and Embedded API of python SDK.

What is the recommended way to implement such a conversion? How about adding a pluggable middleware in the server side?

Adds an Arrow conversion layer in server side.
Add Arrow flight protocol to infinity server and python client.
If all function works, benchmark result is good and all test cases are passed, apache thrift related code can be removed.

@JinHai-CN Please assign me. I will start by creating a PoC to add support for converting to the Arrow format in the server side and for integrating the Arrow Flight protocol in both sides.


RegisterAndNotify problems after reconnection

Please check all of the platforms you are having the issue on (if platform is not listed, it is not supported)

[] iOS
[x] Android
[] tvOS
[] macOS
[] .NET Standard
UWP IS NOT SUPPORTED DURING THE BETA PERIOD - ONLY PRs ARE WELCOME FOR NOW

Version of OS(s) listed above with issue
Android 9
Version of Library
6.2.3 Nuget
Expected Behaviour

Discovery of the device
Connection to the device
The device connects
Subscription to a characteristic with RegisterAndNotify
The characteristic is subscribed and the callback is called when there is a new value
Disconnection of the device, from the device side (link loss, or device goes in sleep)
Device resumes from sleep or comes in range
Re-connection to the device, the WhenStatusChanged is called
Subscription to a characteristic with RegisterAndNotify
The characteristic is subscribed and the callback is called when there is a new value

Actual Behavior

Discovery of the device
Connection to the device
The device connects
Subscription to a characteristic with RegisterAndNotify
The characteristic is subscribed and the callback is called when there is a new value
Disconnection of the device, from the device side (link loss, or device goes in sleep)
Device resumes from sleep or comes in range
Re-connection to the device, the WhenStatusChanged is called
Subscription to a characteristic with RegisterAndNotify
In my first case the characteristic is subscribed and the callback is called twice when there is a new value. In my second case the characteristics is subscribed, but the callback is not called when there's a new value.

Code of Conduct

No Library Update Requests
No Timeline Requests
Please read through the documentation and FAQs
If you have a complaint about the docs, FIX IT - DO NOT FILE IT HERE!  I won't guarantee everything is always 100% up-to-date since I am just 1 person.
Please be respectful of my time. I put a lot of effort into my libraries.  I try to support the issue requests within a day.  I'm not psychic, so please take the time to fill out the above form as complete as possible

Hi,
I'm writing an App that communicate with an hardware via Bluetooth LE using Xamarin and Prism.
I'm using Plugin.BluetoothLE v6.2.3 on Visual studio 2019 version 16.02.
I've created a service with the scan method:
`
public void Scan()
{
scanner = CrossBleAdapter.Current.Scan().Subscribe(scanResult =>
{
if (scanResult.Device.Name != null && scanResult.Device.Name.Contains("CromoMed"))
{
device = scanResult.Device;
scanner.Dispose();
scanner = null;
                    Pen.Current.Name = device.Name;
                    Pen.Current.ID = device.Uuid;

                    Thread.Sleep(1000); //Wait for stopping scanner

                    device.WhenStatusChanged().Subscribe(status =>
                    {
                        switch (status)
                        {
                            case ConnectionStatus.Connected:
                                Pen.Current.IsConnected = true;
                                break;
                            case ConnectionStatus.Disconnected:
                                Pen.Current.IsConnected = false;
                                break;
                        }
                    });

                    device.Connect();
                    GetCharacteristics();
                }
            });
    }

`
GetCharacteristics is:
`
private void GetCharacteristics()
{
device.WhenAnyCharacteristicDiscovered().Subscribe(ch =>
{
if (ch.Uuid == penRx)
{
penWrite = ch;
Debug.WriteLine("*********** Characteristics Write found ");
}
if (ch.Uuid == penTx)
{
penRead = ch;
Debug.WriteLine("** Characteristics Read found *********");
                penRead.RegisterAndNotify(true, true).Subscribe(res =>
                {
                    Read(res.Data);
                    Debug.WriteLine("*********** Data received *********");
                });
            }
        });
    }

`
When I debug the application on a Samsung S9+, all is work properly, but if I try to turn off my hardware and then turn on again, the Read process send 2 notifications instead of 1. If I turn off and on the hardware one more time, the Read process send 3 notifications.
I've tryied with this new version of GetCharacteristics:
`
private void GetCharacteristics()
{
bool writeDiscovered = false;
bool readDiscovered = false;
bool readRegistered = false;
        device.WhenAnyCharacteristicDiscovered().Subscribe(ch =>
        {
            if (ch.Uuid == penRx && !writeDiscovered)
            {
                writeDiscovered = true;
                penWrite = ch;
                Debug.WriteLine("*********** Characteristics Write found *********");
            }
            if (ch.Uuid == penTx && !readDiscovered)
            {
                readDiscovered = true;
                penRead = ch;
                Debug.WriteLine("*********** Characteristics Read found *********");

                penRead.RegisterAndNotify(false, false).Subscribe(res =>
                {
                    Read(res.Data);
                    Debug.WriteLine("*********** Data received *********");
                });
            }
        });
    }

`
But, in this case, when I turn off and on the hardware, the Read does not send any notification.
Where I'm wrong?
Thanks a lot and have a nice day,
Andrea

Hi Andrea,
You need to enable notifications each time you reconnect. If you are also going to register a new subscription each time you connect you could dispose off the subscription when a disconnect happens.
See an example of .DisposeWith in the Sample code.
https://github.com/aritchie/bluetoothle/blob/eddbe927036263179ba4079318bff99524c2da94/Samples/Samples/DeviceViewModel.cs#L116-L120

Thanks a lot,
I'm trying to understand the example.
But I don't understand why in my first case of using RegisterAndNotify, the reconnection is OK and the problem is that the notification is twice. Boh!
Start studying the example now!!!
Thanks a lot and have a nice day,
Andrea

Hi pravincarvalho,
I'm trying to write a new class as in the example you suggest, but after I defined my device as:
IDevice device;
the ObserveOn and DisposeWith do not exists. I just have WhenReadRssContinuosly and Subscribe.
Maybe from 2018 to now somthing is changed?

You need https://reactiveui.net/ for those Observable methods. If you don't want those extension methods you could also just call Dispose on the subscription
subscription = penRead.RegisterAndNotify(true, true).Subscribe(res =>
                {
                    Read(res.Data);
                    Debug.WriteLine("*********** Data received *********");
                });
// On disconnect
subscription.Dispose();

Usually, duplicate actions happen because you hang on to a reference of characteristic somewhere.  Try not to do this.  There are other extensions in the library that can help.
There is also an IsNotify flag on the characteristic.  You should check its value.

Thanks aritchie,
I've tried to use Dispose of the subscription and also check the IsNotify, but instead of receiving two notification, I don't receive any notification.
I've added the following  method:
private void RemoveCharacteristics()         {             if (readSub != null)                 readSub.Dispose();             readSub = null;             penRead = null;             penWrite = null;             Debug.WriteLine("*********** Characteristics removed *********");         }
and added the call when the connection go to disconnected:
`
public void Scan()
{
scanner = CrossBleAdapter.Current.Scan().Subscribe(scanResult =>
{
if (scanResult.Device.Name != null && scanResult.Device.Name.Contains("CromoMed"))
{
device = scanResult.Device;
scanner.Dispose();
scanner = null;
                    Pen.Current.Name = device.Name;
                    Pen.Current.ID = device.Uuid;

                    Thread.Sleep(1000); //Wait for stopping scanner

                    device.WhenStatusChanged().Subscribe(status =>
                    {
                        switch (status)
                        {
                            case ConnectionStatus.Connected:
                                Pen.Current.IsConnected = true;
                                break;
                            case ConnectionStatus.Disconnected:
                                Pen.Current.IsConnected = false;
                                RemoveCharacteristics();
                                break;
                        }
                    });

                    device.Connect();
                    GetCharacteristics();
                }
            });
    }

`
GetCharacteristic is now:
`
private void GetCharacteristics()
{
bool writeDiscovered = false;
bool readDiscovered = false;
        device.WhenAnyCharacteristicDiscovered().Subscribe(ch =>
        {
            if (ch.Uuid == penRx && !writeDiscovered)
            {
                penWrite = ch;
                Debug.WriteLine("*********** Characteristics Write found *********");
            }
            if (ch.Uuid == penTx && !readDiscovered)
            {
                penRead = ch;
                Debug.WriteLine("*********** Characteristics Read found *********");

                readSub = penRead.RegisterAndNotify(true, true).Subscribe(res =>
                {
                    Read(res.Data);
                    Debug.WriteLine("*********** Data received *********");
                });
            }
        });
    }

`
Just adding the readSub.Dispose(), and I don't receive any notification after turning off and on the hardware.
Where is the problem?
Can you tell me what extension I've to use if instead of RegisterAndNotify?
If you need I can send you the project, but I know you are very busy and I don't want to abuse your time.
Thanks in any case and have a great day.
Andrea

Sorry, I've also tried to use the flag IsNotifying, but the result is the same. No notification after disconnec/reconnect.
`
private void GetCharacteristics()
{
bool writeDiscovered = false;
bool readDiscovered = false;
        device.WhenAnyCharacteristicDiscovered().Subscribe(ch =>
        {
            if (ch.Uuid == penRx && !writeDiscovered)
            {
                penWrite = ch;
                Debug.WriteLine("*********** Characteristics Write found *********");
            }
            if (ch.Uuid == penTx && !readDiscovered)
            {
                penRead = ch;
                Debug.WriteLine("*********** Characteristics Read found *********");

                if (!penRead.IsNotifying)
                    readSub = penRead.RegisterAndNotify(true, true).Subscribe(res =>
                    {
                        Read(res.Data);
                        Debug.WriteLine("*********** Data received *********");
                    });
            }
        });
    }

`

Is your host device hanging on to subscriptions?

When I turn off my device, I turn off all the timers, so It can not hang on to the subscriptions.

Hi Allan,
I’ve not received any answer on my last post.
Do you have any news?
Thanks and have a nice day,
Andrea
Da: Allan Ritchie<EMAIL_ADDRESS>Inviato: domenica 28 aprile 2019 23:35
A: aritchie/bluetoothle<EMAIL_ADDRESS>Cc: Andrea<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Oggetto: Re: [aritchie/bluetoothle] RegisterAndNotify problems after reconnection (#304)
Is your host device hanging on to subscriptions?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/aritchie/bluetoothle/issues/304#issuecomment-487417508, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ALZ4K32MGBFVGJTRPMILBGDPSYKB7ANCNFSM4HIKOZCQ.

So I've tested this scenario on my local devices and all appears to be working fine for me in the sample and other apps I have.  You'll need to provide a full (but reasonably small) reproducible sample if you want assistance on your issue.
I would also suggest checking the host device (not your mobile app)


added french translations

thanks, I had to merge this manually as I had made a change to one of the files you had modified also.  It's merged now.


Changed the 1st blog title blog-sidebar-left.html

Changed the 1st blog title on blog-sidebar-left.html page under agriculture

Redo this. It caused conflicts. Just copy & create a new PR.


Disables Attach button in the presence of an unexisting project ID.

Does so in a way where attach dialog doesn't start with an error message.
Fixes #430
@etanshaul @loosebazooka @elharo

lgtm

@etanshaul I'm submitting this PR and leaving a TODO for both of us to look at this a little better.


Add website screenshots to the events page to pretty it up

On events:pull create a laravel job or events and listeners that will navigate to the URL and generate a screenshot that will be displayed on the orgs page
This laravel package will generate a screenshot from the URL.
https://github.com/spatie/browsershot
Events and listeners documentation
https://laravel.com/docs/8.x/events

I think we do not need this for now.