If :b_w is not really a single-band, how do I convert image to really single-band gray?

Docs say:
    # * `:b_w` some kind of single-band image

but when I apply .to_a to https://drive.google.com/file/d/0B3BLwu7Vb2U-MnNqdHV4MzFSX2s/view?usp=sharing image there are two channels (probably another one is alpha):
[[[255, 255],
  [254, 255],
  [255, 255],
  [255, 255],
  [255, 255],
  [254, 255],
  [255, 255],
  [255, 255]],
 [[254, 255],
  [255, 255],

Is my only option to always map a .first to each pixel after .to_a or even use LHC or smth and then map it too?

Hello @Nakilon,
:b_w means some sort of greyscale image, but it can still have many bands. It's a hint about how the image should be shown to the user rather than solid information about the number of channels. For example, you could have an extra band of alpha.
I tried with your image and it comes out as :srgb for me.
irb(main):001:0> require 'vips'
=> true
irb(main):002:0> x = Vips::Image.new_from_file "temp.png"
=> #<Image 1703x896 uchar, 4 bands, srgb>
irb(main):003:0> x.interpretation
=> :srgb

If you load a greyscale PNG with alpha, you'll get a two-band :b_w image, with the alpha as band 2. You can use .flatten to flatten out any alpha before calling .to_a, or extract just the band you want.
Could you give more detail about the problem you have run into?

I took about 1000 images from a social network and fingerprinted them with my idhash thing. It is doing something like this:
      image = Vips::Image.new_from_file filename
      image = image.resize(8.fdiv(image.width), vscale: 8.fdiv(image.height)).colourspace("b-w")
      array = image.to_a.map &:flatten

The produced fingerprint appeared to be larger than 32 bytes and it was caught by an assert during fingerprint comparing.
I now wonder what will be faster:

.resize.colourspace("b-w").to_a.map{map &:first}
.flatten.resize.colourspace("b-w").to_a.map &:flatten
.resize.flatten.colourspace("b-w").to_a.map &:flatten
.resize.colourspace("b-w").flatten.to_a.map &:flatten

Also I could apply colourspace before resizing but that probably would even change the result a bit.

My benchmark did not notice a difference between 1 and 4.
2 and 3 raise:
Vips::Error: vips_colourspace: no known route from 'multiband' to 'b-w'

(off-topic)
Yesterday, investigating huge memory consumption on fingerprinting these images, I've noticed that if I randomly interrupt the program it always stops inside AutoPointer.new (for some reason at the line about multiple calls of ptr.kind_of) so I assume this constructor to be slow. What is an AutoPointer? Does it differ from the Pointer only in the way that you can pass a destructor? I tried to rewrite the write_to_memory method from
            ptr = FFI::AutoPointer.new(ptr, GLib::G_FREE)
            ptr.get_bytes 0, len[:value]

to
            ptr = FFI::Pointer.new ptr
            ptr.get_bytes(0, len[:value]).tap do
                GLib::g_free ptr
            end

Not sure if it's correct and won't segfault but interrupting the program made it to halt in more random places. Speed or memory consumption didn't get visibly better though.

I think I would do:
      image = Vips::Image.thumbnail filename, 8, height: 8, size: :force
      image = image.colourspace("b-w")
      image = image.flatten if image.bands > 1
      array = image.to_a

I remember you preferred resize to thumbnail, but there's a huge speed and memory advantage with thumbnail, so I'd still be temped to use that if possible. The flatten will multiply any alpha into band 0.
This won't work for CMYK images, but I don't know how common they are in your case. You'd need to handle them via an ICC transform.

On memory use, have you turned off the libvips cache? It won't help your style of batch processing and will use memory.
Add Vips::cache_set_max(0) somewhere near the start of your program.

Yes, AutoPointer is an FFI class that lets you attach a destructor to a pointer. You can give it a pointer to a C function and it can call it directly rather than going back into Ruby again, which is useful.

Vips::Error: ruby-vips: enum 'VipsSize' has no member 'force', should be one of: both, up, down

cache_set_max  did not help -- still reaching 1000mb in about 10 seconds:
1%, 166mb RAM used, 22% RAM free
2%, 278mb RAM used, 20% RAM free
3%, 352mb RAM used, 18% RAM free
4%, 525mb RAM used, 16% RAM free
5%, 663mb RAM used, 14% RAM free
6%, 667mb RAM used, 14% RAM free
7%, 857mb RAM used, 11% RAM free
8%, 944mb RAM used, 10% RAM free
9%, 1037mb RAM used, 8% RAM free
10%, 1410mb RAM used, 3% RAM free
11%, 1607mb RAM used, 0% RAM free
12%, 1673mb RAM used, 0% RAM free
13%, 1563mb RAM used, 1% RAM free

force was added in 8.6, I guess you have an older libvips.
I'll see if I can make a small example that has the memory problem.

I tried this:

And tested with:
$ mkdir samples
$ for i in {1..1000}; do cp ~/pics/k2.jpg samples/$i.jpg; done
$ time ./soak-dhash.rb samples/*
real	0m42.568s
user	0m42.942s
sys	0m4.054s

Watching in top, it runs in a fairly steady 340mb of memory.

I tried this:
ARGV.each do |filename|
    puts "#{filename} = #{DHashVips::DHash::calculate filename}"
end

And tested with:
$ mkdir samples
$ for i in {1..1000}; do cp ~/pics/k2.jpg samples/$i.jpg; done
$ time ./soak-dhash.rb samples/*
real	0m42.568s
user	0m42.942s
sys	0m4.054s

Watching in top, it runs in a fairly steady 340mb of memory. k2.jpg is a 1400 x 2048 pixel RGB jpg.
If I change pixelate to be:
    def pixelate file, hash_size, kernel = nil
      image = Vips::Image.thumbnail file, hash_size + 1, height: hash_size, size: :force
      image.colourspace("b-w")
    end

It runs in 20s and 50mb of memory. If I add Vips::cache_set_max 0 just before the loop, it runs in 20s still, but 34mb of memory.

... anyway, I don't see uncontrolled memory growth with dhash, so I guess the problem is in idhash. Maybe the to_a is not releasing memory?
Switching to thumbnail should give you a nice drop in memory use and a speedup. Turning off the cache should get memory use down further.

Upgraded vips.
I'm trying to make minimal leaking code example and that's insane -- it leaks when I uncomment the line
YAML.load File.read "../labeled.yaml"

even if the loaded data (750kb) is not in program.
 Gonna ask somewhere.

Just calling GC.start after each .fingerprint helps:
1%, 175mb RAM used, 13% RAM free
2%, 229mb RAM used, 12% RAM free
3%, 231mb RAM used, 12% RAM free
4%, 253mb RAM used, 12% RAM free
5%, 260mb RAM used, 12% RAM free
6%, 233mb RAM used, 12% RAM free
7%, 221mb RAM used, 13% RAM free
8%, 260mb RAM used, 12% RAM free
9%, 248mb RAM used, 12% RAM free
10%, 234mb RAM used, 12% RAM free
11%, 228mb RAM used, 12% RAM free
12%, 181mb RAM used, 13% RAM free
13%, 217mb RAM used, 13% RAM free
14%, 209mb RAM used, 13% RAM free
15%, 245mb RAM used, 12% RAM free

I.e. the solution is to use GC.start explicitly if both YAML and ruby-vips are used.

Thank you for advices -- I'll try them out later.

The "no route" message usually means you have hit a CMYK image. You'll need to add some extra code to import with an ICC profile for this case.

Constant GCing will probably hurt performance :( Perhaps every 100 images? It depends how much you need to keep memory down I guess.


Restricting tracked_schemas makes versions unloadable

Trying to load such a version results in the error
cannot load `"no_longer_tracked_schema"` as type ExAudit.Type.Schema for field :entity_schema in ...

The reason is that the old schema is no longer returned here https://github.com/ZennerIoT/ex_audit/blob/master/lib/repo/schema_type.ex#L18

Hi! I'm sorry you're having an issue with loading old versions.
Can you provide more details about your issue:

which function are you calling and how?
(if applicable) how did you configure ex_audit?
add the entire error message

I'm just calling MyApp.Version |> MyApp.Repo.all and the error I get is
cannot load `"some_table_name"` as type ExAudit.Type.Schema for field :entity_schema in %MyApp.Version{...}

(obviously with some real table name)
The error is easy to reproduce:

have something tracked
clear the tracked_schemas config
run the query

Aside, the version_schema and tracked_schemas should not be configuration for the ex_audit application but somehow bound to the Repo at hand (see https://hexdocs.pm/elixir/1.9.1/library-guidelines.html#avoid-application-configuration)

I feel like this might be out of spec for this library. If you remove a schema from the config, you can also write a migration that deletes all of these entries (the execute function can be used in ecto migrations to run arbitrary SQL queries):
DELETE FROM versions WHERE entity_schema= 'some_table_name'

Of course, you could also decide to keep these in a seperate table before deleting them from the versions table:
CREATE TABLE some_table_name_versions AS (SELECT * FROM versions WHERE entity_schema = 'some_table_name');

I just ran into this issue again after renaming a table. I had to go down to SQL to fix this, because the ExAudit.Type.Schema won't let me just add an arbitrary atom into the :tracked_schemas env.


Welcome page (add host/add service) should be redone for mobile

Version: master 5/13
Steps to Reproduce:

Create a new environment
Resize browser to reflect mobile size
Go to new environment

Results: Welcome screen does not look good.

Expected: We might to have a specific welcome page created for mobile

resolved in https://github.com/rancher/ui/pull/665

Version - master 5.19
Verified fixed


Please make hashtags normal links

Is your feature request related to a problem? Please describe.

When I right click on a hashtag link on the web version of bluesky, I can't copy the link or open the link in a new tab, as it is not a link. This makes me sad.
Describe the solution you'd like

When I right click on a hashtag link on the web version of bluesky, I can copy the link or open the link in a new tab, as it is a link. This makes me happy.
Describe alternatives you've considered

The new hashtag context menu behavior is an interesting addition that affords the user a lot of choices right away. However I think not allowing the hashtag element to be rendered as a normal link (<a> tag) in the web interface is a miss. I'd like to humbly request that the hashtag be rendered as a link to allow easily opening the link in a new window, or copying it for pasting elsewhere (generally following the time-honored maxim of "don't break the web").
You could prevent default behavior and keep the context menu on click, but allow the link to be rendered as an <a> tag to get free browser behavior like show the link on hover, allowing copying or opening in new window, etc.
There's an argument to be made that hashtags should only be links, and instead of a context menu, the search page would detect that it's rendering hashtag results and show relevant contextual actions like filtering by user or muting the hashtag. This would mean less clicks for a user to interact with a hashtag in the default way. However I'm sure this went through some design and UX iterations and I don't want to yuck anyone's yum if the hashtag context menu is a prized possession.
Additional context

Addendum
Congrats on the newly shipped hashtag functionality!
Good luck and happy coding :v:

As a side-note, it seems context menu options are also not links, and also cannot be opened into a new tab. This also makes me sad!

When I right click on a hashtag link on the web version of bluesky, I can't [...] open the link in a new tab

I'm missing this, too.

I can send somebody a link to a certain hashtag, for example https://bsky.app/search?q=igelu2024 , but the sort is not part of the URL. What I would like to do is link directly to "Latest".
Thank you :-)

I agree, the hashtags should be a normal  tag so that right click and middle click work on them. You can still keep the dropdown menu when left clicking them.


Create a notebook with demo of waveform loading functions

          Comments on the notebook.

[x] It should go in the examples directory, as that is our clean directory meant for others. Maybe rename the notebook directory to investigations to avoid misleading a user?
[x] Looking at your notebook, I think it may be better to make it a general waveform-loading notebook, maybe called load_waveforms.ipynb. That is give one example for lalsim (EccentricTD), sxsformat, and lvcnr (SXS or even RIT if you like). And in each case, point the reader to the full list of options (maybe don't print them out if too big, but make it easy for them).
[x] Once you put it in examples the test for notebooks will fail. For this, should we just add two h5 files for the two NR demos you will do? Before adding these, we should talk to Harald. And we need the filesizes.
[x] I thought we had a higher-level function that calls different loading functions like the lvcnr loader. Shouldn't the notebook just use that, with the right options?
[x] Why is the following not an error? Also, our own notebook should not have stuff like this!

Originally posted by @vijayvarma392 in https://github.com/vijayvarma392/gw_eccentricity/issues/170#issuecomment-1409989495

closed by #180


Logout needs id_token_hint URL parameter

For some reason, I am getting the following error:
Correlation ID: d555c612-f9fb-4bd1-95a5-8a6e2f81925a
Timestamp: 2019-07-03 04:46:31Z
AADB2C90272: The id_token_hint parameter has not been specified in the request. Please provide token and try again.

I don't see id_token_hint on this page

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

ID: c54adceb-9510-aeb5-0c61-c0d052459cda
Version Independent ID: 0ff6b6b2-2802-9534-8963-796b9c4a2a76
Content: Web sign-in with OpenID Connect - Azure Active Directory B2C
Content Source: articles/active-directory-b2c/active-directory-b2c-reference-oidc.md
Service: active-directory
Sub-service: b2c
GitHub Login: @mmacy
Microsoft Alias: marsma

Hi @akshaybabloo Thank you for your feedback! We will review and provide an update as appropriate.

OK, I think I know what this is. I had set Require ID Token in logout requests to Yes under Azure AD B2C - User flows (policies) > B2C_1_sign_up_sign_in > Properties, which requires id_token_hint query to be sent in.
I think this should be documented.

@akshaybabloo Thank you for sharing your finding . We are engaging content author on this to further get this reviewed with engineering and the article updated as necessary.
Thank you.

@mmacy Could you please have this recommendation for document update reviewed with engineering and actioned as needed.


transport_drivers: 0.0.6-1 in 'dashing/distribution.yaml' [bloom]

Increasing version of package(s) in repository transport_drivers to 0.0.6-1:

upstream repository: https://github.com/ros-drivers/transport_drivers.git
release repository: https://github.com/ros-drivers-gbp/transport_drivers-release.git
distro file: dashing/distribution.yaml
bloom version: 0.9.8
previous version for package: 0.0.5-1

serial_driver
* Uncrustify fixes.
* Remove lifecycle references (#19 <https://github.com/ros-drivers/transport_drivers/issues/19>)
* Fixing boost dependency. (#18 <https://github.com/ros-drivers/transport_drivers/issues/18>)
* Contributors: Esteve Fernandez, Joshua Whitley

udp_driver
* Uncrustify fixes.
* Remove lifecycle references (#19 <https://github.com/ros-drivers/transport_drivers/issues/19>)
* Fixing boost dependency. (#18 <https://github.com/ros-drivers/transport_drivers/issues/18>)
* Contributors: Esteve Fernandez, Joshua Whitley

Closing. Will replace with fixed branch name.


[Suggestion]: Minimum Policy pemission examples required for each cloud

Is there an existing issue for this?

[X] I have searched the existing issues

Topic
Minimum Policy pemission examples for Milvus to access different cloud object storage.
Type
None
Outline
No response

https://github.com/milvus-io/milvus/issues/38310

/assign


Create new ilp-core

We need to pull some things out of ilp-core into their own modules. For example, codecs, ilqp, psk, spsp, etc should not be in ilp-core. See this commentary here for some more guidance:

Closing this issue as it's covered by other issues.


Add path information to Raksha errors

First step in providing more diagnostic information in errors in the souffle interface.

@bgogul " Import didn't affect any internal file" so I think this can be merged safely. (Sorry I did try to use the "readytopull" label but I don't think it works in this case).

Thanks @Cypher1 I have merged it now.


feat: goat counter support

fix #595

Prerequisites

[X] My Pull Request is filled against the next branch
[X] All commits in my Pull Request conform to Elegant Git commit Guidelines

Recommended Steps

[X] My patch adds a new feature, therefore I have also added a help article about it
[ ] My patch changes Elegant behavior, therefore I have updated the help article to reflect this change
[X] My commits are signed

Description

I created a patch/PR here with some suggestions: https://github.com/azzamsa/elegant/pull/2 – that was a bit easier than adding a review 😅

Rebased, added keywords to yaspeller and pushed


WIP: fix #184

Hi @sagebind,
Tried to come up with something for the issue #180 .
Had to change the default_header signature from a self to mut self.
( In case I am going in completely wrong direction, please let me know. )

Thanks for tackling this!

Awesome work @ansrivas, looks good to me. I'll get this out in a new release hopefully soon. Thanks for helping out!

Thanks a lot to you for reviewing all the changes. ( Should I rebase it all in a single commit ? )

Awesome work @ansrivas, looks good to me. I'll get this out in a new release hopefully soon. Thanks for helping out!

Thanks a lot to you as well for reviewing all the changes and the patience.


Research Uber

Some sources claim Uber works in Estonia. Must check!

https://www.uber.com/ee/en/


The app seems to duplicate queries

The app seems to duplicate queries
XXX.92 - - [23/Aug/2020:11:40:03 +0200] "GET /1.json?fields=null HTTP/2.0" 200 98979 "-" "Open Food Facts Official Android App 3.4.2"
XXX.92 - - [23/Aug/2020:11:40:03 +0200] "GET /files/tagline/tagline-off.json HTTP/2.0" 200 2164 "-" "Open Food Facts Official Android App 3.4.2"
XXX.92 - - [23/Aug/2020:11:40:03 +0200] "GET /files/tagline/tagline-off.json HTTP/2.0" 200 2164 "-" "Open Food Facts Official Android App 3.4.2"
XXX.92 - - [23/Aug/2020:11:40:03 +0200] "GET /1.json?fields=null HTTP/2.0" 200 98979 "-" "Open Food Facts Official Android App 3.4.2"

Whenever an user goes to the home screen, those 3 queries are made:
ip - - [24/Aug/2020:19:07:56 +0200] "GET /files/tagline/tagline-off.json HTTP/2.0" 200 2164 "-" "Open Food Facts Official Android App 3.4.3"
ip - - [24/Aug/2020:19:07:56 +0200] "GET /1.json?fields=null HTTP/2.0" 200 98979 "-" "Open Food Facts Official Android App 3.4.3"
ip - - [24/Aug/2020:19:07:56 +0200] "POST /cgi/session.pl HTTP/2.0" 200 6936 "-" "okhttp/3.12.11"
If the user clicks the "Home" screen button 10 times, then you get the queries 10 times.

The session.pl call seems other the top (what is it done for ?). It happens only when you're logged. So it's a proxy for Daily Logged Active Users.
1.json can probably be removed
tagline-off.json is cached be reloaded everytime I think.
We need at least one of the last two as a proxy for Daily Actives.

https://github.com/openfoodfacts/openfoodfacts-androidapp/blob/f8a55a399903ba3dd3fc7f314e4f71581cddffd6/app/src/main/java/openfoodfacts/github/scrachx/openfood/fragments/HomeFragment.java#L87

Which call should we drop?

The "session" is for checking that neither of user or password have changed.
The "/1" is to get the products count.
The tagline-off to display the tagline.

We do not have a caching mechanism for these simple ones since it would mean too much work. We could try to cache responses with okhttp though.

Why we replace home fragment each time on botton navigation click?
should be something like if current fragment != home fragment -> replace

Why we replace home fragment each time on botton navigation click?
should be something like if current fragment != home fragment -> replace

Isn't it already the case?

Isn't it already the case?

looks like it doesn't
in MainActivity we have the next code and I don't see any check
if (newFragment != null) {                     getSupportFragmentManager().beginTransaction()                         .replace(R.id.fragment_container, newFragment)                         .addToBackStack(null)                         .commit();                 }

Isn't it already the case?

looks like it doesn't
in MainActivity we have the next code and I don't see any check
if (newFragment != null) {
                    getSupportFragmentManager().beginTransaction()
                        .replace(R.id.fragment_container, newFragment)
                        .addToBackStack(null)
                        .commit();
                }

You should also check the lines where we set the value of newFragment. I think we already do this.

I guess we don't
class CommonBottomListener, case R.id.home_page, R.id.home -> always replace fragment
you can do a simple check on phone, just press a few times on "Home" button in bottom bar and see how tagline is reloaded each time
it is not critical at all, but in case of duplicated queries - it is place to improvement

@naivekook ok then, a simple check is needed here. Could you work on it?

@VaiTon sure, assign this ticket to me please


Convert tests to JUnit 4, clean up code

JUnit 4 has primarily two benefits, clarity through annotations and more fine grained control of failures

That was a lot of work (or writing/using a transformator ;)
Basically it

removes the "extends TestCase" and
uses JUnit annotations
change string.indexOf()!=-1 to string.contains()
use foreach instead of for-i
small improvements
spell check

test/java/org/apache/ivy/ant/IvyCacheFilesetTest.java
In testFailure() you use @Test(expect=BuildException.class). Therefor the last fail() statement is obsolete.
This pattern occurs several more times.
Could you change that?
Nice use of @Rule ExpectedException in IvyCleanCacheTest.
Could you use that in IvyConfigureTest#testOverrideNotAllowed() and Co?

Thanks for a nice summary and pointing out a paradigm that I did not investigate entirely. The essential work also included checking that all appropriate setUp() and tearDown() were public and/or necessary.

I left a few fail()s where multiple assertions were made; I guess that requires a custom @Rule.
Also, in FileSystemResolverTest, I moved finally blocks to tearDown(). Strangely, that caused failures in testPublishTransactionWithDottedOrganisation() because of leftover files, so I added extra cleanup in tearDown().

Nice idea to use the old fail-Message as new method comment to document why the exception is expected.

merged, thanks

@twogee to properly add you to the list of contributors, do you confirm you are
Gintautas Grigelionis ?

I do 😃


[ENH] Adding Rocket GPU to rocket classifier/regressor

Describe the feature or idea you want to propose
Now we have a gpu implementation of ROCKET, but it cannot be used in the rocket classifier pipeline, the user till now has to do it manually
Describe your proposed solution
it should be added as an option "rocket-gpu" for example
Describe alternatives you've considered, if relevant
No response
Additional context
No response

it can also be added to regression

I could do it


[Update Request]: Update Perfview to 3.1.16

What type of update are you requesting?
A new version of an existing package
Current Package Identifier
Microsoft.Perfview
Package Version
3.1.16
Please describe the changes you would like to see
3.1.16 is released:

Roll-up through 2024/10/11.
Performance improvements to DynamicParser.
Fixed GetFileNameWithoutExtensionNoIllegalChars to only trim known file extensions.
Fixed a memory leak when processing EventPipe traces.
Added support for private/in-process loggers.

https://github.com/microsoft/perfview/releases/tag/v3.1.16
Download:
https://github.com/microsoft/perfview/releases/download/v3.1.16/PerfView.exe

https://github.com/microsoft/winget-pkgs/pull/181571

Kindly close as this is done


Mined Blocks not dropping

So like the title says, I created a portal, and the portal was on the side of a mountain. Not to bif a problem. Made my way to the ground layer and started digging, but I realized that there are no blocks dropping for me. No dirt, cobblestone, no coal nor granite.
I'm using Miners_Horizon 1.1.0
Fabric 0.2.7 build 127

Not your mod that was the problem, I was just in your mining dimension when I noticed this issue, but it's from another mod i added, the Refined machinery mod.


[image_picker] add requestFullMetadata for iOS (optional permissions) - platform interface changes for multi image picking

Description
Platform interface changes for https://github.com/flutter/plugins/pull/5915 - adding possibility to disable full metadata when picking multiple images
Related issues
flutter/flutter#65995
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
[x] I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

@stuartmorgan do you mind taking a look at the PR?

I remember this feature should also support picking a single image, did you move that to a different PR?

It has been added in this PR: https://github.com/flutter/plugins/pull/5603. Lately we had a discussion with Stuart about adding the same feature to multi image picking and this PR addresses it.

@cyanglaz @stuartmorgan could you do another review, please? 🙂

Looks like submit-queue status is stale.


Drawing is extremely slow compared to Arduino library

I have this display hooked up to my Arduino Mega as well as a STM32F4DISCOVERY.
On the Arduino, I can clear the screen in under a second, while on the Discovery board, I can see the pixels crawl by. Example: https://twitter.com/pepijndevos/status/1256983103693901825
I have not studied the Rust code, but I have done some optimization on the Arduino side, and the key thing to realize is that setting bounds and starting/stopping transactions is costly. For example, I obtained major speedups by drawing diagonal lines in vertical/horizontal segments, and using long transactions when possible.
More info:
https://github.com/adafruit/Adafruit_ILI9341/pull/3
https://github.com/adafruit/Adafruit-GFX-Library/pull/36
This might be related to #10, but I think there are more fundamental problems, because the rectangle function does seem to be implemented, but still very slow.
[edit] It does not seem to do something obviously dumb.  Though even if it's just a misconfiguration on my end, there is definitely room for optimization.

Just to check, are you running with --release? That improves speed a lot.
That said, as I mentioned on Twitter earlier, I think a decent amount of blame lies with embedded-graphics and a poor implementation of the DrawTarget trait. We're aiming to fix this in v0.7.0 which I hope will help allow drivers like this one to do a better job of optimising writes.

Looking at the video it seems honestly too slow, so I would double check that you are running in release mode, and the clock speeds of the micro and the SPI.
Drawing rectangles should already be as fast as possible (although buggy when using embedded_graphics at the moment.
For lines, I will look at your links when I have time!

Running with --release fixes the extreme slowdown :facepalm: It still seems somewhat slower than Arduino though, so once I have time I should put a scope on the clock to see the frequency and idle time.
But yea, for things other than squares, the linked PRs on Adafruit definitely contain some tricks to speed up things.
Something else I'm completely clueless about: Is there a HAL abstraction for FIFO/async SPI? With a blocking loop you're almost guaranteed to have some idle time between transfers.

I think most of the slow down is caused as the pixels are transferred in individual SPI transactions where the pixel location then colour is sent. I wrote an enhancement that improved the speed significantly but this has later been removed. https://github.com/yuri91/ili9341-rs/pull/6/commits/20c22260a66b9ab5d197580f77e4b106a52afc5e

Both the spi driver implementation and embedded_graphics changed since this issue was opened. I have no way of comparing with arduino myself now, so I will close the issue. Feel free to open a new one if the slowdown is still there.


InternLM2Converter requires the protobuf library but it was not found in your environment.

I met follow error, when I merge llm-7b adapter.

But I previously successfully merged llm-20b.

The problem had be solved after  pip install protobuf. But I still want to know the reason.

protobuf is required by other thrid-party library (e.g., transformers) in some cases.
In my option, the version management of these libraries should be placed in the upstream repository, not in the xtuner.
Nevertheless, thanks again for reporting this issue!

socket.timeout: timed out
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /internlm/internlm2_5-7b-chat/resolve/main/tf_model.h5 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000028E2CDC3340>, 'Connection to huggingface.co timed out. (connect timeout=10)'))
requests.exceptions.ConnectTimeout: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /internlm/internlm2_5-7b-chat/resolve/main/tf_model.h5 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000028E2CDC3340>, 'Connection to huggingface.co timed out. (connect timeout=10)'))"), '(Request ID: c12744c4-670d-4484-9d02-d7f8ff417168)')

socket.timeout: timed out
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /internlm/internlm2_5-7b-chat/resolve/main/tf_model.h5 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000028E2CDC3340>, 'Connection to huggingface.co timed out. (connect timeout=10)'))
requests.exceptions.ConnectTimeout: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /internlm/internlm2_5-7b-chat/resolve/main/tf_model.h5 (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000028E2CDC3340>, 'Connection to huggingface.co timed out. (connect timeout=10)'))"), '(Request ID: c12744c4-670d-4484-9d02-d7f8ff417168)')


Update

Your branch is 3519 commits behind master.  If you'd like to submit a pull request, please do so from the tip of master, and please first report a bug in our Jira project at https://jira.mongodb.org/browse/JAVA describing the issue you're trying to solve.


fix(getTokenData2()): Adding updateCache argument

:tada: This PR is included in version 2.7.7 :tada:
Your semantic-release bot :package::rocket:


Links in overview menu's do not link to the proper methods

See the following pages (amongst others):
https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.35.0/storage/file
https://googlecloudplatform.github.io/gcloud-node/#/docs/v0.35.0/storage/bucket
The links in the overview at the top to the delete method in fact take you to the acl.delete method. If you hover over both links, they both are linked to ?method=delete. The same is true for other methods which share their name with acl counterparts, e.g. get and acl.get.
I assume this problem is widespread and probably affects many other docs pages.

Thanks for opening this, @adambuczynski !

No worries, thanks for fixing.


Added JMESPath for Rust to the list of libraries.

This adds Rust to the list of libraries. Crate: https://crates.io/crates/jmespath
There's also a crate that can statically compile JMESPath expressions at build time so that you know your expressions are correct and so that you don't need to parse them at runtime: https://crates.io/crates/jmespath-macros
There's a CLI that should have pretty close to a 1:1 implementation of jp available here: https://github.com/mtdowling/jmespath.rs/tree/master/jmespath-cli. I might try to one day get this creating cross platforms builds and try to convince you to switch jp to Rust. I'd of course have benchmarks to provide a motivation for the switch.
I also created a streaming implementation that I never finished if anyone is interested in checking it out. It isn't tested very well and doesn't have functions, but I got pretty far. I just don't think most JMESPath expressions are suitable for streaming searches considering how much buffering would be needed: https://github.com/mtdowling/jmespath.rs/tree/jmespath-streaming/jmespath-streaming

Awesome!


Fixed nav Bar Logo and Home Button

Related Issue
Fixed nav Bar Logo and Home Button
Fixes:  #3338
Description
Fixed

resolve conflicts and update branch @devanshar

resolve conflicts and update branch @devanshar
Done


Error: Cannot find module '@prisma/photon' For Prisma 2 Typescript examples

Just git clone the latest prisma-examples
Go to typescript/graphql-auth or graphql-apollo-server,
run npm i
Round 1
error:
AlbertGao@Albert-LottoNZ-Laptop graphql-auth % npm i

><EMAIL_ADDRESS>install /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2
> node download-build/index.js || echo ""

> Downloading darwin binary for query-engine and migration-engine [====================] 100%

><EMAIL_ADDRESS>postinstall /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/core-js
> node postinstall || echo "ignore"

><EMAIL_ADDRESS>postinstall /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/@prisma/sdk
> node scripts/download.js

> Downloading darwin binary for query-engine [====================] 100%

><EMAIL_ADDRESS>postinstall /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/graphql-shield
> lightercollective postinstall

                .,:;;:,.
           .,:;rrssssssrr;:,.
      .,:;rssssssssssssssssssr;:,.
     ;rssssssssssssrrssssssssssssr;
    .ssssssssssssr:  :rssssssssssss.
    .rssssssr::;;:,::,:;;::rssssssr.
     ;ssssss:  ;r:;ss;:r:  ;ssssss;
     ,sssssss:;r:;ssss;:r::sssssss:
      ;ssssss:,:rssssssr:,:ssssss;
      .rssss:  ,;;;;;;;;,  ;ssssr.
       .rsssr;;;::;::;;;;;;rsssr.
        .;sssssssr:  :ssssssss;.
          :rsssssssrrsssssssr:
           .:rssssssssssssr:.
             .:;rssssssr;,.
                .,;;;;,.

     *** Thank you for using graphql-shield! ***

  Please consider donating to our open collective
       to help us maintain this package.

  https://opencollective.com/graphql-shield/donate

                    ***

> graphql-auth@ postinstall /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth
> npm -s run generate

> Downloading darwin binary for query-engine [====================] 100%

Generating Photon.js to /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/@generated/photon
Done in 2.42s

Error: Failed to import photon package at @prisma/photon. The following error occured while trying:

        Error: Cannot find module '@prisma/photon'
Require stack:
- /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/dist/dmmf/utils.js
- /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/dist/dmmf/index.js
- /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/dist/builder.js
- /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/dist/index.js
- /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/src/schema.ts
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:954:17)
    at Function.Module._load (internal/modules/cjs/loader.js:847:27)
    at Module.require (internal/modules/cjs/loader.js:1016:19)
    at require (internal/modules/cjs/helpers.js:69:18)
    at Object.exports.get (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/dmmf/utils.ts:12:27)
    at new SchemaBuilder (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/builder.ts:164:38)
    at Object.build (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/builder.ts:91:19)
    at Object.onInstall (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/index.ts:43:16)
    at /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus/src/builder.ts:700:44
    at Array.forEach (<anonymous>)
    at Object.exports.get (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/dmmf/utils.ts:14:11)
    at new SchemaBuilder (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/builder.ts:164:38)
    at Object.build (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/builder.ts:91:19)
    at Object.onInstall (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus-prisma/src/index.ts:43:16)
    at /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus/src/builder.ts:700:44
    at Array.forEach (<anonymous>)
    at SchemaBuilder.beforeWalkTypes (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus/src/builder.ts:694:18)
    at SchemaBuilder.getFinalTypeMap (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus/src/builder.ts:784:10)
    at makeSchemaInternal (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus/src/builder.ts:1571:15)
    at Object.makeSchema (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/nexus/src/builder.ts:1616:49)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! graphql-auth@ postinstall: `npm -s run generate`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the graphql-auth@ postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/AlbertGao/.npm/_logs/2019-11-24T11_10_55_995Z-debug.log
AlbertGao@Albert-LottoNZ-Laptop graphql-auth %

In https://github.com/prisma/photonjs/issues/56 , it mentioned
https://github.com/prisma/photonjs/pull/143 should fix it, I saw that merge, and there is no output in this schema.prisma, but still not working.
I already global installed prisma2. but still not working.
I am using Node v13.2.0, tried 12.13.0 without any luck.
Tried adding @prisma/photon and prisma2 to devDependencies, still not work. Error is different though.
=======================================
Round 2
After git reset --hard and rm -rf ./node_modules
I updated the prisma2 version in this project to 2.0.0-alpha.351: it asks me to install an @prisma/photon now! Exciting! But still error. :(
and I am using NPM but the command seems to use yarn?
> graphql-auth@ postinstall /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth
> npm -s run generate

In order to use the "photonjs" generator, you need to install @prisma/photon to your project.
✔ Do you want to install it now? … yes
yarn add v1.19.0
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
warning graphql-yoga ><EMAIL_ADDRESS>This is a stub types definition. graphql provides its own type definitions, so you do not need this installed.
warning graphql-yoga ><EMAIL_ADDRESS>Please migrate to https://npm.im/graphql-upload (see https://git.io/fADhl).
warning graphql-yoga > apollo-server-lambda > apollo-server-core > graphql-extensions ><EMAIL_ADDRESS><EMAIL_ADDRESS>is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
Couldn't find any versions for "@prisma/photon" that matches "b8d90fea39d266b128b4d748db5aca8505bb1026"
? Please choose a version of "@prisma/photon" from this list: 2.0.0-alpha.351
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^3.0.0".
warning "graphql-yoga ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0 || ^0.13.0".
warning "graphql-yoga > apollo-server-lambda ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0".
warning "graphql-yoga > apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning "graphql-yoga > apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning "graphql-yoga > apollo-server-lambda > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
warning Your current version of Yarn is out of date. The latest version is "1.19.1", while you're on "1.19.0".
info To upgrade, run the following command:
$ brew upgrade yarn
success Saved 120 new dependencies.
info Direct dependencies
├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>info All dependencies
├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>└─<EMAIL_ADDRESS>$ npm -s run generate
Error: Error: Command failed with ENOENT: /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2/query-engine-darwin cli --dmmf
spawn /Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2/query-engine-darwin ENOENT
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Error:
    Error: Command failed with exit code 1: yarn add @prisma/photon@b8d90fea39d266b128b4d748db5aca8505bb1026
        at makeError (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2/build/index.js:359510:11)
        at handlePromise (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2/build/index.js:359755:26)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! graphql-auth@ postinstall: `npm -s run generate`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the graphql-auth@ postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/AlbertGao/.npm/_logs/2019-11-24T11_19_52_586Z-debug.log
AlbertGao@Albert-LottoNZ-Laptop graphql-auth % git diff
diff --git a/typescript/graphql-auth/package.json b/typescript/graphql-auth/package.json
index 317d1cba..fc5b37ab 100644
--- a/typescript/graphql-auth/package.json
+++ b/typescript/graphql-auth/package.json
@@ -13,6 +13,7 @@
     "seed": "ts-node prisma/seed"
   },
   "dependencies": {
+    "@prisma/photon": "^2.0.0-alpha.351",
     "bcryptjs": "2.4.3",
     "graphql": "14.5.8",
     "graphql-shield": "5.7.3",
@@ -27,7 +28,7 @@
     "@types/jsonwebtoken": "8.3.5",
     "@types/node": "12.12.12",
     "@types/ws": "6.0.3",
-    "prisma2": "2.0.0-preview016.2",
:...skipping...
diff --git a/typescript/graphql-auth/package.json b/typescript/graphql-auth/package.json
index 317d1cba..fc5b37ab 100644
--- a/typescript/graphql-auth/package.json
+++ b/typescript/graphql-auth/package.json
@@ -13,6 +13,7 @@
     "seed": "ts-node prisma/seed"
   },
   "dependencies": {
+    "@prisma/photon": "^2.0.0-alpha.351",
     "bcryptjs": "2.4.3",
     "graphql": "14.5.8",
     "graphql-shield": "5.7.3",
@@ -27,7 +28,7 @@
     "@types/jsonwebtoken": "8.3.5",
     "@types/node": "12.12.12",
     "@types/ws": "6.0.3",
-    "prisma2": "2.0.0-preview016.2",
+    "prisma2": "2.0.0-alpha.351",
     "ts-node": "8.5.2",
     "ts-node-dev": "1.0.0-pre.44",
     "typescript": "3.7.2"
~
~
~
~
~
AlbertGao@Albert-LottoNZ-Laptop graphql-auth %

====================================
Round 3
After git reset --hard and rm -rf ./node_modules
This time I use yarn install with 2.0.0-alpha.351
Error :( ......
AlbertGao@Albert-LottoNZ-Laptop graphql-auth % yarn install
yarn install v1.19.0
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^3.0.0".
warning "graphql-yoga ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0 || ^0.13.0".
warning "graphql-yoga > apollo-server-express ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>[4/4] 🔨  Building fresh packages...
$ npm -s run generate
In order to use the "photonjs" generator, you need to install @prisma/photon to your project.
✔ Do you want to install it now? … yes

yarn add v1.19.0
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
Couldn't find any versions for "@prisma/photon" that matches "b8d90fea39d266b128b4d748db5aca8505bb1026"
? Please choose a version of "@prisma/photon" from this list: 2.0.0-alpha.351
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^3.0.0".
warning "graphql-yoga ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0 || ^0.13.0".
warning "graphql-yoga > apollo-server-express ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.13.x".
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─<EMAIL_ADDRESS>info All dependencies
└─<EMAIL_ADDRESS>$ npm -s run generate
> Downloading darwin binary for query-engine [====================] 100%

Generating Photon.js to ./node_modules/@prisma/photon
Done in 2.58s

sh: ts-node: command not found
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
Error:
    Error: Command failed with exit code 1: yarn add @prisma/photon@b8d90fea39d266b128b4d748db5aca8505bb1026
        at makeError (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2/build/index.js:359510:11)
        at handlePromise (/Users/AlbertGao/codes/temp/prisma-examples/typescript/graphql-auth/node_modules/prisma2/build/index.js:359755:26)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
AlbertGao@Albert-LottoNZ-Laptop graphql-auth %

Interesting, because ts-node is in the devDep, or is it the command it tried to run?
=====================
I think Round 3 is close? If that is the case, can we use npm or have to use yarn?
I think the easy way to solve it is to update the dep list in package.json? To include the @prisma/photon?
What am I missing? Thanks :)

After adding @prisma/photon to dep list, seems it is working?
> Downloading darwin binary for query-engine [====================] 100%

Generating Photon.js to ./node_modules/@prisma/photon
Done in 2.64s

You should specify a configuration value for outputs in Nexus' makeSchema. Provide one to remove this warning.
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^3.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0 || ^0.13.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 0.13.x but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 0.13.x but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>- 0.13.x but none is installed. You must install peer dependencies yourself.
npm WARN graphql-auth@ No repository field.

added 385 packages from 350 contributors and audited 787 packages in 23.387s

2 packages are looking for funding
  run `npm fund` for details

found 1 low severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details
AlbertGao@Albert-LottoNZ-Laptop prisma2-ts-graphql-auth %

This warning You should specify a configuration value for outputs in Nexus' makeSchema. Provide one to remove this warning.
needs to fix or just ignore?

Move to https://github.com/prisma/prisma-examples/issues/1024


Knack bug fixes

Fixes #4993. Cloud Errors should no longer produce a stack trace.
Fixes #4943. ASCII art no longer looks wonky.
Fixes #5001. Uses the ensure_dirs stuff from the latest Knack.
Fixes #4999. Resource group and location completers now work. Also updated generic_completer even though nothing uses it today.

View a preview at https://prompt.ws/r/Azure/azure-cli/5024
This is an experimental preview for @microsoft.com users.
(It may take a minute or two for your instance to be ready)
Email feedback to 'azfeedback' with subject 'Prompt Feedback'.


TE-7: FIB ACK

This test is covered by the tests within TE-2 through TE-4, therefore closing this one as it is obsolete


Make the donation process easier (to support development)

Please add direct cryptocurrency addresses within the app. Easy tap and donate without leaving the app. All happens offline (no internet needed).
TRX, AVAX, LTC, BTC, XEC, BNB, SOL, BCH, ALGO, XTZ, HBAR, DASH, FTM, XRP, XDC, ADA, XLM, KAS, XMR, SEI, INJ, SUI addresses available for donations (addresses have to be copyable).
I don't want going around to websites. I don't want support FIAT economy.
I don't want leave the app environment in order to make a donation.
Of course, once the crypto address is copied, the donation process will continue on the user's non-custodial wallet.
Here an integration example made by other developers.

-Believe my guys,  d a r k w e b p r o g r a m m e r @ g m a i l . c o m    are the best when comes to hacks transfer, they got me $15,000

This issue is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in a week.

This issue is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in a week.


feat: persist constraint in table

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall


Update dependencies

byteorder has moved on, and matches is only used in tests.

Looks good. Thanks!
It doesn't change the public interface, right? I.e. it looks like it's not breaking change.

Thanks!  I agree that this should not be a breaking change.

Okay. Released as v0.7.1 along with tiny doc updates.


X11: Fix horizontal border correction for screen dimensions

This prevents column(s) from being taken off upon a :vsplit (which could then be claimed by resizing the window).
I'm unsure about what this function should do relating to vertical calculations. The comment in the function implies that it is only about window decoration, but :h gdr disagrees.
I'm leaving a scaffold for vertical calculations in case it's obvious to maintainers. It can of course be removed if I'm getting it wrong or if it won't be used.

This prevents column(s) from being taken off upon a :vsplit (which
could then be claimed by resizing the window).
I'm unsure about what this function should do relating to vertical
calculations. The comment in the function implies that it is only
about window decoration, but :h gdr disagrees.
I'm leaving a scaffold for vertical calculations in case it's obvious
to maintainers. It can of course be removed if I'm getting it wrong or
if it won't be used.

I don't think it is a good idea to change how 'guiheadroom' is used.
It's hard to predict what happens with different window managers.
The commented-out code should probably just be left out.
The main line in your patch is:
    xborder = x - attr.x > 0 ? x - attr.x : xborder;

Where "x" is the position of the root, the window that fills the screen.
I don't see how it's position can ever be smaller than that of the Vim
window.  Or how you expect to get the border width from this
computation.  Does this only work when the Vim window is maximized?  A
comment to explain this would be very helpful.
--
From "know your smileys":
2B|^2B	  Message from Shakespeare
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

I don't see how it's position can ever be smaller than that of the Vim
window.

Me neither. It was just a sanity check, but if it's deemed unnecessary it can be removed.

Or how you expect to get the border width from this
computation.  Does this only work when the Vim window is maximized?  A
comment to explain this would be very helpful.

Yes. only when maximized. Before I do so...:

I don't think it is a good idea to change how 'guiheadroom' is used.
It's hard to predict what happens with different window managers.

I reckoned this could be the case, just wasn't sure about this asymmetry. Most popular desktops nowadays support vertical docks and some even default to them (Gnome).
But thinking this over, there is a better solution that I wonder how I didn't realize before: Instead of doing all these clunky calculations, just use attr.width and attr.height to retrieve the exact values? Wouldn't that be the silver bullet?

closing. It sounds like we don't really need this.


App not showing C: drive in neither navigation pane nor Home.

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS Version: [e.g. Windows 10 1903 18362.175]
App version: [v0.11.0]

Additional context
Add any other context about the problem here. Does this problem occur again after restarting the app?
Log file
Please upload the log file here so that we can understand your issue better. You can access it from Settings->About->Open log location. You can also find the log file manually by following this guide.

@iseeghosts thanks for this report. Please add your app version to the issue description and post the log files

@iseeghosts thanks for this report. Please add your app version to the issue description and post the log files

Thanks again for your feedback.
Since we didn't hear from you on this topic for 3+ days, we'll assume everything is worked out and close this feedback item. If you had more feedback to provide, please re-open this and help the owners by describing the current status and any steps taken to troubleshoot this.

Thanks again for your feedback.
Since we didn't hear from you on this topic for 3+ days, we'll assume everything is worked out and close this feedback item. If you had more feedback to provide, please re-open this and help the owners by describing the current status and any steps taken to troubleshoot this.


release: change release note

don't want to be a nit picker, just saw and fix it ;-)
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign @phlax

/assign @adisuissa


Problem with instantiating OAuth2AuthorizationCodeBearer security scheme using injected Settings instance

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
Code examples are contained in description as it is probably easier to follow all the options I already tried

Description
Hi guys!
First of all, thank you for all the good work on FastAPI!
Second of all, sorry if similar problem has been already posted but I somehow couldn't find anything related
Third of all, and getting straight to the point: my question revolves around settings, security Oauth2 class and dependency injection.
So we are using OAuth2AuthorizationCodeBearer as our security dependency. We have a function that uses this dependency and verifies if provided token is valid and if it contains required scopes. We then use this dependency in our path operation functions.
However to properly instantiate OAuth2AuthorizationCodeBearer we need some values from Settings.
So this makes me wondering how to instantiate this parametrized dependency using injected Settings instance and still have this properly return token and appear as security schema in OpenAPI docs and to render Authorize button in Swagger UI.
I already tried
from typing import Any

from fastapi import Depends, Security
from fastapi.security import OAuth2AuthorizationCodeBearer, SecurityScopes

from our_project.settings import get_settings, Settings

def _prepare_scopes(scopes: str) -> dict[str, str]:
    ...

def get_oauth2_scheme(settings: Settings = Depends(get_settings)) -> OAuth2AuthorizationCodeBearer:
    return OAuth2AuthorizationCodeBearer(
        tokenUrl=settings.token_url,
        authorizationUrl=settings.authorization_url,
        scopes=_prepare_scopes(settings.scopes)
    )

async def verify_token(
    security_scopes: SecurityScopes,
    token: str = Security(get_oauth2_scheme)
) -> dict[str, Any]:
    # logic for verification of token and scopes
    # let's say that it returns decoded payload
    # in form of a dict
    ...

but (probably as expected) in this example get_oauth2_scheme is callable and what is actually passed to the function is OAuth2AuthorizationCodeBearer instance which hasn't been called to retrieve token from Authorization header. Also when getting to Swagger UI Autorize button is not rendered, but I guess this is more or less expected.
So I thought that perhaps putting another function in between that will use Request as dependency and get_oauth2_scheme as security dependency, then I will get callable OAuth2AuthorizationCodeBearer instance that I will call with Request instance and get a token (just as it is done underneath when used as Dependcy or Security argument).
from typing import Any

from fastapi import Depends, Security
from fastapi.security import OAuth2AuthorizationCodeBearer, SecurityScopes

from our_project.settings import get_settings, Settings

def _prepare_scopes(scopes: str) -> dict[str, str]:
    ...

def get_oauth2_scheme(settings: Settings = Depends(get_settings)) -> OAuth2AuthorizationCodeBearer:
    return OAuth2AuthorizationCodeBearer(
        tokenUrl=settings.token_url,
        authorizationUrl=settings.authorization_url,
        scopes=_prepare_scopes(settings.scopes)
    )

async def get_token(
    request: Request,
    oauth2_scheme: OAuth2AuthorizationCodeBearer = Depends(get_oauth2_scheme)
) -> str:
    return await oauth2_scheme(request)

async def verify_token(
    security_scopes: SecurityScopes,
    token: str = Security(get_token)
) -> dict[str, Any]:
    # logic for verification of token and scopes
    # let's say that it returns decoded payload
    # in form of a dict
    ...

and here I get the token in my verify_token function, however Authorize button is not rendered in Swagger UI. I suspect that it is because OAuth2AuthorizationCodeBearer instance isn't passed as callable argument to Security and it can't read proper attributes that are declared in that instance and are necessary to render proper OpenAPI schema.
So I'm definitely missing some piece on how to make it working by passing dependencies. I'm clearly missing a piece where I can just obtain callable instance of OAuth2AuthorizationCodeBearer and pass it as argument to Depends/Security. Do you have some suggestion how to do this?
I know that two possible workarounds are to just invoke get_settings in global scope of our module and then instantiating OAuth2AuthorizationCodeBearer and keeping it in global variable which will then be used as a dependency in our function that verifies token and checks scopes:
from typing import Any

from fastapi import Security
from fastapi.security import OAuth2AuthorizationCodeBearer, SecurityScopes

from our_project.settings import get_settings

def _prepare_scopes(scopes: str) -> dict[str, str]:
    ...

settings = get_settings()
oauth2_security_scheme = OAuth2AuthorizationCodeBearer(
    tokenUrl=settings.token_url,
    authorizationUrl=settings.authorization_url,
    scopes=_prepare_scopes(settings.scopes)
)

def verify_token(
    security_scopes: SecurityScopes,
    token: str = Security(oauth2_security_scheme)
) -> dict[str, Any]
    # logic for verification of token and scopes
    # let's say that it returns decoded payload
    # in form of a dict
    ...

Another method would be to enclose it in a function, calling get_settings there and return instance of OAuth2AuthorizationCodeBearer
from typing import Any

from fastapi import Security
from fastapi.security import OAuth2AuthorizationCodeBearer

from our_project.settings import get_settings

def _prepare_scopes(scopes: str) -> dict[str, str]:
    ...

def get_oauth2_security_scheme() -> OAuth2AuthorizationCodeBearer:
    settings = get_settings()
    return OAuth2AuthorizationCodeBearer(
        tokenUrl=settings.token_url,
        authorizationUrl=settings.authorization_url,
        scopes=_prepare_scopes(settings.scopes)
    )

def verify_token(
    security_scopes: SecurityScopes,
    token: str = Security(get_oauth2_security_scheme())
) -> dict[str, Any]
    # logic for verification of token and scopes
    # let's say that it returns decoded payload
    # in form of a dict
    ...

but still, this second exmaple involves calling get_oauth2_security_scheme function which is for example called when we import this module elsewhere.
We wanted to avoid calling get_settings in global scope or calling get_settings when function definition is evaluated as this causes a yaml file (in which we store our configuration) to be read for example when this module is imported for testing. Also we think that FastAPI's dependency system is very convenient and eases up a lot, especially with override system when it comes to testing, that's why we'd like to use it in this case.
Perhaps solution with dependency injection is really easy here but I'm just missing something, so I'd really appreciate your help.
Operating System
Linux
Operating System Details
No response
FastAPI Version
0.70.1
Python Version
3.9.5
Additional Context
No response

Likely a dupe of https://github.com/tiangolo/fastapi/issues/3317


Add authorship for artifacts

Add the capability to determine who authored different artifacts within MLTE.

This implies:

Modifying the artifact model to handle this information
Integrate with identity/authentication framework to get user information from it

Addressed by #391


Adds explanation of funcStr

Make sure to fill out everything below — your pull request won't be merged until you do!
Check all applicable boxes below (put an x in between the square brackets, with no spaces)

[x] This is to fix an issue. **Issue #86:
[ ] If I modified anything other than comments, I ran npm run build and npm test

Summary
Fixes issue #86 by adding an explanation of funcStr in src/compile.js.

Great job! You're now a Squirrelly contributor!


Regression issue introduced in #14962 ?

Probably related #14962
Following code come from Chapter 06 of Crystal Programming.
channel = Channel(Int32).new

# fiber1
spawn do
  loop do
    puts "Waiting"
    sleep 0.5
  end
end

# fiber2
spawn do
  sleep 2
  channel.send channel.receive * 2
  sleep 1.seconds
  channel.send channel.receive * 3
end

channel.send 2
puts channel.receive
channel.send 3
puts channel.receive

It is works on 1.13.2,  will produce the following expected results (in most cases)
Waiting
Waiting
Waiting
Waiting
4
Waiting
Waiting
9

But, when run it use 1.14.0, it just get several warning.
In 11.cr:7:5

 7 | sleep 0.5
     ^----
Warning: Deprecated ::sleep. Use `::sleep(Time::Span)` instead

In 11.cr:13:3

 13 | sleep 2
      ^----
Warning: Deprecated ::sleep. Use `::sleep(Time::Span)` instead

A total of 2 warnings were found.

My understanding is that if it's just a warning, its behavior should be same for those two version, right?

Look below the warnings. Do you not see the same output?
$ cr --version
Crystal 1.14.0 (2024-10-09)

LLVM: 18.1.8
Default target: x86_64-pc-linux-gnu
$ cr test.cr
In test.cr:7:5

 7 | sleep 0.5
     ^----
Warning: Deprecated ::sleep. Use `::sleep(Time::Span)` instead

In test.cr:13:3

 13 | sleep 2
      ^----
Warning: Deprecated ::sleep. Use `::sleep(Time::Span)` instead

A total of 2 warnings were found.
Waiting
Waiting
Waiting
Waiting
4
Waiting
Waiting
9

Oh, no, my fault, i added a crystal wrapper named cr, it add --error-on-warnings option as default, but i forget it, so exit immediately after warn is print.


Pico SDK 2 include path

How can I add the SDK header src/rp2_common/pico_aon_timer/include/pico/aon_timer.h  to my include path? If I
#include "pico/aon_timer.h"

I get
fatal error: pico/aon_timer.h: No such file or directory

.

The AON Timer component is actually not built by default in Arduino-Pico. So even though you could add the header location to the include path, you would just end up with undefined references. Instead, you have to do something a bit more fancy to also compile the aon_timer.c source file.
In your platformio.ini, add
extra_scripts = pre:add_aon.py

with add_on.py as a new file on the same level as the platformio.ini with content
Import("env")
from os.path import join
platform = env.PioPlatform()
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinopico")
env.Append(CPPPATH=[
    join(FRAMEWORK_DIR, "pico-sdk", "src", "rp2_common", "pico_aon_timer", "include")
])
env.BuildSources(
    join("$BUILD_DIR", "PicoAON"),
    join(FRAMEWORK_DIR, "pico-sdk", "src", "rp2_common", "pico_aon_timer")
)

Then, a sketch like
#include <Arduino.h>
#include "pico/aon_timer.h"
#define LED LED_BUILTIN
void setup() {
  pinMode(LED, OUTPUT);
  struct timespec ts;
  ts.tv_sec =<PHONE_NUMBER>; // current unix time
  ts.tv_nsec = 0;
  aon_timer_start(&ts);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
  // print AON time
  struct timespec ts;
  aon_timer_get_time(&ts);
  struct tm tim;
  localtime_r(&ts.tv_sec, &tim);
  char buf[64] = {};
  strftime(buf, sizeof(buf), "%c", &tim);
  Serial.println("Current time: " + String(buf));
}

will print
Current time: Sun Sep 22 16:46:39 2024
Current time: Sun Sep 22 16:46:41 2024
..

If you want the AON timer to be compiled and available by default, you have to file an issue with https://github.com/earlephilhower/arduino-pico/issues though.

Thank you! I did get it to work, but it is cumbersome. You script works for Pico, but for Pico 2 I had to add Powman:
Import("env")
from os.path import join
platform = env.PioPlatform()
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinopico")
env.Append(CPPPATH=[
    join(FRAMEWORK_DIR, "pico-sdk", "src", "rp2_common", "pico_aon_timer", "include")
])
# pico-sdk/src/rp2_common/hardware_powman/include/hardware/powman.h
env.Append(CPPPATH=[
    join(FRAMEWORK_DIR, "pico-sdk", "src", "rp2_common", "hardware_powman", "include")
])
env.BuildSources(
    join("$BUILD_DIR", "PicoAON"),
    join(FRAMEWORK_DIR, "pico-sdk", "src", "rp2_common", "pico_aon_timer")
)
# pico-sdk/src/rp2_common/hardware_powman
env.BuildSources(
    join("$BUILD_DIR", "Powman"),
    join(FRAMEWORK_DIR, "pico-sdk", "src", "rp2_common", "hardware_powman")
)

However, that won't work for Pico, so I need to have two separate scripts.

You can have both scripts in one, to differentiate the RP2040 from the RP2350 you can use
chip = board.get("build.mcu")
if chip == "rp2040":
   pass
elif chip == "rp2350":
   pass

Great, thanks!


Include '@types/node' in ATA if commonjs modules are used

@DanielRosenwasser had recommended doing this.

I just realized that there's one place this could cause problems, which is in a webpack.config.js, which apparently has its own type for require. I wonder if that's still okay?

Closing in favor of the proposal in https://github.com/Microsoft/TypeScript/issues/21933


Fix pipchecker "up to date"

When requirement is from GitHub correctly check commit sha to see if the requirement is up to date if in the requirement string there is branch name instead of commit sha.
The variable frozen_commit_sha actually holds the value in the requirement which can be commit hash, branch name or a tag.
Currently even if this is the last commit in a branch pipchecker will still say that givenhash is not the head of any branch. This patch will fix it.

Coverage remained the same at 39.513% when pulling afe91dc7ed50a866e2fe270add4752e42cf078d1 on IndustriaTech:fix/pipcheker-up-to-date into 60309f26b2dfb3660d665d7d162916ce28bf55bf on django-extensions:master.

Thanks !


Automate money distribution

Fixes #65
Ability to distribute money automatically,
cron job will be added to heroku and the new worker was added on the Procfile (check commit c4c6a6a14b3674ff8ed38de1d01064b27e38b4a7)

@elhmn lets goooo !!!!

Awesome mate, I will keep an eye on this issues 🥇


Fix Policy Based Routing for private gateway static routes

Description
We noticed that VMs that are target of a static nat cannot use private gateways.
Investigation showed that these VMs behave differently than all other VMs in a VPC because their whole traffic gets marked and is only allowed to leave through the public ip provided by the static nat.
Could be related to: https://github.com/apache/cloudstack/pull/3366
Maybe @richardlawley @rhtyd can contribute if this is an unwanted side-effect.
To not break anything we propose a solution that does only mark the nat portion of the traffic and allow the VM use the private gateway like normal.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

How Has This Been Tested?
We built and manually tested this to check if function is restored and nothing else breaks.

I doubt this was introduced in #3366 - all I did there was change to the proper way of adding rules to the front.  Before this change, rules were still added to the front, but this happened multiple times as the code couldn't detect it as a duplicate rule.

Thanks you for helping to find the source of this issue @richardlawley.
We noticed the behaviour of the nat'ed VM changed in the passed year somehow. Our systemvm where the private gatways were working (for the natted vm) was about a year old. Maybe something else changed that I did not find/see?
Or could the issue solved by #3366 have caused the packet mark not to work somehow?

I'm not sure. I made a few changes around the same time for static nat, especially when there are multiple public networks, but some of these were in code branches which don't get hit on a vpc.
Unfortunately I'm only running 4.11.2 in production, but have all of my fixes ported into our systemvm iso. If I get a chance I'll see if I can reproduce the problem.

That would be a great help. I think most cs users don't use the private gateways and maybe this nat issue was not noticed?
What do you think of the proposed changes? Do you think it breaks functionality?

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✔centos7 ✔debian. JID-292

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-385)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35001 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3604-t385-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 76 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_05_rvpc_multi_tiers
Failure
421.95
test_vpc_redundant.py

test_05_rvpc_multi_tiers
Error
448.89
test_vpc_redundant.py

@rhtyd I looked into the failed test and I think it's failed because of:
deletenetworkoffering failed, due to: errorCode: 431, errorText:Can't delete network offering 75 as its used by 1 networks. To make the network offering unavaiable, disable it
It seems this is not caused by the changes in this PR. Can you confirm?

@blueorangutan test

@andrijapanicsb a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

should this go on 4.13 as well, @andrijapanicsb @DennisKonrad ?

Trillian test result (tid-680)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 30492 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3604-t680-kvm-centos7.zip
Smoke tests completed. 77 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File


Support Cypress v6.x

It is desirable to add Cypress v6.x to the list of supported Cypress versions once the plugins tests have been fixed. There is already a PR opened by @renovate-bot (#194 ), but the build is broken because tests are failing. It is probably related to a breaking change in the new Cypress version about asserting elements that do not exist on the DOM (https://docs.cypress.io/guides/references/changelog.html#6-0-0 -> "Cypress now always throws an error when asserting on an element that doesn’t exist in the DOM")
It is needed to change that E2E tests to adapt them to the new Cypress version and update the package.json file to indicate that the plugin supports it.

Closed in #202


Add absolute_comment_width setting

Some coding standards, such as PEP8, require wrapping block comments at a certain column number rather than a certain length from the start of the comment, which improves readability on narrow displays. Here is an option to make comment_width behave as a fixed column number rather than a relative width.

Thanks for the PR! I'm not sure if this change is that useful, however. Given that comments are limited by the max_width, is it common to want to limit them to a different absolute width?
(As an aside, I think that being able to implement coding standards other than the Rust style (e.g., PEP8) is a 'nice to have' but not a core goal for Rustfmt. I appreciate that this is a small change, but I feel like we have too many options right now, so I'm wary of adding another).

Well, ultimately this should be decided by others, but let me make my case for why this is good behavior. First, to clarify, I pointed to PEP8 to demonstrate that this is a very widely followed convention, and a good one I think, not because my goal is to arbitrarily support features of another coding standard. In fact, at first I thought rustfmt's comment wrapping was bugged; I've never even heard of anyone following convention set by the default behavior.
Now, if you haven't before, you might consider reading PEP8's section on line length. PEP8 generally does a very good job justifying its choice conventions; here's a relevant excerpt:

For flowing long blocks of text with fewer structural restrictions (docstrings or comments), the line length should be limited to 72 characters.
Limiting the required editor window width makes it possible to have several files open side-by-side, and works well when using code review tools that present the two versions in adjacent columns.

Numbers aside, the two key points here are:

Comments do not have the same structural restrictions as code; hence, it is easy to wrap them at a short line width.
One of the main goals of line wrapping is making code readable in narrow displays, such as side-by-side columns.

Considering this, it seems desirable to prevent comments from extend past a certain absolute width determined by the concerns of readability on a variety of displays, including terminals and mobile displays, when they exist solely for reading comprehension, are easy to wrap, and rarely have cases where you really need an especially long line, as code does.
Hopefully this makes my motivation clear without too much rambling; sorry about the crazy length.

P.S. I do agree that it is wise to conserve the number of available options, but I would suggest combining or pruning existing options and not rejecting this one if that is really such a big concern. For example, there are around half a dozen options just for specifying when to put a space before/after a colon, and there is an option to put spaces inside of non-empty parens, which is not the Rust convention and also fairly arbitrary (and ugly).

In fact, at first I thought rustfmt's comment wrapping was bugged; I've never even heard of anyone following the convention set by the default behavior.

@matthew-mcallister are you saying that setting comment_width = 72 means "allow comments to be up to 72 columns wide, disregarding any leading indentation"? That does sound quite unexpected to me.

Yep, I noticed the behavior right away. It doesn't seem like it was unintended as far as I can tell.
Also, I just rebased this on master and pushed a fix for a corner case (which may be squashed before merging).

As an example of why comment_width is the way it is, consider a situation where the max width is 120 and the comment width is 60, for a line that has already been indented 40 spaces, you get to make a readable block of comments 60 columns wide, rather than a pointlessly narrow comment 20 columns wide. That is an extreme case, but the logic holds for less extreme examples.

Hopefully this makes my motivation clear without too much rambling; sorry about the crazy length

Sorry to be argumentative but neither of the reasons you give here motivates adding absolute_comment_width:
1 is addressed by having comment_width - this enables wrapping comments at a narrower width. 2 is not an issue because comments are still limited by max_width, so a comment can never be wider than a code line and thus will never be the reason for requiring a wider window.

@nrc I sense there's a big misunderstanding here. The purpose of the change is to enable comments to have shorter lines than code so that they fit into narrow terminals/windows. Indeed, the current behavior will keep comments from being subjectively too wide for readability, like newspaper columns do. However, it does not address the latter issue.
Let me address the preceding comments directly and then give a proposal.

consider a situation where the max width is 120 and the comment width is 60, for a line that has already been indented 40 spaces

You can already observe this "problem" with the default behavior by indenting your comment to 100 characters; doing so would be an egregious style mistake, though, which rustfmt will then make obvious for you.

comments are still limited by max_width, so a comment can never be wider than a code line and thus will never be the reason for requiring a wider window.

Yes, they can cause the need to resize windows, and the default rustfmt settings make it a very common occurrence. Consider an 8-space indented comment on an 80-column display; the comment then extends to column 88, and the resulting double wrapping looks atrocious. Here's a sample rendering:
impl Foo {
    fn bar() {
        // Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusm
od
        // tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam,
        // quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commo
do
        // consequat. Duis aute irure dolor in reprehenderit in voluptate velit
esse
        // cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupid
atat non
        // proident, sunt in culpa qui officia deserunt mollit anim id est labor
um.
    }
}

Sure, one possible workaround is to shrink max_width to 80. But, when it comes to code, there are obvious advantages to allowing a line width of, say, 100. There shouldn't have to be a choice between excessive linewrapping in comment blocks and excessive reformatting of code to get it to fit into the smallest common denominator of screen widths.
With that explained, how about I instead change this PR to leave comment_width alone and add a new integer setting, comment_line_width, which sets the absolute wrapping width? That would make it clear that the new option is specifically for addressing line wrapping problems on vertical displays, enabling better formatting in a realistic variety of environments.

I understand your motivation, but I'm not convinced of the trade-off. For one thing, long lines of code are not uncommon in Rust, so I think that in whatever system deals with comments, the long code will make side-by-side windows inconvenient unless you choose a suitable max_width. Second, in practice the big blocks of comments are nearly always at low numbers of indent (on modules or other top-level items), so it would be rare for the two comment restrictions to have much practical difference.
On the other hand, I think the negatives are somewhat large. There was some pushback about even having a separate width for comments, and I think having three ways to configure the width would be confusing.
So, one could argue that the proposed measure of comment width is better than the current one. My counter-example is the common situation where you have a 100/80 setup (defaults) and blocks of comments on zero-indent and four-indent items (e.g., on the module and on each item in the module). In either case, the width of the window is constrained by the code width, not the comment width. But with the current setup you get to have all comment blocks be the 'comfortable comment' width, rather than only the zero-indented one, and the others a bit narrower.
I don't think that is a large advantage, nor an objective one. So we might revisit the decision. We have agreed on this in the formatting RFC process, but there will be another chance to discuss when we post a write-up as an ordinary RFC.

consider a situation where the max width is 120 and the comment width is 60, for a line that has already been indented 40 spaces, you get to make a readable block of comments 60 columns wide.

@nrc I'm not 100% sure what this means :-) Are you saying that the comments are allowed to grow until  the total line length hits the max width configured?
The whole point of specifying a maximum width for the comment lines is to avoid having them stick out in the margin. That means that if I ask for comment lines to be a maximum of 60 chars, then they entire line must not be longer than this. If that length is only respected sometimes (depending on indentation), well then the length becomes meaningless since I need to resize my window depending on the code at hand.

@nrc

So we might revisit the decision. We have agreed on this in the formatting RFC process, but there will be another chance to discuss when we post a write-up as an ordinary RFC.

OK, an RFC for this sounds reasonable to my ears, if that's what you mean. I'm not familiar with the RFC process here, though; can you point me to more relevant information, i.e. timeframe, decision-making, and actionable items on my part? I assume such a proposal would clear up secondary issues such as configuration/documentation and would include at least 3 possible outcomes: make this behavior optional; make this behavior the default; do nothing.
I'm definitely convinced that I've somehow failed at explaining here; it sounds like you want to throw the baby out with the bathwater. Maybe it takes a certain perspective for it to be obvious? In any case, it seems like we can both agree that input from others is needed. I'm open ears for recommendations of what to do next.

The process for deciding formatting has mostly completed over on https://github.com/rust-lang-nursery/fmt-rfcs We're currently writing up a style guide. That (the style guide) will be posted as an RFC for final discussion and sign-off on the RFCs repo (https://github.com/rust-lang/rfcs) probably around the end of the year.

Thanks for pointing me to the RFCs. Based on the discussion I discovered at https://github.com/rust-lang-nursery/fmt-rfcs/issues/17, it seems like the consensus on best practices is to do wrapping of comments by hand. I find the arguments there totally convincing, and disabling automatic wrapping frees me to set any convention on my own code (at the cost of manual enforcement), so this PR no longer has a purpose as far as I'm concerned.
Make no mistake: this convention solves many concrete shortcomings of the default convention. However, I'm obviously not interested in changing the status quo for projects I don't maintain, and trying to do so would be a fool's game anyways, so this is basically an ideal outcome as far as I'm concerned.


#784 - Improved automatic bug reporting.

Actually... I've left a random throw new RuntimeException() somewhere, ErrorHandler ended up opening this link... but the displayed issue's body and title are empty ☹

Actually... I've left a random throw new RuntimeException() somewhere, ErrorHandler ended up opening this link... but the displayed issue's body and title are empty frowning_face

Huh, actually the URL starts with ##, which signifies the fragment in URL! maybe that's the cause? The sample you've provided in https://github.com/VirtusLab/git-machete-intellij-plugin/issues/784#issuecomment-1041521090 has the hashes URL-encoded away

Now when I think about maybe it's browser dependant?
When I try to open an issue (by default it opens in chrome) it looks properly encoded.
Nonetheless I will try to add some manual encoding to ensure that.

I have updated PR and used URI objet  instead of String, so hopefully this will do the trick.
Can you try this yourself?

Okay! seems to work fine now
If it comes to the spurious error in UI tests... no idea what's the reason 😯
In fact if you could just ignore it by adding:
    "at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverImmediately(MessageBusConnectionImpl.java:61)",
```
to `com.virtuslab.gitmachete.uitest.RunningIntelliJPerSuite#ignoredErrorMessages`

Probably the ignoredErrorMessages.exists(s.getMessage.contains) condition at com/virtuslab/gitmachete/uitest/UITestSuite.scala:30 will need to be patched as well... but let's start with just the change to ignoredErrorMessages

I have pushed changes with suggestions applied. You check it out.

Do the honors!


Bench logging changes

This change makes the benches a bit more readable, at the moment they are full of logs which makes it hard to read the results.

Changed the "failed to fetch from cache" tracing::error in RedisCache to a warning. It makes the logs pretty noisy.
Added a new config file to use during benches.
Added a new method to ShotoverManager for starting with a custom config file.

Changed the "failed to fetch from cache" tracing::error in RedisCache to a warning. It makes the logs pretty noisy.

Yeah sorry about that, I was intending to quickly make use of those errors to fix the problems. But then I wasnt able to work on RedisCache for a while.
I'm quite happy for that to become an info!

Added a new config file to use during benches.

I vote to make this apply to both tests and benches.
I also think it would make sense to use warn error level.


[Question]: 404 not found when opening Ragflow page

Describe your problem
I built RagFlow for mac using:
docker build --build-arg ARCH=arm64 -f Dockerfile -t infiniflow/ragflow:dev .

Looking at the docker logs when running ragflow:
(venv) rudys@mac-studio ~/.../Software/ragflow/docker % docker logs -f ragflow-server
[WARNING] [2024-10-31 21:46:13,472] [synonym.__init__] [line:40]: Realtime synonym is disabled, since no redis connection.
[WARNING] [2024-10-31 21:46:13,477] [synonym.__init__] [line:40]: Realtime synonym is disabled, since no redis connection.
[WARNING] [2024-10-31 21:46:13,970] [synonym.__init__] [line:40]: Realtime synonym is disabled, since no redis connection.
[WARNING] [2024-10-31 21:46:13,977] [synonym.__init__] [line:40]: Realtime synonym is disabled, since no redis connection.
[WARNING] Load term.freq FAIL!
[WARNING] Load term.freq FAIL!

        ____   ___    ______ ______ __
       / __ \ /   |  / ____// ____// /____  _      __
      / /_/ // /| | / / __ / /_   / // __ \| | /| / /
     / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
    /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/

[INFO] [2024-10-31 21:46:20,045] [_internal._log] [line:96]: WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (<IP_ADDRESS>)
 * Running on http://<IP_ADDRESS>:9380

However, when opening http://<IP_ADDRESS>:9380, I get the following error:
{
  "data": null,
  "retcode": 100,
  "retmsg": "\u003CNotFound '404: Not Found'\u003E"
}

How can I fix this issue please?

Drop the port number.

Thank you this fix my problem.


buildRustPackage does not apply patches

Issue description
I developed a overlay for my imag project. imag does not (yet) ship a Cargo.lock in its project repository, so I created a Cargo.lock and provided it as patch next to the overlay, with the intention to apply this patch to the repository before building it.
Unfortunately does buildRustPackage not apply this patch and thus the overlay does not work:
ERROR: The Cargo.lock file doesn't exist

Cargo.lock is needed to make sure that cargoSha256 doesn't change
when the registry is updated.

Can we please change buildRustPackage so that it applies the patches right after fetching the repository?
Technical details

system: "x86_64-linux"
host os: Linux 4.14.24, NixOS, 18.03pre130932.cc4677c36ee (Impala)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.0
channels(root): "nixos-18.03pre130932.cc4677c36ee"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

I have the exact same issue. I am trying to find a workaround.
Did you ever find a solution?

Nope, not yet, sorry.

@BadDecisionsAlex @matthiasbeyer use cargoPatches.

I think this can be closed, cargoPatches is the way to go.


310kb minified ?

Readme says that this lib is ~310kb minified. I hope that is a typo and 310 bytes was meant and not 310 kilobytes?

Typo! Fixed in #3


App Crash when mobile wallet's password is changed

In this situation, App is crash.
1.Create new NEM wallet for iOS
2.Setting password to mobile app
3.import wallet QRcode by nano wallet QRcode(Android and iOS)
4.Click "Setting" and will change mobile password,App Crash!
5.Unless uninstall app, password can't  be changed.
Please fix it.
NDXHDV-H3OVEE-BHMJ42-F25ELR-KYHU6O-2JUOLK-JD4A for bounty

@kaijisan, which version are you using?

I do not remember the version. I can change password now.
I wrote this message more than a month ago!!! So it's no wonder that the bugs have been fixed.
It is meaningless to receive such reports at this time.

@thomasoehri would you close this?

Bounty Paid Transaction hash: 8d631979a15202c2e8d67fef4c93f40ca2109f93f96e9f48bd5f3e8735826f93


add tar.xz archive handler

Codecov Report

Merging #1361 into master will decrease coverage by <.01%.
The diff coverage is 40%.

@@            Coverage Diff             @@
##           master    #1361      +/-   ##
==========================================
- Coverage   64.74%   64.73%   -0.01%
==========================================
  Files          76       76
  Lines        5970     5975       +5
  Branches      913      914       +1
==========================================
+ Hits         3865     3868       +3
- Misses       1830     1832       +2
  Partials      275      275

Impacted Files
Coverage Δ

torchvision/datasets/utils.py
60% <40%> (-0.65%)
:arrow_down:

torchvision/transforms/functional.py
71.26% <0%> (+0.28%)
:arrow_up:

Continue to review full report at Codecov.

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

Extracting .tar.xz files is not supported under python 2.x, I'll update the code

Unittest passed on all platforms except for  torchvision_win_py3.6_cpu. Am I missing something ?

@ArdalanM test failures on Windows are unrelated to your PR, I'm disabling those tests in https://github.com/pytorch/vision/pull/1368