Unbound Local Error: local variable 'response' referenced before assignment

Does anyone know a fix for this error?  I've tried looking around the web, but can't figure out how to fix it. I am new to python still.
Thanks

Does anyone know a fix for this error? I've tried looking around the web, but can't figure out how to fix it. I am new to python still.
Thanks

Can I see your code?

Try to define the variable response as None at the beginning of your programm (or function) like this: response = None

You need to assign response as None at the beginning of your program, like this: response = None.
Then you have to put in the first line of your functions which use the variable: global response

Here the code `'''
Copyright 2015 ohyou
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
'''
import requests
import subprocess
import json
import sys
import multiprocessing
import time
import random
channel_url = "twitch.tv/"
processes = []
response = None
def get_channel():
# Reading the channel name - passed as an argument to this script
if len(sys.argv) >= 2:
global channel_url
channel_url += sys.argv[1]
else:
print "An error has occurred while trying to read arguments. Did you specify the channel?"
sys.exit(1)
def get_proxies():
# Reading the list of proxies
try:
lines = [line.rstrip("\n") for line in open("proxylist.txt")]
except IOError as e:
print "An error has occurred while trying to read the list of proxies: %s" % e.strerror
sys.exit(1)
return lines

def get_url():
global response
# Getting the json with all data regarding the stream
try:
response = subprocess.Popen(
["livestreamer.exe", "--http-header", "Client-ID=ewvlchtxgqq88ru9gmfp1gmyt6h2b93",
channel_url, "-j"], stdout=subprocess.PIPE).communicate()[0]
except subprocess.CalledProcessError:
print "An error has occurred while trying to get the stream data. Is the channel online? Is the channel name correct?"
sys.exit(1)
except OSError:
print "An error has occurred while trying to use livestreamer package. Is it installed? Do you have Python in your PATH variable?"
# Decoding the url to the worst quality of the stream
try:
    url = json.loads(response)['streams']['audio_only']['url']
except:
    try:
        url = json.loads(response)['streams']['worst']['url']
    except (ValueError, KeyError):
        print "An error has occurred while trying to get the stream data. Is the channel online? Is the channel name correct?"
        sys.exit(1)

return url

def open_url(url, proxy):
global response
# Sending HEAD requests
while True:
try:
with requests.Session() as s:
response = s.head(url, proxies=proxy)
print "Sent HEAD request with %s" % proxy["http"]
time.sleep(20)
except requests.exceptions.Timeout:
print "  Timeout error for %s" % proxy["http"]
except requests.exceptions.ConnectionError:
print "  Connection error for %s" % proxy["http"]
def prepare_processes():
global processes
proxies = get_proxies()
n = 0
if len(proxies) < 1:
    print "An error has occurred while preparing the process: Not enough proxy servers. Need at least 1 to function."
    sys.exit(1)

for proxy in proxies:
    # Preparing the process and giving it its own proxy
    processes.append(
        multiprocessing.Process(
            target=open_url, kwargs={
                "url": get_url(), "proxy": {
                    "http": proxy}}))

    print '.',

print ''

if name == "main":
print "Obtaining the channel..."
get_channel()
print "Obtained the channel"
print "Preparing the processes..."
prepare_processes()
print "Prepared the processes"
print "Booting up the processes..."
# Timer multiplier
n = 8

# Starting up the processes
for process in processes:
    time.sleep(random.randint(1, 5) * n)
    process.daemon = True
    process.start()
    if n > 1:
        n -= 1

# Running infinitely
while True:
    time.sleep(1)

`

here is the code https://pastebin.com/5wWC1SRs

Thank you for the fix!  That corrected the error I was having, but I am not presented with another error.
An error has occurred while trying to use livestreamer package. Is it installed? Do you have Python in your PATH variable? Traceback (most recent call last):   File "twitch-viewer.py", line 119, in <module>     prepare_processes()   File "twitch-viewer.py", line 106, in prepare_processes     "url": get_url(), "proxy": {   File "twitch-viewer.py", line 69, in get_url     url = json.loads(response)['streams']['worst']['url']   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 339, in loads     return _default_decoder.decode(s)   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 364, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end()) TypeError: expected string or buffer
Any ideas? I notice the errors are about livestreamer, which I have installed and can provide screenshot if needed, and the PATH error I'm not to sure about.  I googled it but from what I found I think I have that done properly as well.
Is it just not working because livestreamer isn't working?

did you pip install livestreamer?

I did.  Here is everything that is installed for the project
https://imgur.com/a/niMmGea

I started a fresh project and I only have livestreamer and requests installed.  I no longer get the above error, but now I get "An error has occurred while trying to get the stream data. Is the channel online? Is the channel name correct?" the channel is 100% live.

which OS are you using?
send me a screenshot what you do and the log.

There has been more development since my last update. I've switch to windows, was previously using Mac.  I've removed livestreamer.exe and started using streamlink, since I found out livestreamer is dead and streamlink was the replacement.  I am able to get passed the error I was having, but now when it gets to preparing process it just keeps showing period after period and nothing happens.  No views, no errors, nothing. Just gets hung on the periods.  See screenshot for more info.
Here is the code: https://pastebin.com/jxpRLYcE
Here is the screenshot: https://imgur.com/a/6uNrISt

how many lines do you have in proxylist.txt?

I wasn't sure what proxies to use (HTTP, Socks4 or Socks5) but I've tested with all 3.  Each have over 1,000 lines.  HTTP is 1,500.  Socks4 is about 1200 and Socks5 is 8,600.
Should I limit those?

I wasn't sure what proxies to use (HTTP, Socks4 or Socks5) but I've tested with all 3. Each have over 1,000 lines. HTTP is 1,500. Socks4 is about 1200 and Socks5 is 8,600.
Should I limit those?

yes, the program will print "." for every line in the txt file

Ok, I will limit them to something much much smaller.
Line 4 looks like a normal IP to me.  Something wrong with it? I am just using free poxies I've found on the web.  Could also be my problem?

It could be the problem.
rename the file and make a new proxylist with the first 3 lines to test.

Ok, the bot is sending head requests now.  I limited the lines to only 50.  All the requests sent successfully but no views were added to the channel.

try only http

Ok, I can try searching for some reliable free http.  I will update once I find some and test!
Thank you for all the help

does streamlink have the same arguments of livestreamer?

Honestly, no idea lol.  I just saw that livestreamer was no longer supported and that streamlink was the new thing to use.  I am a big noob when it comes to this stuff.

try to use "streamerlink" on cmd.

I'm sorry, but how do I do that? I am very new to python.  I do appreciate everything you've been helping with.

windows key + r
then write cmd
and in cmd write streamlink.exe

oh you meant windows cmd, sorry.  Nothing runs when i type streamlink.exe.  "not recognized"

You need to have the exe file in your twitch-viewer folder.

Ok, I will try and add that to the folder.  See if it does anything. So installing streamlink with pip in python does nothing?

try https://github.com/streamlink/streamlink

Ok, I have it downloaded now.  my twitch viewer folder is only in python.    So find it in my users folder and add the exe there?

yes, but make a shortcut

do you have windows 10?

I do. I made a shortcut to the streamlink folder in my twitch-viewer folder.  Try rerunning code now?

I should be the exe.
Search streamlink (using windows key)... right click and make shortcut

Ok, exe shortcut placed in the folder.

now try program.
if not working try writing streamlink on cmd

same result. Send head requests but no views are going to channel. :(

but did streamlink work on cmd?

Yeah, it opens up and says this:
usage: streamlink [OPTIONS]  [STREAM]
Use -h/--help to see the available options or read the manual at https://streamlink.github.io

ok we probably  have onlly to change arguments in py file :)
I hope...

I hope so too!  So, how exactly do we change the arguments?  I am sorry I am such a noob.  Hence the name lol

here https://pastebin.com/eejTTTcH :)

I also might need to find new list of proxies. The ones I have might suck and not work

oops I made a mistake.

https://pastebin.com/bcYHUaM6
:)

I tried your updated code you just posted, but for some reason I am getting this error:

An error has occurred while trying to get the stream data. Is the channel online? Is the channel name correct?

Haven't had that happen in a while.  The channel is still online

I have to check edit more i think

i noticed there is no client ID in your new code following streamlink. Do we not need that? I assumed that is how we were making the connection to twitch.

but with streamlink?

In the old code it looked like this:
 response = subprocess.Popen(             ["livestreamer.exe", "--http-header", "Client-ID=ewvlchtxgqq88ru9gmfp1gmyt6h2b93",              channel_url, "-j"], stdout=subprocess.PIPE).communicate()[0]
When I made edits to that I changed livestreamer.exe to streamlink.exe and changed the client ID to the new Twitch API ID (According to google).
Wasn't sure if that was needed or not and I noticed it's not in the new code you shared.  I was just looking for differences lol no idea if its need at all.

I didnt read the whole doc, but it has to be similar to livestreamer
https://pastebin.com/xGQemjW8

if not working you will have to add a print

Ok, so it throws a really big error, BUT the script keeps working and eventually sends the head requests.  Doesn't add viewers though.  Had to put this error in pastbin because it was massive lol
https://pastebin.com/pL6QGbb8

it wasnt an error, it was just a print() xD

it wasnt an error, it was just a print xD

oh haha ok.  Never saw that before! Wasn't sure what it was lol
Any idea on why the views aren't actually being sent? Could it be the proxies or is this way possibly patched by twitch?

probably :(

That's a bummer :( I wish I could forget this out.   I don't want to pay for one, because I am not sure it will even work.  Don't want to waste money.
I just want to thank you for all of your help. I am going to try and keep messing with it!

dont give up
https://pastebin.com/nV59sn2j
this is not going to work
just send me what the program says

Here you go!  The "error" messages look nicer lol it's the print() thing you mentioned earlier.
https://pastebin.com/DhmgJd2h

try to import the module

and use only 8080 as port

import what module, streamlink? and these proxies are things i found online.  I can try to search for only 8080 proxies
If importing streamlink, would I just add import streamlink to the beginning of the doc like the other import requests?

yes

ok, trying that now

Ok, i did the import streamlink and only used 8080 ports.  Here is what printed out.  No viewers went to the live channel.
https://pastebin.com/cDY5SvMA

the import looks different from the others and idk why.
https://imgur.com/a/5Rvp5Da

Maybe you have to wait
or I have to add the --http-proxy argument

the import looks different from the others and idk why.
https://imgur.com/a/5Rvp5Da

that means it isnt in use ... you can delete it

Ok, I removed the import streamlink
What else should I test?

add "--http-proxy" in line 56

Not working :/

When I add --http-proxy to line 56 i got this
Obtaining the channel... Obtained the channel Preparing the processes... usage: streamlink [OPTIONS] <URL> [STREAM] streamlink: error: argument --http-header: invalid keyvalue value: '--http-proxy' An error has occurred while trying to get the stream data. Is the channel online? Is the channel name correct?

You have to remove --http-header for that

Yeah, I just tried that now.  When having http-proxy I get the "are you sure the stream is online" error.  When we leave it has http-header it sends the head requests but no views are added.
I feel like we are so close to getting this lol

Would this help at all?  It's the twitch dev site talking about how the handle requests
https://dev.twitch.tv/docs/v5

I found some articles saying to use "selenium" instead of requests.  Trying that now, but not really sure how to replace it.  Just install selenium and then remove "import requests" and add "Import selenium"?

Yes. I know how to work with selenium.
I can make the code ;)

really?! hell yeah, that's perfect! They said that selenium will show you as a person and not a bot.  So that will help the viewers get through.

I think, I need to make a start a new file because there is a lot to change.
Do se still need streamlink?

I think we do.  so instead of livestreamer and requests we need selenium and streamlink

You will need to get the gekodriver for firefox.
I can make a repo if you want

I just downloaded it! lol we are thinking alike now

so I think i got it working, but the proxies i have are super slow or dead.  Need to find reliable proxies.  any ideas?

I don't know which proxies to use.
I don't use proxies, the most are not safe.

want me to share what i have so far? script wise.

Ok.

https://pastebin.com/GCRt3YxU

do you have Telegram because this issue is getting big.

I don't.  I have discord and i agree it is getting long lol

How about Instagram or What'sApp?

I don't either.  Damn, twitter? i tried making a telegram but it wanted me to enter my phone number lol

After you created a telegram account you can go to settings and make your number private

pythonnoob2 is my instagram.  add me! we can DM


Fix: non-JSON-serializable value error in the snap

Description
This pull request changes the following:

Makes the account result key's key and type value undefinable values given that the data can come back as null

Thank you for the PR on fixing that issue.


Don't include the $ prefix when communicating with variable storage

Yarn Spinner prefixes all variable names with $, to aid in parsing. However, when communicating with the variable storage system, this $ is included. This doesn't add anything meaningful, and causes confusion for users who are attempting to set variables outside of Yarn Spinner and forgetting to include the $.
The $ should be either removed, or made optional.

Presumably, Yarn spinner might share a save system with non-yarn variables (for example, Unity's Playerprefs system), and including the $ prefix would prevent collisons. However, it seems like a much less likely use case that an existing project accidentally name-collides with a yarn variable, and much more likely that a developer would want to hand-edit a yarn variable outside yarn.
Accidental collisions could be prevented in other ways, notably by the dev adding their own expected prefix to yarn variable names before storage (I save everything as Yarn[varname]), and/or docs making it clear what the "reserved words" are - variables that the Dialogue Runner will save and retrieve by itself. This may be unnecessary - these variables are named in complex enough ways that collisions are already unlikely.
That's every argument I can think of; I recommend this change be adopted.

I don't really understand the advantage to having this done in core, you have to implement your own interface to the variable storage through VariableStorageBehaviour and in there you can have code to add/strip out the $ symbol. I guess I don't really see what advantage there is to changing the working parser for a feature that end users can choose to do on their own.
I think it might be better if the documentation was updated to say something along the lines of "you can do any processing on the name of variables you want". This means that we effectively get this feature for people who want it, without complicating the internals of Yarn Spinner.

I've looked at this a bit too, and I agree with @McJones. We'd either end up filtering and defiltering variable names in Yarn.VariableStorage in order to achieve this, and I really don't see that as worth it.
I'll leave this open for now; the next step will be to add documentation that tells users they can make their Yarn.VariableStorage as lenient as they like in terms of variable names.

This all feels like it should be a part of a larger "Rules For Naming Things In Yarn Spinner" discussion at some point down the track.


Fix MSVC build break in VS 2019

Summary
Updating react-native-windows to build with Visual Studio 2019 and the v142 toolset.
Changelog
[Internal] [Fixed] - Fix MSVC build break in VS 2019
Test Plan
No real change, only adding a missing include for stdexcept.

Hey @jonthysell
could you please sign the Contributor License Agreement? Once you do that I will merge the PR.

Hey @jonthysell
could you please sign the Contributor License Agreement? Once you do that I will merge the PR.

Yeah, MSFT employee here, I'm just verifying what CLA I need to sign.

CLA signed.


fix(react-email): update generate-email-preview.ts to ignore test files

Overview
This PR resolves an issue when generating emails previews, currently if you have any spec or test file within this directory these are picked up as they end in the jsx or tsx extension.

Just for curiosity, no judging, but in what situation did you need to write tests for your emails?

Just for curiosity, no judging, but in what situation did you need to write tests for your emails?

Hey @gabrielmfern, no worries totally fine.
By implementing units tests it enables us to perform content validation, furthermore as the code evolves it gives us a safety net to catch any regressions that could be introduced. As the email is initially a react component I can test the output and any conditional logic just like I would for a normal application component.
Note this isn't 💯 but allows us to catch things earlier in the development cycle, I would also want to test the HTML generated via an email testing service (such as Litmus) or perform visual regression with a tool like Percy.
Personally where I can (and where it makes sense) I like to have 💯 unit test coverage, if you have critical applications or services I prefer the added confidence 😬😅

@vcapretz / @gabrielmfern - Is there any chance this could be merged?

@vcapretz / @gabrielmfern - Is there any chance this could be merged?

Hey, I am not a official maintainer of react-email so I can't really merge it. But just a heads up, as far as I know, the guys at Resend (the company behind react-email) are working really hard on their product, so to maintain react-email they can't iterate nor merge things really fast, at least not yet. Maybe it will take a bit until they can merge the PR, it doesn't mean they gave up on react-email nor stopped maintaining it, it's just at a slower pace rn.

I tired to wait. There is no pace just quiet. @jwarykowski @gabrielmfern I use jsx fork now with active. You should look at it.

Hey @gabrielmfern, apologies and thanks for the feedback. No worries, I appreciate they can't always be available so all good. I have a simple workaround for this issue at the moment anyhow.
@thesaltygerman No problems, I've already has the maintainer of jsx reach out to me and will try and find some time to evaluate it.


javascript error

wont let me install keybase

msiexec /a "keybase.msi" /qb TARGETDIR=c:\temp
was my fix then I removed the old binary and installed the new one.


Fix a typo in windows_feature_dism resource name

Signed-off-by: Nikolai Bessonov<EMAIL_ADDRESS>Description
Fix a typo in windows_feature_dism resource name. Typo was indrodused in https://github.com/chef-cookbooks/windows/commit/9342c9c994b98b091f2687d4f44a4d47290fb0a7
 [2018-10-08T05:47:02-07:00] FATAL: Chef::Exceptions::NoSuchResourceType: windows_feature[NetFx3] (gf_powerchute::default line 9) had an error: Chef::Exceptions::NoSuchResourceType: Cannot find a resource for windows_feature_dism on windows version 10.0.14393

Thanks @BernigDeath


Cannot connect Digital Piano to Crouton

Hello. My digital piano (Yamaha P-115) cannot be recognized by crouton. It has a USB-Host connection.
When I start up xfce4 and then plug the piano in, I get:
thunar-volman: Unsupported USB device type.
thunar-volman: Unsupported USB device type.
thunar-volman: Unsupported USB device type.
Running dmesg|tail    i get:
[ 4636.719503] sd 5:0:0:0: [sdb] Attached SCSI removable disk
[ 4637.327829] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 4637.483040] cros-ec-dev cros-ec-dev.1: cros_ec_pd_get_polarity: port:0 enabled:1, role:0, polarity:0, state:2
[ 4637.499273] cros-ec-dev cros-ec-dev.1: cros_ec_pd_get_polarity: port:1 enabled:1, role:0, polarity:0, state:8
[ 5325.509474] usb 1-1: new full-speed USB device number 12 using xhci_hcd
[ 5325.676335] usb 1-1: New USB device found, idVendor=0499, idProduct=160f
[ 5325.676358] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5325.676376] usb 1-1: Product: Digital Piano
[ 5325.676388] usb 1-1: Manufacturer: Yamaha Corporation
[ 5332.824639] haswell-pcm-audio haswell-pcm-audio: FW loaded, mailbox readback FW info: type 01, - version: 00.00, build 77, source commit id: 876ac6906f31a43b6772b23c7c983ce9dcb18a19
   (btw, I also have an external SD card in)

running     df -TH    i get:
Filesystem                                                   Type      Size  Used Avail Use% Mounted on
/dev/root                                                    ext2      1.3G  1.2G  163M  88% /
devtmpfs                                                     devtmpfs  4.2G     0  4.2G   0% /dev
tmp                                                          tmpfs     4.2G  5.6M  4.2G   1% /tmp
run                                                          tmpfs     4.2G  443k  4.2G   1% /run
shmfs                                                        tmpfs     4.2G  266M  3.9G   7% /dev/shm
/dev/sda1                                                    ext4       27G   16G   11G  60% /home
/dev/sda8                                                    ext4       13M   25k   12M   1% /usr/share/oem
/dev/mapper/encstateful                                      ext4      8.0G  124M  7.9G   2% /var
media                                                        tmpfs     4.2G     0  4.2G   0% /media
none                                                         tmpfs     4.2G     0  4.2G   0% /sys/fs/cgroup
/home/.shadow/2eec1a288772e29debdce21364e95c278b71ce76/vault ecryptfs   27G   16G   11G  60% /home/chronos/user
tmpfs                                                        tmpfs     132k   13k  119k  10% /run/crw
/dev/sdb1                                                    vfat       64G  1.6G   63G   3% /media/removable/UNTITLED
(so I don't believe it is mounted).

what steps must I take to get crouton to connect to and recognize this Digital Piano?

@simonsnitz,

My digital piano (Yamaha P-115) cannot be recognized by crouton. It has a USB-Host connection.

[ 4636.719503] sd 5:0:0:0: [sdb] Attached SCSI removable disk

I don't know what Digital-Piano is, but you meant "external fat32 filesystem won't be mounted via thunar file-manager in crouton"?
If not, did you already tried to install gvfs-fuse to access fat/ntfs filesystem via Gtk+ based graphical file-manager? Or can you mount it manually by mount and/or udiskctl commands?
Regards.

I did have gvfs-fuse installed and tried manually mounting, but couldn't find the proper address in /dev/snd/. The piano shows with dmesg|tail and lsusb  , but I couldn't locate it with /sbin/fdisk -l
However, despite getting those "Unsupported USB device type" warnings, I got the piano working here by following this tutorial: https://wiki.archlinux.org/index.php/USB_MIDI_keyboards
very useful. just need to use the (aconnect) and (aseqdump) commands a few times.
Thank you for the help.

Thanx @simonsnitz for getting back to us with a resolution. That archlinux site is very cool.


updated csv to jsonl to remove newline char and add argparse

Do you need to pass the parameters into the main function for them to be used appropriated within the main function? If you think about scopes there might be an issue.

So, in python this should be fine. The args variable has scope for the entirety of the function after it is set, and argparser is the first thing to be called.


integrations: Update Slack integration to handle Event API.

:page_facing_up: Overview
This PR updates the Slack webhook integration, maintaining its purpose of sending Slack messages to Zulip. The feature for mapping Slack channels is preserved, added better support for different types of messages, and added more tests. The Slack integration now uses Event API instead of the legacy "Outgoing Webhook service".
Zulip side:

Slack side:

Documentation

If used as a Slack Bridge:
slackbridgedemo
Fixes #30074

Follow up plans
There are a few points of potential improvements that I think could be a good follow-up issue to improve the Slack integration.
To start, there are some edge cases of messages that the integration doesn't yet support, the JSON examples for those messages are in the fixtures/not_yet_supported folder. Other than that, I've also highlighted potential improvements and added # TODO: .... comments near the relevant code area and in the PR file comments. Let me know which one we should track and which one don't really need.
Other than that, now that the Slack integration does callbacks to Slack API, it would also benefit from PR like zulip#10907. I'll cross-link it here to better track relevant integrations that would benefit from that feature,
Note on testing
This integration PR is not testable using our current testing tools and even manually calling the endpoint is not possible because the integration will try to call Slack APIs.
If you plan to set up live integration, please use ngrok and not ultrahook. Ultrahook overrides all responses from Zulip to Slack, this is problematic when trying to handle Slack's "challenge" handshake for URL verification. If you opt for ngrok, you will have to bypass our subdomain validator (git grep validate_account_and_subdomain) by adding an early return.
If you detach the commit that focuses on implementing callback, our integration testing tools should still work. However, the integration can only output barebones messages without username and channel name.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Looks good other than the test cases. Don't forget to add the documentation.

@zulipbot add "buddy review"
Hello @kennethnrk , I've added a couple more tests and also the doc. Could you please help check those as well? thank you!

@zulipbot add "mentor review"
@sbansal1999 please help review this, thanks!

@zulipbot add "mentor review"
@sbansal1999 this one's ready for your review, thanks

@sbansal1999 - Thanks for the review!
Update:

Addressed code reviews
Updated documentation
Updated PR description
Opened #30827 to better document follow-up proposals related to this PR.

Sorry for the late response. I've moved the follow up plans to another issue instead of in the PR description as to avoid it getting cluttered too much, does that work with you? let me know if you have any other suggestion and whether the new changes have addressed your concerns!

Thanks for making the changes. The code LGTM now. Good work!

I've moved the follow up plans to another issue instead of in the PR description as to avoid it getting cluttered too much, does that work with you?

Yes, that sounds perfect.

@zulipbot remove "mentor review"

@sbansal1999 , @alya - I suppose we can proceed to the next round of review for this one?

@laurynmm Are you up for taking a look at this PR next?

@laurynmm - Thanks for reviewing this one too!
Update:

Addressed code reviews
Revised commit descriptions
Updated doc screenshot in PR desc

Let me know whether the new changes has addressed your comments or not :+1:

Update: Resolved conflict related to the deprecation of some types from the typing module.

Update: resolved conflict

Updated the PR to address reviews.
@laurynmm - thanks for reviewing again! no worries, hope you enjoyed your vacation :beach_umbrella: . Let me know if there's anything else you'd like to suggest!

@PieterCK - So, I pulled these changes down today and made a few revisions to:

The order of the commits and the commit messages.

The documentation change is the final commit.
Made the commit summaries more consistent.

How/when the event data is dealt with in the main view function.

Instead of creating a dict for the data, each value is checked/converted separately.
Simplified the logic for the user name and channel name callbacks.
Renamed some variables/parameters to avoid abbreviations (e.g., data instead of obj).
Moved some of the code comments for readability.

It'd be great if you could review my updates, and let me know if you have any thoughts/feedback.

Finally, the first four commits should probably be squashed into one commit. The test changes in the 4th commit are for the code changes in the prior three commits, so it makes sense for them all to be done in one single commit.
That will involve updating that one commit message to encompass the overall changes to the integration to use Slack's Events API vs Slack's deprecated outgoing webhooks.

@laurynmm - This looks better. I added a couple more changes and squashed the commits as you suggested. Thanks!

@PieterCK - Great! This is looking good. Going to mark for integration review as I don't have any more feedback at this point.
@timabbott - I'm not sure how we want to handle how these changes would mean things stop working for folks using the current Slack integration that uses Slack's deprecated outgoing webhooks service.

I'll work on this tomorrow

@timabbott Sorry this took so long, I was having a hard time trying to make JsonBodyPayload optional. Turns out the slack_incoming integration faces the same situation ..., so in the end I just have to copy how it’s done there :sweat_smile:. I’ve also updated the doc screenshot in the PR description.

I pushed a commit that should get squashed to update the documentation, and updated the documentation screenshots in the PR description.

Addressed reviews. Let me know if any part could use git diff

@PieterCK - Thanks for making those updates! Some of @alya's documentation edits were lost in your changes though, so I'm pushing the following updates:

Revisions of my own to @alya's documentation changes, see screenshot below.

Reorders handling the legacy outgoing webhook case for an early return pattern.
Also reorders event type check for a similar pattern.
Renamed handle_send_webhook_message to handle_slack_webhook_message for clarity since that function is mostly handling the channels_map_to_topics parameter that's specific to this slack integration.
Adjusted some spacing in the view file, and revised some of the code comments.

Updated Slack integration doc

@alya - You may want to do a read through of the documentation updates. Note that for integration docs in general, we've been using ### Related documentation, so it'd be good to maintain that pattern here. And if we want to change that to ## Related documentation, then do a bigger sweep for it.
@PieterCK - Let me know if you have any questions about any of the updates that I've pushed.
@timabbott - I think this is ready for you to review at this point as your initial feedback to handle the legacy outgoing webhook case has been addressed.

Ah, sorry about the doc I must have missed that. The changes look good to me, thank you.

Merged, huge thanks for all the work on this @PieterCK! I added several of my review notes to #30827, the ones that are about starting a wording discussion were not migrated, though.

This was backported in https://github.com/zulip/zulip/pull/32762.


Very slow file search in huge codebase

Since the last update (1.36.1), the file search have become insanely slow. Reverting VSCode to an earlier version (1.34 in my case) seems to fix the issue, so I assume the behavior have been introduced in 1.35 or 1.36.
I'm working on a very big codebase with 10k+ files that are stored locally on my hard drive (no connection or ftp shenanigans)
I've been able to reproduce the issue at large on my team (at least 5-6 different machines), so I don't think this is hardware related.
I can't really show the issue because of NDA reasons, but I just hit CTRL+P and start typing a file name, VSCode hangs for a while and finally get the files. In the older version it would have been instantaneous.
I'm on Windows 10.
If you need any additional details I'll see if I can get a localized repro environment going, thanks !

I found a quick way to repro this, create an empty folder and past this .bat inside :
@echo off
for /L %%I IN (1,1,10000) DO (echo Hello>f_%%I.txt)

Running it will generate 10000 files named f_1 through f_10000, with VSCode 1.36.1 it's lagging a lot, but trying it with 1.34 it works like a charm.

Can you try downloading the Insiders' build and tell me whether it happens there? https://code.visualstudio.com/insiders

Looks alright on the Insiders version, it's still not as responsive as the 1.34 version though I feel but I need to make more tests to see if it's in my head or not. Also I need to test in a real environment, I'll keep you posted.

Thanks for pointing out that this happens with lots of files at the top level. There is at least one real issue here.
@bpasero I see an issue after https://github.com/microsoft/vscode/commit/4b3340352fd68aa302e2686ec9b82da0dfb8ca15, we call fileService.exists on a folder containing 10000 files, which tries to stat all of them. That's not necessary, how can I avoid that?

@roblourens that is unfortunate, I was not aware it had these implications.
Unfortunately there is no API in file system providers to check if a file exists or not, I have to call stat (@jrieken can maybe further comment on whether we could introduce an optimization where we have a way to ask for existence without needing to stat).
You can revert my change, but that means we are not fit for remote scenarios in that particular case.

@jrieken can maybe further comment on whether we could introduce an optimization where we have a way to ask for existence without needing to stat)

There is only stat because node deprecated exists in favour of stat or access (https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_fs_exists_path_callback). Not sure if the latter is faster but if then we can consider adding something like access

Not sure if the latter is faster but if then we can consider adding something like access

@jrieken my understanding is that the origin of this issue is the fact that we call provider.stat and that the previous fs.exists was faster. I think it is reasonable that stat does a lot more compared to exists/access given it resolves metadata too.
Maybe @roblourens could validate that theory if its really that or some other overhead we got. You can easily make our FileService#exists() method call into provider.stat directly without going through the resolve method we have. If you have a CPU profile that would even be better to see if the issue is coming from the use of stat or from the overhead of that method.

@roblourens I pushed a change to make IFileService#exists() go directly to provider.stat. That is as fast as I can make it without introducing new file system provider capabilities. Can you check it out from master?

Much better, thanks!


GPM always connects to getgrav server, even when only want to get Local Packages

I have disabled the option enable_auto_updates_check:
enable_auto_updates_check: false
The partial template user/plugins/admin/themes/grav/templates/partials/nav.html.twig tries to get the number of installed plugins:
{{ admin.plugins|length }} (line 61)
This calls to:
Grav\Plugin\Admin\Admin::plugins(true) --->
Grav\Plugin\Admin\Admin::gpm() --->
Grav\Common\GPM::__construct()
And in that construct you have this code:
$this->installed = new Local\Packages();
try {
        $this->repository = new Remote\Packages($refresh, $callback);
        $this->grav = new Remote\GravCore($refresh, $callback);
} catch (\Exception $e) {
}

So, independently of whether I want to the local plugins (Admin::plugins(true)) or not, the constructor of GPM will always try to connect to getgrav.org server to get the plugins repository.
IMHO this does not makes sense, since I want the local plugins, there is no need to connect to the external server.
The connection to external server to get the remote packages should be removed from the constructor and place it in a explicit function that is called whenever is needed to grab the remote repository.
I will try to make a pull request to fix this.
Thank you!

Cool, i'll look forward to your PR.

I would use DI to lazy load remote packages only if they are needed.

Me too @mahagr, that's my idea as well. There is not dependency injection manager/framework in this project yet. Changing to DI is not straight forward now since it could break other things where the GPM is used (plugins for instance).
I have already asked in the slack channel about using DI manager/framework (I would not use a service locator), but no answer yet.
In the meantime, I am changing the code to do a "pseudo lazy-loading", so the Remote package is only created when it is actually needed.

Grav uses DI, but inits all the classes early, eg. it doesn't lazy load most things.

Well, Pimple is a service locator, not a proper dependency injection manager that's why I said that Grav is not using DI manager, and yes, it does not lazy load dependencies, which is also bad.

PR added to solve this issue

@aguvillalba You may want to take a look into the issue as your change was reverted because of it broke plugin/theme installation.


Package audittool for easier installation

The install and update procedure for audit tool on windows is awkward for FRs and USAID support staff.
It would be easier to use install packages which are platform native:

windows
mac
Linux

This involves some changes to the code architecture:

upgrade to using JDK 17 - the newest LTS for Java
use JPMS modules descriptions
use the jpackage maven step to build packages. We will still have to build natively on each platform.
Consider running WIndows 10 in a VM on bodhi (using RDP?) using the license I got for testing on a Mac VM.

The user's guide' to jpackage is here

Notes on packaging and modules:
Although part of the effort was to modularize, jpackage can't create a module-aware install because some of the graphics libraries (twelvemonkeys) aren't module aware - jlink sees some of their dependencies as 'anonymous' modules.  The code to attempt this is in audit-tool/audit-test-shell/src/main/scripts/macos-jpackage.conf
For debian:
installing on bodhi. First step was to install Java 14

 Application packaging


Google Map Key Issue

Im following this guide
https://github.com/mchristopher/PokemonGo-DesktopMap/wiki/Google-Maps-API:-a-brief-guide-to-your-own-key
When i open the website listed in step 1 and login i get this error

When i open the desktop client i get this error

any pointers to what im doing wrong ?
Thanks in advance

google API has these issues sometimes, try to re-enable stuff and it'll work (it needs a small wait time for it to happen sometimes)
I still don't understand if it works at all, as i get a position error in the dev-console


tv2 contributions

A combination of all the changes needed for the tv2 contributions

Codecov Report

Merging #58 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #58   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           20        20
  Branches         4         4
=========================================
  Hits            20        20

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 894fe36...745c32c. Read the comment docs.


Adds loading spinner

JIRA: https://issues.jboss.org/browse/AEROGEAR-7575
Shows a spinner whenever Apollo is "loading". Can't change this prop using React extension so in order to verify simply hardcode: if (loading) -> if(true).

Why the change of div to Fragment?

TLDR: to not to add additional nodes to the DOM.
When rendering multiple components, React requires them to be wrapped around some node. The problem is normally you're rendering these multiple components inside a parent component, like:
<Container>
    <SomeComponentWithMultipleElements>
</Container>

So the fix is just wrapping everything around divs, which adds additional nodes to the DOM that are not used. React.Fragment allows you to by-pass this requirement, without adding any additional nodes. (see Fragments)


!!/info link needs updated

The List of Elements link in the !!/info command currently points to an old URL that now 404's. It should point to this URL.

well this was supposed to be closed long ago


Facebook to require refreshing auth tokens every 30 days

We'll need to implement support for this in Locker.
http://developers.facebook.com/blog/post/633/
https://developers.facebook.com/docs/offline-access-deprecation/

We'll need to do this before we add a ton more people since it applies to new users.

I'm taking this off of USEIT as the cutover is May 1st, and it's confusing enough in their docs to make it a large unknown how this works yet.  I think it means that new tokens we get after that date will be valid for 60 (not sure!) days, and expire unless the person comes back and we use their browser (?! not sure!) to exchange the token for a new one.
AFAICT the final word is if someone doesn't interact in whatever the max expiration is and the token expires, we're effectively disconnected.  We may need to monitor the time and an email prod to come back specifically for this.


compress GPT2: RuntimeError:Only tensors or tuples of tensors can be output from traced functions

Describe the issue:
When I used NNI to compress GPT2 model,
executing  ModelSpeedup err
there is a wrong:
ModelSpeedup(model, torch.randint(5, 100, [2,8]).to(device), masks).speedup_model()
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/nni/compression/pytorch/speedup/compressor.py", line 55, in init
self.torch_graph = build_module_graph(model, self.dummy_input)
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/nni/common/graph_utils.py", line 24, in build_module_graph
return TorchModuleGraph(model, dummy_input)
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/nni/common/graph_utils.py", line 252, in init
super().init(model, dummy_input, traced_model)
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/nni/common/graph_utils.py", line 66, in init
self._trace(model, dummy_input)
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/nni/common/graph_utils.py", line 78, in _trace
self.trace = torch.jit.trace(model, dummy_input, **kw_args)
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/torch/jit/init.py", line 882, in trace
check_tolerance, _force_outplace, _module_class)
File "/mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/torch/jit/init.py", line 1034, in trace_module
module._c._create_method_from_trace(method_name, func, example_inputs, var_lookup_fn, _force_outplace)
RuntimeError: Only tensors or tuples of tensors can be output from traced functions (getOutput at /opt/conda/conda-bld/pytorch_1579040055865/work/torch/csrc/jit/tracer.cpp:212)
frame #0: c10::Error::Error(c10::SourceLocation, std::string const&) + 0x47 (0x7fe11d76c627 in /mnt/dl-storage/test-cephfs-0/group/asr/envs/anaconda3/envs/pytorch-1.4.0+cuda10.0/lib/python3.7/site-packages/torch/lib/libc10.so)
Environment:

NNI version:2.5
Training service (local|remote|pai|aml|etc):
Client OS:
Server OS (for remote mode only):
Python version:
PyTorch/TensorFlow version:
Is conda/virtualenv/venv used?:
Is running in Docker?:

Configuration:

Experiment config (remember to remove secrets!):
Search space:

Log message:

nnimanager.log:
dispatcher.log:
nnictl stdout and stderr:

How to reproduce it?:

hello @xk503775229 , please check your model output type, speedup need torch.jit.trace to get the model graph, and torch.jit.trace only support tensors or tuples of tensors as output. If your GPT2 output is dict or other type, please change it to tuple as workaround.

hi @xk503775229 Thanks for raising this issue. @J-shang had provider the solution for your problem. Could you try it and update your issue status? Expect your reply!

@Lijiao Thank you very much. I'll give it a try


Android Crash on Killing the Application

android_background_crash.txt
On killing android application, the code on android teardown tries to stop the GPS Listener and it causes error as argument passed is null. Listener was not started yet.
Please find the logs attached
at uz.thunder.gps_connectivity.GpsConnectivityBroadcastReceiver.onCancel(GpsConnectivityBroadcastReceiver.java:2)
at uz.thunder.gps_connectivity.GpsConnectivityPlugin.teardownChannels(GpsConnectivityPlugin.java:22)
[android_background_crash.txt](https://github.com/khamidjon/gps_connectivity/files/11075952/android_background_crash.txt)
at uz.thunder.gps_connectivity.GpsConnectivityPlugin.onDetachedFromEngine(GpsConnectivityPlugin.java:5)

android_background_crash.txt


Custom TTL setting

PDA version
0.4.1
Feature type
Default App Setting Change
Proposed functionality
Currently TTL only allows choosing prexisting  values from list and lowest TTL is 1m there.  Because we use LUA records for fail over we use lower TTLs for those records like 10s. It would be more flexible if we can set custom TTL.
Use case
Setting lower TTL for  LUA records
Database changes
No response
External dependencies
No response

After #123 (and implemented in #409), PowerDNS-Admin already provides an option to (globally) configure the list of values shown in the TTL dropdown in the UI according to your own requirements. Here, you can also include a value such as 10 seconds or even just a bare integer (representing seconds).
You can configure this in Settings -> Basic -> ttl_options.
Afterwards, your custom TTL options should show up in the TTL drop downs for each record.


rssguard: Add version 3.7.0

Closes #4514

Moved from https://github.com/hoilc/scoop-lemon/blob/master/bucket/rssguard.json

/verify


JavaScript

JavaScript
User Story
As a bootcamp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I can see the four topics I learned listed along with a suggestion on what I should study first

JavaScript has been added to the prework study guide.


gha-hazmat is private

https://github.com/search?q=repo%3Awoodruffw%2Fzizmor gha-hazmat&type=code

Public now: https://github.com/woodruffw/gha-hazmat


Moving Geofencing points

Hello,
In your premium version, you speak about native geofencing.
If I understood, this permit to open our app when the device is inside a circular geofence.

Do this works even if the app is not opened ?

There is a solution to change the geofences to watch in background mode ?
Because the geofence to watch is another phone device, and so the geolocation change everytime.

So, inside the yourAjaxCallback function (when your plugin submit my geolocation to my server), my server could add in the response, the list of geofences to watch, then we could change it in theory ?
But do this works only in foreground ?
Regards,

Have you tried the Sample App?

Do this works even if the app is not opened ?

From Apple Documentation

"In iOS, the regions you register with the location manager persist between launches of your
application. If a region crossing occurs while your iOS app is not running, the system automatically
wakes it up (or relaunches it) in the background so that it can process the event. When relaunched, all
of the regions you configured previously are made available in the monitoredRegions property of any
location manager objects you create."

There is a solution to change the geofences to watch in background mode ?
Because the geofence to watch is another phone device, and so the geolocation change everytime.

You simply re-create the geofence each time the target device reports a new location.  A geofence created with the same identifier as an existing one will overwrite the previous.
  bgGeo.addGeofence({identifier: "target-phone", notifyOnEntry: true, latitude: 1, longitude: 1});
  .
  .
  .
  bgGeo.addGeofence({identifier: "target-phone", notifyOnEntry: true, latitude: 2, longitude: 2});
  .
  .
  .
  bgGeo.addGeofence({identifier: "target-phone", notifyOnEntry: true, latitude: 3, longitude: 3});
  .
  .
  .

Thanks !


Add help menu to default app

Also adds -h/--help to the command line.
The goal here it just to doc things a bit more and provide some useful links typically found in Help menus.

:+1:


Confused On Usage

Node: v10.3.0
OS: macOS Mojave v10.14.4
webpack-merge: v4.2.1
I'm working with a config that has the DefinePlugin across two files (a dev config and a common config). I swear this functionality was working previously for me but it no longer is and I don't know where/when it broke. Basically, whats happening, is that whatever item is on the right takes precedence.
Here is the sample set:
console.log(configClientCommon.plugins[0]);
// DefinePlugin { definitions: { 'process.env': { commonVar: 'bar' } } }

console.log(configClientDev.plugins[0]);
// DefinePlugin { definitions: { 'process.env': { NODE_ENV: '"development"', devVar: 'foo' } } }

The merge produces this:
console.log(webpackMerge(configClientCommon, configClientDev).plugins[0]);
// DefinePlugin { definitions: { 'process.env': { commonVar: 'bar' } } }

Reversing produces this:
console.log(webpackMerge(configClientDev, configClientCommon).plugins[0]);
// DefinePlugin { definitions: { 'process.env': { NODE_ENV: '"development"', devVar: 'foo' } } }

This is all made even more confusing by the following, which is what I'm expecting from my merge:
console.log(webpackMerge(
            { DefinePlugin: { definitions: { 'process.env': { commonVar: 'bar' } } } },
            { DefinePlugin: { definitions: { 'process.env': { NODE_ENV: '"development"', devVar: 'foo' } } } }
        ).DefinePlugin);
// { definitions: { 'process.env': { commonVar: 'bar', NODE_ENV: '"development"', devVar: 'foo' } } }

What am I missing here? I can't seem to pinpoint what's going on and like I mentioned, this used to work at some point just fine.

@bebraw I've created a very small test project. Just unzip, npm install, and npm start to see the logs.
webpack-merge-test.zip

Hi,
I checked your example zip. webpack-merge works in this case exactly as I would expect.
Try adding console.log(config.plugins[0], config.plugins[1], config.plugins.length); to your webpack.config.js. That will show two DefinePlugin instances.
It works like this with plugins since it's hard to merge plugin options reliably due to the different ways webpack plugins can be defined. I tried this before and the code became rather problematic.
Is it possible webpack's behavior has changed in case multiple DefinePlugins are used? Can you try against an older version of webpack to verify this?

@bebraw Gotcha, thanks for the reply. I ended up rewriting my configs and setup to use DefinePlugin in one spot for each environment rather than trying to merge them with webpack-merge. I'll go ahead and close this as a result.


explicit check for python compatibility with minor version

good topic to rethink -vvv & -ddd operators (what you print in each case)

explicit check for python compatibility with minor version? what does this refer to? and what is the link with -vvv -ddd here?

added (-vv -dd left to do)


[Bug] transaction_id was removed in previous release.

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the issue
The transaction_id from the quickbooks__general_ledger model was removed in v0.5.1. This was removed erroneously and should be added back in.
Relevant error log or model output
No transaction_id in the GL model.

Expected behavior
The transaction_id is included in the GL model.
dbt Project configurations
N/A
Package versions
v0.5.1
What database are you using dbt with?
bigquery
dbt Version
dbt v1.2.0
Additional Context
No response
Are you willing to open a PR to help address this issue?

[X] Yes.
[ ] Yes, but I will need assistance and will schedule time during our office hours for guidance
[ ] No.

This issue has since been resolved in the latest release of the dbt_quickbooks package. As such, closing the issue.


Puma caught this error: undefined method `helper_method' for ActionController::API:Class (NoMethodError)

When I run rails s I see these error

but it works fine when I refresh it once. Why always I see these error first time in rails app ?

@winston is there any way to disable the app/helpers/view_helper.rb file. Since I am not want to use it.

Fixed via https://github.com/winston/google_visualr/commit/5dd3ffbb470da1d66f34826089a8ce62deffefa6

can we release a new version for this fix? 🚢


This does not work forme.

I have been trying everything I know but this does NOT work for me.
Get-Content "c:\temp\account.txt" | ForEach { Set-MsolUserLicense -UserPrincipalName $_ -RemoveLicenses "acctname:STANDARDWOFFPACK_IW_STUDENT", "acctname:STANDARDWOFFPACK_STUDENT"}
It is NOT removing licenses.    I really do not want to remove licenses one by one on over 2000 people.   Any help available???  (yes I know the "acctname" is the name of our account.. just removed as I do not want that published).  TY

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

ID: 90144912-28c3-e215-7763-12beddc645c7
Version Independent ID: c2aa496c-51d4-ffd9-9b06-e3a7097d027a
Content: Remove licenses from user accounts with Office 365 PowerShell
Content Source: Enterprise/powershell/remove-licenses-from-user-accounts-with-office-365-powershell.md
Service: o365-administration
GitHub Login: @JoeDavies-MSFT
Microsoft Alias: josephd

@geekgalconsulting Please try this way of doing it:
$x=Get-Content c:\docs\LicenseTest.txt
for ($i=0; $i -lt $x.Count; $i++)
{
Set-MsolUserLicense -UserPrincipalName $x[$i] -RemoveLicenses "acctname:STANDARDWOFFPACK_IW_STUDENT","acctname:STANDARDWOFFPACK_STUDENT"
}

@geekgalconsulting I have tested the above new code and have updated the article. Please re-open this issue if it doesn't work for you. Thanks for letting us know.

Oh, thank you!  I will try it next week.


Reproducible builds

I see that orbit is moving to Circle CI automatically publishing release artifacts. Are builds reproducible, or is there any other way to establish trust with these builds?

Right now they're not. Ideas how to do this, ideally with CircleCI, would be highly appreciated @lgierth.

My implicit concern is that we should not advertise releases that were built on untrusted third-party machines without a way of verifying their integrity

:+1: I think it's something we can have a chat about when it comes to general artifacts produced by IPFS projects. Would be good to have a process on how we can do the builds and how to verify them.


mainnet-011: Fjord setRecommended PV & ownership transfers (WIP)

Description

mainnet ProtocolVersions.setRecommended to 7.0.0 (Fjord)

template updates

adding allowed state change checks to base contract

ownership transfers still TODO

Tests
Added state diff assertions
Additional context
Add any other context about the problem you're solving.
Metadata

Fixes #[Link to Issue]

Needs a rebase or merge
Needs the new job added to CI (I added this to #240 for you)
Should it still be in draft?


How do I find the current price of a stock?

I would've pointed you to the Google Finances JSON description but it seems that the original URL I've been using stopped working at the moment.


MviView

Should we consider to create a new MviView interface for the MVI module and not use the MvpView one?
My thoughts are all about for separation of concerns and scalability. For example, in an MviView, we can force to have a render method with a ViewState.
I can go for it and make a PR.
Let me know what do you think.

I would prefer to keep Mosby very slim. I don't want to push people to have exactly one render() method, that would be very framework-ish and I see Mosby more as a little library. I would like to see that people can use Mosby as a library to build their own "framework a like" architecture on top of it if they want to.
For example, if someone prefers calling view.showLoading(), view.showContent()from Presenter this is still possible inMviBasePresenter`.
interface MyView extends MvpView {
    public void showLoading();
    public void showData(Foo foo);
}

class MyPresenter extends MviBasePresenter<MyView, MyModel>{

   protected void bindIntents(){
        ...
       Observable<MyModel> observable = ... ;
       subscribeViewState( observable, { view, model ->
              if (model.isLoading())
                  view.showLoading();
             else
                  view.showData(model.getData);
        }
   }
}

I don't want to limit people. Freedom is quite important for me and the driver of innovation / evolution.
So I'm open to discuss this with the community,
but from my point of view it doesn't make much sense to limit people and therefore I don't see a good reason to introduce a MviView
Btw. you could introduce a MviView with a render() method just for your project.

I agree with @sockeqwe. In a few project I work on we have developed our own mini-framework of classes on top of basic stuff provided by Mosby. Mosby is good because it is focused on this and doesn't get in the way. It is nice when you have simple, working and stable bare defaults which you can use to build something more custom on top. Extensions can be provided as different modules/libraries, but the core should stay focused imo.

I think we agree that this is something a user of Mosby should do on top of Mosby. If not, feel free to reopen this issue


Deploy cloud function not Deploying

I can't get it to deploy I'm wondering if I miss understudy something about setup.

Here is a screenshot of the structure of the code. Maybe you can spot a mistake?

@JeBenzon , There would be an error in the revision logs for a failure to deploy, can you open the logs and send the errors in a text code block (not screenshot)?

[   {     "protoPayload": {       "@type": "type.googleapis.com/google.cloud.audit.AuditLog",       "authenticationInfo": {         "principalEmail": "[Email]"       },       "requestMetadata": {         "callerIp": "2a05:f6c3:2063:0:bc2a:7497:c55e:8fb2",         "callerSuppliedUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36,gzip(gfe),gzip(gfe)",         "requestAttributes": {           "time": "2022-02-05T17:59:59.218299Z",           "reason": "8uSywAYQGg5Db2xpc2V1bSBGbG93cw",           "auth": {}         },         "destinationAttributes": {}       },       "serviceName": "cloudfunctions.googleapis.com",       "methodName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction",       "authorizationInfo": [         {           "resource": "projects/helical-decoder-316817/locations/europe-west1/functions/discord-app-7",           "permission": "cloudfunctions.functions.create",           "granted": true,           "resourceAttributes": {}         }       ],       "resourceName": "projects/helical-decoder-316817/locations/europe-west1/functions/discord-app-7",       "request": {         "location": "projects/helical-decoder-316817/locations/europe-west1",         "function": {           "labels": {             "deployment-tool": "console-cloud"           },           "runtime": "nodejs16",           "httpsTrigger": {             "securityLevel": "SECURE_OPTIONAL"           },           "serviceAccountEmail"<EMAIL_ADDRESS>          "availableMemoryMb": 128,           "maxInstances": 3000,           "sourceUploadUrl"<EMAIL_ADDRESS>          "ingressSettings": "ALLOW_ALL",           "timeout": "60s",           "name": "projects/helical-decoder-316817/locations/europe-west1/functions/discord-app-7",           "entryPoint": "slash-create"         },         "@type": "type.googleapis.com/google.cloud.functions.v1.CreateFunctionRequest"       },       "resourceLocation": {         "currentLocations": [           "europe-west1"         ]       }     },     "insertId": "kjhy8tdqrwa",     "resource": {       "type": "cloud_function",       "labels": {         "project_id": "helical-decoder-316817",         "region": "europe-west1",         "function_name": "discord-app-7"       }     },     "timestamp": "2022-02-05T17:59:58.986449Z",     "severity": "NOTICE",     "logName": "projects/helical-decoder-316817/logs/cloudaudit.googleapis.com%2Factivity",     "operation": {       "id": "operations/aGVsaWNhbC1kZWNvZGVyLTMxNjgxNy9ldXJvcGUtd2VzdDEvZGlzY29yZC1hcHAtNy9POUxNZnFHcXVXTQ",       "producer": "cloudfunctions.googleapis.com",       "first": true     },     "receiveTimestamp": "2022-02-05T17:59:59.281788416Z"   },   {     "textPayload": "Function 'slash-create' is not defined in the provided module.",     "insertId": "000000-5b6284ad-ac8c-4c6e-a175-db4eac62437e",     "resource": {       "type": "cloud_function",       "labels": {         "function_name": "discord-app-7",         "region": "europe-west1",         "project_id": "helical-decoder-316817"       }     },     "timestamp": "2022-02-05T18:01:42.851Z",     "labels": {       "execution_id": ""     },     "logName": "projects/helical-decoder-316817/logs/cloudfunctions.googleapis.com%2Fcloud-functions",     "receiveTimestamp": "2022-02-05T18:01:44.287734537Z"   },   {     "textPayload": "Did you specify the correct target function to execute?",     "insertId": "000001-7260b0ed-23c9-4625-b6c7-090edf0beac7",     "resource": {       "type": "cloud_function",       "labels": {         "function_name": "discord-app-7",         "project_id": "helical-decoder-316817",         "region": "europe-west1"       }     },     "timestamp": "2022-02-05T18:01:42.851Z",     "labels": {       "execution_id": ""     },     "logName": "projects/helical-decoder-316817/logs/cloudfunctions.googleapis.com%2Fcloud-functions",     "receiveTimestamp": "2022-02-05T18:01:44.287734537Z"   },   {     "textPayload": "Could not load the function, shutting down.",     "insertId": "000002-8a2d28ba-d369-49ba-94b1-fa522f1feef0",     "resource": {       "type": "cloud_function",       "labels": {         "region": "europe-west1",         "project_id": "helical-decoder-316817",         "function_name": "discord-app-7"       }     },     "timestamp": "2022-02-05T18:01:42.851Z",     "labels": {       "execution_id": ""     },     "logName": "projects/helical-decoder-316817/logs/cloudfunctions.googleapis.com%2Fcloud-functions",     "receiveTimestamp": "2022-02-05T18:01:44.287734537Z"   },   {     "textPayload": "Function cannot be initialized. Error: function terminated. Recommended action: inspect logs for termination reason. Additional troubleshooting documentation can be found at https://cloud.google.com/functions/docs/troubleshooting#logging\n",     "insertId": "000000-e972c2a7-36bf-408d-a80c-d02addbfd0bf",     "resource": {       "type": "cloud_function",       "labels": {         "region": "europe-west1",         "project_id": "helical-decoder-316817",         "function_name": "discord-app-7"       }     },     "timestamp": "2022-02-05T18:01:43.998073087Z",     "severity": "ERROR",     "labels": {       "execution_id": ""     },     "logName": "projects/helical-decoder-316817/logs/cloudfunctions.googleapis.com%2Fcloud-functions",     "receiveTimestamp": "2022-02-05T18:01:44.287734537Z"   },   {     "protoPayload": {       "@type": "type.googleapis.com/google.cloud.audit.AuditLog",       "status": {         "code": 3,         "message": "Function failed on loading user code. This is likely due to a bug in the user code. Error message: Error: please examine your function logs to see the error cause: https://cloud.google.com/functions/docs/monitoring/logging#viewing_logs. Additional troubleshooting documentation can be found at https://cloud.google.com/functions/docs/troubleshooting#logging. Please visit https://cloud.google.com/functions/docs/troubleshooting for in-depth troubleshooting documentation."       },       "authenticationInfo": {         "principalEmail": "[Email]"       },       "serviceName": "cloudfunctions.googleapis.com",       "methodName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction",       "resourceName": "projects/helical-decoder-316817/locations/europe-west1/functions/discord-app-7"     },     "insertId": "-at7sqdc1p6",     "resource": {       "type": "cloud_function",       "labels": {         "region": "europe-west1",         "project_id": "helical-decoder-316817",         "function_name": "discord-app-7"       }     },     "timestamp": "2022-02-05T18:01:44.066649Z",     "severity": "ERROR",     "logName": "projects/helical-decoder-316817/logs/cloudaudit.googleapis.com%2Factivity",     "operation": {       "id": "operations/aGVsaWNhbC1kZWNvZGVyLTMxNjgxNy9ldXJvcGUtd2VzdDEvZGlzY29yZC1hcHAtNy9POUxNZnFHcXVXTQ",       "producer": "cloudfunctions.googleapis.com",       "last": true     },     "receiveTimestamp": "2022-02-05T18:01:44.884470402Z"   } ]

I'm not sure this is the right log.
Hope it is, its a really cool project, really want to get it working!

Function 'slash-create' is not defined in the provided module

the default name of the exposed function is interactions

I believe I'm having the same issue. What is the entry point supposed to be?


Handle ReviveDBRestorePointNotFound error

operator now handles ReviveDBRestorePointNotFound error returned from vclusterops
e2e test for invalid id and index
e2e test for cluster scaling before restoring

I don't have any comments in your PR. e2e leg 6 was failed because it also has log rotation for 'editor.log.' I just fix the test in my PR. Perhaps, you can wait until my PR is merged.


[BUG] Serialization and deserialization of optional collections produce [null] when null passed

Describe the bug
If the model has @CollectionOf on optional property and null is passed to that property then it is coerced to an array with single null while previously it was not coerced and remained null.
Based on that discussion https://github.com/tsedio/tsed/issues/2355 seems like this is a bug.
To Reproduce
Install version 7.20.0
Run this snippet
import { CollectionOf } from '@tsed/schema';
import { deserialize } from '@tsed/json-mapper';

class Model {
   @CollectionOf(String)
   public bars?: string[];
}

const payload = { bars: null };

deserialize(payload, {type: Model});

Re-run snippet with version 7.36.5 installed
Expected behavior
The property should not be coerced and remain as null
Code snippets
No response
Repository URL example
No response
OS
any
Node version
18.17.1
Library version
7.46.5
Additional context
No response

@denis-maiorov-brightsec Thanks for the feedback ;)
PR is ready and will be merged today!
See you

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

v7.36.6
GitHub release

Your semantic-release bot :package::rocket:


README: fix accrual period

Hello, thanks for knut!
I think that the month and the day were swapped by mistake.
(I saw that the README is also templated below doc/ but I did not investigate further)

ping @sboehler :-)

Thanks, fixed it!
doc/README.md is the template, which is converted to README.md by running make doc.

Fixed in e65fe54.


window.kcContext expose the user credentials (username+password) in case of authentication failure.

How to reproduce?

Clone the keycloakify-starter
Build the project
Copy the JAR file into the providers directory of Keycloak
Assign the theme to 1 Keycloak client (login)
Try to authenticate with a wrong username/password credentials
On the console: window.kccontext

The output includes a login object with a username and password attributes which are not necessary for this page (The user will re type the username and password again)

Also I am not sure why the content from window.kccontext is different from the one that exist on the page (by checking the page source code, the one in the source code does not includes the username and password, just an empty login object)
Thanks!!

Hello @elloumiii,
By default Keycloakify put the full freemarker context into kcContext. See source. This is why you don't find anything when you search "password" in the code.
I can filter out kcContext.login.password sure, however I don't think this represent a security vunerability. Keycloak just send back the the credentials that the user just entered.
A theme could display a message like "You've juste entered the default password that was provided to by the sys admin, you changed it since". I don't know.
I'm also working on a configuration option that will enable to filter out the things from the kcContext.
Since having something named "password" in the kcContext might be a red flag for some user I'm going to filter it out.

Done
https://github.com/keycloakify/keycloakify/commit/5bb22fc3457188772ae87464711d4f3adbaf0c8e
Thanks for reporting


SNI cert selection support

What should we add or change to make your life better?
In Island Gateway, we added support for SNI cert binding. If there is interest, I can submit a PR to contribute that here. Note that we have not tackled Linux scenarios.
Our design is roughly the following:

A background task periodically scans all reasonable certs from a given cert store. More on what is a reasonable cert below
Extract all SAN entries from each reasonable cert, and build a dictionary mapping acceptable host names to certs. Wildcard entries are supported per RFC6125 section 6.4.3.
Deterministic logic selects the best cert for a host name out of all available certs. More on the definition of best below.
When any changes are detected, atomically swap the old dictionary with the new one
We expose an interface that can be called from Kestrel's server cert selection callback to produce the appropriate cert for a given host name, or null if none match. Cert selection is always O(1) w.r.t number of bound host names, including for wildcard matches.

Why is this important to you?
Frontend gateways such as those using YARP often host multi-tenant workloads serving multiple host names. Automatic SNI TLS cert binding reduces a lot of devops friction, ensuring the right certificates are picked up without human intervention. Cert rotation also becomes trivial, as the background update loop takes care of finding and using the best certs available at all times.
Other notes

Definition of reasonable cert: Similar to Kestrel's existing logic:

<IP_ADDRESS>.<IP_ADDRESS>.1 Enhanced Key Usage oid when the extension is present
Private key is available
Additional validity + revocation checks. we call X509Certificate2.Verify() to also check for revocation, whereas X509CertificateStore.Find(... validOnly: true) (used in Kestrel's defaults) does not check revocation.

Definition of best cert: The most recently-issued certificate that is reasonable. We use most recently issued rather than furthest expiration to properly handle situations where due to a policy change cert expiration times may be reduced (maybe someone used to issue certs good for 2 years, but now switched to 6 months. We wouldn't want to keep using the old certs once the new ones are available).

There's nothing YARP specific about this except being more likely to have multiple certs. It's probably best addressed directly in Kestrel.
I hadn't envisioned directly scanning the store, but rather specifying the certs in config and then making config reloadable.
Related issues:

https://github.com/dotnet/aspnetcore/issues/15144 - config based SNI
https://github.com/dotnet/aspnetcore/issues/19376 - reloadable config
https://github.com/dotnet/aspnetcore/issues/20981 - async SNI callback

It might be best to explore making this change in ASP.NET Core. For example, https://github.com/dotnet/aspnetcore/issues/15144 is really close to what you described @davidni. The design we landed on in that issue was a config-based system, but I could also see an option to just load directly from the cert store. That's only applicable on Windows, which is why we've generally hesitated away from it being the only solution, but supporting both a configured list of certs and auto-scanning from the store seems reasonable.

Triage: We'll move this down to dotnet/aspnetcore#15144 and a new issue to cover pulling certs straight out of the store.

We may decide that the automatic cert store stuff is too much complexity for ASP.NET Core, so I'll leave this open and in our 1.0 backlog since we should consider doing something like this in the proxy for 1.0.

Duplicate of https://github.com/dotnet/aspnetcore/issues/21300


Officially Support Java 21

Java 21 is for some time the latest LTS but not all compoennts have catched up and proclaim support for it. For example the Microsoft Download page only mentions it is supported on Java 20.
Describe the preferred solution
Declare Java21 as supported.
Describe alternatives you've considered
Define what Java 21 not work yet (if there are any), or give an ETA for a version which is supposed to work with Java 21. Or remove the upper Java version from the download page (i.e. Java 8+, latest fully tested version x)
Reference Documentations/Specifications
https://learn.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16

Hi @ecki,
Our documentation is updated with every stable release. As the driver supports Java 21 starting from 12.5, we will update documentation to reflect this alongside our 12.6 release, which is planned for January 31.

Closing as docs will be updated when 12.6 is released.


fix: sku_name values highlighting

Fixed incorrect highlighting of the possible SKU names in the docs.

Hi @ThorstenSauter
The docs are generated from the variable description so the change will have to be made there. Sorry for the confusion!

Hi @matt-FFFFFF,
thanks for letting me know. I've fixed it in the variable description.

Thank you for this pr - incorporated in #113


Strange behaviour of data-parsley-excluded added and removed on the fly on a single field

data-parsley-excluded must be added with $().attr(). $().data() does not work.
PS: I tried this also with data-parsley-required, so it seems a common behavior:
https://jsfiddle.net/6xqs4c9j/1/
If you add data-parsley-excluded you must destroy and recreate parsley on the form, or it does not work
once data-parsley-excluded is set to true, if you subsequently set it to false or remove the attr completely, it continues to works as it is true, even destroying and recreating parsley on the form.

https://jsfiddle.net/7kh4tvd8/7/

the only way to simply handle this case is to set
$single_input.parsley().options.excluded = true;
and
$single_input.parsley().options.excluded = false;
https://jsfiddle.net/6xqs4c9j/

Hopefully this should be resolved at the same time as #1177.
Let me know if that's not the case...

Thank you, it works like a charme now.
It's not possible to do nothing about the first point? It's a bit misleading that you can enable parsley options with attr but not with data, since they are data attrs.

I understand your confusion. data gets initialized from data- attributes, but once you have called data once on a DOM element and initialization is done, then there is no longer a relationship between the attributes and the values of data(); both can be changed independently and jQuery never updates the counterpart.
Parsley always uses the attributes, never the data, which I believe is the right way to go.
You can change Parsley's default and replace data-parsley- with something else; note that only data-... attributes are supposed to be used according to the HTML specs though.
HTH


Run the container on already processed data

Hello,
I successfully run the image on a OSM file in a container overpass_api and the service was running smoothly.
The data is in the folder /data/overpass_db/, the database is set with init_done, cookie.jar and db/.
For various reason, I had to change docker's root and now docker does not see overpass_api container any more.
I would like to run a new container without rebuilding the database again. Is it possible?
By the way, thank you for this docker image. It is very useful.
Best,
Duccio

Yes, if you'll pass to the container the same parameters (such as OVERPASS_DIFF_URL) and mount the same directory under /db then container should detect, that database is already initialized and just continue. This is also the way I usually upgrade overpass version (recreate the container with new container image using the same /db folder and all environment parameters).

Thank you, it works.
If I may, just out of curiosity, what is this part of the process?
After 0h0m15s: in "recurse", part 0, on line 26. Stack: 0 of 0 218 of 0 0 of 0
After 0h0m30s: in "recurse", part 0, on line 27. Stack: 0 of 0 667 of 0 0 of 0
After 0h0m45s: in "recurse", part 0, on line 27. Stack: 0 of 0 1889 of 0 0 of 0
After 0h1m0s: in "recurse", part 0, on line 27. Stack: 0 of 0 2785 of 0 0 of 0
After 0h1m15s: in "recurse", part 0, on line 27. Stack: 0 of 0 3723 of 0 0 of 0
After 0h1m30s: in "recurse", part 0, on line 27. Stack: 0 of 0 4867 of 0 0 of 0

This is probably area generation process, see here. It's used when the query refers some geographical area by name, like this query:
  ( area[name="United Kingdom"]; )->.a;  /* or more selectively: */
  ( area["ISO3166-1"="GB"][admin_level=2]; )->.a;


Add Gnome Terminator support

Thanks for Omni theme!
Gnome Terminator is long running project (started in 2007) to expand upon the core functionality within Gnome Terminal.
In summary, Terminator offers a lot of the same core functionality that iTerm2.app offers on MacOS. (broadcast input, split windows, etc.)
I have made some small attempts to port Omni to Terminator.
However, I have run into issues with things like DIR COLORS and certain CLI applications not working properly with the Omni theme. e.g. cointop
I propose that Gnome Terminator get first class support with the Omni color pallet Theme.
Application: GNOME Terminator
Application URL https://gnome-terminator.org/
GitHub URL: https://github.com/gnome-terminator/terminator
More info about current developers:
https://github.com/gnome-terminator/terminator/issues/1
Info from APT repositories:
aptitude show terminator

Package: terminator
Version: 1.91-4ubuntu1
State: installed
Automatically installed: no
Priority: optional
Section: universe/misc
Maintainer: Ubuntu Developers<EMAIL_ADDRESS>Architecture: all
Uncompressed Size: 2,149 k
Depends: python3-cairo, python3-configobj, python3-dbus, python3-gi,
         python3-gi-cairo, python3-psutil, gir1.2-glib-2.0, gir1.2-gtk-3.0,
         gir1.2-pango-1.0, gir1.2-vte-2.91, dbus-x11, python3:any
Recommends: gir1.2-keybinder-3.0, gir1.2-notify-0.7, xdg-utils
Provides: x-terminal-emulator
Description: multiple GNOME terminals in one window
 Terminator is a little project to produce an efficient way of filling a large
 area of screen space with terminals.

 The user can have multiple terminals in one window and use key bindings to
 switch between them. See the manpage for details.
Homepage: https://gnometerminator.blogspot.com/p/introduction.html

Hey @cmosetick, I created a repository to port the omni terminator.
Repository URL: https://github.com/ermesonsampaio/terminator
Issue: #55
I tested the cointop and got this result:

The theme is available at https://github.com/getomni/terminator 🎉

This is really awesome, thanks for the time spent on this guys! @ermesonsampaio @jpedroschmitz


Fixes #41: Added npm shrinkwrap to lock dependencies

Q
A

Bug fix?
yes

New feature?
no

New sample?
no

Related issues?
fixes #41

What's in this Pull Request?
Added npm shrinkwrap to lock dependencies to the correct versions used when building the sample.

Hi @waldekmastykarz, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

thx Waldek.


Function to get state of a connection

Write a function that uses the NM DBus API to get the state a previously configured connection.
It should take a connection, it should return a result.

https://github.com/resin-io/hq/pull/453


Fast lane action workers

This is tracked by https://github.com/arangodb/team-clifton-planning/issues/8


Add spanish translation link

Hi!, I've translated this to Spanish, could you add the link?

Absolutamente, gracias!


Update eastl to the latest commit

Eastl installation failed with error "initializer_list(58): error C2953: 'std::initializer_list': class template has already been defined".
This issue disappeared in the latest eastl commit. (https://github.com/electronicarts/EASTL/pull/182) (https://github.com/electronicarts/EASTL/pull/184)
Since the latest release version of eastl still is 3.09.00, so we update the REF to latest master commit.

@alexkaratarakis , please help review this PR.


cli mode, mozjpeg changed direction in some picture

decode and encode the below picture, the result change the direction of the original picture
squoosh-cli ~/js/bit-img/dist/nk2.jpg  --mozjpeg

original pic and result pic:

This is most likely because the original picture is actually sideways but contains EXIF data that prompts most UIs to display it in a rotated fashion. We currently ignore and strip EXIF data and — with compression being the main focus of Squoosh — have no intention of changing that.
Gonna close this. Please feel free to reopen if you disagree or think there’s a different underlying cause.

This is most likely because the original picture is actually sideways but contains EXIF data that prompts most UIs to display it in a rotated fashion. We currently ignore and strip EXIF data and — with compression being the main focus of Squoosh — have no intention of changing that.
Gonna close this. Please feel free to reopen if you disagree or think there’s a different underlying cause.


Update references from statemint-local to asset-hub-rococo-local on zombinet configuration files

For local trappist playground example here and among other configs under trappist/zombienet the local asset-hub parachain uses statemint-local as the chainspec which now would just point to asset-hub-polkadot invalidating the assumption for a user playing with a fresh local asset-hub parachain.
chain would need to be updated to use asset-hub-rococo-local instead
[[parachains]]
id = 1000
add_to_genesis = true
cumulus_based = true
chain = "statemine-local"

Fixed by #325


Options for NIGHTTIME filter in reporting

Additional options for the NIGHTTIME quality flag filter in reporting would be helpful, particularly to allow reports to include hours where some, but less than 90%, of the hour was during daytime while still excluding hours that were fully at night. Either making the resample threshold adjustable or adding a second version of a nighttime filter (perhaps with a 90 or 100% threshold) could address this.
As an example, here is a day from a report without the nighttime filter:

And here is the same day with the nighttime filter:

You can see that the filter removes the first and last hours, even though they include non-negligible generation (~5-10% of nameplate, in this example). The first hour in particular can be important in real-world operations.

The API supports an adjustable threshold but it's not exposed in the dashboard form. Unfortunately, the API report post documentation is not thorough enough to even give you hint at how it's done.
@lboeman do you agree we can transfer this issue to the dashboard repository? And maybe a new issue in the API repo for documenting this?

I think we need an API issue to improve the docs, but we have this one for the dashboard: https://github.com/SolarArbiter/solarforecastarbiter-dashboard/issues/367


Change type of keys to []interface{}

Why does keys have to be a []string? I am working with https://labix.org/mgo where all IDs are of type bson.ObjectId. This makes using dataloader somewhat impractical because I have to convert all bson.ObjectIds into strings before piping them into the Load function of dataloader. In there, I have to convert them back to bson.ObjectIds to execute the MongoDB queries. If the Load function would except the keys as []interface{} instead of []string, that would make my life a lot easier because I could directly pipe the bson.ObjectIds into it.
The context.Context package works the same way. There, a key can also be interface{}.

I just saw that this was already discussed in #23. Sorry for the duplicate! Nevertheless, it gives no reason for being closed and I saw that they had similar discussions on https://github.com/facebook/dataloader/pull/15 so I thought I'd bring it up again.

I closed the issue because I decided to just use strings rather than force users to use interface{}.
If a similar change was merged into github.com/facebook/dataloader we should probably consider something similar here.

Thanks for bringing this up @mastertinner. It appears that the spec has changed since I built this library so I'm open to this change. I'll work on it tomorrow and release a new version.

@mastertinner @tonyghita What do you think of this: https://github.com/nicksrandall/dataloader/compare/v4
If you are ok with the change, I'll make the v4 branch the main branch.

@nicksrandall thanks! I think that looks good :)

Absolutely fantastic! Thanks so much, @nicksrandall!

This change has been merged in.  @tonyghita I also tagged the release.

Thanks, @tonyghita and @nicksrandall! You guys have been awesome with replying to my requests!

Just wanted to share my experience upgrading from v2 to v4.1.0 in my toy project.
https://github.com/tonyghita/graphql-go-example/commit/c0369fd0bf7a2832feff53e672b58e43a7c4c642
After the upgrade, there is a lot more copying (due to []interface{}), but I think it should be cheap enough to be acceptable.

@tonyghita I’m also worried about this as I have had a similar experience. What if instead of allowing empty interface, we required a specific interface. Something like:
type Key interface{
  String() string
  Value() interface{}
}

Do you think that would help?

Hmm.... I'm not exactly sure what the best path forward looks like yet.
In my work use-cases, we have way more dataloaders with string keys than those with composite keys. For now, we just create composite string keys with some kind of separator like ; for those loaders. This is a pretty brittle approach but generally it works because these cases are fairly limited.
I'll play around with some ideas and come back to this. In the meantime it might help if we write some benchmarks... I'll look into this (will help catch any perf regressions).


removing unused rabbit queues from collection exercise

What and why?
How to test?
Trello
https://trello.com/c/svAgAyV2/733-remove-unused-rabbit-queue-rm-collection-exercise-service

looks like you need to run mvn fmt:format

/deploy sinhaa

/deploy baileyw


Add a Timer till the event end

Add a timer above the Leaderboad table that shows the time left out in this event. (Days, Hours, Minutes, Seconds)
(Until 11:00 PM IST on 25th October 2020)
Bonus points for being aesthetically pleasing

Hey @srujandeshpande ,I want to try it :)

Can I try this??


pkg/vmextension/status: atomic file write

If waagent reads .status in the middle of a partial write, it will
get malformed JSON. Therefore write status file into a $file.tmp.$RANDOM
path in the same directory and then move to $file atomically.
Fixes #100.
cc: @boumenot

LGTM.

done


templates/default/fulldoc/html/css/style.css one line change

Line 450 is currently ---
pre.code { color: #000; }
Please change to
pre.code { color: #000; tab-size: 2;}

I'm not opposed to this change. Write it up as a lull request so you can be properly credited for this proposal!

This was merged in #904. Thanks!


Backslashes in text fields are lost after backup and restore

Backslashes in String fields are lost after backup and restore.
Original text field content: "data\with\backslash";
mysql-backup4j produces an insert statement like this:
INSERT INTO [...] VALUES ('data\with\backslash')
After restore, the field contains the value "datawithbackslash". This is because MySQL requires backslashes in SQL to be escaped.

@SeunMatt
When exporting data using this library, I'm encountering the same issue with the handling of backslashes in strings.
This is what I'm getting when I try to export data using this library.
INSERT INTO `backup`(`id`, `saas_client_id`, `created_at`, `created_by`, `last_modified_by`, `modified_at`, `deleted_at`, `deleted_by`, `is_deleted`, `name`, `destination_path`, `filename`, `fs_backup_status`, `db_backup_status`) VALUES
('4', '1', '2024-07-17 05:06:20.846334', '1', null, null, null, null, 0, 'db Backup test_1', 'C:\Users\Livares\Desktop\backup_test', '20240717-103620.zip', 0, 2);

But the strings with slashes are not being escaped properly. Please note the value of destination_path column "C:\Users\Livares\Desktop\backup_test".
When I try to import it back to DB it doesn't get inserted as the original value. For example it's corrupted like this: "C:UsersLivaresDesktopackup_test"
While exporting I want to get slashes escaped like the following: "C:\\Users\\Livares\\Desktop\\backup_test".
when I manually export the dump file, the strings with slashes are escaped correctly .

To export all types of characters properly in String type, I needed to do more escaping work - here is my code:
private String getDataInsertStatement(String table) throws SQLException {
...
//                escape the single quotes that might be in the value
val = val
.replace("\", "\\") // Escape backslashes first
.replace("'", "\'")   // Escape single quotes
.replace(""", "\"") // Escape double quotes, if necessary
.replace("\n", "\n")  // Escape newlines
.replace("\r", "\r")  // Escape carriage returns
.replace("\t", "\t"); // Escape tabs

@osteffl  Thanks for sharing this! Your escaping approach is super helpful.


chore(master): release 1.1.48

:robot: I have created a release beep boop
1.1.48 (2023-08-24)
Miscellaneous

deps: update dependency phpstan/phpstan to v1.10.32 (35d37ad)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-stripe-webhooks/releases/tag/v1.1.48 :sunflower: