Self-hosted asciinema-server cannot send email through SMTP

Describe the bug
Sending email with SMTP not work.
To Reproduce
Steps to reproduce the behavior:
Using the docker compose version to self-host a asciinema server. Setting the SMTP_* environments below:
- SMTP_HOST=smtp.qq.com
- SMTP_PORT=465
- SMTP_AUTH=always
- SMTP_USERNAME=**MY_EMAIL_ADDRESS**
- SMTP_PASSWORD=**MY_PASSWORD**
- SMTP_TLS=always
- SMTP_FROM_ADDRESS=**MY_EMAIL_ADDRESS**

Then send with the test email command:
docker-compose exec asciinema send-test-email MY_EMAIL_ADDRESS

The command is freeze without any output.
The signup page triggers a Asciinema.Emails.Job with the log below:
asciinema-1  | 11:36:21.151 [info] {"args":{"to":"USER@MYHOSTNAME.com","type":"signup","url":"http://MY_HOST_NAME/users/new?t=SFMyNTY.g2gDbQAAABVseXJpY2xhd0BseXJpY2xhdy50b3BuBgDgvroKjwFiAAFRgA.9pvVT2YUvleHVixnwODV0bKMnai1StUZgkHz4qFMvZc"},"attempt":3,"duration":60106026,"error":"** (ArgumentError) raise/1 and reraise/2 expect a module name, string or exception as the first argument, got: {:network_failure, '**MY_IP_ADDRESS**', {:error, :closed}}","event":"job:exception","id":6,"max_attempts":20,"meta":{},"queue":"emails","queue_time":137879,"source":"oban","state":"failure","tags":[],"worker":"Asciinema.Emails.Job"}

After formatted:
{
  "args": {
    "to"<EMAIL_ADDRESS>    "type": "signup",
    "url": "http://MY_HOST_NAME/users/new?t=SFMyNTY.g2gDbQAAABVseXJpY2xhd0BseXJpY2xhdy50b3BuBgDgvroKjwFiAAFRgA.9pvVT2YUvleHVixnwODV0bKMnai1StUZgkHz4qFMvZc"
  },
  "attempt": 3,
  "duration": 60106026,
  "error": "** (ArgumentError) raise/1 and reraise/2 expect a module name, string or exception as the first argument, got: {:network_failure, '**MY_IP_ADDRESS**', {:error, :closed}}",
  "event": "job:exception",
  "id": 6,
  "max_attempts": 20,
  "meta": {},
  "queue": "emails",
  "queue_time": 137879,
  "source": "oban",
  "state": "failure",
  "tags": [],
  "worker": "Asciinema.Emails.Job"
}

The error message maybe indicated that there are some bugs in the source code.
Expected behavior
The server should send the email as expected.
Screenshots
The screenshot of the above log:

Versions:

OS: Ubuntu 20.04 LTS x86_64(5.4.0-77-generic), Arch Linux x86_64(6.8.7-arch1-1)
Browser: Chrome
asciinema server: docker image: ghcr.io/asciinema/asciinema-server:20240324 hash: c0ea6c90a8e4

Additional context
The SMTP configs are verified on both thunderbird client and online wordpress SMTP plugin, which means the SMTP settings should be correct and the issue is not relative to the firewall.

The error includes {:network_failure, '**MY_IP_ADDRESS**', {:error, :closed}}, which suggests a network connection error.
Maybe the connection is closed by the SMTP server due to incompatible TLS version?
Have you tried setting SMTP_ALLOWED_TLS_VERSIONS to tlsv1.1 or tlsv1.2 explicitly?

It seems the network failure is due to the misspelling on my password. But after I corrected the password, the email job just has no response.
The job just leaves an "attempt: 1" on Email.Job and no further related logs were generated. The mailserver backend shows me that there's no login activity for the new generated token.
And still, I have tried specifying the SMTP_ALLOWED_TLS_VERSIONS with any combination of tlsv1, tlsv1.1, tlsv1.2 and even tlsv1.3.
I am trying to build the server with debug messages enabled. I will comment later if I found any new updates.

Try to remove
- SMTP_PORT=465
- SMTP_TLS=always
- SMTP_AUTH=always

I had issues with these options. After deleting them, leaving only these:
SMTP_HOST=<my-mailserver>
SMTP_USERNAME=<login-mail>
SMTP_FROM_ADDRESS=<login-mail>
SMTP_REPLY_TO_ADDRESS=<admin-mail>
SMTP_PASSWORD=<pass>

I got everything to work. IDK why but tls+465 just didn't work with asciinema + my mail server.

Try to remove
- SMTP_PORT=465
- SMTP_TLS=always
- SMTP_AUTH=always

I had issues with these options. After deleting them, leaving only these:
SMTP_HOST=<my-mailserver>
SMTP_USERNAME=<login-mail>
SMTP_FROM_ADDRESS=<login-mail>
SMTP_REPLY_TO_ADDRESS=<admin-mail>
SMTP_PASSWORD=<pass>

I got everything to work. IDK why but tls+465 just didn't work with asciinema + my mail server. It could work as a temporary fix but it still should be investigated why these options don't seem to be working.

OMG IT WORKS!!!
I have spent the whole weekend last week diving into the code. But I still can't find out what's wrong in the config. The STMP client (Bamboo) just fired an log about the mail content and hangs. Maybe there's something problem related to the Boomboo SMTP client itself. I almost decide to modify the code to send emails externally.
You save my time!
But I just remove the line SMTP_PORT, which means it will use the predefined port 587 in code. The SMTP_TLS can't be removed in my case as my mailiing server froce the usage of SSL.
ANYWAYT, THANK YOU SO MUCH

@ku1ik The issue is solved in my case. If you think this can be accepted as a temporary solution, you can close the issue.

I am not sure how I solved it but I think that my mail server reported some login issues and that's why I tried it this way. I may look into it again it that's something @ku1ik wants.

I am not sure how I solved it but I think that my mail server reported some login issues and that's why I tried it this way. I may look into it again it that's something @ku1ik wants.

ANYWAY, THANK YOU SO MUCH

You're welcome, glad I could help <3

Thanks for help @jiriks74 :raised_hands:
I'm not sure why wouldn't TLS + 465 work. The configuration is defined here, and all the options are passed directly to Bamboo's SMTP adapter: https://github.com/asciinema/asciinema-server/blob/b3a852d769da24b1360562b443e30ca41de23351/config/runtime.exs#L144-L177
But, since both of you got it working I'm going to close this issue.

I don't think that this should be closed as the tls+465 option still doesn't work. In this case I'd consider the solution a workaround as we didn't fix anything we just used something else to make it work until we figure out what's wrong.

Fine by me :+1:  Feel free to investigate then :)

Since I've upgraded the SMTP client library in the today's release you may want to try it out. There's a slight chance it fixed the issue.

Also, I believe there's a difference between using TLS and using SSL... Maybe what you need is enabling SSL mode?
The SMTP client we use allows enabling both, separately, so there is a distinction. Right now SSL is always disabled, and there's no env var to enable it, but we could add one.
SSL mode can also be enabled today by using a custom config file and putting this in it:
config :asciinema, Asciinema.Emails.Mailer, ssl: true

This will work in addition to the existing env vars, although it's probably wise to remove STMP_TLS when enabling SSL as above.

Also, I believe there's a difference between using TLS and using SSL... Maybe what you need is enabling SSL mode?

There's a difference but you could say that TLS is basically SSLv2?

TLS builds on the now-deprecated SSL (Secure Sockets Layer) specifications (1994, 1995, 1996) developed by Netscape Communications for adding the HTTPS protocol to their Netscape Navigator web browser.

According to this you don't want to use SSL as it's quite old.

Right. At the client library level (both the previous one and the new one I switched to) there's distinction, there are 2 separate options to enable/disable those, named tls and ssl. The ssl one defaults to false, and tls defaults to if_available. I haven't exposed the ssl option via env var because, as you said, it's old and nobody should use it anymore (and there's an escape hatch for those who need it through the advanced Elixir config file). I only mentioned it in my previous comment to rule out the small possibility that you or @LyricSeraph needed it, but now it's pretty clear we're all after TLS :)

results in 502 when logging in for me.

502? As in Bad Gateway error?
Is there anything interesting in the container logs when this happens?

502? As in Bad Gateway error?

Yup, it's 502 indeed.

This is from Cloudflare, which I assume you put in front of asciinema server.
Can you pull container logs from the moment this error happened?

This is from Cloudflare, which I assume you put in front of asciinema server.

Yup but this issue is caused by Asciinema. The only thing that Cloudflare does is make a cool site for the error.
Nothing interesting in logs

Logs
19:07:36.286 request_id=F9NuBkw-4OHVNR4AAADh [info] GET /login/new

19:07:36.288 request_id=F9NuBkw-4OHVNR4AAADh [info] Sent 200 in 2ms

19:07:38.993 request_id=F9NuBu2aFl8Z7cQAAAEB [info] POST /login

19:08:00.626 [info] {"args":{},"attempt":1,"event":"job:start","id":25953,"max_attempts":20,"meta":{},"queue":"default","source":"oban","system_time":1716836880625784378,"tags":[],"worker":"Asciinema.Streaming.GC"}

19:08:00.636 [info] {"args":{},"attempt":1,"duration":4671,"event":"job:stop","id":25953,"max_attempts":20,"meta":{},"queue":"default","queue_time":26763,"source":"oban","state":"success","tags":[],"worker":"Asciinema.Streaming.GC"}

19:08:39.902 request_id=F9NuFRwKVOYfMgQAAAIB [info] GET /favicon.ico

19:08:39.903 request_id=F9NuFRwKVOYfMgQAAAIB [info] Sent 404 in 920µs

19:09:00.646 [info] {"args":{},"attempt":1,"event":"job:start","id":25954,"max_attempts":20,"meta":{},"queue":"default","source":"oban","system_time":1716836940646318048,"tags":[],"worker":"Asciinema.Streaming.GC"}

19:09:00.654 [info] {"args":{},"attempt":1,"duration":3899,"event":"job:stop","id":25954,"max_attempts":20,"meta":{},"queue":"default","queue_time":23603,"source":"oban","state":"success","tags":[],"worker":"Asciinema.Streaming.GC"}

So there's no corresponding Sent ... for the POST /login request, meaning, the request handler process never finishes. Weird there's no error though, given Cloudflare doesn't get a successful response from the server... :thinking:

Hey! Sorry to randomly jump in, but it looks like the discussion here is mixing up a couple of different SMTP security options.  SMTP has two ways of enabling encryption (implicit and explicit) and three different ports (25, 465, 587).
"Implicit" means the client connects to the server with encryption already turned on.  This is what the "ssl" option for gen_smtp does.    No other port will work with "ssl" turned on.
"Explicit" means the client connects to the server with no encryption, then uses the STARTTLS command to convert the connection to an encrypted one.  This is what the "tls" option for gen_smtp does.  For this you can use port 25 or 587, but port 465 will not work.
Your best bet is to stick to explicit encryption using:
SMTP_PORT=587
SMTP_TLS=always

Thanks Mark. I thought it's something like this but couldn't put my finger on it. This explanation makes it super clear.
Given the above, I think we should either rename the issue to mention "SSL + port 465" (if what you guys want here is implicit encryption on port 465), or close it (if you want explicit encryption on port 465, which is impossible).


ImportError: Loader FrozenImporter cannot handle module electroncash.qrscanner

Crash Report
This crash report was reported through the automatic crash reporting system 🤖
Traceback
  File "site-packages\electron_cash-3.2-py3.5.egg\electroncash_gui\qt\main_window.py", line 2727, in settings_dialog
  File "c:\python3.5.4\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 611, in exec_module
  File "c:\python3.5.4\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 444, in get_code

ImportError: Loader FrozenImporter cannot handle module electroncash.qrscanner

Reporter
This issue was reported by 2 user(s):

Electrum Version
Operating System
Wallet Type
Locale

3.2
Windows-10-10.0.16299
standard
nl_NL

3.2
Windows-10-10.0.16299
standard
en_US

Additional Information
The reporting user(s) did not provide additional information.

@marceloneil @fyookball Close this?  Without context, who is getting it, and what they are running, I can't see it being worth spending time on this.  qrscanner should be bundled with the installer modules.

Does qr work well on windows? If so that sounds good


PR Compatibility

@dtaivpp @dobrosketchkun
Currently, we together have 4 different PRs open. Do you guys/gals think we should combine them into one PR to make it easier and faster for Alfredo to review? Plus, if we all have different versions of the code, there will be redundancies and missing pieces when it's all merged.
(Also, dobro, I'm actually still having an issue with your cryptography stuff, so if other people have the same issue yours may need to be left as a separate PR).

Well, I don't really know how pull requests work in detail, so if you tell me how we can certainly do this.
About crypto stuff - yeah, I don't really know what the matter; I have checked it on two machines (Win and Arch) and on multiple files of various sizes with and without passwords.

Ok, well in that case can you explain how each function works so I can try to understand what I'm doing wrong?

first of all, cryptography modules:
pip install cryptography
pip install pycryptodome
Let us check the encoding procedure first:
py fvid.py -i Lenna.png -e

As the "--password" flag is not used, the program will utilize the default one (variable DEFAULT_KEY). If the flag is used new key will be generated from the provided password (either from the command line or from getpass function) with PBKDF2HMAC function, with a length of 32 (as AES requires)
Then, get_bits_from_file() reads data from the file using BitArray() class; after that, the DELIMITER is to be added to avoid file end corruption. A new instance of AES class is initiated with key and SALT (needed to be the same in the same encryption/decryption event).  AES eats bytes from bitarray.tobytes(), and we get a ciphertext and special tag (we can confirm the integrity of data and validity of the password). After that, all of this, including the original filename, get pickled and gzipped into another BitArray() instance and returned as binary. Later it will be digested by magic in courtesy of @AlfredoSequeida and spilled as video.
Quick scheme:

file data reading into Bitarray
adding delimiter
AES encrypting
pickling
zipping
zipped into Bitarray
return binary
....
PROFIT

So, say we already have video and want the original file back.
py fvid.py -i Lenna.png -d

The video got eaten by get_bits_from_video(), and we have a sequence of bits. Then in save_bits_to_file(), we use these bits to initiate a Bits instance.  Gzip unzip bytes representation, and we get a pickle data from (4). After that, we unpack the tag, data and filename, and decrypt data with key and SALT. We also check with cipher.verify(tag) if everything ok with data and password.
With my modification, we cut data by the delimiter in this function, not in get_bits_from_video() as in the original. After that, we either save data to the original filename or to the provided by the user.

Thanks for explaining that! I just found that the problem was that I was directing my get_bits_from_image through my Cython module, and I hadn't taken out the delimiter thing for that. It works now, but it takes a huge amount of time because for Lenna's mp4, it has 300 frames for some reason and the mp4 itself is over 8MB. Is it like that for you?

Nope, in my case, Lenna.mp4 is 1829 Kb with 2 frames
Reading video...
Bits are in place
Getting bits from frame: 100%|████████████████████████████████████████████████████| 1080/1080 [00:01<00:00, 541.39it/s]
Getting bits from frame: 100%|████████████████████████████████████████████████████| 1080/1080 [00:01<00:00, 608.12it/s]
100%|████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:03<00:00,  1.92s/it]
Unziping...
Checking integrity...

That's really weird. Can you send the mp4?

Here zipped mp4 and frames:
Lenna.zip
commands:
py fvid.py -i Lenna.png -e -o Lenna.mpr
py fvid.py -i Lenna.mp4 -d -o Lenna2.png

Hm ok, when I decode that on Ubuntu, I get this:
  File "/root/fvid/fvid/fvid.py", line 185, in save_bits_to_file
    bitstring = Bits(bin=bits)
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/bitstring.py", line 844, in __new__
    x._initialise(auto, length, offset, **kwargs)
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/bitstring.py", line 865, in _initialise
    init_without_length_or_offset[k](self, v)
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/bitstring.py", line 1891, in _setbin_safe
    binstring = tidy_input_string(binstring)
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/bitstring.py", line 509, in tidy_input_string
    s = ''.join(s.split()).lower()
AttributeError: 'NoneType' object has no attribute 'split'```

If you can add a mode that gives the option to skip Gzip (de)compression, that could bypass the issue.

Update: When I encode Lenna at 30fps instead of the default 1/5, gzip still tells me it's not a gzipped file, but the diagnostics show that the resulting mp4 has the same contents as your Lenna.mp4 (except that this one is 5523KB instead of yours, which is like 1829KB). That strikes me as interesting.

If you can add a mode that gives the option to skip Gzip (de)compression

I'm certainly cannot, because it bring upon us a noncompatibillity issue.
Try this modification just without gzip. I added sys.exit(main()) to the end, so you can use just this code without __main__.py etc
from bitstring import Bits, BitArray
# from magic import Magic
# import mimetypes
from PIL import Image
import glob

from operator import sub
import numpy as np
from tqdm import tqdm
import ffmpeg

import binascii

import argparse
import sys
import os

import getpass

import io
import gzip
import pickle

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from Crypto.Cipher import AES

DELIMITER = bin(int.from_bytes("HELLO MY NAME IS ALFREDO".encode(), "big"))
FRAMES_DIR = "./fvid_frames/"
SALT = '63929291bca3c602de64352a4d4bfe69'.encode()  # It need be the same in one instance of coding/decoding
DEFAULT_KEY = ' '*32
DEFAULT_KEY = DEFAULT_KEY.encode()
NOTDEBUG = True

class WrongPassword(Exception):
    pass

class MissingArgument(Exception):
    pass

def get_password(password_provided):
    if password_provided=='default':
        return DEFAULT_KEY
    else:
        password_provided = getpass.getpass("Enter password:")
        password = str(password_provided).encode()
        kdf = PBKDF2HMAC(
            algorithm=hashes.SHA512(),
            length=32,
            salt=SALT,
            iterations=100000,
            backend=default_backend()
            )
        key = kdf.derive(password)
    return key

def get_bits_from_file(filepath, key):
    print('Reading file...')
    bitarray = BitArray(filename=filepath)
    # adding a delimiter to know when the file ends to avoid corrupted files
    # when retrieving
    bitarray.append(DELIMITER)

    cipher = AES.new(key, AES.MODE_EAX, nonce=SALT)
    ciphertext, tag = cipher.encrypt_and_digest(bitarray.tobytes())

    filename = os.path.basename(filepath)
    pickled = pickle.dumps({'tag':tag,
                            'data':ciphertext,
                            'filename':filepath})
    # print('Ziping...')
    # #zip
    # out = io.BytesIO()
    # with gzip.GzipFile(fileobj=out, mode='w') as fo:
        # fo.write(pickled)
    # zip = out.getvalue()
    # #zip
    zip = pickled
    bitarray = BitArray(zip)
    return bitarray.bin

def less(val1, val2):
    return val1 < val2

def get_bits_from_image(image):
    width, height = image.size

    done = False

    px = image.load()
    bits = ""

    pbar = tqdm(range(height), desc="Getting bits from frame")

    white = (255, 255, 255)
    black = (0, 0, 0)

    for y in pbar:
        for x in range(width):

            pixel = px[x, y]

            pixel_bin_rep = "0"

            # for exact matches
            if pixel == white:
                pixel_bin_rep = "1"
            elif pixel == black:
                pixel_bin_rep = "0"
            else:
                white_diff = tuple(map(abs, map(sub, white, pixel)))
                # min_diff = white_diff
                black_diff = tuple(map(abs, map(sub, black, pixel)))

                # if the white difference is smaller, that means the pixel is closer
                # to white, otherwise, the pixel must be black
                if all(map(less, white_diff, black_diff)):
                    pixel_bin_rep = "1"
                else:
                    pixel_bin_rep = "0"

            # adding bits
            bits += pixel_bin_rep

    return (bits, done)

def get_bits_from_video(video_filepath):
    # get image sequence from video
    print('Reading video...')
    image_sequence = []

    ffmpeg.input(video_filepath).output(
        f"{FRAMES_DIR}decoded_frames%03d.png"
    ).run(quiet=NOTDEBUG)

    for filename in glob.glob(f"{FRAMES_DIR}decoded_frames*.png"):
        image_sequence.append(Image.open(filename))

    bits = ""
    sequence_length = len(image_sequence)
    print('Bits are in place')
    for index in tqdm(range(sequence_length)):
        b, done = get_bits_from_image(image_sequence[index])

        bits += b

        if done:
            break

    return bits

def save_bits_to_file(file_path, bits, key):
    # get file extension

    bitstring = Bits(bin=bits)

    # #zip
    # print('Unziping...')
    # in_ = io.BytesIO()
    # in_.write(bitstring.bytes)
    # in_.seek(0)
    # with gzip.GzipFile(fileobj=in_, mode='rb') as fo:
        # bitstring = fo.read()
    # #zip

    unpickled = pickle.loads(bitstring.tobytes())
    tag = unpickled['tag']
    ciphertext = unpickled['data']
    filename = unpickled['filename']

    cipher = AES.new(key, AES.MODE_EAX, nonce=SALT)
    bitstring = cipher.decrypt(ciphertext)
    print('Checking integrity...')
    try:
     cipher.verify(tag)
     # print("The message is authentic")
    except ValueError:
     raise WrongPassword("Key incorrect or message corrupted")

    bitstring = BitArray(bitstring)

    _tD = Bits(bin=DELIMITER) # New way to find a DELIMITER
    _tD = _tD.tobytes()
    _temp = list(bitstring.split(delimiter=_tD))
    bitstring = _temp[0]

    # If filepath not passed in use defualt
    #    otherwise used passed in filepath
    if file_path == None:
        filepath = filename
    else:
        filepath = file_path # No need for mime Magic

    with open(
        filepath, "wb"
    ) as f:
        bitstring.tofile(f)

def make_image(bit_set, resolution=(1920, 1080)):

    width, height = resolution

    image = Image.new("1", (width, height))
    image.putdata(bit_set)

    return image

def split_list_by_n(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i : i + n]

def make_image_sequence(bitstring, resolution=(1920, 1080)):
    width, height = resolution

    # split bits into sets of width*height to make (1) image
    set_size = width * height

    # bit_sequence = []
    print('Making image sequence')
    list_bit = list(map(int, tqdm(bitstring)))
    bit_sequence = split_list_by_n(list_bit, width * height)
    image_bits = []

    # using bit_sequence to make image sequence

    image_sequence = []

    for bit_set in bit_sequence:
        image_sequence.append(make_image(bit_set))

    return image_sequence

def make_video(output_filepath, image_sequence, framerate="1/5"):

    if output_filepath == None:
        outputfile = "file.mp4"
    else:
        outputfile = output_filepath

    frames = glob.glob(f"{FRAMES_DIR}encoded_frames*.png")

    # for one frame
    if len(frames) == 1:
        ffmpeg.input(frames[0], loop=1, t=1).output(
            outputfile, vcodec="libx264rgb"
        ).run(quiet=NOTDEBUG)

    else:
        if sys.platform != 'win32':
            ffmpeg.input(
                f"{FRAMES_DIR}encoded_frames*.png",
                pattern_type="glob",
                framerate=framerate,
            ).output(outputfile, vcodec="libx264rgb").run(quiet=NOTDEBUG)
        else:
            os.system('ffmpeg -i ./fvid_frames/encoded_frames_%d.png ' + outputfile)

def cleanup():
    # remove frames
    import shutil

    shutil.rmtree(FRAMES_DIR)

def setup():
    import os

    if not os.path.exists(FRAMES_DIR):
        os.makedirs(FRAMES_DIR)

def main():
    parser = argparse.ArgumentParser(description="save files as videos")
    parser.add_argument(
        "-e", "--encode", help="encode file as video", action="store_true"
    )
    parser.add_argument(
        "-d", "--decode", help="decode file from video", action="store_true"
    )

    parser.add_argument("-i", "--input", help="input file", required=True)
    parser.add_argument("-o", "--output", help="output path")
    parser.add_argument("-f", "--framerate", help="set framerate for encoding (as a fraction)", default="1/5", type=str)
    parser.add_argument("-p", "--password", help="set password", nargs="?", type=str, default='default')

    args = parser.parse_args()

    setup()
    # print(args)
    # print('PASSWORD', args.password, [len(args.password) if len(args.password) is not None else None for _ in range(0)])

    if not args.decode and not args.encode:
        raise   MissingArgument('You should use either --encode or --decode!') #check for arguments

    key = get_password(args.password)

    if args.decode:
        bits = get_bits_from_video(args.input)

        file_path = None

        if args.output:
            file_path = args.output

        save_bits_to_file(file_path, bits, key)

    elif args.encode:
        # isdigit has the benefit of being True and raising an error if the user passes a negative string
        # all() lets us check if both the negative sign and forward slash are in the string, to prevent negative fractions
        if (not args.framerate.isdigit() and "/" not in args.framerate) or all(x in args.framerate for x in ("-", "/")):
            raise NotImplementedError("The framerate must be a positive fraction or an integer for now, like 3, '1/3', or '1/5'!")
        # get bits from file
        bits = get_bits_from_file(args.input, key)

        # create image sequence
        image_sequence = make_image_sequence(bits)

        # save images
        for index in range(len(image_sequence)):
            image_sequence[index].save(
                f"{FRAMES_DIR}encoded_frames_{index}.png"
            )

        video_file_path = None

        if args.output:
            video_file_path = args.output

        make_video(video_file_path, image_sequence, args.framerate)

    cleanup()

sys.exit(main())

@Theelgirl No, scratch that, I think I've found something. Try this video with this code.
another_Lenna.zip

Running the unzipped fvid code with the unzipped mp4 doesn't change anything for gzip.
  File "fvid.py", line 334, in <module>
    sys.exit(main())
  File "fvid.py", line 305, in main
    save_bits_to_file(file_path, bits, key)
  File "fvid.py", line 170, in save_bits_to_file
    bitstring = fo.read()
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/gzip.py", line 292, in read
    return self._buffer.read(size)
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/gzip.py", line 479, in read
    if not self._read_gzip_header():
  File "/root/.pyenv/versions/3.8.3/lib/python3.8/gzip.py", line 427, in _read_gzip_header
    raise BadGzipFile('Not a gzipped file (%r)' % magic)
gzip.BadGzipFile: Not a gzipped file (b'\x90L')

Well, they are working alright in another two machines, so there is a possibility.
I've made a bunch of modifications, including the general logic of image processing (it helped with files over 200 mb). Could you please try this script variant?
fvid_11.zip

I am now able to successfully decode the Lenna.mp4 you sent me, however it is unable to decode the Lenna.png that it encoded itself, giving the same gzip error.

@dobrosketchkun I'm going to update my Cython Support PR with the new Cython code, then can you add all of that to your PR (it modifies the setup.py also)? Then, I can close both of my PRs and @AlfredoSequeida can merge yours, which will fix all the problems mentioned in the current 4 PRs.

It seems to work now!

Nice!

I'm going to update <...>

Yeah, seems logic, I'll try.

I cloned your patch-2 branch and tried to fvid a Lenna.png:
py __main__.py -i Lenna.png -e
Traceback (most recent call last):
  File "__main__.py", line 2, in <module>
    from fvid import main
  File "D:\recovery3\python\fvid\fvid\new\fvid-theelgirl\fvid\fvid.py", line 30, in <module>
    from fvid_cython import cy_get_bits_from_image as cy_gbfi
ModuleNotFoundError: No module named 'fvid_cython'

I'm sorry, I've never used Cython, what is the problem? I have the Cython module. Maybe I need to install fvid, and thus I cannot use it as just a script?

Oh it didn't properly compile. Try adding ModuleNotFoundError to the except for now

$ python setup.py build_ext --inplace
Compiling fvid/fvid_cython.pyx because it changed.
[1/1] Cythonizing fvid/fvid_cython.pyx

Error compiling Cython file:
------------------------------------------------------------
...
from operator import sub
from tqdm import tqdm

@cython.boundscheck(False)
@cython.wraparound(False)
@cython.cdivision(True)
^
------------------------------------------------------------

fvid/fvid_cython.pyx:7:0: Cdef functions/classes cannot take arbitrary decorators.
Traceback (most recent call last):
  File "setup.py", line 14, in <module>
    setup(ext_modules=cythonize(ext, compiler_directives={'language_level': 3}))
  File "/usr/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1102, in cythonize
    cythonize_one(*args)
  File "/usr/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1225, in cythonize_one
    raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: fvid/fvid_cython.pyx

...is what I get.

Are you on windows? It works fine for me on Ubuntu 20.04. Maybe you need to cimport cython at the top.

I am on Windows 10, python 3.7.4

Yeah, I was talking to zavok, but does it fail for you too?

You see, I don't really want to install it as a module. Is it really necessary?

I use Arch.
$ git diff
diff --git a/fvid/fvid_cython.pyx b/fvid/fvid_cython.pyx
index 5eabffb..b302f5a 100644
--- a/fvid/fvid_cython.pyx
+++ b/fvid/fvid_cython.pyx
@@ -1,7 +1,7 @@
 # distutils: language=c++
 from operator import sub
 from tqdm import tqdm
-
+import cython
 @cython.boundscheck(False)
 @cython.wraparound(False)
 @cython.cdivision(True)
diff --git a/setup.py b/setup.py
index d6ef718..83b94dd 100644
--- a/setup.py
+++ b/setup.py
@@ -6,12 +6,19 @@ from setuptools import setup
 from setuptools import Extension
 from setuptools.command.build_ext import build_ext as _build_ext

+
+from distutils.core import Extension, setup
+from Cython.Build import cythonize
+
+ext = Extension(name="fvid_cython", sources=["fvid/fvid_cython.pyx"])
+setup(ext_modules=cythonize(ext, compiler_directives={'language_level': 3}))
+
 try:
     from Cython.Build import cythonize
 except ImportError:
     pass
 else:
-    cythonize(Extension("fvid_cython", "fvid/fvid_cython.pyx"), compiler_directives={'language_level': "3", 'infer_types': True})
+    cythonize(Extension("fvid_cython", ["fvid/fvid_cython.pyx"]), compiler_directives={'language_level': "3", 'infer_types': True})

 with open("README.md", "r") as fh:
     long_description = fh.read()

After this diff (notice how second argument to Extension() had to be converted into list, or python would complain) it built fvid_cython.cpython-38-x86_64-linux-gnu.so file.
Do I now just run python fvid/main.py as usual or there are some other body movements necessary?

@dobrosketchkun If you add an exception for ModuleNotFoundError to the import, then you can let it not use Cython, however it's 4x faster at decoding when you do use it.

@zavok If it successfully compiled, you can run fvid/main.py as usual.

Okay, the .so file had to be moved to fvid/ folder, but otherwise looks like it worked.

Oh yeah, you need to add an include_dirs argument if you want to use it outside of the folder it was compiled in.

Sorry for the wait guys, I have had a busy past 2 days. I will definitely try my best to go through all of this as soon as I can.

Yeah, in a day or two I'll try to combine Theelgirl's Cython approach and my thingy and give you folks a report.

@dobrosketchkun I can combine them if you want, I understand how the Cython works and you've done a great job of explaining your approach so I think I understand it

@Theelgirl first, please try this modification https://github.com/AlfredoSequeida/fvid/pull/15#issuecomment-707303590

@dobrosketchkun Tried it, it works but it's actually slower and uses far more disk than before, left some feedback on why that is in comments there.

Closing because the password/cython PRs have been merged together into #21


feat: add spot/ondemand ack tf manifest

Fixes #none

Proposed Changes

feat: add spot/ondemand ack tf manifest

Release Note

/lgtm


Using initialize_problem in both, AbstractProblem and LinearTestEquation

AbstractProblem should be the base for defining problems like LinearTestSPP. However, both modules use the initialize_problem function. Since we only export it once in the main src/SpectralDeferredCorrections.jl I already had troubles which function should be used. For the first time, the issues is fixed by using AbstractProblem.initialize_problem where the function can the be handled in the way that the correct type is passed to the function.
However, I'm not sure if this is reasonable practice and for ideas or alternatives I would be happy.

initialize_problem is removed, since an instance can be created directly. This is done by #20 which closes this issue.


Riteway does not recognise absolute paths to imports

I have the following in my Webpack config:
resolve: {
  modules: [
    path.resolve(__dirname, 'src'),
    'node_modules',
    path.resolve('node_modules')
  ]
}

However, when I run tests, it doesn't seem to recognise paths pointing to directories in src.
For example, if I have
import {method_to_test} from 'utils';

I get the following error:

Error: Cannot find module 'utils/method_to_test'

To get it to work, I seem to have to use a relative path:
import {method_to_test} from '../../utils';

Absolute paths in imported modules are also not properly resolved.

It's been 3 weeks since I posted this issue. Anyone have any thoughts? I'm trying to avoid relative path hell, but if this isn't resolved I will either have to use relative paths or use a different testing framework, neither of which is ideal. Thanks in advance for any help!

It's been 3 weeks since I posted this issue. Anyone have any thoughts? I'm trying to avoid relative path hell, but if this isn't resolved I will either have to use relative paths or use a different testing framework, neither of which is ideal. Thanks in advance for any help!

How are you invoking RITEWay? What does your test script look like? RITEWay doesn't do anything special with respect to module import resolution. You can literally invoke it like node my/test/folder/file.js and it will act just like any other JS script you run.

How are you invoking RITEWay? What does your test script look like? RITEWay doesn't do anything special with respect to module import resolution. You can literally invoke it like node my/test/folder/file.js and it will act just like any other JS script you run.

Thank you, and apologies.
Apologies because you're right, the issue wasn't with RITEWay.

The tests do not use the Webpack config, but I wan't seeing that. I've resolved the problem by using babel-plugin-module-resolver.
Closing the ticket. Thanks!

Thank you, and apologies.
Apologies because you're right, the issue wasn't with RITEWay.

The tests do not use the Webpack config, but I wan't seeing that. I've resolved the problem by using babel-plugin-module-resolver.
Closing the ticket. Thanks!


proposal: strings: function: new function to reverse a string

Golang doesn't seem to have an inbuilt function to reverse a given string. Here is my proposal for a basic function to reverse a string in Golang.
func Reverse(s string) string {
    var reversed string
    for _, v := range s {
        reversed = string(v) + result
    }
    return reversed
}

This function can be added to src/strings/strings.go, along with other string functions such as explode, trim, uppercase etc.

Hi,
this has been proposed, and rejected, in the past. See #14777 and #36887, in particular https://github.com/golang/go/issues/36887#issuecomment-591601541:

strings.Reverse is a duplicate of #14777. It remains not needed often enough to merit inclusion in the standard library.

Closing here as a dup.


K9 crashes while syncronizing, if mail had been deleted from server externally

Please search to check for an existing issue (including closed issues, for which the fix may not have yet been released) before opening a new issue: https://github.com/k9mail/k-9/issues?q=is%3Aissue
Expected behavior
If I synchronize my mail account manually and a mail had been deleted (or moved) on the server (e.g. from a different mail program), K9 mail should delete it also from its list and fetch new mails.
Actual behavior
K9 mail crashes and jumps back to main view (mail accounts). If I try to synchronize from there, the program crashes completely. If I delete all mails locally before I synchronize, there is no problem.
Steps to reproduce

synchronize account
delete mail from server (from external computer)
synchronize again -> crash

Environment
K-9 Mail version: 5.4.03
I also tried with older versions, because I know it has worked before. Most failed. Version 5.009 works as expected
Android version: 5.1
I have another phone with Android 5.1.1 where everything works with K9 Mail 5.4.03
Account type (IMAP, POP3, WebDAV/Exchange): POP3 & IMAP
k9_logcat3.txt
k9_logcat4.txt

I was having this problem, but as of 5.600 the problem cannot be reproduced.

Thanks for the information. So maybe this is fixed now. In the moment i'm happy with the old version (prefer the old icon anyway ;-) )

Hello,
I had the exact same problem last week with version 5.600, IMAP account.
Application crashes (but stays in the background) or jumps back to folders screens.
Can't sync new emails.

The only thing I can find in the logs is this:
F/libc    (28792): external/sqlite/dist/sqlite3.c:91450: sqlite3DeleteFrom: assertion "pPk || iDataCur==iTabCur" failed
F/libc    (28792): Fatal signal 6 (SIGABRT), code -6 in tid 28813 (MessagingContro)

Maybe the same as #2955. In any case, this is most likely a bug in the Android version of the device that K-9 Mail triggers, rather than a bug in K-9 Mail itself.

Thanks for your answer cketti. The phone is a Huawei as in post #2955 so it has to be device related...

...or use the older version of K-9 Mail as I do....
Thank for your answers anyway

Thanks for the tip Blackpeter61!
But... if it works with older versions of K9-Mail, is it really a device related bug?
Has K9-mail changed its syncing routine that much between 5.009 and later versions?


Update the Page according to the changes in the Partner Center

Can you please update the documentation according to the newest look and feel of the partner center? I am not sure whether I am doing something wrong or something is missing because we cannot create a case in the partner center as an ISV using the documentation provided.

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

ID: 014bafcb-b345-187b-4c2f-65b4f2c64e87
Version Independent ID: cb676189-3ee0-60f9-ff15-86c19978454d
Content: Technical Support Overview for Dynamics 365 Business Central - Business Central
Content Source: dev-itpro/technical-support.md
Service: dynamics365-business-central
GitHub Login: @edupont04
Microsoft Alias: edupont

Hi miljance,
Partner Center is undergoing some changes that makes it hard to replicate your exact experience. The workaround is to switch off the Workspaces toggle. That returns Partner Center to the older experience, and you can again create a Partner request as described in this article. I'll get the article updated to reflect this.

Thank you. Unfortunately I do not have a clue how to find the workspace toggle.

Top panel, just below the browser's address field. See also here: https://docs.microsoft.com/en-us/partner-center/get-around-partner-center


Modify pluck behavior when seeing a head tag to include the body

Closes #3

@marcoroth Let me know what you think.


ImGui glitches when it is out of screen

Hello,
First of all, thank you for the your great job. Your project has been very useful for me.
Now, going back to the matter, I have been testing your project and I found a weird behaviour of ImGui. When the window is place out side the screen on the left side, ImGui glitches. I have been checking your code but i dont find the issue. I have attached two videos showing the issue.
Any idea what it could be happening?
I am on macOS Sonoma 14.3.1 running on a M1 Max.
Test 1
https://github.com/raylib-extras/rlImGui-cs/assets/1858083/6463fa5e-14c6-458b-9247-fdfc32080f07
Test 2
https://github.com/raylib-extras/rlImGui-cs/assets/1858083/651a6404-8dc5-45ab-a481-2a92d2c94bdd

That looks like an OpenGL issue with the stencil buffer on the mac. There are known bugs with stencil and OpenGL in the mac video drivers.
There is nothing special that we do based on the window origin. I'm not sure that this is an issue that can be fixed at the rlImGui level.
Do you init your window with the high DPI flag enabled?

I didn't enable high DPI. I just used your code as it is. But I tried to enable high DPI and the same issue.
I implemented an ImGuiController following your code, as well as, I recreated your example project and the issue is gone. However, I implemented it using Raylib-CsLo and ImGui.net 1.87.3 (Instead of  <IP_ADDRESS>)

Can you try to build this repo with ImGui 1.87.3 and see if it happens too? That will tell me if it's an issue with ImGui or some other issue.

@JeffM2501 Give me a few days, and I will compile it using 1.87.3

I compiled it with ImGui.NET v1.87.3 and Raylib-cs v6.0.0 and I got the same issue.
I think the problem comes from Raylib-cs or Raylib itself. Raylib-cs is porting Raylib 5, while in the working version that I have, I am using Raylib-CsLo which is porting Raylib 4.
@JeffM2501, Any suggestion?
Thanks in advance

Try it in C++ and see if it happens, if it's raylib it'd be in the C version too. But no mater what it seems out of scope for this library


How can I use it offline?

Thanks for developing such a great app, I really like it. But I'm having a problem now, I deployed it to a server on my intranet, but when I'm not working on my intranet, I can't access my bookmarks that I've bookmarked.
I would like to ask if there is a corresponding solution in this case, e.g.: provide local cache, provide offline client?

linkding itself doesn't support offline use, and it's unlikely that it ever will as most of the UI logic is on the server-side.
You might want to look into exposing your server so that you can access it remotely. If you don't just want to open it up to the internet, you could look into something like TailScale that allows creating a custom network where only your own devices can access a server from your intranet.


Add TouchID to authentication options

Until now there was only FaceID or PIN, but older iPhones are using TouchID, I've added this to the Text under Information.
Hope this Change is welcome and thank you so much for this great tool!

Until now there was only FaceID or PIN, but older iPhones are using TouchID, I've added this to the Text under Information.
Hope this Change is welcome and thank you so much for this great tool!

Thanks a lot for the clarification. Of course, every improvement is very welcome, glad to include it!


#301 bit.ly links are broken

For #301

Current cache implementation works inside Doc instance, but we create docs on every page load. It makes cache useless. Implemented single static cache for short urls to avoid this.
improved the unit test

@karato travis failure is unrelated to issue. see #299

@dmzaytsev I will find a reviewer for your pull requests shortly, thanks for contribution!

@krzyk review it

@dmzaytsev I think that the problem is because @EqualsAndHashcode generated (which is used in cache) will be the default (hashcode = 1, and equals will be always true for object of the same class). This annotation ignores transient fields so we have to add of = {} to it.
With that I think it should work without the added seperate cache.

@dmzaytsev also you have to make sure that all the Doc implementers have correct equals and hashcode (from what I see SmallDoc has the same problem as your implementation, and MkDoc doesn't have any)

@krzyk I don't know well enough internal implementation jcabi-cache.
anyway I will follow to your advice

@krzyk fixed
test passed localy

@dmzaytsev we will need to wait for #299 to merge

@karato we are waiting for #299

@karato we are waiting for #299

@krzyk yes, right, let's wait for #299

@dmzaytsev one more comment, please add a conformsToEqualsHashCodeContract in both SmallDocTest and CdShortUrlTest, you can use the one from e.g. AwsUserTest. This way we will know sooner if some fields are not taken into account when doing hascode or equals.

@krzyk what about other Docs? e.q. SafeDoc

@dmzaytsev I forgot there are others, yes we need to have it in all the docs.

@krzyk I added these tests

@rultor merge pls

@rultor merge pls

@krzyk Thanks for your request. @yegor256 Please confirm this.

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 10min)

@krzyk 22 mins was added to your account, many thanks for your contribution! The task took 58539002.... review comments (c=7) added as a bonus... +22 to your rating, your total score is +4623

@rultor deploy

@rultor deploy

@karato OK, I'll try to deploy now. You can check the progress here

@rultor deploy

@karato Done! FYI, the full log is here (took me 5min)


Baseline understanding & baseline knowledge for this development

Preliminary tasks needed for IoT development activity

[ ] Gain an overview of IoT (Great getting started video!!!)
Reference -> https://www.youtube.com/watch?v=S64s3GrZlSM
[ ] Gain an overview understanding of MQTT
Reference -> http://thenewstack.io/mqtt-protocol-iot/
[ ] Gain an overview understanding of Kaa Project [middleware interface connecting TRS Assistive Technology and external databases]
Reference -> http://www.kaaproject.org/overview/#how_does_it_work
[ ] Become familiar with the project ARM processor utilized for the TRS Assistive Technology Design
Reference -> https://www.silabs.com/Support Documents%2FTechnicalDocs%2FEFM32GG-RM.pdf
[ ] Review background, about, and the project outline for mbed OS
Reference -> https://www.mbed.com/en/about-mbed/what-mbed/
[ ] Become familiar with Couchbase  [Required familiarity needed to use couchbase gateway as an MQTT broker]
Reference -> http://www.couchbase.com/nosql-resources/presentations/accessing-iot-data-with-couchbase-server-couchbase-mobile-and-kaa.html

AMAZON WEB SERVICES (IoT Altenatives)

Reference -> [Alternative IoT approach using AWS] https://aws.amazon.com/iot/how-it-works/
Reference -> [Beaglebone & AWS] https://www.hackster.io/makers-ns/getting-started-with-aws-iot-and-beaglebone-396371

This repo was forked from ARM embed.  Discontinuing the prior repo on the subject and baselining this one...


Better way to show user login errors

Currently toast a message, find a alternative way to display the error

This is kind of covered in the #33


Documentation version randomly changes for the same compilation

Details

Project URL: https://github.com/Kurento/doc-kurento-readthedocs
Build URL: http://doc-kurento.readthedocs.io/

Expected Result
The stable build of our project currently is version 6.5.0. This can be easily seen in the upper left part of our documentation:

Actual Result
For some unknown reason, the version of our documentation changes from one request to another. In order to reproduce the problem, just refresh the browser (Ctrl-R) several times. From time to time, the version of the documentation changes to the previous one (6.4.0).

I don't know if this can be related with the "cloning stuck issue" (I'm guessing here). Our project experiences the same problem than reported in this open issue.

The cloning issue is separate, there is an open issue for fixing logging on errors there.
I can't reproduce this now, I'm sure this was an intermittent issue with one of the web servers.


NAvbar overlapping homepage content and Category icons alignement.

hello @codervivek5
While opening in the phone the navbar is overlapping the content in the home page.

As you can see above it is cutting the "DONT LEAVE" Text .
I will seperate the home page and navbar to remove the collision.
Also the category icons alignement is not good .

I will make it such that it will resize according to the device dimensions i.e.larger icons for bigger dimensions and smaller for smaller dimensions such that it will look with a good alignement.
I am a GSSoC'24 contributor.

@sharmi4590 someone is working on it wait for 1 day more then again tell me I will assign it to you

can you assign me this issue


Android custom URL scheme not working.

Im using 4.0.4 for Android and this doesn't seem to work for me on a custom scanner build.
Can someone confirm that it works. I setup a custom url on the build settings in the Custom protocols.
When i write myappname:// on chrome it doesn't switch to the app and gives a google search error.

Any word guys ...

Please test custom URL scheme by using either the openURL method in your Steroids/Supersonic app or clicking a link on a web page that uses the custom url in a link. Writing the custom url into Chrome's address bar is not supposed to open the app, only a link to the URL opens it.
I tested and custom URL schemes worked fine in 4.0.5-edge6 when triggered with openURL. Closing issue unless you can confirm with a repro that openURL or a link from a webpage/email does not open your app.

See also https://github.com/AppGyver/steroids/issues/861 for a related issue!


Web Developer tools say that there are malformed data, whitespaces and missing semicolons in home.html.

I would like to file this issue and create a PR for it.

Hey @sudz123, I'll go ahead and take a crack at improving home.html

I couldn't find any errors in chrome dev tools.


fix Fix linking binlog failure due to existing files #45445

cherry pick from #45445

run buildall

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.
Please clearly describe your PR:

What problem was fixed (it's best to include specific error reporting information). How it was fixed.
Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
What features were added. Why was this function added?
Which code was refactored and why was this part of the code refactored?
Which functions were optimized and what is the difference before and after the optimization?


(#331) Add 'manage_facts_refresh' parameter

Allow disabling facts refresh management so that it becomes possible to do things like 'puppet apply' with this Puppet module inside container image build
Fixes #331

Curious in what scenario would you disable it?

I also have another option to offer - choria has a built in cron and executer, it could just run this thing on its own no need for cron/systemd etc.  Would that be more palatable?

We are looking to run client commands, mco ..., from within a short lived container so it is not the mechanism of how the facts get triggered but more that we do not need the facts from this container. Perhaps I am reading this wrong, but I understand it that this collects local facts.

In that case you dont need to enable the choria server boolean in your container - then facts wont be generated?

Right, we have this:
---
choria::version: "0.27.0-1.el%{facts.os.release.major}"
choria::srvdomain: "%{facts.srv_domain}"

choria::server: false
choria::manage_package_repo: false
choria::manage_service: false

mcollective::server: false
mcollective::client: true
mcollective::manage_facts_refresh: false

mcollective::plugin_classes:
  - mcollective_agent_bolt_tasks
  - mcollective_agent_shell

mcollective_choria::config:
  srv_domain: "%{facts.srv_domain}"

And get this:
[root@a8712fdfe2d6 ~/puppet_control] UNKNOWN_NODE_NAME $ /root/firstboot.sh
Notice: Compiled catalog for a8712fdfe2d6 in environment production in 0.55 seconds
Error: /Stage[main]/Mcollective::Facts/Systemd::Timer[mcollective-facts-refresh.timer]/Systemd::Unit_file[mcollective-facts-refresh.timer]/Service[mcollective-facts-refresh.timer]: Provider systemd is not functional on this host
Notice: /Stage[main]/Mcollective::Facts/Systemd::Timer[mcollective-facts-refresh.timer]/Systemd::Unit_file[mcollective-facts-refresh.timer]/File[/etc/systemd/system/mcollective-facts-refresh.timer]: Dependency Service[mcollective-facts-refresh.timer] has failures: true
Warning: /Stage[main]/Mcollective::Facts/Systemd::Timer[mcollective-facts-refresh.timer]/Systemd::Unit_file[mcollective-facts-refresh.timer]/File[/etc/systemd/system/mcollective-facts-refresh.timer]: Skipping because of failed dependencies
Warning: /Stage[main]/Mcollective::Facts/Systemd::Timer[mcollective-facts-refresh.timer]/Systemd::Unit_file[mcollective-facts-refresh.timer]/Systemd::Daemon_reload[mcollective-facts-refresh.timer]/Exec[systemd-mcollective-facts-refresh.timer-systemctl-daemon-reload]: Skipping because of failed dependencies
Error: Could not find a suitable provider for cron
Notice: Applied catalog in 0.49 seconds

Even when server => false the Puppet code still checks if the service is disabled and cron is deleted which won't work because none of those subsystems will work inside a container build.  This PR was injected into this build pipeline and we are able to get all the client things installed and none of the server and no errors.

We also had to pass systemd::manage_journald: false but still got the above errors until we stopped including mcollective::facts.  Having even ensure => absent on things like systemd timer would go and run like systemctl is-enabled <service> which won't work.

Ah that’s true. Server false will try to clean up and remove.
All right - all problems using internal schedular would avoid also

All right - all problems using internal schedular would avoid also

What's this referencing?  The 'internal scheduler' doesn't sound familiar to me.
To elaborate on what Garrett described, we have regular Choria brokers and we want to run things like mco tasks ... or mco find or choria discover from inside a Jenkins job and that job will be using a Docker container image so the client bits will need to be inside the container.  We still have traditional Choria servers on all systems where facts are collected, etc.

These support schedulers https://choria.io/docs/autoagents/
Something like this sets up a autonomous job that runs the cron, but also allows you to pause it for a day and more.
This is all handled internally with no dependencies.
This would at least allow skipping the cron things as removing is just force delete a directory
name: facter
version: 0.0.1
initial_state: INITIAL

transitions:
  - name: enter_maintenance
    destination: MAINTENANCE
    from:
      - INITIAL
      - GATHER

  - name: resume
    destination: INITIAL
    from:
      - MAINTENANCE

  - name: start_schedule
    destination: GATHER
    from:
      - INITIAL

  - name: immediate_gather
    destination: INITIAL
    from:
      - GATHER

watchers:
  # At start, file change or forced check we do a splay sleep up to 1 minute
  # this makes it safe to just force check or resume from maintenance the entire fleet in one go
  - name: splay
    type: timer
    fail_transition: start_schedule
    state_match:
      - INITIAL
    properties:
      splay: true
      timer: 1m

  # We dont want a forever maintenance, so it times out after 1 day
  - name: maintenance_timeout
    type: timer
    fail_transition: resume
    state_match:
      - MAINTENANCE
    properties:
      timer: 24h

  # If the refresh_facts.rb changes we should probably update the facts
  - name: file_change
    type: file
    interval: 2m
    state_match:
      - GATHER
    success_transition: immediate_gather
    properties:
      path: /opt/puppetlabs/mcollective/plugins/mcollective/refresh_facts.rb

  # Every 10 minutes gather facts
  - name: gather_facts
    type: exec
    interval: 10m
    state_match:
      - GATHER
    properties:
      suppress_success_announce: false
      timeout: 1m
      command: /opt/puppetlabs/mcollective/plugins/mcollective/refresh_facts.rb -o /etc/choria/generated-facts.yaml

Your main problem is probably mco tasks - needs all the ruby stuff, rest choria can do with one file.  Even access to DDL files can be done without copying them to the container.  But for mco tasks you need all the things


Fix CUDA test that used negative indexing behaviour that's fixed.

As title. Negative indexing in tuples now works, so something
actually OOB is needed to trigger the exception, test updated to do
this.

Codecov Report

Merging #3493 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #3493      +/-   ##
=========================================
+ Coverage   80.59%   80.6%   +<.01%
=========================================
  Files         392     392
  Lines       79592   79592
  Branches     9052    9052
=========================================
+ Hits        64150   64153       +3
+ Misses      14030   14028       -2
+ Partials     1412    1411       -1

Passes on buildfarm


[ENHANCEMENT FUNCTION] Making the logo in the navbar to be clickable so that it directs us to  Medi-Hub's homepage.

Description
Currently, clicking on the logo in the navbar does not trigger any action. Instead, it should be configured so that clicking on it navigates the user to the home page of Medi-Hub.
Actual Behavior
The logo in the navbar does not trigger any action.
Expected Behavior
It should be configured so that clicking on it navigates the user to the home page of Medi-Hub.
Screenshots (if applicable)

Hey @itsmohit097  please assign me this under GSSOC'24

already done


clean up non-standard C++ elements in calculations

It looks like there are some non-standard C++ calls in the code that will cause problems for some compilers. Two examples identified by @sanyaarora:

The code assumes M_PI is defined in the math header but this is a non-standard math extension.
In src/BEMEWS/_ext/mstl/math2/analysis/runge kutta.cpp the compiler on her machine is choking on the line static const double b0[]={}; with the error that she cannot allocate an empty array. I also noticed that this allocation seems to implicitly assume the static arrays b0, ..., b5 allocate a contiguous block in memory, which may or may not be respected by all compilers.

There may be other issues that crop up. We'll need people to try installing on windows and linux to get this fully tested and fixed.

What's happening in runge kutta.cpp is the code is defining a ragged table for one of the Runge-Kutta coefficients and the math requires the table index to be unit-offset instead of zero-offset, so the first array in the table is empty. In clang, this compiles fine,
static const double b0[]={};

but I guess this is not standard so it can fail in other compilers. This seems to work:
static const double b0[1]={};

You're right that M_PI is not standard. Since C++20 pi is now standard in the  header but many people will not have a compiler which implements that standard. I usually use C++17. Anyway, one fix is to have the precompiler test whether M_PI is defined and if not, define it. I made the change.
The static const double b0[1]={}; fix will work. The contents of b0 are never used for a Runge Kutta method using the Cash-Karp parameters. I made the change.

Code fixed.


Crypto Website Template

Description
This is a template for a Crypto-based website. i have used HTML,CSS,JS etc.
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes:  #587

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:

[x] I have made this from my own
[x] I have taken help from some online resourses
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

Reopen this PR when ready


Installing Docker on Windows 10 Home caused extra monitors

Problem encountered on https://dotnet.microsoft.com/learn/aspnet/microservice-tutorial/install-docker
Operating System: windows
I installed Docker, rebooted and my laptop and attached monitor showed same thing. I had had the displays extended before. I opened display settings and there were two extra monitors, so 4 in all. Uninstalled Docker to no avail. Searched internet for answers. Similar problems were associated with Hyper-V, which is not installed. I tried disabling Windows Hypervisor Platform. After rebooting my displays were fine. Does Docker need Windows Hypervisor Platform?

@shirhatti @nishanil would you know?


fix(vuepress): manually declare all exports

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 40.781%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
676

Relevant Lines:
1700

💛  - Coveralls


As a tutor, I want to edit the task on my calendar

So that I can update the schedule in my calendar
Satisfies #8

Feature is tentatively slated to release in v2.0 of TuitionConnect...Stay Tuned!


Enhancement

Hi,
I am using weighted sampling data as input of

scanpy , but i didn't find any help when i have a distinct weight for each observation. So I modified few of the

scanpy

files.
use_weights is a boolean parameter either your data is weighted or not, if weighted then it will calculated weighted mean and weighted variance, in other case it will be same as previous. Default is False
weights is a 1D weight vector, where each row is weight of observation in original matrix. Default is None
I have attached the updated files and tested with well. But you can test again for adding into your tool.
Thanks
Weighted_Sampling.zip

Hi! Thank you for your contribution!
Maintaining scanpy is a lot of work, so we like to rely on GitHub to help us here. Please read up on how to use github so you can create a pull request with your changes.

Thanks for your reply.
I have modified code and sent a pull request, but it seems that test is
failed, but i don't know why test is failed. I have double check my code,
its fine.
Thanks ,
Waiting for your reply.
Regards,
Khalid
On Fri, May 3, 2019 at 5:17 PM Philipp A<EMAIL_ADDRESS>wrote:

Hi! Thank you for your contribution!
Maintaining scanpy is a lot of work, so we like to rely on GitHub to help
us here. Please read up on how to use github so you can create a pull
request https://help.github.com/en/articles/creating-a-pull-request
with your changes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/theislab/scanpy/issues/627#issuecomment-489024928,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABREGOHDRLVEO2QTVBGAQ2TPTP7J7ANCNFSM4HJSV4RQ
.


[Feature Request] Add make-observer command

Would be useful to have this one in the package.

Hello,
Why not indeed. I'd accept a PR on this feature with tests. 😄

I'll close this as there hasn't been a reply in a while, feel free to comment if needed.

Hello,
Has this arrangement been added? Because I need this.


Add badge to existing lists

Could use some help with getting the badge  into existing lists. Comment on which you've done.
https://github.com/sindresorhus/awesome/blob/master/awesome.md#awesome-badge

You add this completely at the top of the README?

Simply like that? https://github.com/jyguyomarch/awesome-productivity/tree/jyguyomarch-awesome-badge

Almost, should be right to the title. Example.

:+1:

:+1:

I have added it to the every list I'm managing:

https://github.com/aleksandar-todorovic/awesome-linux/commit/47778a7efc1839ed2b347a3747807e81e7dfeab0
https://github.com/aleksandar-todorovic/awesome-c/commit/efb776ae1f053e2375e330cfe88cd793796c8f64
https://github.com/aleksandar-todorovic/awesome-blogs/commit/0c356a61e01d64cc0e3215a2ce466b2380668277
https://github.com/mehcode/awesome-atom/commit/a287e4dd7c0604fa76d731da43413f910f02146c

I've added the badge to Must-Watch CSS. Prior I had included this blurb at the top of the list which I think is still valid:

For other great lists check out @sindresorhus's curated list of awesome lists.

added to n1trux/awesome-sysadmin.

Added to awesome-selfhosted.

Added to js-must-watch with PR of @AllThingsSmitty

Could we simply list repo owners in a comment for this issue to notify them about using the badge? I know there are dozens but I'd be willing to do a little leg work.

@AllThingsSmitty Yes, that's a great idea :+1: :)

@dypsilon, @JStumpp, @weblancaster, @busterc, @jondot, @benoitjadinon:
You're receiving this because you have repos listed in @sindresorhus's Awesome repo under the "Platforms" section. We're trying to apply branding to each report listed therein. Please see the initial comment on this issue for steps on adding the "Awesome" badge to your repo.
Thanks for your help.

@sorrycc, @matteocrippa, @vinta, @kud1ing, @krispo, @passy, @avelino, @lauris, @markets
@planetruby, @razum2um, @h4cc, @isRuslan, @drobakowski, @svaksha, @LewisJEllis, @aleksandar-todorovic, @fear, @qinwf, @zhaopuming, @hachiojipm, @kdabir, @yissachar, @akullpp, @rizo, @seancoyne, @rabbiabram, @quozd, @ziadoz, @Fr0st-Brutal, @mat0thew, @ahkscript, @veelenga, @dzharii:
You're receiving this because you have repos listed in @sindresorhus's Awesome repo under the "Programming Languages" section. We're trying to apply branding to each report listed therein. Please see the initial comment on this issue for steps on adding the "Awesome" badge to your repo. Please respond with which repos you've updated with the badge.
Thanks for your help.

@addyosmani, @davidsonfellipe, @lvwzhen, @enaqx, @mateusortiz, @Granze, @gianarb, @instanceofpro, @diegocard, @willianjusten, @dnbard, @peterkokot, @NoahBuscher, @nmec, @wasabeef, @cjwirth, @davidtheclark, @Urigo, @turobson, @fonsopacifer, @deanhume, @brunopulis, @sachin1092, @sota0805, @wbkd:
You're receiving this because you have repos listed in @sindresorhus's Awesome repo under the "Front-End Development" section. We're trying to apply branding to each repor listed therein. Please see the initial comment on this issue for steps on adding the "Awesome" badge to your repo. Please respond with which repos you've updated with the badge.
Thanks for your help.

@rosarior, @humiaozuzu, @veggiemonk, @iJackUA, @ITCase, @PerfectCarl, @friendsofcake, @EmanueleMinotto, @chiraggude, @ekremkaraca, @sergeyklay, @phanan, @fcambus, @stve:
You're receiving this because you have repos listed in @sindresorhus's Awesome repo under the "Back-End Development" section. We're trying to apply branding to each repo listed therein. Please see the initial comment on this issue for steps on adding the "Awesome" badge to your repo. Please respond with which repos you've updated with the badge.
Thanks for your help.

I've sent the note above to the repo owners listed under Platforms, Programming Languages, Front-End Dev, and Back-End Dev. I'll try to get to some more tomorrow.

@AllThingsSmitty Thanks, added on https://github.com/davidsonfellipe/awesome-wpo/

Added on https://github.com/willianjusten/awesome-svg =)

Added to https://github.com/yissachar/awesome-dart

Added to https://github.com/peterkokot/awesome-dojo

Added to https://github.com/seancoyne/awesome-coldfusion

Added to https://github.com/LewisJEllis/awesome-lua

Some additional ones that weren't higlighted: @sturobson @afonsopacifer @sotayamashita

Thanks @AllThingsSmitty :)

Added to https://github.com/davidtheclark/scalable-css-reading-list

@sindresorhus @AllThingsSmitty
OMG guys, that was so annoying.  :rage4:
I have a backlink to your list, but I am not going to include that badge.

Added on https://github.com/mateusortiz/webcomponents-the-right-way
thanks @AllThingsSmitty

@dzharii Sure it's annoying (it was annoying to me too before I had unsubscripted from this thread), but what else could be done? It's painstaking to create 100+ issues on 100+ different repositories.

@dzharii Then unsubscribe to the thread. This is unfortunately the best to reach everyone. For most it will just result in one notification if you use the web UI.

Added to https://github.com/phanan/htaccess.

On Tue, Aug 4, 2015 at 11:29 PM, Matt Smith<EMAIL_ADDRESS>wrote:

@planetruby, @razum2um, @h4cc, @isRuslan, @drobakowski, @svaksha, @LewisJEllis, @aleksandar-todorovic, @fear,
You're receiving this because you have repos listed in @sindresorhus's Awesome repo under the "Programming Languages"

Added to http://svaksha.github.io/Julia.jl
SVAKSHA ॥  http://about.me/svaksha  ॥

@svaksha Shouldn't it be right to the right (no puns) of the title?

Added on https://github.com/lvwzhen/tools
thanks @AllThingsSmitty

Added to https://github.com/sotayamashita/awesome-css .

Added to https://github.com/humiaozuzu/awesome-flask/commit/0bce3279dfdb072ac0a78d02a8441541af747e98

Added to https://github.com/sachin1092/awesome-material

On Wed, Aug 5, 2015 at 3:29 AM, Phan An<EMAIL_ADDRESS>wrote:

@svaksha Shouldn't it be right to the right (no puns) of the title?

I dont think so. Each repo is the star with useful information
regarding a specific topic and it should stay that way, not clutter or
deflect attention to unrelated content - Ideally a badge or link to
external resources should be at the bottom or elsewhere pointing
people to additional resources that may be useful to them and yet
somewhat related to the main content that people came looking for.
SVAKSHA ॥  http://about.me/svaksha  ॥

Added to https://github.com/instanceofpro/awesome-backbone and https://github.com/instanceofpro/awesome-marionette

Added to https://github.com/iJackUA/awesome-vagrant

Added to https://github.com/quozd/awesome-dotnet :) Nice badge btw

:+1:

Done for https://github.com/veggiemonk/awesome-docker
:cool:

Done https://github.com/gianarb/awesome-angularjs/blob/master/README.md

Done for https://github.com/JStumpp/awesome-android/ in https://github.com/JStumpp/awesome-android/commit/b2b339a58af4132b361e747a4ce80f5df24b4880

Awesome Polymer here: https://github.com/Granze/awesome-polymer done

Awesome Ember checking in.

Badge added: https://github.com/EmanueleMinotto/awesome-symfony2/commit/849d43c91e1c6e91aa32cd0a422c5d148372f93d

Added to https://github.com/deanhume/typography

Added to https://github.com/veelenga/awesome-crystal
BTW, nice badge

https://github.com/akullpp/awesome-java https://github.com/akullpp/awesome-java/pull/197
Replaces the "inspired by" line.

Awesome swift should be fine now ( https://github.com/matteocrippa/awesome-swift )

Added on https://github.com/brunopulis/awesome-a11y/ :+1:

Added to https://github.com/afonsopacifer/awesome-flexbox
:)

@AllThingsSmitty thanks for the ping.
frontend-dev-bookmarks are badged.

@prakhar1989, @okulbilisim, @josephmisiti, @edobashira, @theimpossibleastronaut, @MaciejCzyzewski, @jbhuang0604, @ChristosChristofidis, @kjw0612, @onurakpolat, @caesar0301, @youngwookim, @igorbarinov, @papers-we-love, @JanVanRyswyck, @tayllan, @enjalot/, @owainlewis, @marcobiedermann, @vhf, @ligurio, @dariubs, @hackerkid:
You're receiving this because you have repos listed in @sindresorhus's Awesome repo. We're trying to apply branding to each repo listed therein. Please see the initial comment on this issue for steps on adding the "Awesome" badge to your repo. Please respond with which repos you've updated with the badge.
Thanks for your help.

I did it when Sindre first tweeted about it - https://github.com/prakhar1989/awesome-courses

@sindresorhus the badge has been added to awesome-machine-learning

@sindresorhus the badge has been added to https://github.com/jbhuang0604/awesome-computer-vision

@dreikanter, @emacs-tw, @mehcode, @ellisonleao, @hzoo, @Calinou, @leereilly, @jondot, @webpro, @alebcay, @unixorn, @stefanbuck, @arslanbilal, @RichardLitt, @cv, @numetriclabz, @shlomi-noach, @dahlia, @mark-rushakoff, @shime, @heyalexej, @brabadu, @hrissimpkins, @therebelrobot, @karlhorky, @matteofigus, @paragonie, @sbilly, @apsdehal, @rshipp, @ashishb, @carpedm20, @paralax, @burningtree, @najela, @matiassingers, @tmcw, @n1trux, @kyleterry, @onurakpolat, @httpsGithubParty, @tiimgreen, @waldyrious, @marmelab, @christian-bromann, @filipelinhares, @itech001, @mmcgrana, @ripienaar, @igorbarinov, @jugoncalves, @diessica, @mmccaff, @maxogden, @caesar0301, @lukasz-madon, @melvin0008, @feross, @matiassingers, @cjbarber, @aleksandar-todorovic, @NARKOZ, @kilimchoi, @Kickball, @jwaterfaucett, @lferov, @Syskaw, @eug:
You're receiving this because you have repos listed in @sindresorhus's Awesome repo. We're trying to apply branding to each repo listed therein. Please see the initial comment on this issue for steps on adding the "Awesome" badge to your repo. Please respond with which repos you've updated with the badge.
Thanks for your help.

@sindresorhus all owners of repos listed in Awesome have now been notified. So far the response has been quick and positive. It may be a good idea to include something in contributing.md about adding the badge if a repo is approved to be added to the Awesome list.

@AllThingsSmitty  @sindresorhus  https://github.com/ellisonleao/magictools updated

@sindresorhus The badge has been added to Awesome Talks: https://github.com/JanVanRyswyck/awesome-talks

@prakhar1989 thanks! I hadn't seen that I was doing a mass reach-out to everyone at once. 👍🏼

Added to https://github.com/christian-bromann/awesome-selenium

awesome-honeypots updated. thanks

@paralax aka jose nazario

On Wed, Aug 5, 2015 at 3:58 PM, Matt Smith<EMAIL_ADDRESS>wrote:

@dreikanter https://github.com/dreikanter, @emacs-tw
https://github.com/emacs-tw, @mehcode https://github.com/mehcode,
@ellisonleao https://github.com/ellisonleao, @hzoo
https://github.com/hzoo, @Calinou https://github.com/Calinou,
@leereilly https://github.com/leereilly, @jondot
https://github.com/jondot, @webpro https://github.com/webpro, @alebcay
https://github.com/alebcay, @unixorn https://github.com/unixorn,
@stefanbuck https://github.com/stefanbuck, @arslanbilal
https://github.com/arslanbilal, @RichardLitt
https://github.com/Richard Litt, @cv https://github.com/cv,
@numetriclabz https://github.com/numetriclabz, @shlomi-noach
https://github.com/shlomi-noach, @dahlia https://github.com/dahlia,
@mark-rushakoff https://github.com/mark-rushakoff, @shime
https://github.com/shime, @heyalexej https://github.com/heyalexej,
@brabadu https://github.com/brabadu, @hrissimpkins, @therebelrobot
https://github.com/therebelrobot, @karlhorky
https://github.com/karlhorky, @matteofigus
https://github.com/matteofigus, @paragonie
https://github.com/paragonie, @sbilly, @apsdehal
https://github.com/apsdehal, @rshipp https://github.com/rshipp,
@ashishb https://github.com/ashishb, @carpedm20
https://github.com/carpedm20, @paralax https://github.com/paralax,
@burningtree https://github.com/burningtree, @najela
https://github.com/najela, @matiassingers
https://github.com/matiassingers, @tmcw https://github.com/tmcw,
@n1trux https://github.com/n1trux, @kyleterry
https://github.com/kyleterry, @onurakpolat
https://github.com/onurakpolat, @httpsGithubParty
https://github.com/httpsGithubParty, @tiimgreen
https://github.com/tiimgreen, @waldyrious
https://github.com/waldyrious, @marmelab https://github.com/marmelab,
@christian-bromann https://github.com/christian-bromann, @filipelinhares
https://github.com/filipelinhares, @itech001
https://github.com/itech001, @mmcgrana https://github.com/mmcgrana,
@ripienaar https://github.com/ripienaar, @igorbarinov
https://github.com/igorbarinov, @jugoncalves, @diessica, @mmccaff,
@maxogden, @caesar0301, @lukasz-madon, @melvin0008, @feross,
@matiassingers https://github.com/matiassingers, @cjbarber,
@aleksandar-todorovic, @NARKOZ, @kilimchoi, @Kickball, @jwaterfauc ett,
@lferov, @Syskaw, @eug:
You're receiving this because you have repos listed in @sindresorhus's
Awesome repo. We're trying to apply branding to each repo listed therein.
Please see the initial comment on this issue for steps on adding the
"Awesome" badge to your repo. Please respond with which repos you've
updated with the badge.
Thanks for your help.
—
Reply to this email directly or view it on GitHub
https://github.com/sindresorhus/awesome/issues/253#issuecomment-128130674
.

--
jose nazario
For Privacy Act and Paperwork Reduction Act Notice, see page 2

Updated awesome-zsh-plugins.
Thanks!

Added to Mind Expanding Books :+1:

Added to Awesome Godot.

Added to Awesome Shell.

Added to GitHub Cheat Sheet :+1:

Added to Awesome Slack :smile:

Added to git cheat sheet

Added to Awesome Browser extensions for GitHub

Looks like a few names didn't get highlighted:
@enjalot, @chrissimpkins, @jugoncalves, @diessica, @mmccaff, @maxogden, @caesar0301, @lukasz-madon, @melvin0008, @feross, @cjbarber, @aleksandar-todorovic, @NARKOZ, @kilimchoi, @Kickball, @jwaterfaucett, @alferov, @Syskaw, @eug

@AllThingsSmitty That's an expected behavior for those of us who have unsubscribed from this thread.

@aleksandar-todorovic gotcha. Thanks. Sorry if I was spamming you.

Thanks, @AllThingsSmitty
Added to awesome-gulp

Already in Awesome Sketch. Pretty nice idea, @sindresorhus! :)

added to https://github.com/feross/mad-science-modules

done for https://github.com/matteofigus/awesome-speaking

Done for https://github.com/kilimchoi/engineering-blogs

Done for https://github.com/rshipp/awesome-malware-analysis

[x] awesome-readme
[x] awesome-slack

Done
https://github.com/sbilly/awesome-security

[x] https://github.com/igorbarinov/awesome-bitcoin
[x] https://github.com/igorbarinov/awesome-data-engineering

Done for https://github.com/mmccaff/PlacesToPostYourStartup

Codeface was updated with the badge.  Thanks Sindre.

[X] https://github.com/chrissimpkins/codeface

:white_check_mark:  https://github.com/cjwirth/awesome-ios-ui/

Done for https://github.com/eug/awesome-opengl

added for

Awesome GIF
Awesome Open Source Photography

Done!
https://github.com/youngwookim/awesome-hadoop

Added to https://github.com/ahkscript/awesome-AutoHotkey

Same here. https://github.com/carpedm20/awesome-hacking

Added: https://github.com/apsdehal/awesome-ctf

Added: https://github.com/shlomi-noach/awesome-mysql

added on awesome-go https://github.com/avelino/awesome-go

added to awesome-fonts https://github.com/brabadu/awesome-fonts

added to awesome-d https://github.com/zhaopuming/awesome-d

added to awesome artificial intelligence https://github.com/owainlewis/awesome-artificial-intelligence

Joining the spammers club 😈 - added to awesome-bigdata
https://github.com/onurakpolat/awesome-bigdata
--
onurakpolat.com http://www.onurakpolat.com/ |<EMAIL_ADDRESS>| +49
151 280 21915 <%2B4915128021915> | @OnurAkpolat
On Thu, Aug 6, 2015 at 9:44 AM, Owain Lewis<EMAIL_ADDRESS>wrote:

added to awesome artificial intelligence
https://github.com/owainlewis/awesome-artificial-intelligence
—
Reply to this email directly or view it on GitHub
https://github.com/sindresorhus/awesome/issues/253#issuecomment-128280019
.

Added to Learn to Program

added to shime/creative-commons-media

Mission completed für awesome-rails

Added for https://github.com/lukasz-madon/awesome-remote-job

Added to https://github.com/melvin0008/awesome-projects-boilerplates

See little sense in this but added to https://github.com/Fr0sT-Brutal/awesome-delphi

Added to https://github.com/chiraggude/awesome-laravel

Done on Awesome HTML5

Added to Cordova

Added to
:+1: :+1:

Added to https://github.com/hachiojipm/awesome-perl
:+1: nice badge.

Awesome

I'm working my way down the list and referencing the PRs to this issue with the name of Add awesome list badge!
Ones I have missed out:

https://github.com/maciejczyzewski/retter (don't know where to put the badge)

Done! All awesome lists should have a pull-request adding the badge. :smile:

@CraigyDavi https://github.com/maciejczyzewski/retter ready to proudly shine... :smile:

@CraigyDavi https://github.com/maciejczyzewski/retter ready to proudly shine...

:sunglasses: :+1:

@CraigyDavi appropriately enough, that was an awesome job! Awesome-open-companies has just jumped aboard :)

https://github.com/benoitjadinon/awesome-xamarin is badged. over and out.

https://github.com/jwaterfaucett/awesome-foss-apps is badeged thanks @CraigyDavi :)

Done for https://github.com/dreikanter/sublime-bookmarks and https://github.com/dreikanter/ruby-bookmarks

Done on Awesome REST

Merged on Awesome Scala (y)

Added to android-security-awesome.

@AllThingsSmitty Added to Search Engine Optimization (SEO) :+1:

added for https://github.com/ciandcd/awesome-ciandcd

At some point we should spot check the Awesome list to make certain we haven't missed any projects that need the badge.

@sindresorhus Added to https://github.com/SrinivasanTarget/awesome-appium


What is the need of two separate preprocessing files?

What is need of two separate preprocessing files ?
https://github.com/Jeff20100601/GHNN_clean/blob/master/data/GDELT/get_history.py and https://github.com/Jeff20100601/GHNN_clean/blob/master/data/GDELT/get_history_tpre_appro.py.  It looks like they share a  lot of codes.

https://github.com/Jeff20100601/GHNN_clean/blob/df02f049daeb867b3e4607b96e309e373c396d8a/data/GDELT/get_history_tpre_appro.py#L159-L164
These variables are not used anywhere

https://github.com/Jeff20100601/GHNN_clean/blob/df02f049daeb867b3e4607b96e309e373c396d8a/data/GDELT/get_history_tpre_appro.py#L159-L164
These variables are not used anywhere

https://github.com/Jeff20100601/GHNN_clean/blob/df02f049daeb867b3e4607b96e309e373c396d8a/data/GDELT/get_history_tpre_appro.py#L159-L164
These variables are not used anywhere

hello,  I find the model uses time interval(time difference) rather than time, I don't know if you have some idea about this. Can you answer this question for me?


[RFC] fw: remove --max-test-count

The semantics of this option can get tricky, especially with fracturing
enabled. I don't believe this option gets much play, so removing it.
Signed-off-by: Joe Konno<EMAIL_ADDRESS>

@thac0 this is good! are you going to finish this up?

Oh! This! 🤣 Forgot about it. I'll take a peek when I have a cycle.


Connecting controller with launcher open results in opening endless copies of CDDA.

With the launcher running in the background I connect a wired controller. The controller does not have any macros and the launcher is not the active window. It will open as many copies of CDDA as possible. Last test launched 323 copies of CDDA in approximately 15 minutes.
Controller used is a Nintendo Switch Pro via USB.
System information:
Processor	Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz   4.20 GHz
Installed RAM	32.0 GB
System type	64-bit operating system, x64-based processor
OS information:
Edition	Windows 10 Pro
Version	21H2
Installed on	6/20/2020
OS build	19044.1586
Experience	Windows Feature Experience Pack 120.2212.4170.0
Please let me know what other information you need if you aren't able to replicate/identify this issue.

Catapult still has Godot's default input map, which was never changed. It allows navigating the app with the keyboard, TUI style. It also has mappings for controller actions. Here's how they look:

I guess what you describe is possible if the Play button was in focus and a certain action got stuck when the controller was connected. I tried it with an Xbox-compatible controller, but did not see this issue.
Regardless of the exact mechanism of this problem, I think it will help if I just remove all controller actions from the input map. There is no reason for them to be there.

@Drew4484
If this problem persists for you after the next update, please re-open this issue.


Scripts for pulling data from redis

As we move to use Redis more in Turbinia, it would be nice to have a couple small shell scripts utilities to pull data out of Redis.  Doesn't need to be anything heavy as we don't want to replace the API server and such, but just enough to maybe query by request so there is an example of how to construct the basic queries and filter for debugging.
Another thing we may want is to have a dump/restore script so updating is easy with the new architecture.  Not sure if we want to do this with these scripts or not as there is likely redis tools more suited for this, so I'm not going to file a separate issue yet, but wanted to include it here just in case we need to write some scripts or want to do it at the same time.

Fixed in #1299


Build fails due to Forbidden status from cardinalcommerce

Getting this issue in Github Actions pipeline while trying to run the command, flutter build appbundle
Could not determine the dependencies of task ':flutter_braintree:compileReleaseJavaWithJavac'.
> Could not resolve all task dependencies for configuration ':flutter_braintree:releaseCompileClasspath'.

   > Could not resolve org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.4-1.

     Required by:

         project :flutter_braintree > com.braintreepayments.api:three-d-secure:3.15.0

      > Could not resolve org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.4-1.

         > Could not get resource 'https://cardinalcommerce.bintray.com/android/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.4-1/cardinalmobilesdk-2.2.4-1.pom'.

            > Could not HEAD 'https://cardinalcommerce.bintray.com/android/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.4-1/cardinalmobilesdk-2.2.4-1.pom'. Received status code 403 from server: Forbidden

I have already added the following to project-level build.gradle
        maven {
            url "https://cardinalcommerce.bintray.com/android"
            credentials {
                username 'braintree-team-sdk@cardinalcommerce'
                password '220cc9476025679c4e5c843666c27d97cfb0f951'
            }
        }

and to app-level build.gradle
implementation ('com.braintreepayments.api:drop-in:5.2.0')

Change url, username and password as there https://github.com/braintree/braintree_android/issues/373#issue-873084089

Change url, username and password as there braintree/braintree_android#373 (comment)

I tried, still it's failing!
Should I change in the braintree package android/build.gradle as well?

Changing url in the flutter-braintree package worked for me.
In flutter-braintree, build.gradle replace the existing credentials to :
    maven {
        url "https://cardinalcommerceprod.jfrog.io/artifactory/android"
        credentials {
            username 'braintree_team_sdk'
            password 'AKCp8jQcoDy2hxSWhDAUQKXLDPDx6NYRkqrgFLRc3qDrayg6rrCbJpsKKyMwaykVL8FWusJpp'
        }
    }

Changing url in the flutter-braintree package worked for me.
In flutter-braintree, build.gradle replace the existing credentials to :
    maven {
        url "https://cardinalcommerceprod.jfrog.io/artifactory/android"
        credentials {
            username 'braintree_team_sdk'
            password 'AKCp8jQcoDy2hxSWhDAUQKXLDPDx6NYRkqrgFLRc3qDrayg6rrCbJpsKKyMwaykVL8FWusJpp'
        }
    }

Storing credentials inside the app is far from ideal. I am also getting a Forbidden status when trying to run my app with your package. Please take a hard look at this issue. Thank you.

Same issue type
Launching lib/src/main.dart on SM J600GT in debug mode...
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':flutter_braintree:compileDebugAidl'.
> Could not resolve all task dependencies for configuration ':flutter_braintree:debugCompileClasspath'.
   > Could not resolve org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.4-1.
     Required by:
         project :flutter_braintree > com.braintreepayments.api:three-d-secure:3.15.0
      > Could not resolve org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.4-1.
         > Could not get resource 'https://cardinalcommerce.bintray.com/android/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.4-1/cardinalmobilesdk-2.2.4-1.pom'.
            > Could not GET 'https://cardinalcommerce.bintray.com/android/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.4-1/cardinalmobilesdk-2.2.4-1.pom'. Received status code 403 from server: Forbidden
      > Could not resolve org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.4-1.
         > Could not get resource 'https://google.bintray.com/exoplayer/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.4-1/cardinalmobilesdk-2.2.4-1.pom'.
            > Could not GET 'https://google.bintray.com/exoplayer/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.4-1/cardinalmobilesdk-2.2.4-1.pom'. Received status code 403 from server: Forbidden

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 10s
Exception: Gradle task assembleDebug failed with exit code 1

This worked https://developer.paypal.com/braintree/docs/guides/3d-secure/client-side#generate-a-client-token

I published a new version, 2.0.0, of flutter_braintree, I hope that solves this issue. Sorry for the wait guys.


Implementation of OP030

Description
Implements spec OP030:

Pin requirements.txt using pip-compile from requirements.in
Configure Renovate

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that validate the behaviour of the software
[x] I validated that new and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have bumped the version of the library

@ghislainbourgeois can I close this PR? It seems quite stale


Fix c2 w2 legend

There were missing the legends in some figures, and a title in one of the assignment.

Thanks for the suggestion, right now we are not merging PR's but we will consider this suggestion for future iterations of the course.


[Issue-2806] Improve the Marketing Campaign application mechanism

Pr for issue #2806

🚀 Deployed on https://pr-3110--sw-web-runner.netlify.app


Assist users in setting up their jsconfig.json

Pre-Salsa the JS support has automatically excluded some folders from the project context. Now that Salsa is no longer doing this users run into issues (slow intellisense, crashes), We should assist and hint users to create a jsconfig.json with the proper excludes.

Verified that the light bulb and a exclude message shows in the status bar.


Update Map.swift JSONDictionary getter

Added possibility to get JSONDictionary as a root value

I tried to explain everything in https://github.com/Hearst-DD/ObjectMapper/issues/375

Hi @zulkis, I think I would prefer to just make JSONDictionary a public variable in this situation.

Hi @tristanhimmelman, it is a good solution, but still it is not preventing the situation with setting with dictionary from the outside(weird situation but still possible).
Actually I prefer to modify property but in that case of setting private setter/public getter - we have setValue function in ToJSON.swift that uses JSONDictionary as internal property...
From my side - it is not so important how to get it :) More important to obtain this possibility, because I don't really want to fork it(or in case of using AlamofireObjectMapper fork both)
Thank you!

Just writing public internal(set) var JSONDictionary would be fine.

@ikesyo, you're absolutely correct!


ActionScript detected as AngelScript

Preliminary Steps
Please confirm you have...

[x] reviewed How Linguist Works,
[x] reviewed the Troubleshooting docs,
[x] considered implementing an override,
[x] verified an issue has not already been logged for your issue (linguist issues).

Problem Description
Recently added ActionScript projects (old code added for archiving purposes) have been incorrectly tagged as AngleScript.
URL of the affected repository:

https://github.com/gmattie/Drop-Swatch
https://github.com/gmattie/Disco-Desktop

Last modified on:
2019-07-11

Expected language:
ActionScript
Detected language:
AngelScript

Can you please add back and complete the template. We request this to be filled to help you and help us.

We request this to be filled to help you help us.

@lildude I think you meant to help us help you :smiley:
It looks like there is some issue with newlines in these ActionScript files. Because of that, our current .as heuristic is unable to match those files and falls back to AngelScript. I'd recommend using an override or fixing your newlines.

It looks like there is some issue with newlines in these ActionScript files

Technically, there's nothing wrong with the files. They're simply saved using old Mac line-terminators (\r, carriage returns), as opposed to \r\n or \n (used by Windows and POSIX, respectively).
The underlying issue is actually our fault, as Linguist/GitHub don't acknowledge plain carriage returns as line-endings. See #2988.
@gmattie did say "old code added for archiving purposes", and it'd be callous of us to expect users to modify old codebases for addressing a shortcoming that's primarily our oversight...

Hm, you're right. Do we have a fix for that?

At a rough guess, I'd say it's probably something that needs to be fixed on GitHub's end... @lildude could probably confirm.

At a rough guess, I'd say it's probably something that needs to be fixed on GitHub's end... @lildude could probably confirm.

🤔 I don't think this is something that should be addressed on the GitHub side of things as it interprets the CR/LF chars like git does and the syntax highlighting has no problems once the language has been detected correctly. I think this sits squarely in Linguist's realm as this is where the language detection is taking place, which in this case is right about here...
https://github.com/github/linguist/blob/001ca526694a32a5ac4c977a79032ced0b8c0aca/lib/linguist/heuristics.yml#L50-L52
This isn't matching because we're not taking into account the ^M chars. It would be a PITA to update all the heuristic regexs but I think this could probably solved a few .gsub() calls just after loading the data here https://github.com/github/linguist/blob/001ca526694a32a5ac4c977a79032ced0b8c0aca/lib/linguist/heuristics.rb#L24

@gmattie Do you want to submit a pull request for that (with the change suggested by @lildude)? We could use one of your files as a test case.

The files have already been converted locally and I replaced the archives, so the old files with the mac line terminators are gone.
I wanted the (old and slightly embarrassing) code to be readable on GitHub and there weren't too many files to update so I used Notepad++ to convert the EOLs from CR to CR LF and reuploaded and archived the repos.


Performance issue with Snapshots list

Hi yalls,
My project has 12 pages of snapshots (one is created at each deployment automatically by pipelines), and the page takes a good minute to load.
Most likely an issue with not lazy loading the data from the database in the pagination.
Thanks,
Igor

In memory cache implemented by 73f4f840f721ce788b632d194d5d0ad5a8b17aad should have improved the performance

Yay!!