Add spring 2021 iPads

Not ready,
iPad 13,4, 13,5, 13,8, 13,9 is WiFi
iPad 13,6, 13,7, 13,10, 13,11 is Cellular
But I think its too early to tell which is (probably) the higher RAM version

Codecov Report

Merging #67 (549afbe) into master (542caa0) will decrease coverage by 0.18%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           master      #67      +/-   ##
==========================================
- Coverage   93.95%   93.77%   -0.19%
==========================================
  Files          12       12
  Lines         960      964       +4
==========================================
+ Hits          902      904       +2
- Misses         58       60       +2

Impacted Files
Coverage Δ

Sources/DeviceModel.swift
97.08% <50.00%> (-1.91%)
:arrow_down:

Continue to review full report at Codecov.

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

@vincentneo Great job! Ok we should wait to merge this PR then right?

@Nirma I think so, unless we set both identifiers as to one model, until info gets clear. (I haven't write the tests and identifier class too.)

Looks like the lower number is 8GB RAM, higher number is 16GB.
iPad13,6 https://browser.geekbench.com/v5/cpu/7687877
iPad13,11 https://browser.geekbench.com/v5/cpu/7855560

@vincentneo Great detective work, I agree that looks about right.


Main Menu Song Plays in Modded Songs

Describe your problem here.
I'm porting my mod from the lua (or downloadeable version of Psych Engine) to the source code version, but when I go into the songs, the stage isn't there and the song ends up being the Main Menu theme, instead of the actual one. Does anyone have an idea of why this happens? (Also, the Main Menu Song plays in the chart editor too, but I've already checked the files of the song)
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

I think name of a folder or the song itself might be wrong-writen, you should check if the song names are actually right, if they aren't you have to fix them [obviously] this type of errors normally happens when you try to add spaces on the song name, the chart files and folders on data and songs must be all with no caps lock and instead of spaces use "-", only the song name INSIDE the chart file haves to keep the caps lock and the spaces, this also applys to weeks, add your song name with the caps you added and the spaces


Trino support vs Presto support

I notice you all offer support for Presto. Will there be support for Trino? It is a branch from Presto and has more features than Presto and is more community driven.
It seems odd to use Presto at this point.

Presto is one of the most active, very much community-driven, and fueled by Facebook, Uber, Twitter. and many other active Linux foundation members and widely used, pure open source community.
As long time OS contributor and supporter, we do not try to trash any other open source communuties for any reasons.
Hope this helps 🙏

If you look at number of commits, number of pull requests, and number of issues, between the project Trino is much more active than Presto. The number of people and activity on Trino Slack is much more than Presto Slack. Most of the activity I see in the Presto project is actually just cherry picking the Trino project which is done by Uber, Twitter, and Ahana.
My take, based on discussions with my friends at Uber and Twitter, it seems they are stuck on Presto because they already have dumped too many resources into their internal version of Presto and moving to Trino would be a big undertaking than they want to spend. Ahana is just trying to keep Presto afloat to profit from it. Facebook passively gets the fixes being added by these three companies and only adds features useful to themselves.
@rohanpednekar looks like you work for Ahana so that makes sense that you are pushing for Presto. No ill will to you but Ahana doesn't play so nicely when talking about open source communities like you suggest. Your CEO constantly trash talks the Trino project openly and yet Ahana gladly cherry-picks from the Trino project.
So for those reasons, we have personally chosen to move to Trino and would be interested if Pravega could possibly add support for both. If you only want to support one, our bets are on Trino.

@oliverjacob73 && @rohanpednekar -- Both projects are important to Pravega! There is a Trino port of this connector that we will be releasing soon.


Map Mojang's GLFW constants

Map GLFW constants in Minecraft code. They are just a copy of the constants in org/lwjgl/glfw/GLFW (Mojang didn't even add every used one: GLFW_KEY_WORLD_ 1 & 2 are used, but they have no Minecraft equivalent). Also map some lambda parameters
Should I replace the unpick definitions for key codes with these ones?

I think we can just stay with the current unpick configuration. You said that the Minecraft ones are incomplete.


Create document with devices that work

We all have devices that worked and when you're starting out with these displays, having a list of devices that are confirmed to work is a great help. I suggest putting it in the wiki (and make it public to edit) but I'm not sure if it's possible to add images there.

Was considering adding a benchmarking.rst to the project, but a public wiki is probably the way to go here, along with a link from the main docs to encourage folks to add their details.
Maybe a tabular format with the following fields:

Date/time tested
Known to work or not ( green tick / red cross )
OLED brand ( Adafruit / Sainsmart / Unbranded / link to purchase page )
Github user id
SoC model name & spec ( CPU cores / speed / memory capacity)
Linux version (uname -a)
Python version
(this) Library version
Command run
Resultant FPS
Notes
Uploaded image

The actual command run would convey the device class, interface, screen size
e.g.
python examples/perfloop.py -i i2c -d sh1106 --width 96 --height 16

python examples/perfloop.py -i spi --spi-bus-speed=32000000 -d ssd1306 --width 128 --height 64

@rm-hull any suggestion for name of wiki page?

Hmmm..
https://github.com/rm-hull/ssd1306/wiki/Usage-&-Benchmarking
Tables aren't going to be so easy to maintain - maybe explore alternative layouts or a shared google sheets?

I don't think it's a bad start, it can always be improved later, I don't expect > 10 devices to be added anyway. I'll add my results and see where I can improve the page.

@rm-hull the entry you added, what dimensions does it have? And does it use the datasheet found in the docs?

dimensions = 128x64, datasheet = yes, i2c bus speed was 400KHz. bounce demo is about 20 FPS
By default the I2C bus speed is 100KHz of RPi, see docs:

Optionally, to improve performance, increase the I2C baudrate from the default of 100KHz to 400KHz by altering /boot/config.txt to include:
dtparam=i2c_arm=on,i2c_baudrate=400000

Maybe we should report both, with and without 400khz?

For an original RPi model B (1 core, 700MHz, 512MB) i2c bus speed 400KHz the perfloop comes in at 21.54 FPS and the bounce demo is 9.15 FPS <-- these are all python2, and I'm aware python3 is slower than that

For SPI on RPI3 perfloop reports 68.23 FPS and bounce 46.8 (py 3.4.2). I'll add it to the wiki now (aka page is locked till im done ;)

Tip: it's possible to clone the wiki: https://github.com/rm-hull/ssd1306.wiki.git (relief, that online editor sucks).

It's also impossible to put a link in that table so I'm going to restructure it..

@rm-hull the page is unlocked again, my results are added. Will add links to docs in PR now.


Ability to use static data (no server-side)

I recently wanted to use the package for a "array based datatable".
Sadly when I do;
{!! $dataTable->table() !!}

it doesn't generate the tables body.
I added some logic to the Builder class so that we can make it fill the tbody IF the serverSide option is disabled.
Here is an example DataTable I've prepared along with 2 methods makingRowExample and makingCellExample explaining how the Row and Cell classes apis work. I tried to make things similar to the Column class which we already.
There area a couple important places I've marked via comments inside the code.
<?php

namespace App\DataTables;

use App\DataTables\Core\Html\Column;
use App\Models\User;
use Yajra\DataTables\Html\Builder;
use Yajra\DataTables\Html\Cell;
use Yajra\DataTables\Html\Row;
use Yajra\DataTables\Services\DataTable;

class ExampleStaticDataTable extends DataTable
{
    // IMPORTANT:
    // You can name this method whatever you want, it will simply allow you to populate the rows data
    public function buildRows()
    {
        $users = User::query()->get();

        $rows = [];

        /** @var User $user */
        foreach ($users as $user) {
            $rows[] = [
                'full_name' => $user->full_name,
                'email' => $user->email,
                'created_at' => $user->created_at?->format('Y-m-d H:i:s') ?? 'N/A',
            ];
        }

        return $rows;
    }

    // IMPORTANT:
    // Here we call the `rows(array $rows = [])` method on the `Builder` instance
    // set the `serverSide` attribute to `false`
    public function html(): Builder
    {
        return $this
            ->builder()
            ->rows($this->buildRows())
            ->serverSide(false);
    }

    public function getColumns(): array
    {
        return [
            Column::make('full_name'),
            Column::make('email'),
            Column::make('created_at'),
        ];
    }

    // IMPORTANT:
    // Example usages of the Row api
    public function makingRowExample()
    {
        // Option 1:
        //      If your row doesn't have any attributes,
        //      you can directly use array for its cells.
        $rowExample1 = [
            // Cells here...
        ];

        // Option 2:
        //      If your row has attributes,
        //      you must put the cells to the `cells` key.
        $rowExample2 = [
            'row-class' => 'gray-row',
            'cells' => [
                // Cells here...
            ],
        ];

        // Option 3:
        //      If your row has no attributes,
        //      leave the first parameter as an empty array.
        $rowExample3 = Row::make([
            'row-class' => 'gray-row',
        ], [
            // Cells here...
        ]);
        $rowExample4 = Row::make([
            'row-class' => 'gray-row',
        ])->cells([
            // Cells here...
        ]);
    }

    // IMPORTANT:
    // Example usages of the Cell api
    public function makingCellExample()
    {
        // Option 1 - Directly inside Row array as `key => value` pairs
        $cellExample1_1 = [
            'column_1' => 'Column #1 Content',
            'column_2' => 'Column #2 Content',
        ];
        $cellExample1_2 = [
            'cells' => [
                'column_1' => 'Column #1 Content',
                'column_2' => 'Column #2 Content',
            ],
        ];

        // Option 2 - Using array
        $cellExample2 = [
            'column' => 'column_1',
            'content' => 'Column #1 Content',
        ];

        // Option 3 - Using Cell Object
        $cellExample3_1 = Cell::make('column_1', 'Column #1 Content');
        $cellExample3_2 = Cell::make('column_1')->content('Column #1 Content');
    }
}

Hello @yajra ,
Could you please have a look at this and share me your feedback?
Here I also added the basic usage of the datatable for the controller and the blade parts.
class TestController extends Controller
{
    public function test()
    {
        $dataTable = new ExampleStaticDataTable();

        return view('test')->with([
            'dataTable' => $dataTable->html(),
        ]);
    }
}

{!! $dataTable->table() !!}
{!! $dataTable->scripts() !!}

hey @yajra, could you please review this?

@OzanKurt this is a great feature, thanks for sending the PR. I will test this as soon as I can.
One thing I noticed is that maybe we can simplify the syntax further by setting serverSide: false by default when rows are used.
    public function html(): Builder
    {
        return $this
            ->builder()
            ->rows($this->buildRows()) -- calling this will set serverSide to false
            ->serverSide(false); -- so we can remove this line
    }

Automatically calling serverSide(false) makes so much sense!
In addition to this I am currently working on the option to load the initial data from ajax while having serverSide(false).
I will send a new update in a couple days.

Thanks for the updates, let me know if this is ready for review again.


Updated docker-compose to work with the latest version of gamma

@molleer Do you want this merged?

@Hoidi Yes plz

@cthit/digit plz approve and merge


delete former implementation and complete the new one

Hi @liliuleo93 , do you mind to sync with the latest au-0.13.0-incubating-rc branch first before I review it? It can save me some time on reviewing the old code. Thanks a lot!


add a name attribute to CouplingMap

Often when experimenting with different coupling maps it's convenient to have a short descriptor for it to display, store, etc.

I know this is already merged. But we did not have good experience attaching strings to objects. I fear that it might end up being used as identification. Maybe description would have been better?


Feature request: Cleanup release script using changesets to not publish tag to Github

Similar requests

[X] I have searched and found no existing similar requests

How are you using Studio?
No response
What problems are you trying to solve?
Looks like we can make use of changesets publish --no-git-tag and changesets/action - https://github.com/changesets/changesets/pull/701 to not create release tags and publish new release to Github.
Describe the solution you would like to see implemented

[x] Setup release script to use changesets publish --no-git-tag
[x] Configure changesets/action to disable publishing to Github - wait for https://github.com/changesets/changesets/pull/701
[x] Remove the part of the scripts in concludeNewRelease.js that removes the tags and the created releases on Github as these are nolonger needed.
[x] IMP Test these in another repo.

Describe alternatives you have considered
No response
Documentation, Design, Adoption, Migration Strategy
No response
Contribution

[ ] I would like to work on this feature

Reopen due to issues found in https://github.com/changesets/action/issues/141


Merge pull request #1 from 1millionwomentotech/master

Updating fork

Trying to switch the base in browser.


ocr http request method not allowed

I am using your example code provided and when I upload a pdf it fails with an error 405 Method Not Allowed.
Do I need to set up anything for the ocr to work?

Hi @syatom, the OCR endpoints are not available with the free plan. I spoke with our team and they informed me that the company you are working with has signed up for a trial which does include access to this feature. Please check with your team as they will be able to create a new token which will allow you to use the OCR endpoints required for this tutorial.

It looks like your account was still flagged as free in our Europe region. I have updated this for you now, please try again at your convenience. Thanks


[p50] External display not detected

After https://github.com/130s/hut_10sqft/issues/236#issuecomment-351609069, the external display stopped being detected.

$ dpkg -l|grep -i nvidia
ii  bbswitch-dkms                                   0.8-3ubuntu1                                          amd64        Interface for toggling the power on NVIDIA Optimus video cards
ii  bumblebee                                       3.2.1-10                                              amd64        NVIDIA Optimus support for Linux
ii  primus                                          0~20150328-1                                          amd64        client-side GPU offloading for NVIDIA Optimus
$

No *nvidia* pkg is installed now.

After almost 4 months finally coming back to enabling multiple monitors scenario.
$ sudo apt-get install nvidia-384
$ sudo reboot
:
$ dpkg -l|grep -i nvidia
ii  bbswitch-dkms                                   0.8-3ubuntu1                                          amd64        Interface for toggling the power on NVIDIA Optimus video cards
ii  bumblebee                                       3.2.1-10                                              amd64        NVIDIA Optimus support for Linux
ii  libcuda1-384                                    384.111-0ubuntu<IP_ADDRESS>                              amd64        NVIDIA CUDA runtime library
ii  nvidia-384                                      384.111-0ubuntu<IP_ADDRESS>                              amd64        NVIDIA binary driver - version 384.111
ii  nvidia-opencl-icd-384                           384.111-0ubuntu<IP_ADDRESS>                              amd64        NVIDIA OpenCL ICD
ii  nvidia-settings                                 361.42-0ubuntu1                                       amd64        Tool for configuring the NVIDIA graphics driver
ii  primus                                          0~20150328-1                                          amd64        client-side GPU offloading for NVIDIA Optimus
$

After reboot, I only see the desktop on the external monitor; Native monitor is blacked out and gnome-setting doesn't force to detect it.
On Software & Updates -> Additonal Drivers, choose Using X.Org Xserver from "Using NVIDIA binary driver" and reboot. Then only native monitor is enabled.
$ sudo apt-get purge nvidia-384
$ sudo apt-get install nvidia-375
$ sudo reboot

$ more /var/log/syslog
Apr 12 23:19:37 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_ref: assertion 'value != NULL' failed
Apr 12 23:19:37 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_unref: assertion 'value != NULL' failed
Apr 12 23:19:38 130s-p50 systemd[1]: bumblebeed.service: Service hold-off time over, scheduling restart.
Apr 12 23:19:38 130s-p50 systemd[1]: Stopped Bumblebee C Daemon.
Apr 12 23:19:38 130s-p50 systemd[1]: Started Bumblebee C Daemon.
Apr 12 23:19:38 130s-p50 bumblebeed[4934]: [  124.289976] [ERROR]Module 'nvidia-375' is not found.
Apr 12 23:19:38 130s-p50 systemd[1]: bumblebeed.service: Main process exited, code=exited, status=1/FAILURE
Apr 12 23:19:38 130s-p50 systemd[1]: bumblebeed.service: Unit entered failed state.
Apr 12 23:19:38 130s-p50 systemd[1]: bumblebeed.service: Failed with result 'exit-code'.
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_new_string: assertion 'g_utf8_validate (string, -1, NULL)' failed
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_ref_sink: assertion 'value != NULL' failed
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_ref: assertion 'value != NULL' failed
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_unref: assertion 'value != NULL' failed
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_new_string: assertion 'g_utf8_validate (string, -1, NULL)' failed
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_ref_sink: assertion 'value != NULL' failed
Apr 12 23:19:38 130s-p50 org.gnome.evolution.dataserver.Sources5[3069]: (evolution-source-registry:3505): GLib-CRITICAL **: g_variant_ref: assertion 'value != NULL' failed

$ cat /proc/acpi/bbswitch
0000:01:00.0 ON

Following https://askubuntu.com/a/862672/24203
sudo apt-get purge nvidia* bumblebee
sudo apt-get install ppa-purge
sudo ppa-purge neon1ks/bumblebee
sudo reboot

After this, I see 2 monitors! But the external monitor looks interleaving.
$ dpkg -l|grep -i nvidia
$
$ cat /proc/acpi/bbswitch
cat: /proc/acpi/bbswitch: No such file or directory


Image capture resizing

Cross: https://github.com/dimagi/javarosa/pull/148

Nice refactors and the code you added is really clean :+1:

Good to merge, in my opinion, after considering my getPendingWidget comments


Download kindlegen automatically. Closes #3

Closes #3

@danchoi can you update the rubygems page for latest version and author info as well? My handle is emiraydin on rubygems. Thanks!

Done. Thank you.


Add support for rally point types

Need new QGC features https://github.com/aviant-tech/qgroundcontrol/pull/25
Rally points can now be always active (default/old behavior) or setup to
only be valid for either MR or FW flight.
Uses parameter 1 in the MAVLink message
(https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_RALLY_POINT) to
set type, 0=Always, 1=MR only, 2=FW only.

Update: included "in_transition_to_fw" as FW, not MR, to use other RP than over customer for transition timeout.


Error on my first merge

Hi,
This is my first request and I'm don’t  verry comfortable with the language of shakespear, so I already apologize if I create a misunderstunding, just let me know,  I can try to correct myself.
I have in project to create a script in python for merge a modification on my router, it's a Fortinet 40C In fortiOS 5.2.9
After many days of research to understund how to use python and napalm I decided to make i try, just change the hostname on my router.
I follow the process load/replace configuration on Napalm and when I commit the config I want to merge, I have this error:

I already correct the weak point on the preferred key exchange algorithm and I don't see an other request with this error, I'm stuck on this point.
Thanking you in advance.

I think you might be hitting this bug:
https://github.com/paramiko/paramiko/issues/687
Details about the bug and a potential workaround is here:
https://github.com/paramiko/paramiko/issues/687#issuecomment-196577317

Hi @tedmond68 - after seeing this error are you able to execute any other commands?
I have never worked with fortios, probably @dbarrosop would be able to provide you more info. But looking at the error message, on the surface, I would suspect:

either your device drops the connection (you may have a SSH timeout)
either the commit takes very long. Have you tried running manually the command execute backup [...] on the CLI?

Hi
i try to move diffie-hellman-group1-sha1 bellow diffie-hellman-group-exchange-sha1 or just delete diffie-hellman-group1-sha1 from the tuple, and in this 2 case i have the same error...
If u have another idea let me know...
I try to find another way in netmiko waiting

Couple of questions:

Are you working with a virtualenv?
Which file did you edit? Could you paste the whole path, please?

Hi,
Yes I work with a virtualenv.
I have edit this file: /home/tedmond/netmiko/lib/python2.7/site-packages/paramiko/transport.py

is /home/tedmond/netmiko the path to your virtualenv? I have confirmation from other people the workaround works. Did you manage to get it working?

the command for activate my virtualenv  : source napalm/bin/activate,  i think i edited the wrong file no ?

ok I edited the file in /home/tedmond/napalm/local/lib/python2.7/site-packages/paramiko/trasport.py
I moved diffie-hellman-group1-sha1 bellow diffie-hellman-group-exchange-sha1 no change and delete diffie-hellman-group1-sha1 from the tuple and still does'nt work ... :(
Still stick today I try again tomorrow.

After our discusson on slack, it seems you managed to get further in the process of deploying configuration. Could you please, paste exact steps to reproduce the error you are at right now? Configuration you are using, code, traceback... It doesn't have to be exactly your code/configuration as long as it triggers your error.

Ok no worries !
My router is a FortiWiFi 40C v5.2.9,build736 (GA)
I work with python 2.7.6 on Ubuntu 14.04 in a virtulenv named napalm.
and my command step by step

import napalm
driver = napalm.get_network_driver('fortios')
device = driver(hostname='IP', username='tedmond', password='this is not a secure password')
device.open()
device.load_replace_candidate(filename=config_file)

and i have this error,

I think it's maybe because fortios doesn’t have atomic operations
for my merge i follow the same process except...

device.load_merge_candidate(filename=config_file)
device.commit_config()

and i have this error :

In my file for the merge i only have these two commands
config system global
set hostname "myhostname"
Just now i had an idea, it's maybe because my file is not on my directory napalm/ where is my virtualenv...

I am pretty sure the problem is you are trying to change the hostname. Can you try doing something else?

Ok,
I tryed to merge what i want to merge for my project it's the firewall policy.
In my file.conf i just have my whole firewall policy and one command change,
set action accept  to deny.
This time i'm work with a FortiWiFi 30E v5.4.2,build1100 (GA)
But it wasn't impacted when i commit it, i reboot the router, i thinked maybe after a reboot i will see the change and nothing.
I'm a little confused, no error this time but  no changes....
iIf anyone has an idea, I'm will be grateful.

I don't think either pyfg or napalm-fortios has ever been tested with FortiWifi. I don't even know which OS that device runs :P Anyway, out of curiosity, can you add print(device.compare_config()) before the device.commit_config() and paste the output?

Ok
New and last merge for this week, this time i have an error this is my traceback with a compare.config()

It's sad because I'm really feeling like close to the beginning of my project... :(
Maybe next week !
Have a nice week-end !!

Just another test in my 40 C before i go
again this error... :(

With the same virtual environment and everything, could you try this code? (replace variables at the top of the script)
from pyFG.fortios import FortiOS, FortiConfig

hostname = "your_hostname_or_ip"
username = "your_user"
password = "your_passwd"
config_file = "/path/to/config"

device = FortiOS(hostname, username, password)
device.open()

device.candidate_config = FortiConfig('candidate')
device.running_config = FortiConfig('running')

with open(config_file) as f:
    configuration = f.read()

# Loads running config without modifying the candidate
device.load_config(empty_candidate=True)
# Loads the candidate from variable
device.load_config(in_candidate=True, config_text=configuration)

print("============== Running config:")
print(device.running_config.to_text())
print("============== Candidate config:")
print(device.candidate_config.to_text())
print("============== Diff:")
print(device.compare_config())

# Let's reload the state and print the diff
device.load_config(empty_candidate=True)
print("============== Diff:")
print(device.compare_config())

device.close()

I have this error

A hint maybe ? :)

That's the paramiko bug.

The SSH key exchange on transport. py ? :o

It has to be. In any case, it's failing to connect.

it doesn't to be, i tryed with diffie-hellman-group1-sha1 below diffie-hellman-group-exchange-sha1 and without diffie-hellman-group1-sha1 and in this 2 case i have the same error.

I did a small change on the script above (edited the comment). Can you try again?

Rather than writing the commands line by line I started the script.
He doesn't find pyFG.fortios

I was able to replicate the No authentication methods available paramiko error mentioned in https://github.com/napalm-automation/napalm-fortios/issues/35#issuecomment-272849615 in my lab as well. I was able to resolve the issue by adjusting this line in the test script (note the username= and password=):
device = FortiOS(hostname, username=username, password=password, timeout=60)

We chatted back and forth a bit on Slack about the most recent ImportError. Worst case I would just create a new virtualenv, re-install napalm in the new virtualenv, and then attempt to run the test script from the new virtualenv if you continue to encounter the ImportError issues.

Ok thanks @ebeahan, something wrong with line 18:

You are back at square 1, please, review the thread as that's an error we have already discussed.
In any case, this is an error completely unrelated to napalm.

@tedmond68 Any luck working through the SSH timeouts? As @dbarrosop mentioned it doesn't look like a napalm-specific issue, but appears that the underlying SSH session is timing out to the Fortinet device.

No progress on that, i tried with netmiko and it works, it's just less easier for me. :p
To bad i work with fortinet, i hate those equipements. :p
I don't understand why my boss chosen Fortinet...
Thanks for asked me and to tried to help me both of you.

Ok will go ahead and close out the issue.


Bumps Reactotron due to version warning inside that dependency.

Switched Reactotron's React Native dependency from ~0.31.0 to >=0.31.0 because it was throwing warnings.  Sorry about that.

Back to back self merges.


viaklix missing supported card type

viaklix.rb line 17 should look like this (yes, i'm processing discover card with viaklix):
self.supported_cardtypes = [:visa, :master, :american_express, :discover]

Would definitely merge a Pull Request that fixed this - thanks!

i contemplated doing this, the change is really small (changing a false
to true), it would be faster to do that than to write an email
On 2/27/12 5:36 PM, Nathaniel Talbott wrote:

Would definitely merge a Pull Request that fixed this - thanks!

Reply to this email directly or view it on GitHub:
https://github.com/Shopify/active_merchant/issues/252#issuecomment-4207694

Done!

Thanks and thanks for a great library!
On 2/29/12 10:48 AM, Nathaniel Talbott wrote:

Done!

Reply to this email directly or view it on GitHub:
https://github.com/Shopify/active_merchant/issues/252#issuecomment-4243979


feat: TypeScript definitions

Adding types for TypeScript. implements #79
dtslint is not properly working for the case of '/server' so I had to use a bit "old" syntax for declaration.
Not adding typecheck:ts into CI, as long typechecking is failing.
dtslint was just created for DefinitelyTyped and few things are bound to DefinitelyTyped.
It asks you to use "new" syntax, dont use "declare modules" and mark all the exports as "exports". Meanwhile in this case tests could not see '/server' and there is no way to use "new" syntax.
For the old syntax it asks not to use exports at all, as result - nothing will work. 💩
So type-checking is red, type-testing is green. And type-testing is the only thing the customers needs.

Any timeline when this PR will be published?

@jbadeau - it was published.

@jbadeau types are no longer maintained into this repository, please use https://github.com/DefinitelyTyped/DefinitelyTyped instead.

For anyone else looking for how to install the types, @types/@loadable/components to save you some digging its:
npm install @types/loadable__component

And for yarn, yarn add -D @types/loadable__component 😊

For anyone else looking for how to install the types, @types/@loadable/components to save you some digging its:
npm install @types/loadable__component

This should be in the docs README.md. Just had to dig deep in order to find this.
I mean, those @types are still being used, right?


docs: First code example in docstring for rg.load not showing correctly

Describe the bug
The first example for https://docs.argilla.io/en/latest/reference/python/python_client.html#argilla.load is not correctly rendered, likely a newline, whitespace or indentation problem
To Reproduce
Steps to reproduce the behavior:
Go to https://docs.argilla.io/en/latest/reference/python/python_client.html#argilla.load and check the first example. It should show. a highlighted code block
Expected behavior
Render the code snippet as with other examples
Additional context
This should be fixed in the docstring of the load method and check the rest of the methods and models in https://docs.argilla.io/en/latest/reference/python/python_client.html to make sure this is not happening in other places

I see, ok :+1:


The current page index is reset unexpectedly on ONYX BOOX.

System information

MangaView version: 5f606c5
Android version: Android 9, 2020-10-13_15-52_mc_fa72065
Device: ONYX BOOX

Describe the current behavior

Set display orientation to horizontal.
Launch the sample app.
Change page number(by swipe, tap on edge and so on).
Sleep device(by press power button or covered)
The sample app show first page. The current page index is reset unexpectedly.

Describe the expected behavior
The current page index(number) should be restored correctly.

I checked the sample app works fine on Essential PH-1 and Pixel 4a.
I seek out that View.onRestoreInstanceState method has not be called if ONYX BOOXs display orientation set horizontal. View.onSaveInstanceStatemethod is called correctly butView.onRestoreInstanceState` is not.
This problem reproduce rate is not 100%. Sometimes, ONYX BOOX may call View.onRestoreInstanceState correctly.


Can't access passed-in character device inside non-root container

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
I'm trying to pass in /dev/ttyUSB0 into a non-root container using --device /dev/ttyUSB0. Inside the container opening of /dev/ttyUSB0 always fails with Permission denied.
Steps to reproduce the issue:

on the host system I can access /dev/ttyUSB0 as non-root user:

$ id -nG
... dialout ...
$ ls -lht /dev/ttyUSB0
crw-rw----. 1 root dialout 188, 0 Nov  8 09:49 /dev/ttyUSB0

# cat, screen or minicom work just fine...
$ cat /dev/ttyUSB0
^C

passing the device into non-root container

# the following command leads to a SELinux warning (see "Additional information" section)
# NOTE: this may be a side issue not related to the actual problem I'm trying to solve
$ podman run --rm -it --device /dev/ttyUSB0 alpine ls -lht /dev/ttyUSB0
ls: /dev/ttyUSB0: Permission denied

$ podman run --rm -it --device /dev/ttyUSB0 --security-opt label=disable alpine ls -lht /dev/ttyUSB0
crw-rw----    1 nobody   nobody    188,   0 Nov  8 07:49 /dev/ttyUSB0

$ podman run --rm -it --device /dev/ttyUSB0 --security-opt label=disable alpine cat /dev/ttyUSB0
cat: can't open '/dev/ttyUSB0': Permission denied

passing the device into root container

$ sudo podman run --rm -it --device /dev/ttyUSB0 alpine ls -lht /dev/ttyUSB0
crw-rw----    1 root     root      188,   0 Nov  8 09:19 /dev/ttyUSB0

# works fine
$ sudo podman run --rm -it --device /dev/ttyUSB0 alpine cat /dev/ttyUSB0

Describe the results you expected:
I should be able to access the passed-in character device inside a non-root container
Additional information you deem important (e.g. issue happens only occasionally):

SEAlert mentioned in (2) above:

SELinux is preventing ls from getattr access on the chr_file /dev/ttyUSB0.
...
Additional Information:
Source Context                system_u:system_r:container_t:s0:c222,c359
Target Context                system_u:object_r:usbtty_device_t:s0
Target Objects                /dev/ttyUSB0 [ chr_file ]
Source                        ls
Source Path                   ls
Port                          <Unknown>
Host                          XXXXXXXXXXXX
Source RPM Packages
Target RPM Packages
Policy RPM                    selinux-policy-3.14.4-39.fc31.noarch
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Host Name                     XXXXXXXXX
Platform                      Linux XXXXXXXXXXX
                              5.3.8-300.fc31.x86_64 #1 SMP Tue Oct 29 14:28:41
                              UTC 2019 x86_64 x86_64
Alert Count                   1
First Seen                    2019-11-08 11:18:15 EET
Last Seen                     2019-11-08 11:18:15 EET
Local ID                      16c58138-2d43-47b7-ac44-07c311eaedc2

Changing SELinux to "permissive" mode with setenforce permissive doesn't fix the permission problem
originally I ran into the issue with a Ubuntu 18.04 based image, but as shown above I'm able to reproduce it also with the base Alpine image.

Output of podman version:
Version:            1.6.2
RemoteAPI Version:  1
Go Version:         go1.13.1
OS/Arch:            linux/amd64

Output of podman info --debug:
debug:
  compiler: gc
  git commit: ""
  go version: go1.13.1
  podman version: 1.6.2
host:
  BuildahVersion: 1.11.3
  CgroupVersion: v2
  Conmon:
    package: conmon-2.0.2-1.fc31.x86_64
    path: /usr/bin/conmon
    version: 'conmon version 2.0.2, commit: 186a550ba0866ce799d74006dab97969a2107979'
  Distribution:
    distribution: fedora
    version: "31"
  IDMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  MemFree:<PHONE_NUMBER>
  MemTotal:<PHONE_NUMBER>4
  OCIRuntime:
    name: crun
    package: crun-0.10.2-1.fc31.x86_64
    path: /usr/bin/crun
    version: |-
      crun version 0.10.2
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  SwapFree:<PHONE_NUMBER>4
  SwapTotal:<PHONE_NUMBER>0
  arch: amd64
  cpus: 8
  eventlogger: journald
  hostname: stefanb-lnx.localdomain
  kernel: 5.3.8-300.fc31.x86_64
  os: linux
  rootless: true
  slirp4netns:
    Executable: /usr/bin/slirp4netns
    Package: slirp4netns-0.4.0-20.1.dev.gitbbd6f25.fc31.x86_64
    Version: |-
      slirp4netns version 0.4.0-beta.3+dev
      commit: bbd6f25c70d5db2a1cd3bfb0416a8db99a75ed7e
  uptime: 19h 21m 37.9s (Approximately 0.79 days)
registries:
  blocked: null
  insecure: null
  search:
  - docker.io
  - registry.fedoraproject.org
  - quay.io
  - registry.access.redhat.com
  - registry.centos.org
store:
  ConfigFile: /home/stefanb/.config/containers/storage.conf
  ContainerStore:
    number: 0
  GraphDriverName: vfs
  GraphOptions: {}
  GraphRoot: /home/stefanb/workarea/containers/storage
  GraphStatus: {}
  ImageStore:
    number: 1
  RunRoot: /run/user/1000
  VolumePath: /home/stefanb/workarea/containers/storage/volumes

Package info (e.g. output of rpm -q podman or apt list podman):
podman-1.6.2-2.fc31.x86_64

that happens because the rootless user loses the additional groups when entering the container, so you have no access to the dialout group.
If you are using crun, there is a workaround in the last version: https://github.com/containers/crun/blob/master/crun.1.md#iocrunkeep_original_groups1
you can enable it through podman with --annotation io.crun.keep_original_groups=1.
I am going to close the issue as there is not much Podman can do about it, but please feel free to keep commenting here if something is not clear

Thanks for the pointers.
After upgrading to crun-0.10.4-1.fc31.x86_64 from updates-testing I'm able to use the annotation and the device becomes accessible inside the container.
Wouldn't it make sense to update podman-create & podman-run man pages to mention this issue and provide the pointer to the work around?

Sounds like a good idea, also a blog and add something to troubleshoot.md on the github.

Please note that in crun >= 0.11 the annnotation has been renamed to run.oci.keep_original_groups
See https://github.com/containers/crun/commit/6df930821d80a8e151674f0fda1321fba93bb92d


Bower

Hi! could be added in the project a bower.json to facilitate the maintenance of "front-end" dependencies. =)
tks,

People still use Bower?

"People still use Bower?" ... what? what should i use then??? this is a SINGLE css file with a font, please tell me what should i use? should i decompile it to C++ and rewrite it to PHP just to compile it after that to CoffeeScript which will result in Javascript and "reverse engineer" it back to CSS? This is the single most valuable project that should be in bower after bootstrap right now. I guess you like to write your whole "programs" in javascript and like writing thousands of lines of javascript just to mimic Hello world!. This file (yes its a single file for me) should be in Bower and all the CoffeeScript and React mania should end, its degrading humanity. Thumbs up for the project

I was going to suggest NPM since it's already available there, no need to take offence.

+1

@developit FYI, you can already install Photon via npm by using its repository url:
npm install https://github.com/connors/photon

@sbruchmann indeed. It's a pity the photon name is already taken in NPM though :(

What about namespaced? npm i @connors/photon

@knownasilya yeah, that'd work (as long as nobody is trying to install with npm older than 2.x).

In that case, it might be worth mentioning the version of npm required.

Or it could be published as photonkit.

^ nice, that would actually address #36, too ;)

I accidentally installed the other photon package with npm and was really confused at first.  Figured out how to add this one with the git url though.  Publishing it on npm (and possibly bower), even under a slightly different name, would be cool. :)

:+1: for npm support... i know it's easy to use github url, but i think being at npm main repo it would also help the project popularity...

photonkit is a nice name

indeed, keep the same name across is good, github, npm, site...

+1 about keep the same name across and using photonkit, now used only on site, is possible registry the package on bower and npm...

+1 on Bower package

To @sbruchmann and @gligoran: what is your problem? You can provide a bower.json along with a published package.json. I am not sure why you are actively downvoting people wanting Bower support.

@pedzed I wasn’t voting against bower but against the +1-statement of @frankhale since GitHub now supports reactions to comments.

@pedzed Wasn't actually downvoting people for wanting bower support, but the manner in which @a3bhea commented. This is supposed to be a place where people work together, so no need to be condescending.

@sbruchmann I agree, people should not spam with +1's. But it's like slapping a child for doing something wrong: the child does not know what it did wrong, you have to tell him. On the other hand, I understand that you don't want to add another comment just to say that.
@gligoran I apologize if that's the case. The reason I mentioned you was because you downvoted two or three other comments talking about Bower.
I'm currently using https://github.com/connors/photon/issues/37#issuecomment-148870022's suggestion, but it would be nice if it was registered as an NPM/Bower package of course (preferably both).


Symphony bot API through command method with Camelcase is not working but the same works well with Button

Feature Request
Description of Problem:
When we call symphony api through command using method name as CamelCase used in Workflow then no response is received.
The same is working with lower case method name command and also working with button
Potential Solutions:
We have to remove call to toLowerCase() from below class and method
public interface Word extends Content {
    public String getIdentifier() {
	return s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
    }
}

handled via Release # 7.20.4


Set data field as optional in NetworkResponseError

A network responses do not require a body – the same applies to an error response
DataSourceError now sets its error message as "An error occurred" if no message was present in the body (in the format of { message: <string> }
Improves NetworkResponseError type predicate – it now checks for the error range
Adjusts tests that were relying on error responses – errors are now correctly forwarded to the routes

Coverage increased (+0.08%) to 89.144% when pulling 5704b99a0131cf62ae184b28b9b4c8d05d1f1fec on optional-data-error-response into 7cbef986d4100ed452749a9afda15ae121785881 on main.


render issue

when I run the code it renders only the first 30 items. When scrolling down there are no more new items rendered that should be in the scroller window.
see;

its related to page mode. Looks like it needs to be set to true in the included sample code


Component template based on JSON data

Wasn't able to find anything, but if an example exists please share!
So I'm consuming an API on the Node.js server that will pass a "template" variable, and I'd like this variable to decide which component to render despite the slug. IE custom routing, but I'm not sure of the best way to go about it.
Was trying to use some custom Layout component to determine it but I get errors if I don't use <Main /> from document.

@OutThisLife just came across this ticket. Is it still valid?
You can't use _document.js here since it will only render server side.
This example might help you:
https://github.com/zeit/next.js/tree/master/examples/layout-component
I'm closing this for now, since it's not related to a bug/feature in Next.js.

Yeah I figured out the proper way to do it. Thanks!


Tube rendering: improving performance

This ticket is for experimenting and discussing improving the performance of the rendering of volumetric tubes (currently TubeGeometry in THREEjs terms).

I think it makes sense to see what happens when we change tubes into blocks. Square vs round. This means a reduction in the mesh size and easier control over line width and line height..

Just to document my thoughts here: I looked into the above but apparently the tube lines already have a square profile. So the profile cannot be reduced any further. Well, a triangle shape is possible, by changing a single param from 4 to 3. For now we want to keep it at 4.
Another optimization that @sophiedeziel is working on, is reducing the number of segments in the TubeGeometry.

https://github.com/remcoder/gcode-preview/pull/149 is almost ready, you can try it, have fun, and give early feedback if you want to!
After this, there are several optimizations we can go for:
Some curves that are composed of several short moves could benefit from the Catmullrom curve algorithm to reduce the number of segments without compromising the final result. That can be an internal optimisation inside the extrusionGeometry. I'm thinking about doing a grooming pass on the vectors array, identifying sub-arrays of short travel lines that have a high ratio of points for a given distance, and substitute those points for new ones.
Then, when our three.js version allows it, we could benefit from https://threejs.org/docs/index.html#api/en/objects/BatchedMesh
And even before that, I think we can create only one material object per color and reuse it instead of creating an instance each time. I'm not sure we will gain a lot, but every memory gain at the scale of hundreds/thousands of objects per render is a valid gain.

I'm suggesting to close this issue after:

trying BatchedMesh(https://github.com/remcoder/gcode-preview/pull/164)
reducing the number of material instances (https://github.com/remcoder/gcode-preview/pull/165)
improving the incremental rendering (https://github.com/remcoder/gcode-preview/pull/136)

The time to ra full ender was significantly reduced, to a point beyond my initial expectations. With incremental rendering improvements, the result is so smooth that tube rendering can be enabled by default without any noticeable lag.

Agreed, let's just focus here on noticable rendering speed. I think that's what we started out with.

All subtask listed above have been closed by now. So I'm now closing this umbrella ticket.
For additional performance work, let's create new, specific tickets.


Support itch.io OAuth2 provider

Feature Description
itch.io provides an OAuth2 provider that I'd like to use on my gitea instance, see the docs here: link
It seems the closest I can do is use OIDC, but it requires a discovery URL that itch.io doesn't have. Is there a way to do this that I don't know about?
Screenshots
No response

I don't see think itch.io is a OAuth2 provider. They just support that as authentication for their api?

They have a profile endpoint in the docs, so kind of like discord, you can use it as an auth source: link

Here are the docs for the oauth provider: https://itch.io/docs/api/oauth
I've tagged this issue as "upstream" as we use goth for working with external oauth providers, and so itch.io support will need to be added there first.

Should I go upstream and open a request myself?

@murl-digital if you can open one, that would be appreciated, but if not, that's okay, as I'm a maintainer over there, and I am looking into this now. It looks like itch.io doesn't return the user's email, so it might not be feasible to implement it in Gitea (Git and Gitea rely on email addresses and might have unexpected behaviours without one).

(Git and Gitea rely on email addresses and might have unexpected behaviours without one).

For my usecase, at least, I want to give people who bought my software an easy way to make an account and report bugs, and since I handle everything through itch, it kind of just makes sense. It seems that profiles have a unique ID, and you can maybe associate it that way?


SQL React Agent Updates

Run: python examples/bank_agent.py
This new agent is "ReAct" in spirit only.

[x] Pre-check for question reasonableness
[x] Issue #74
[x] Issue #75
[x] Issue #78
[x] Simplify prompt; avoid strict dialogue formatting; don't require function calls

In terms of the agent, this work is something of a placeholder/proof of concept pending a more general agent framework.  Especially with the simplified approach, should be straight forward to pull this into the new framework.
So detailed review of the implementation of the agent in react.py may not be warranted since it will be refactored shortly.


Make edge compatible version

Right now there is a reliance on fs and other native node modules which do not exist in the Vercel edge runtime. It would be amazing if we could publish a langchain/edge with the functionality that can be run at edge

#213 and #214 get us closer to this, and also if using OpenAI (not sure about hugging face) that will need to be replaced or patched until they stop relying on axios. Maybe there is a smarter way than patching, but idk what it would be.

Related to #62 and the discussion at #152

@nfcampos I have no experience with

Create and test cloudlfare workers and vercel edge templates

But I'd love to tag team on this. This is also a huge need for our organization as well. Similar to the points @jasongill brought up.
I'd also want to add some kind of deno export to allow for deno edge functions to be run.

I'm still happy to put a bounty on getting Cloudflare Worker support added, or donate to charity of devs choice, to get this done - unfortunately actually doing the coding is above my skill level but happy to contribute to the project to encourage this feature!

I'm still happy to put a bounty on getting Cloudflare Worker support added, or donate to charity of devs choice, to get this done - unfortunately actually doing the coding is above my skill level but happy to contribute to the project to encourage this feature!

You can use @ericlewis/langchain. It is a version of langchain that is supported on workers with no need for node_compat.

@ericlewis I just sent some $ to you via Github sponsorship, thank you for this! Do we think this is something that can get merged into upstream, I see it appears to need changes to both the OpenAI packages and langchain itself

@ericlewis I just sent some $ to you via Github sponsorship, thank you for this! Do we think this is something that can get merged into upstream, I see it appears to need changes to both the OpenAI packages and langchain itself

I think the only remaining change is the stuff needed for the crypto dependency, I think that the OpenAI stuff is likely done already. My library is based on my own version of both changes. I have PR open for the crypto stuff too.

I've merged the crypto PR today, thank you

I've merged the crypto PR today, thank you

sweet, then that should be most of the big things that needed changing for now.

@jasongill I can confirm that the latest release works at least basically on cloudflare workers.

Alright I've released a new version (0.0.35) which should remove those process warnings

Alright I've released a new version (0.0.35) which should remove those process warnings

@jasongill @nfcampos can confirm that you no longer need node_compat in 0.0.35. Working great!

@ericlewis can you post a sample if you get a moment? without node_compat while using 0.0.35 I'm still getting errors about a few places that process.env is called (example is callbacks/utils.ts but there are others, such as where it tries to get OPENAI_API_KEY)

@ericlewis can you post a sample if you get a moment? without node_compat while using 0.0.35 I'm still getting errors about a few places that process.env is called (example is callbacks/utils.ts but there are others, such as where it tries to get OPENAI_API_KEY)

You sure you updated? I will publish a project soon as an example.

Yeah, definitely updated. Here's an example from master of usage of process.env that remains in the code:
https://github.com/hwchase17/langchainjs/blob/main/langchain/src/callbacks/utils.ts#L17

Yeah, definitely updated. Here's an example from master of usage of process.env that remains in the code:
https://github.com/hwchase17/langchainjs/blob/main/langchain/src/callbacks/utils.ts#L17

this should be fine if using latest wrangler etc for CFW. but without more specifics it's hard to know why it's not working.

My minimal setup below
wrangler.toml
name = "chatty"
main = "src/index.ts"
compatibility_date = "2023-03-01"
usage_model = "unbound"

[durable_objects]
bindings = [{name = "BRAIN", class_name = "Brain"}]

[[migrations]]
tag = "v1"
new_classes = ["Brain"]

[vars]
PROMPT = "You are a large language model trained by OpenAI to behave as an assistant."
VERSION = "v76"
MODEL = "gpt-3.5-turbo"

# The necessary secrets are:
# - OPENAI_API_KEY
# Run `echo <VALUE> | wrangler secret put <NAME>` for each of these

package.json
{
  "name": "chatty",
  "version": "0.0.0",
  "devDependencies": {
    "@cloudflare/workers-types": "^4.20230228.0",
    "@types/object-hash": "^3.0.2",
    "i": "^0.3.7",
    "npm": "^9.6.0",
    "typescript": "^4.9.5",
    "wrangler": "2.12.0"
  },
  "private": true,
  "scripts": {
    "start": "wrangler dev",
    "deploy": "wrangler publish"
  },
  "dependencies": {
    "langchain": "^0.0.35"
  }
}

tsconfig.json
{
	"compilerOptions": {
		"target": "es2021",
		"lib": [
			"es2021"
		],
		"jsx": "react",
		"module": "es2022",
		"moduleResolution": "node",
		"types": [
			"@cloudflare/workers-types",
			"vitest"
		],
		"resolveJsonModule": true,
		"allowJs": true ,
		"checkJs": false,
		"noEmit": true,
		"isolatedModules": true,
		"allowSyntheticDefaultImports": true,
		"forceConsistentCasingInFileNames": true,
		"strict": true,
		"skipLibCheck": true
	}
}

index.js
import {OpenAI} from "langchain/llms";

export default {
    async fetch(request, env) {
        const model = new OpenAI({openAIApiKey: env.OPENAI_API_KEY});
        const res = await model.call(
            "What is the capital of France?"
        );
        return new Response(res.trim());
    },
};

package.json
{
  "dependencies": {
    "langchain": "^0.0.35"
  },
  "devDependencies": {
    "wrangler": "^2.12.3"
  }
}

wrangler.toml
name = "langchainjs-example"
main = "index.js"
compatibility_date = "2023-03-15"
[vars]
OPENAI_API_KEY="...."

npx wrangler dev output when loading the page; same thing happens after npx wrangler publish
3:33:50 PM GET / 500
✘ [ERROR] Uncaught (in promise) ReferenceError: process is not defined

         ^
      at getInstance
  (langchainjs-example/node_modules/langchain/src/callbacks/utils.ts:17:6)
      at getCallbackManager
  (langchainjs-example/node_modules/langchain/src/callbacks/utils.ts:27:34)
      at BaseLanguageModel
  (langchainjs-example/node_modules/langchain/src/base_language/index.ts:29:53)
      at BaseLLM
  (langchainjs-example/node_modules/langchain/src/llms/base.ts:44:4)
      at OpenAI
  (langchainjs-example/node_modules/langchain/src/llms/openai.ts:148:4)
      at fetch (langchainjs-example/index.js:5:22)

I am guessing since you are using Typescript that Workers must be doing/injecting something else into your environment, perhaps? it doesn't appear to work in simple Javascript (without node_compat, in which case it works great)

I am guessing since you are using Typescript that Workers must be doing/injecting something else into your environment, perhaps? it doesn't appear to work in simple Javascript (without node_compat, in which case it works great)

I will try with just JS, but shouldn't be the case.

Hi, edge/browser support has been published as a prerelease, you can install the prerelease with npm i langchain@next to try it out before we release to everyone.
See upgrade instructions here https://langchainjs-docs-git-nc-test-exports-cf-langchain.vercel.app/docs/getting-started/install you'll need to update import paths, see the link for more details
If you test it let me know any issues!

Support for Browsers, Cloudflare workers, Nextjs/vercel (browser/serverless/edge), Deno, Supabase edge functions has been released, see https://blog.langchain.dev/js-envs/ for details. See the docs for install/upgrade instructions https://js.langchain.com/docs/getting-started/install including some breaking changes
Any issues let me know


Add trace-id support for Go applications

If traceparent is found in a request to instrumented Go HTTP application, the trace-ID from it will be added in the trace.

LGTM! Thanks for all the iterations, looks great!


Remove Contributing Guidelines from README.md, create another file instead.

@ThioJoe I can move the CONTRIBUTING.md file to .github if you like.

oops two of the same commit, sorry

Nah, most people won't bother clicking through to it

Nah, most people won't bother clicking through to it

Ok


Updating Symbol lookup

Catch dollar format and if request has special character after the '$' symbol
\W
Matches any character which is not a word character. This is the opposite of \w. If the ASCII flag is used this becomes the equivalent of [^a-zA-Z0-9_]. If the LOCALE flag is used, matches characters which are neither alphanumeric in the current locale nor the underscore.

Added REGEX to catch MBT too
r"$\d+([.]\d+)?[MBT]?"

Removed code to try to find non-word characters.
Updated the DOLLAR_REGEX to account for foreign symbols
DOLLAR_REGEX = r"$[1-9]\d*([.]\d+)?[KMBT]?"

updated find_symbols function to look for $ format but allow foreign tickers


Logging Severity incorrect - Google Drive backup.

[X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[X] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
Each night when Google Drive backup runs, or I back it up manually to Google Drive the backup completes successfully.
In System/Logfiles/General this gets logged each time:
backup configuration as -1714404135.xml which is great, but it has a severity of ERROR when no error occurred.
To Reproduce
Steps to reproduce the behavior:
Backup the system configuration to Google Drive.
Go to System/Logfiles/General and the action will be logged as an error even when a successful backup has happened.
Expected behavior
I would have expected the Severity of this event to be Notice rather than Error.
Software &  hardware:
OPNsense 24.1.6 (amd64).
Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz (2 cores, 4 threads)
Protectli VP4630.

@bucker00 thanks I found two that would be better to send as notice: eea9c5c58e


gpuCI follow-up

In https://github.com/dask/dask/pull/7966 and https://github.com/dask/distributed/pull/5147 we added support for gpu-enabled CI builds 🎉 This issue is to track some follow-up work we may to do
For dask:

[x] We may want to include dask-cudf as some tests are currently being skipped with could not import 'dask_cudf': No module named 'dask_cudf'
[ ] In the conda list step, I see dask is installed with pip (from the python setup.py install step in build.sh), but I also see dask-core installed from conda-forge. It'd be good to confirm that the dask package which is actually used in tests corresponds to the PR being built (cc @jakirkham)
[ ] Again from the conda list step, our environment has the latest released version of distributed installed. In general, the dev version of dask depends on the dev version of distributed. I'm not sure what the best way is to ensure we always have the latest dev version of distributed installed. Perhaps add a pip install git+https://github.com/dask/distributed line to build.sh?

For distributed:

[ ] In the conda list step, our environment has the latest released version of dask installed. In general, the dev version of distributed depends on the dev version of dask. I'm not sure what the best way is to ensure we always have the latest dev version of dask installed. Perhaps add a pip install git+https://github.com/dask/dask line to build.sh?

xref https://github.com/rapidsai/dask-build-environment/pull/1 where some of these points are being addressed
cc @charlesbluca @quasiben @raydouglass

We're seeing some gpuCI test failures (e.g. this build for https://github.com/dask/distributed/pull/5151)

@pentschev it looks like the API in RMM has changed ?

11:50:01 >                   rmm_usage = c.run_on_scheduler(rmm.get_info)
11:50:01 E                   AttributeError: module 'rmm' has no attribute 'get_info'

Are you aware of this ?

Apparently this was removed some time ago last summer and was updated in this PR .  @jrbourbeau please merge that PR when you feel it's ready and we'll fix that test

Apparently this was removed some time ago last summer and was updated in this PR . @jrbourbeau please merge that PR when you feel it's ready and we'll fix that test

Yes, it's been quite a while. I'll work on a fix and submit it soon.

The gpu CI build is already helping : )

I opened a PR with a fix in https://github.com/dask/distributed/pull/5158 .

@jrbourbeau we addressed the dask-cudf question here -- no we do not need it right now

Sorry for the poor maintainer experience here @GenevieveBuckley 🙁 I definitely think some additional instructions/context in the bot message would go a long way in empowering maintainers to run gpuCI on more PRs (I've caught a handful where the message pops up and is ignored before merging). IIRC, there were some blockers internally that prevented us from changing this message from its current value (at least on a org/repo-level), but I can double check to see if this is still the case.
In either case, I do think that improving documentation here around gpuCI could ease some of the pains (though it's not the ideal solution); some ideas that pop up are:

adding a docs page / blurb in CONTRIBUTING.md explaining GPU CI for each repo that implements it
reworking the existing GPU CI page in Dask's docs to improve visibility/searchability to maintainers
making it more apparent who has the rights to enable gpuCI (xref https://github.com/dask/community/issues/184)

Would be interested in your thoughts on some of these suggestions, and if you ran into any pain points in finding the docs on the main docs page once you knew they existed.

To summarize: Infrequent maintainers forget processes, and we could have a more efficient way to remind people of what to do in the moment.

I definitely think some additional instructions/context in the bot message would go a long way in empowering maintainers to run gpuCI on more PRs

Agree, I think improving the bot's message would be the most effective change we could make.

adding a docs page / blurb in CONTRIBUTING.md explaining GPU CI for each repo that implements it
reworking the existing GPU CI page in Dask's docs to improve visibility/searchability to maintainers
making it more apparent who has the rights to enable gpuCI (xref https://github.com/dask/community/issues/184)

Would be interested in your thoughts on some of these suggestions, and if you ran into any pain points in finding the docs on the main docs page once you knew they existed.

Thoughts:

This might be nice to add for new contributors, but I'm not too worried either way. I'll open an issue. Regardless, if we'd had that, it probably wouldn't have helped me here. If I can forget there is GPU CI info in the dask contributer guide will also forget for dask-image.
I have no complaints about the dask GPU CI docs. It has all the info I need, I just... will forget it exists or where to find it. (At least if I do remember next time, it'll go: see GPU CI bot message --> open https://docs.dask.org --> type "GPU CI" in search bar --> return to original PR with the right message to respond to the bot. Still not great, but slightly fewer steps.)
Seems like a good idea. It seems like people agree in the issue that this info should get added to the docs.

@GenevieveBuckley update - chatted with RAPIDS ops and turns out we are able to change the bot message 🙂 now the message should read:
Can one of the admins verify this patch?

Admins can comment `ok to test` to allow this one PR to run or `add to allowlist` to allow all PRs from the same author to run.

Unfortunately, this message is set globally across all gpuCI projects, so there wasn't an opportunity here to include a link to Dask's gpuCI documentation, but I think this should hopefully make it a little clearer to maintainers on how to proceed when this message pops up.
In the meantime, I can look into blockers on dask/community#184 to make it clearer who the admins are for each Dask repo.

Yes, I'd be happy with that! Thank you for being willing to update it.

FWIW this has since been done and can be seen in recent comments ( like this one https://github.com/dask/dask/pull/9378#issuecomment-1213298607 )

Looks great, thanks all!


Rewrite avataaars

Similar to bottts, avataaars should also work without further dependencies.

I don't know if related, but I'm getting some errors from avataaars because of use of obsolete methods. It looks like the main avataaars library is a bit abandon and there are quite a few forks.

Released with v4.4.0


Select one row on margin

Hi. Please help me.
When i move the mouse on margin, left click to select one row, continue right click to open context menu, the menu Cut and Copy is disable. It is normal when i select more than two rows.

How do you keep it from unselecting the text?  When I try it, I can select one or more lines and it unselects it.  I assume you're right-clicking in the margin?  Cause, if I select entire lines by clicking in the margin and I right-click in the text area it works properly.
  I may look at it some more later.

Update:
https://sourceforge.net/p/scintilla/feature-requests/1080/
Looks like this issue has been talked about & I think they decided that's how they wanted it to work.

https://sourceforge.net/p/scintilla/bugs/1580/ as well.

Yes, Thanks you.
It's not like WordPad, but it's like Word.


hashrate

the web panel didn't show the hashrate

Well all of them are offline (the "Error" one as well, can be seen due to the time after it). But since you have a small screen you have to press the '+' next to the Miner ID to see the extra data. Or you can zoom out.

ok thanks i fix it.
but can i ask you why sometimes show me error in status of miner

It means that it's not able to connect to the pool with your pool settings.


isinstance(numpy.zeros(1), jax.numpy.ndarray) returns True

numpy.ndarray instances currently return True if you run an isinstance check against jax.numpy.ndarray. I guess I see how this happens: I think Jax doesn't actually use that type, so it's maybe the actual one from numpy? It's a bit of a hassle when you're checking the array provenances though.
def test_numpy_ndarray_is_not_instance_of_jax_numpy_ndarray():
    assert not isinstance(numpy.zeros(1), jax.numpy.ndarray)

Btw, what's the preferred way to convert data from Jax to numpy? I've found jax.device_get() by poking around, but I don't think it's documented.
Thanks for the great project!

sorry for reviving a closed issue, it seems the behaviour @honnibal mentioned is still the same, right?
assert isinstance(np.zeros(3), jnp.ndarray)

based on what @mattjj suggested, should we be doing the following instead if we want to check if an array is indeed a jax array instead of a plain numpy array?
assert not isinstance(jnp.zeros(3), jax.interpreters.xla._DeviceArray)

thanks!

Yes, we still haven't fixed this :/
I think a better check is just isinstance(x, np.ndarray). That is, while isinstatnce(numpy_ndarray, jnp.ndarray) is surprisingly True, it's not the case that isinstance(jax_array, np.ndarray) is true.

should we be doing the following instead if we want to check if an array is indeed a jax array instead of a plain numpy array?
assert not isinstance(jnp.zeros(3), jax.interpreters.xla._DeviceArray)

Can you say more about why you're interested in checking object types here? For example, checking object identity this way might cause JIT-compiled code to act unexpectedly, because device arrays are replaced with tracers at compile time.

should we be doing the following instead if we want to check if an array is indeed a jax array instead of a plain numpy array?
assert not isinstance(jnp.zeros(3), jax.interpreters.xla._DeviceArray)

Can you say more about why you're interested in checking object types here? For example, checking object identity this way might cause JIT-compiled code to act unexpectedly, because device arrays are replaced with tracers at compile time.

Sure. The insights you provided about JIT-compiled code is already very useful, thanks. Let's see if my use-case makes sense.
Imagine I have a function foo:
def foo(array_a: Union[np.ndarray, jnp.ndarray], array_b: Union[np.ndarray, jnp.ndarray]) -> Union[np.ndarray, jnp.ndarray]):
     """When given np array only, returns np array, when given jnp array only, returns jnp array"""

     # Imagine the two functions below work with both numpy and jax.numpy arrays.
     a = do_something(array_a)
     b = do_something_else(array_b)

    # here's the type check, and for the purpose of discussion, we only check one input.
    if isinstance(array_a, np.ndarray):
        concat = np.concatenate
    else:
        concat = jnp.concatenate

    return concat([a, b])

why do I need to do the type check? I want to use the same foo for two users:
User A: gives foo numpy array only, expects numpy array back, and does an in-place array element update with the returned value (which breaks if we use jnp.concatenate in foo)
User B: gives foo jax numpy array only, expects jax numpy array back, and then does autograd on the function (which breaks if we use np.concatenate  in foo)
Does this use-case make sense or is this something that I should avoid?

I see – One thing to be careful of in an approach like that is that JAX functions do not always return device arrays: sometimes they can return numpy arrays (because internally, numpy values are often used for constants). As a simple example:
type(jax.grad(lambda x: x)(1.0))
# numpy.ndarray

So if you have too much dependence on the type of value in a pipeline, you might end up with surprises in corner cases.

I see – One thing to be careful of in an approach like that is that JAX functions do not always return device arrays: sometimes they can return numpy arrays (because internally, numpy values are often used for constants). As a simple example:

This is arguably a bug though, right?

I think the preferred option for checking for JAX arrays would be:
import jax.numpy as jnp
import numpy as np

def is_jax_array(x):
  return isinstance(x, jnp.ndarray) and not isinstance(x, np.ndarray)

This version is also future proof: when jnp.ndarray no longer pretends to super-class numpy arrays (which hopefully will happen soon!), the second check can simply be removed.

This is arguably a bug though, right?

Maybe? I don't think we ever promise that returned values will be DeviceArrays, and our test scaffold doesn't have any isinstance checks on outputs. So if it's a bug, it's one we've not particularly cared about previously.

@shoyer thanks, I'll do that for now :-)

@jakevdp We never wrote down that promise, but yes, I would consider it a bug to ever return a numpy array from a JAX function. I did a sequence of changes to make sure that jax.numpy never does that. The main thing that convinced me was that promotion semantics are different.

I think the original issue has been fixed now (See Changelog: v0.2.21:
In [1]: import numpy as np
   ...: import jax.numpy as jnp
   ...: isinstance(np.zeros(1), jnp.ndarray)
Out[1]: False

Additionally, the other issue I highlighted above has been fixed as well; I'm not sure precisely when:
In [2]: import jax
   ...: type(jax.grad(lambda x: x)(1.0))
Out[2]: jaxlib.xla_extension.DeviceArray


New version: SPIRV_LLVM_Translator_jll v8.0.0+2

Autogenerated JLL package registration

Registering JLL package SPIRV_LLVM_Translator_jll.jl
Repository: https://github.com/JuliaBinaryWrappers/SPIRV_LLVM_Translator_jll.jl
Version: v8.0.0+2

I just discovered about BinaryBuilder's julia_compat, so instead of merging this and patching the Julia compatibility after that (this is necessary for libLLVM compatibility) I'll push a new recipe in Yggdrasil. So this can be closed.


Port worker tests from Transfer repo

OP#1927

How do we run tests in Transfer-rewrite? may be we can add some info to Readme?

It's already in the readme
# run tests once
docker-compose run client npm run test
# or automatically re-run tests when editing a file
docker-compose run client npm run test -- --watch

Please add information, how to watch go changes.

@donpui made a PR for that: https://github.com/LeastAuthority/Transfer-rewrite/pull/15

I have tested, it works for me. @vu3rdd would you like to take a look, then we don't need to use Transfer for wasm testing.

@JustusFT can you check why failing test unit and intergration tests?

@JustusFT can you check why failing test unit and intergration tests?

@donpui It works fine locally, not sure why the CI is getting EOF when trying to transfer the test files


chore: updating dependabot file to support python and docker packages

Hi @WadeBarnes , this is ready for review now.


Discussion about implementation

https://t.me/rustlang_ru/285259 https://teleg.one/rustlang_ru/285259 (Russian)
Translated:
made a sufficient version of the code generator for actix_swagger.
Generates this: https://github.com/sergeysova/actix-swagger/blob/master/cargo-swagg/out.rs.
In principle, it's enough to write applications, I have about this kind of communication. But there is no execution of the contract of request handlers here. There is no obligation to correctly process the request body in the handler. I could not find a way to do it through actix_web::dev::Factory.
Here is a discussion issue: https://github.com/actix/actix-web/pull/1339.
By actix-swagger:
I will now write a conversion of yaml structures to the code generator format. Most likely there will be a HashMap/BTreeMap bundle to correctly resolve links. The first implementation will be very stupid and will be able to work only with links in requestBody, params and so on. There will also be no support for importing from files.
What do you need help with?

Have a look at the code. Almost everything is written there to get the first working version.
It would be cool to throw tests on the code generator (called printer). I think trivial inline snapshots would be enough. Give different configuration options to input and get sane code.
Convert your personal openapi3 snapshots into cargo-swagg structures and see if it's enough to have or need something else. If you need something else, create an issue/pr with implementation.

Project goals:
To input the openapi3 specification, to get the generated code at the output that does not need to be corrected by hand. At the same time, you may commit it into the repo and watch changes in the guitar after manual re-generation. You can take it to a separate crate, re-generate it into ci and deploy the crate of the new version. Update it in the project when it is convenient.
How to use:

Connects as a service in the main
In the router module, the types of request body and response are imported
actix_swagger::Response is used as the actix_web::Response analogue with explicit response types to verify that the request handler implements the contract.

We have to figure this out:
how to get the request handler to execute the contract on the request body, query, and headers.
I was thinking of making my analogue actix_web::dev::Factory, the so-called BoundFactory. Which would prescribe the implementation for Fn. BoundFactory is a trait that requires a function to have several mandatory parameters for specific types.
In this way, handlers could have the first arguments of clear types, such as request_body: request_bodies::Example, query: session_create::Query, and the rest of the arguments would be derived types, so you can pull out the necessary things, such as actix_web::web::Data.
But I'm relying on the privacy of Handler - https://github.com/actix/actix-web/pull/1339.
I did not understand how to implement BoundFactory or even achieve the goal through Handle trait (https://github.com/actix/actix-web/pull/1275).
I'd be so grateful for any help.

Just a note, you can bypass whole extractor/handler subsystem with https://github.com/actix/actix-web/blob/master/src/web.rs#L271


Tile - moreOptions should stopPropagation

The onClick handler of the Tile component  is called when the "..." more options dropdown is clicked.  As a result, my onClick handler is called when the dropdown is to be shown.  The dropdown menu should stopPropagation.

stopPropagation would fix the technical issue, but we need to consider accessibility here (related #840), and I would also question the UX of this. Interactive elements should not contain other interactive elements inside them.

Yes & no :-).  We use the cards to display a list of file attachments.  When a tile is selected, we open (preview) the attachment.  We also provide the context menu to perform other options, such as editing the description or deleting the attachment.  We certainly could create specific "hot spots" for clicking the thumbnail or the name (hyperlink), that would solve the problem.
But I would argue since Tile selection is a clickable event, and the ability to show options is available, it's not on the component (or itwinui-react) to dictate how the component is used (UX).

Sure, we can't stop anyone from shipping inaccessible experiences with our components, but we can try to encourage best practices and provide more accessible primitives.
In this case, I think can achieve an accessible version of what you want by using markup similar to this:

  ...
  The name of the tile
  ...
  <button>...</button>

This way, the dropdown button is not inside the anchor. And then we can use the pseudo-element trick mentioned in #840 to make the tile clickable based on the anchor.
a::before {
  content: '';
  position: absolute;
  inset: 0;
}

In fact, you can achieve this today because name accepts a ReactNode: https://codesandbox.io/s/itwinui-react-minimal-example-forked-egcqjs?file=/src/App.tsx
And we're currently working on making this built into the component. We might actually deprecate the onClick prop as a result.

@mayank99 , I took your advise, and just created my own template.  Thanks for the background.


Size presets for Windowed mode

The new Windowed mode in <IP_ADDRESS> has been very helpful for use in Zoom--THANK YOU.
Setting the Zoom screenshare to the OnlyM Media Window works well since it has no window decorations/borders and makes it easier to shrink the screenshare to a lower resolution to improve the clarity and performance of the video going out to the Zoom participants.
However, that works best when the size of media window matches the resolution/aspect ratio of the videos being played (especially when the user's computer is older and/or bandwidth is limited).
I was able to manually resize it to the specific resolution needed, but it was a bit of work (thankfully it saves the dimensions).
It would be helpful if there were some preset size selections for that media window, such as what mirrors the JW videos:

720p (1280x720)
480p (960x540)
360p (640x360)
Custom (manual resizing)

Perhaps if the "Windows" option is checked, a menu would be available next to or below that checkbox with the above selections (including the text in parentheses), and the Custom option would just be the current mode that allows manual resizing.
If possible, the OnlyM media window would retain the specified dimensions even if the monitor resolution was changed (primarily a benefit for virtual machine users). Unsure if operating systems allow this with a resolution change.
Thanks for considering.

+1

From: JoshLillis<EMAIL_ADDRESS>Sent: Wednesday, April 29, 2020 10:57 PM
To: AntonyCorbett/OnlyM<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [AntonyCorbett/OnlyM] Size presets for Windowed mode (#339)
The new Windowed mode in <IP_ADDRESS> has been very helpful for use in Zoom--THANK YOU.
Setting the Zoom screenshare to the OnlyM Media Window works well since it has no window decorations/borders and makes it easier to shrink the screenshare to a lower resolution to improve the clarity and performance of the video going out to the Zoom participants.
However, that works best when the size of media window matches the resolution/aspect ratio of the videos being played (especially when the user's computer is older and/or bandwidth is limited).
I was able to manually resize it to the specific resolution needed, but it was a bit of work (thankfully it saves the dimensions).
It would be helpful if there were some preset size selections for that media window, such as what mirrors the JW videos:

720p (1280x720)
480p (960x540)
360p (640x360)
Custom (manual resizing)
Perhaps if the "Windows" option is checked, a menu would be available next to or below that checkbox with the above selections (including the text in parentheses), and the Custom option would just be the current mode that allows manual resizing.

Thanks for considering.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAntonyCorbett%2FOnlyM%2Fissues%2F339&data=02|01||5e8e7bdae409430fcb0a08d7eccb4d41|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637238230219223635&sdata=NLXVioaYq2NHzoBZ26%2BIAoIVWkFN5gn9lHWqDFc%2B9%2BY%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAINW6PNSKHQAZBMCG6GSEBDRPEHK3ANCNFSM4MVGI43Q&data=02|01||5e8e7bdae409430fcb0a08d7eccb4d41|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637238230219223635&sdata=SJlXePBp5IdZdWMkd1rihhlYVf878zB7E%2BkQyu7MuNk%3D&reserved=0.

Forgot to mention another benefit to this is for those using virtual computers/machines (great for those with limited/unstable internet or older computers) to push video over Zoom.
In case the user accidentally resizes the virtual machine window, the OnlyM media window would either not be resized (if possible to extend beyond the monitor boundaries) or would at least allow for quick recovery to the desired dimensions.

@AntonyCorbett If this feature is not burdensome to implement, this would be an excellent enhancement

Forgot to mention another benefit to this is for those using virtual computers/machines (great for those with limited/unstable internet or older computers) to push video over Zoom.

Have you found a VM that works well for this? I have a fairly robust Azure VM that I tried using, but the video was choppy. I figured it was due to a lack of a specialized video card.

I use Paperspace. I can forward you an email I sent another brother with
all the nitty gritty details of my setup, if you want.
It may not be your VM, though.  Some other tips in that email about players
and screen share size might help even with your current setup.

Josh

On Sat, May 9, 2020, 11:48 AM Jared Livingston<EMAIL_ADDRESS>wrote:

Forgot to mention another benefit to this is for those using virtual
computers/machines (great for those with limited/unstable internet or older
computers) to push video over Zoom.
Have you found a VM that works well for this? I have a fairly robust Azure
VM that I tried using, but the video was choppy. I figured it was due to a
lack of a specialized video card.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-626204288,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMVG47LKXOLJEEZOJWGQ5LRQWCOVANCNFSM4MVGI43Q
.

I'd be happy to see your tips! I've used Paperspace for virtual machines in
the past, but they did not support virtualization at the time so I was not
able to run Docker. That was a showstopper for me.
On Sat, May 9, 2020, 11:59 AM JoshLillis<EMAIL_ADDRESS>wrote:

I use Paperspace. I can forward you an email I sent another brother with
all the nitty gritty details of my setup, if you want.
It may not be your VM, though. Some other tips in that email about players
and screen share size might help even with your current setup.

Josh

On Sat, May 9, 2020, 11:48 AM Jared Livingston<EMAIL_ADDRESS>wrote:

Forgot to mention another benefit to this is for those using virtual
computers/machines (great for those with limited/unstable internet or
older
computers) to push video over Zoom.
Have you found a VM that works well for this? I have a fairly robust
Azure
VM that I tried using, but the video was choppy. I figured it was due to
a
lack of a specialized video card.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-626204288>,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/APMVG47LKXOLJEEZOJWGQ5LRQWCOVANCNFSM4MVGI43Q
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-626205790,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH7ELUM5OPY3N3TTN5APJJDRQWDWXANCNFSM4MVGI43Q
.

Can I post that here or is that off-topic and I should email you directly?

Josh

On Sat, May 9, 2020, 12:08 PM Jared Livingston<EMAIL_ADDRESS>wrote:

I'd be happy to see your tips! I've used Paperspace for virtual machines in
the past, but they did not support virtualization at the time so I was not
able to run Docker. That was a showstopper for me.
On Sat, May 9, 2020, 11:59 AM JoshLillis<EMAIL_ADDRESS>wrote:

I use Paperspace. I can forward you an email I sent another brother with
all the nitty gritty details of my setup, if you want.
It may not be your VM, though. Some other tips in that email about
players
and screen share size might help even with your current setup.

Josh

On Sat, May 9, 2020, 11:48 AM Jared Livingston<EMAIL_ADDRESS>wrote:

Forgot to mention another benefit to this is for those using virtual
computers/machines (great for those with limited/unstable internet or
older
computers) to push video over Zoom.
Have you found a VM that works well for this? I have a fairly robust
Azure
VM that I tried using, but the video was choppy. I figured it was due
to
a
lack of a specialized video card.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-626204288
,
or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/APMVG47LKXOLJEEZOJWGQ5LRQWCOVANCNFSM4MVGI43Q

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-626205790>,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AH7ELUM5OPY3N3TTN5APJJDRQWDWXANCNFSM4MVGI43Q
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-626206979,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMVG43AEDKDIFVJEHSKXO3RQWEY7ANCNFSM4MVGI43Q
.

@JoshLillis Hi Josh. Can I suggest you create a gist on github and then just post a link to it? This will make it easier for you to direct others to it and also to keep it updated. Thanks, Antony

Thank you, Antony.  Here's the link:
https://gist.github.com/JoshLillis/b08803ac6e2246c78d963a02b2fff0a7

Why size presets at all? It should be possible to resize the window automatically to the media resolution. Whatever the resolution is (except exceeding ones).
Any drawbacks of such a solution?

Transition effects would be a problem here.

My tests today with experimental code changes are working.

A few drawbacks I see:
If you happen to have media that is larger resolution than you want to push
through Zoom, quality could suffer. For example, if the media you have is
720p resolution, but you only have the bandwidth to smoothly push 480p
videos, the quality could suffer.  What I've seen before in my Zoom testing
over limited bandwidth.
If the media is larger resolution than your free screen space, it will
cause other windows to overlap the media window and cover your content in
the screen share.
If the various media is a variety of different resolutions, the window size
will vary with each item, giving an unpredictable user experience.
The presets would ensure a more consistent user experience, and give the
user more control over the quality of what the recipients see in the screen
share.

Josh

On Wed, Mar 24, 2021, 8:05 AM zokradonh @.***> wrote:

Why size presets at all? It should be possible to resize the window
automatically to the media resolution. Whatever the resolution is (except
exceeding ones).
Any drawbacks of such a solution?

Transition effects would be a problem here.

My tests today with experimental code changes are working.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-805803111,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMVG44ZUJVH5YZGMIAWLXLTFHPQDANCNFSM4MVGI43Q
.

A few drawbacks I see: If you happen to have media that is larger resolution than you want to push through Zoom, quality could suffer. For example, if the media you have is 720p resolution, but you only have the bandwidth to smoothly push 480p videos, the quality could suffer.

You are right. There is a need to limit it.

What I've seen before in my Zoom testing over limited bandwidth. If the media is larger resolution than your free screen space, it will cause other windows to overlap the media window and cover your content in the screen share.

What do you mean with "free screen space"? As long as the media window is in front, no other windows will interfere with screen share. You can also activate "Always top most"(don't know the english translation of the OnlyM option) then you do not have any problem here. Or did I miss something here?

If the various media is a variety of different resolutions, the window size will vary with each item, giving an unpredictable user experience. The presets would ensure a more consistent user experience, and give the user more control over the quality of what the recipients see in the screen share.

If you fix the window size to 720p or 480p then you always transmit 16:9 images. Not all Zoom end user devices use that kind of resolution. Maybe they also have portrait mode which would suffer then. Streaming a quadratic image as 720p would add black borders to left and right and to end users in portrait mode would result in black borders left, right, top and bottom, making the image very small.
Streaming only the with correct aspect ratio is in my opinion the best streaming "quality".
Maybe the best option here would be to implement a maximum width and maximum height setting. But keep aspect ratio. So you do not have unpredictable big images and suffered user experience. What do you think about that?

I thought Zoom application windows can still overlap the media window and
show the gray boxes to the recipients.  I'll have to test that again and
check if I have always on top option enabled.
By inconsistent user experience, I meant for the user of OnlyM having the
media share window changing size with each item they share could be
problematic, though having a max limit would help somewhat.
Perhaps have the presets list which would represent the maximum limits and
add a checkbox to automatically resize to match content aspect ratio, where
it would never exceed either dimension of the selected resolution?
For smaller content, I wonder if there's a quality difference between OnlyM
upscaling it and sharing at the higher resolution or Zoom upscaling on the
recipient's end?
For example, if you're pushing 720p content, but one of your media is 360p
resolution, will it look better/worse/same if OnlyM upscales it in its
media window and you push that as 720p vs. pushing at 360p and on the
recipient's end, Zoom upscales  from 360p to whatever they're viewing at.
I would think OnlyM upscaling would be better quality but maybe not.

Josh

On Wed, Mar 24, 2021, 11:13 AM zokradonh @.***> wrote:

A few drawbacks I see: If you happen to have media that is larger
resolution than you want to push through Zoom, quality could suffer. For
example, if the media you have is 720p resolution, but you only have the
bandwidth to smoothly push 480p videos, the quality could suffer.
You are right. There is a need to limit it.
What I've seen before in my Zoom testing over limited bandwidth. If the
media is larger resolution than your free screen space, it will cause other
windows to overlap the media window and cover your content in the screen
share.
What do you mean with "free screen space"? As long as the media window is
in front, no other windows will interfere with screen share. You can also
activate "Always top most"(don't know the english translation of the OnlyM
option) then you do not have any problem here. Or did I miss something here?
If the various media is a variety of different resolutions, the window
size will vary with each item, giving an unpredictable user experience. The
presets would ensure a more consistent user experience, and give the user
more control over the quality of what the recipients see in the screen
share.
If you fix the window size to 720p or 480p then you always transmit 16:9
images. Not all Zoom end user devices use that kind of resolution. Maybe
they also have portrait mode which would suffer then. Streaming a quadratic
image as 720p would add black borders to left and right and to end users in
portrait mode would result in black borders left, right, top and bottom,
making the image very small.
Streaming only the with correct aspect ratio is in my opinion the best
streaming "quality".
Maybe the best option here would be to implement a maximum width and
maximum height setting. But keep aspect ratio. So you do not have
unpredictable big images and suffered user experience. What do you think
about that?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AntonyCorbett/OnlyM/issues/339#issuecomment-805959883,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMVG47P5CIP37D3KOYU6WLTFIFR3ANCNFSM4MVGI43Q
.

i would be very happy to see the proposed enhancements having a few options for windowed mode as described in JoshLillis very first post above :-) until today our congregations audio/video team has been dealing with vlc media player for both images and videos which works quite good in the background and provides a smooth user experience. worst case is having several images within a talk in different dimensions and the requirement to show them in a fast sequence. as the occupied screen area has to be redrawn everytime the image dimension changes the zoom client is forced to quit the screen share. my guess this would happen the same, if onlym starts dynamically adjusting the screen area size acoording the presented media size.
@zokradonh: you are right with your concerns about the different media formats to be presented and even more device configurations at the end users site. my opinion: this issue is not feasable (by us) in a way all users will be satisfied and perfectly feed up according their local device configuration. i would focus on the media aspect, size and orientation we mostly use: 16:9, 720p, landscape. this should be communicated to all user together with the recommendation to change their setup accordingly or if unable to do so, we gently provide assistance to those.

my guess this would happen the same, if onlym starts dynamically adjusting the screen area size acoording the presented media size.

VLC creates a new Win32 window handle for each new media (with new dimensions?). That is the reason why Zoom needs to restart screen share. OnlyM does not recreate the window. Zoom has no problems with window resizing and adjusts automatically. So resizing would not be a problem.
Also I think the case I mentioned is just an edge case. Most of the Zoom Clients will use something like 16:9. It just feels bad for me to stream black border areas.
But I understand that many OnlyM users like to have a static size to easily manage the windows. I had not yet time to further develop a solution that solves both problems.
greetings back from northern germany ;)

As you can see in the PR, linked above, I took the time to implement a Size-Preset feature for OnlyM - feel free to check it out if you want.

I also had a look at the PR from @zokradonh and tried to integrate that too.
Unfortunately there are a few issues with the auto-sizing process... So before spending more time on that, I'd like to gather the actual interest on the Auto-Resize feature - because personally wouldn't like it, if the windows jumps around and most of the videos / pictures we use, are 720p anyway.
So could you all please add a thumbs up 👍 or thumbs down 👎 to this post, to indicate, if you actually need Auto-Resizing, or not.