Hindi translation

The weblate language code is hi.

Hi @milancurcic can you assign this issue to me?(I've been working on this remotely)

Hello, these are the following changes that I've made
Committed changes are as follows:

created .po files in locale/ja.
translated all the .po files into Japanese.
added 'ja' like {%- for lang in ('zh_CN', 'de', 'en', 'es', 'fr', 'ja', 'nl') %} in pages/_templates/sbt-sidebar-footer.html.
added ja to LANGUAGE in Makefile.
generated using make html and confirmed pages via some browsers.

Is there anything else I need to do before creating a pull request?
P.S. - Really sorry I took a little more time to complete this task


Feature request: Unique visit log and visit log helper and cache data before insert into db

Say more description


gerrit-379976-3

Always any failed on github.

That's not exactly true, as T151145 was closed around week ago and in last commit You can see two builds (on Travis and Appveyor) that do not fail.
There something fundamentally wrong with test suite in pywikibot - we consider all of them as unittests, but lot of them actually use outside services - we should split unittests and integration tests and run only unittests when we check pull requests, but it will require a lot of work.

Ok


fix(@vtmn/react): VtmnSearch 'enter' key inside form tag do not clear input

Changes description
Button type added on the "clear" button to be able to press enter to submit when the VtmnSearch component is used inside a form tag.
Context
When VtmnSearch is used inside a form tag, press "enter" key empty the input and the submit event is not triggered.
It seems like the "clear" button "catch" the enter event and act like it's clicked.
It can be reproduced in the following codesandbox:
https://codesandbox.io/s/vtmnsearch-submit-issue-fsi0f8?file=/src/App.js
Adding a type on the "clear" button fix the issue.
Checklist

[x] Make sure you are requesting to pull a topic/feature/bugfix branch. Please, don't request directly from your main!
[x] Check commits & PR names matches our requested structure. It must follow the https://www.conventionalcommits.org pattern.
[x] Check your code additions will fail neither code linting checks.
[x] I have reviewed the submitted code.
[x] I have tested on related showcases.
[x] If it includes design changes, please ask for a review with a core team designer.

Does this introduce a breaking change?
No

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


Abnormal exits and RSpec traps lead to an abnormal shell.

# Test Test Test
# Oh I'll enter Pry here!
[1] pry(#<RSpec::ExampleGroups::DockerBuilditRepo::Data>)>
# Nah, don't care, keep going, I'm lazy so I'll C-c
RSpec is shutting down and will print the summary report... Interrupt again to force quit.
# RSpec throws, Rspec outputs failures and other data
# RSpec quits

# Press enter just to show it.
jordon ~/development (master *) % jordon ~/development (master *)

When this happens we have to reset the shell to get it fixed.

This could actually be the result of Pry tbh, since it's the one who opens readline.

This has come up before in #1711.  I'm not sure how RSpec could know that it's in a pry shell in order to make it's SIGINT handler behave differently.  But Pry could temporarily override the SIGINT handler while the user is in its shell, then restore the old handler at the end.  As I explained in #1711:

If byebug wants SIGINT to be handled differently while in the middle of a debugging session, I think it should change the SIGINT handler for the duration of the debugging session, and then restore the original SIGINT handler afterwords.  Something like this should work:

def with_sigint_handler(&handler)
orig_handler = trap('INT', &handler)
yield
ensure
trap('INT', &orig_handler)
end

> Otherwise, your solution amounts to _every other ruby project_ changing how they do sigint handling to support byebug (otherwise, if any project handles `SIGINT` then it'll cause the undesirable behavior in byebug).  By replacing the handling while in a debugging session, you can control how it behaves w/o worrying about how the host program normally handles it.

Thoughts?

@myronmarston
require "pry"

module RSpec
  class << self
    attr_accessor :in_pry
    def in_pry?
      return !!@in_pry
    end
  end
end

Pry.config.hooks.add_hook :before_session, :let_rspec_know do
  RSpec.in_pry =  true
end

Pry.config.hooks.add_hook :after_session, :let_rspec_know do |*args|
  RSpec.in_pry = false
end

Digging through and trying to figure out this problem, I can say that it originates in the rake_task.rb

That's nice to see that Pry has those hooks.  That said, in RSpec we've generally resisted adding logic for specific tools like pry to RSpec itself, and I'm not sure I want to start taking on the maintenance burden.  Each tool of this type (e.g. byebug, ruby-debug, debugger, byebug) has the same needs and it would be a large maintenance burden for RSpec to have specific code for each tool like this.  In addition, if the strategy of each of these tools is that the host application must detect when they are in a shell session and react appropriately, then it's not a very sustainable approach -- it's a lot of work for each tool in the Ruby ecosystem like RSpec that handles SIGINT to have to accomodate each and every pry-like tool.
In contrast, Ruby's trap provides a mechanism to replace a signal handler for a time, then restore what was there before.  Such an approach can be used in Pry to make it work properly with RSpec and any other tool that handles SIGINT, and seems like a more sustainable approach.

For now would this work?
orig_handler = nil

Pry.config.hooks.add_hook :before_session, :let_rspec_know do
  orig_handler = trap('INT', -> {})
end

Pry.config.hooks.add_hook :after_session, :let_rspec_know do |*args|
  trap('INT', &orig_handler)
end

@JonRowe @myronmarston I completely understand the need not to want to do that.  I will test out the trap code you provided to see if it works and if it does maybe I could start a RSpec plugin (or I'd be happy to manage one for RSpec) that maintains all these hacks in an isolated repo.

@JonRowe @myronmarston I completely understand the need not to want to do that. I will test out the trap code you provided to see if it works and if it does maybe I could start a RSpec plugin (or I'd be happy to manage one for RSpec) that maintains all these hacks in an isolated repo.

That sounds great!  After proving this approach in a plugin, I wonder if the pry maintainers would be amenable to getting it in pry itself.  After all, there's nothing rspec-specific about replacing the INT handler before a session and restoring it after a session.  I suspect the same problem exists in other tools that handle SIGINT (such as cucumber and minitest) and if pry did this natively than it would (theoretically) make it more robust and able to work properly in whatever environment it is running.
Regardless, I'm going to close this.


Cards in WaterfallLayout aren't always brought into view

🐛 Bug Report
Found in testing:

Sometimes the cards in Waterfall layout don't scroll completely into view. Not the tall ones, but the shorter ones that should be able to fit. It's only reproducible intermittently. I've done it mostly in 'Waterfall layout - quiet cards'. Tab to the cardview, press down until cards only partially scroll into view. (RS)

🤔 Expected Behavior
Cards that can fit into the current viewport should be brought completely into view
😯 Current Behavior
Cards sometimes aren't brought into view completely
💁 Possible Solution
I've reproduced this myself, will need to look into improving the scrollToItem func in CardView
🔦 Context

💻 Code Sample

🌍 Your Environment

Software
Version(s)

react-spectrum

Browser

Operating System

🧢 Your Company/Team
RSP
🕷 Tracking Issue (optional)

See S2 version


sewing-kit-koa should handle locale-specific manifest data

Overview
As part of our effort to provide an equal user experience to merchants in any language, we're updating sewing-kit / react-i18n (#1170) to generate builds for specific locales.
Current manifest format
The current manifest format distinguishes between different builds using a name key/value:
[
  {
    "name": "latest",
    "browsers": ["extends @shopify/browserslist-config"],
    "resolvedBrowsers": ["chrome 77", "firefox 69", ...],
    "entrypoints": {
      "main": {"css": [...], "js": [...]},
      ...
    "asyncAssets": {
        {"./app/foundation/Admin/Admin.tsx": [...], ...},
        ...
     }
  },
  {
    "name": "baseline",
    ...
  }
]

Manifest next
After discussion with the team, sewing-kit-koa should also understand manifest entries that cContain an identifier key/value (If name + identifier are both present, identifier wins).
identifier can contain any information that uniquely identifies a build, e.g.:
[
  {
    "identifier": {"locales": ["fr"], target: "latest"},
    "browsers": ["extends @shopify/browserslist-config"],
    "resolvedBrowsers": [...],
    "entrypoints": {...},
    "asyncAssets": {...}
  },
  {
    "identifier": {"locales": ["fr"], target: "baseline"},
    "browsers": ["extends @shopify/browserslist-config"],
    "resolvedBrowsers": [...],
    "entrypoints": {...},
    "asyncAssets": {...}
  },
]

Note: identifier content may vary for targets.  e.g. an app may be built with:

Multiple latest builds with a single translation set embedded inside each build
A single baseline build that uses the old "fallback language embedded in JS, with multi-languages async loaded on demand" behaviour

Fallback behaviour
It is safe to assume that:

The final target for a locale is the most polyfilled version of the app for that locale
The final entry in the manifest is the most polyfilled version of the app, in the app's fallback language

Type

[x] New feature

Fixed by https://github.com/Shopify/quilt/pull/1199


The HA switch is not triggered when the broker disk I/O load is continuously high.

By simulating the failure of the injected disk load, the current disk usage reaches 99% .
as shown in the following figure:

we can find that the sending of messages continues to fail, and the delay of successfully sent messages also increases.

as shown in the figure, after a manual switch, the message is sent successfully and the failure rate decreases.

From the current implementation, The controller module mainly depends on the heartbeats between the broker and the controller to determine whether the broker status is normal. However, if the broker disk has a problem, the Heartbeat can still be sent to the controller module. In this case, the Controller does not determine that the broker node is abnormal, which triggers a new election and a HA switching.

Yes, in such cases, triggering automatic switching can make things better.
I think it is possible to add health check in the master: When some fatal exceptions (such as IOException caused by disk problems) occur, the master can report to the controller and elect a new master——just as kafka did. Some non-fatal abnormal states may be recorded, which will contribute to the observability of HA.

Should we consider another scenario at the same time?
When network jitter occurs, network reconnection may be triggered. In this case and in the view of the controller module, the broker channel will change.
when the controller detects that the old channel is closed, it will directly kick the broker out of the brokerLiveTable and trigger a re-election.
At this point, the broker may reconnect quickly. Is it necessary to do a HA switching?

Should we consider another scenario at the same time?
When network jitter occurs, network reconnection may be triggered. In this case and in the view of the controller module, the broker channel will change. when the controller detects that the old channel is closed, it will directly kick the broker out of the brokerLiveTable and trigger a re-election.
At this point, the broker may reconnect quickly. Is it necessary to do a HA switching?

maybe we can open another issue to discuss this situation.

It does appear to be a problem. Need a clear rule to determine whether the machine is offline. we can discuss this rule

@RongtongJin @ShannonDing

I think it's a good idea to implement a health check endpoint on the broker side. Then  the brokerIsActive is nolong check the heartbeat,but invoke the endpoint. the endpoint is as simple as the heartbeat, just return the status health or not.  When elect the broker from the syncStateSet, it should also invoke it to check whether the broker is health before can be elelct as Master.

At this point, the broker may reconnect quickly. Is it necessary to do a HA switching?

IMO, it't not neccssary. what more, The current controller has three places to trigger the election:

The broker channel closed.
The BrokerHeartbeatManager scanNotActiveBroker
The DLedgerController scanInactiveMasterAndTriggerReelect.

I think just the scanInactiveMasterAndTriggerReelect is  enough, In the current implementation, it is easy to have a concurrent election problem.

I think it's a good idea to implement a health check endpoint on the broker side. Then the brokerIsActive is no longer check the heartbeat,but invoke the endpoint. the endpoint is as simple as the heartbeat, just return the status health or not. When elect the broker from the syncStateSet, it should also invoke it to check whether the broker is health before can be elelct as Master.

At this point, the broker may reconnect quickly. Is it necessary to do a HA switching?

IMO, it't not neccssary. what more, The current controller has three places to trigger the election:

The broker channel closed.
The BrokerHeartbeatManager scanNotActiveBroker
The DLedgerController scanInactiveMasterAndTriggerReelect.

I think just the scanInactiveMasterAndTriggerReelect is enough, In the current implementation, it is easy to have a concurrent election problem.

Good suggestion. I also believe that disconnecting the channel should not immediately trigger the election.

@ShannonDing @GenerousMan @DongyuanPan @echooymxq I agree with you. I think that switching is necessary when there are fatal I/O issues (such as disk corruption or abnormally high I/O).
However, we also need to give users a switch because if the disk is normal but the traffic itself is large, resulting in continuously high I/O, the switch will further affect the stability of the cluster.
In addition, switching standards and threshold settings is very challenging.

@ShannonDing @GenerousMan @DongyuanPan @echooymxq I agree with you. I think that HA switching is necessary when there are fatal I/O issues (such as disk corruption or abnormally high I/O). However, we also need to give users a optional switch because if the disk is normal but the traffic itself is large, resulting in continuously high I/O, the HA switch will further affect the stability of the cluster.

I think it's a good idea to implement a health check endpoint on the broker side. Then the brokerIsActive is no longer check the heartbeat,but invoke the endpoint. the endpoint is as simple as the heartbeat, just return the status health or not. When elect the broker from the syncStateSet, it should also invoke it to check whether the broker is health before can be elelct as Master.

At this point, the broker may reconnect quickly. Is it necessary to do a HA switching?

IMO, it't not neccssary. what more, The current controller has three places to trigger the election:

The broker channel closed.
The BrokerHeartbeatManager scanNotActiveBroker
The DLedgerController scanInactiveMasterAndTriggerReelect.

I think just the scanInactiveMasterAndTriggerReelect is enough, In the current implementation, it is easy to have a concurrent election problem.

In fact, what we hope is that when the master fails, re-election can be triggered timely and quickly to ensure a timely switchover between the master and slave nodes. However, we don't want to trigger frequent HA switches due to small jitters.
Therefore, it is necessary to do regularly scanning node status actively and  do a passively trigger re-election by node abnormal events. What is important is that we may need to clarify the threshold and conditions for HA switch, as well as the timing for triggering re-election.


SQLStore still makes use of PEAR DB

It is clearly stated in the class comments that PEAR can be replaced with a class extending DatabaseConnection. This is for good, I don't have PEAR installed on my system and don't want to install it.
However, SQLStore still uses PEAR :
function isError($value)
{
return PEAR::isError($value);
}
I have set it to return FALSE at the minute as I am not too sure what to do (perhaps check for PEAR existence and if not check for parent isError() existence). Anyway, you can't get it to work if you don't have PEAR installed and even if so this function doesn't make sense.
Some class comments should be corrected as well, as sometimes it only refers to PEAR.

This repo is being archived. Closing issue.


Major speed regression for gron.awk in goawk 1.11.0+

I know that this is sort of expected as it changes the logic of string-related functions to be more POSIX-compliant.
And I can confirm that adding -b flag makes it as fast as before.
BUT! What is very interesting, GAWK is able to show very close (I would say, the same) speed for with and without -b switch!
Did they find a way to make string functions O(1), not O(N)?
If yes, shell we use the same approach for GoAWK?
If need be I can provide more info and instructions to reproduce the results I've found.
=====================
Benchmarking gawk51 -b ...
24571

real    0m1.150s
user    0m1.148s
sys     0m0.008s

=====================
Benchmarking gawk51 ...
24571

real    0m1.179s
user    0m1.182s
sys     0m0.000s

=====================
Benchmarking mawk134 ...
24571

real    0m0.704s
user    0m0.711s
sys     0m0.000s

=====================
Benchmarking goawk1.13.0 -b ...
24571

real    0m1.597s
user    0m1.882s
sys     0m0.077s

=====================
Benchmarking goawk1.13.0 ...
(HANGS...)

The command I use for benchmark is
time $AWK -f gron.awk test_data/big.json | wc -l

The files gron.awk and test_data/big.json can be found in https://github.com/xonixx/gron.awk repo.

Oooh, this is good to know, thank you! And yes, the kinds of things gron does is basically the worst case for this (lots of string length / substr operations). I'm glad you can use the -b switch as a stop-gap.
I've tested locally, and goawk -b (on my bytecode branch) takes 1.1s, whereas goawk without -b took 8m24s. Yikes!
I guess we're essentially seeing "accidentally quadratic" behavior here (because individual string length operations are O(N) now, and there are N of them)?
Gawk probably determines the string length as its splitting the input. We would have to do that in GoAWK to improve this. It might slow down others things, though, and wouldn't be trivial, which is why I didn't do that at first.
Thanks for the report. Maybe making -b the default (with its current performance characteristics) was a bad idea. I think the gron.awk case shows this is bad enough I should probably change back to bytes as the default -- thoughts?

I'm thinking of just reverting the change from bytes to unicode outright (and hope not many people are depending on interp.Config.Bytes or goawk -b yet -- unlikely, seeing it just came out a few weeks ago). This is annoying but I think it's the right thing -- the O(N) behavior this introduced is obviously not a good thing. And I can't think of a simple way to fix it, so better to revert quickly and then fix slowly later. Thoughts?


Payment - The default label is set automatically when closing the payment tab

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to URL https://staging.new.expensify.com/
Login with any Expensifail account
Go to Settings -> Payments
Add Chaise as the 1-st Payment method
Add Fiderily as the 2-nd Payment method
Close Payment tab
Reopen Payment tab

Expected Result:
The default label is not set for any payment method
Actual Result:
2-nd Payment method set automatically as default
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/c48d64f1-96a3-48e8-abad-07f5f1ea97e1
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Tea
Slack conversation:
View all open jobs on GitHub

I can reproduce this, but this is expected behavior. if you only have one payment method, it is always the default, so the label is not needed.
When you add a second payment method, we add the default flag to your most recently added payment method, as there is now more than one, so we need to show the customer which is default.
Closing as this is not a bug!


Missing predis/predis compose dependency when running when running wi…

This PR address a missing library ("predis/predis") when running in Redis mode.

I am not entirely sure on best practices here, does it make sense to add this dependency to the Cachet composer.json rather than as a global include?
cc: @jbrooksuk @GrahamCampbell

But Cachet itself already requires predis/predis.

Interesting as I tried to start the container with QUEUE_DRIVER to Radius.
2017-03-24T09:11:51.596426769Z 2017-03-24 09:11:51,596 INFO spawned: 'queue-worker' with pid 65
2017-03-24T09:11:51.722178975Z 2017-03-24 09:11:51,722 INFO exited: queue-worker (exit status 255; not expected)
2017-03-24T09:11:53.724894415Z 2017-03-24 09:11:53,724 INFO spawned: 'queue-worker' with pid 73
2017-03-24T09:11:53.905065235Z 2017-03-24 09:11:53,904 INFO exited: queue-worker (exit status 255; not expected)
2017-03-24T09:11:56.909887427Z 2017-03-24 09:11:56,909 INFO spawned: 'queue-worker' with pid 81
2017-03-24T09:11:57.100852100Z 2017-03-24 09:11:57,100 INFO exited: queue-worker (exit status 255; not expected)
2017-03-24T09:11:58.101963886Z 2017-03-24 09:11:58,101 INFO gave up: queue-worker entered FATAL state, too many start retries too quickly

Diving into the container and trying to start artisan queue:work result in:
$ php artisan queue:work --delay=2 --sleep=1 --tries=3
  [Symfony\Component\Debug\Exception\FatalErrorException]
  Class 'Predis\Client' not found

Further investigations below.
$ ls -la vendor/ | grep predis

$ php composer.phar require "predis/predis:^1.1"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing predis/predis (v1.1.1)
    Loading from cache
[...]
predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol)
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize --force
Generating optimized class loader
Compiling common classes
> php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
> php artisan route:cache
Route cache cleared!
Routes cached successfully!

$ php composer.phar install --no-dev -o
[...]

ls -la vendor/ | grep predis
drwxr-xr-x  3 www-data www-data 4096 Mar 24 09:53 predis

$ php artisan queue:work --delay=2 --sleep=1 --tries=3
$ echo $?
0

Success !

Right, it seem cachet's compose.json on the master branch does not include  predis/predis (but as @jbrooksuk mentioned earlier, it's present on "2.4")..
I am closing my PR and will be patient... wait for 2.4 to be merged back into master. Thanks.

I need to backport some changes into 2.3 so I'll make sure this is one of them.

Thanks @jbrooksuk, that would be great!


Documentation

md docs are incomplete
examplegame startup doc is out of date

Hi, I am a professional technical writer and would like to help.  Is this still an issue?


Feature Request: Alert times

Allow us to specify a time for alerts

My issue on this one is that when Glass restarted (with the server), I started getting notifications right away... Over 1400 in under one night, causing me to go in during the weekend to clear it all out.
I appreciate the alerts, but when it's too much, it becomes hurtful.


feat(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1374

Questions ?
Please refer to the Backport tool documentation


MODE-2494 Adding check whether a child node join has been reversed du…

…ring query optimization, mirroring logic for SameNodeJoinCondition and EquiJoinCondition.
For some complex queries, such as:
SELECT parent.[jcr:path], child1.[jcr:name], desc.[jcr:name]
FROM [nt:unstructured] AS parent
LEFT OUTER JOIN [nt:unstructured] AS child1 ON ISCHILDNODE(child1,parent)
INNER JOIN [nt:unstructured] AS desc on ISCHILDNODE(desc, child1)
LEFT OUTER JOIN [nt:unstructured] AS child2 ON ISCHILDNODE(child2,parent)
WHERE ISCHILDNODE(parent,'/')
AND NAME(child2) = 'Hybrid'
AND NAME(desc) LIKE 'Nissan%'
the query optimizer reverses the left and right sides of the join, leading to an assertion error in ScanningQueryEngine.
This fix checks if the join has been reversed, and creates rowextractors for the opposite columns if this is the case.
Added three tests, two which are fixed by this change, and one which is still an issue, suggesting a deeper problem. For the remaining (Ignored) test, the exception is in the DescendantNodeJoinCondition code.
This seems less simple to resolve, and probably a true fix lies in ReplaceViews or somewhere similar.

with the exception of the above question, the fix looks good to me, thanks @dankelleher

Looks good to me.


Authors

I think authors should be added in a simple way by an author just adding
by Bruce Swann
Posted on 11-18-2019

at the top of the document.
As this is below the fold i think client sided manipulation of the DOM should be perfectly fine to create the "Author" experience
Indexing would have to be adapted to be able to deal with this new way of specifying authors.
Showing all posts for a specific author i could see a default way of dealing with it, intuitively something like /authors/bruce-swann.html where we could have a bio written up and possibly have access to the prominent image as their headshot. alternatively, we could have all the authors images in separated out.

HTML rendering fixed with #9
Will create follow up issues for other part to be handled like url handling.


Improvement to support full-width characters (like CJK characters)

Thanks for bring this nice turbo vision style library to the world.
Chinese characters usually take two characters width to display, this messed the UI.
Screenshot:

Thank you for reporting this.
I will have to do some thinking about the right way to solve this one.  I would like to do this in a general-purpose way, not just double-width but potentially double-height as well (that would give TTerminal true VT100 double-width/height support too).

@moontide Do you have a preferred font with good coverage of full-width characters?
Now that I have image support, I might be able to at least render the full-width characters correctly.  It would be a start anyway.

@moontide Do you have a preferred font with good coverage of full-width characters?

My favorite font is 'WenQuanYi Zen Hei Sharp' (‘文泉驿点阵正黑’ in Chinese), it's a bitmap font which is actually 'WenQuanYi Bitmap Song' font embedded in 'WenQuanYi Zen Hei' font.
The webpage of WenQuanYi font project said it covers all characters in GB2312/Big5/GBK/GB18030 character sets. But I don't know is it good enough for other languages. Maybe adobe-source or google-noto fonts is a better choice, but they don't provide bitmap fonts.
WenQuanYi Zen Hei font can be downloaded from sourceforge.net.
https://sourceforge.net/projects/wqy/files/wqy-zenhei/

Now that I have image support,

Whaaaaaat? Image support in jexer, that's amazing!

I might be able to at least render the full-width characters correctly. It would be a start anyway.

Do you mean render characters as an image or something else?
When rendering characters as an image, it could be a trouble when changing font size in terminal emulator.

WenQuanYi Zen Hei font can be downloaded from sourceforge.net.
https://sourceforge.net/projects/wqy/files/wqy-zenhei/

Thank you, I will check it out!

Now that I have image support,

Whaaaaaat? Image support in jexer, that's amazing!

Yup, we have image support. :)  It's over on the GitLab repo now: https://gitlab.com/klamonte/jexer , there are some screenshots there.  If you want more of the nitty-gritty, the tail end of the writeup here discusses sixel in Jexer.  I have never heard of a TUI with mixed text/sixel support until now, Jexer might be the first of its kind.  (The other projects appear to render to bitmap, then convert the whole bitmap to sixel.)
Credit for the idea actually comes from your feature request here.  I've been wanting image support for a few years, but the request for CJK support pushed it into the front.

I might be able to at least render the full-width characters correctly. It would be a start anyway.

Do you mean render characters as an image or something else?

Initially, rendering an as image for Xterm.  (Swing would be drawing from the font directly, so would look correct but Jexer would internally think of it as image and not text.)  If I can get a smooth rendering of full/double-width now, then I also get true VT100 support in the widget, and afterwards I can see about really understanding the difference between narrow/wide on screen and handling full-width text entry and mouse pointer.  Once Jexer really understands narrow/wide, CJK could be an exposed option to use either native font or rendered, a bit like Xterm's ability to select from multiple fonts.

When rendering characters as an image, it could be a trouble when changing font size in terminal emulator.

jexer.backend.ECMA48Terminal now asks xterm for the window size, and figures out the text cell dimensions.  Hopefully it will be straightforward to detect the font size change.
Sidenote: on MultiBackend, the smallest text cell size of all the screens is returned for TImage, which it uses to figure out how to break up the image into cell pieces.  This has the interesting effect that one can see an image in 24-bit on Swing and sixel palette on xterm at the same time:

Going to follow up tracking of this over at GitLab: https://gitlab.com/klamonte/jexer/issues/35


Get rid of std::bind.

std::bind is bug prone and should be avoided.
Lambdas are a more general and safer replacement.

E.g. https://www.youtube.com/watch?v=zt7ThwVfap0&t=1940s
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

@wally-the-cartographer merge

Merge requested by authorized user wohe. Merge queue now has a length of 2.


Fix building in docker

now has default build target on make
test depends on non-bogus target

cc @jeanlaurent @dgageot @nathanleclaire

go test should already compile dependencies right?  Is test target doing other tests as well such as integration tests?  I thought those ensured that we compiled the binary first too.

test is also a folder inside the repo, and make is confused by this, unless the target depends on another target to run. This is just to workaround make here.

@nathanleclaire additionally the build now no longer tries to build _test files in cmd.


How do you set a knob's value so that it does not "snap back"?

I have a VST parameter, in this case, volume, that I have interacting with a knob::State. I would like for the knob to be able to set the parameter, and for when the parameter is set by a VST host, that the knob change to reflect it. (ex: If I have an automation curve in Ableton that changes my volume parameter, I would like for the volume knob to rotate with it, and if I rotate the knob in GUI, I would like to have the parameter change to reflect that). There are a few problems I have encountered:
I have manage to almost achieve this goal. Specifically, I can

Turn the knob in the GUI and have the parameter change to reflect it.
Change the parameter via the VST host and have the knob rotate. I do this by altering knob.normal_param.value to the value I want.

However, when I click on the knob, the knob ends up "snapping" back to the previous spot it was since interacting with it in the GUI. (For example, if you lower the volume via the host, then click the knob in the GUI, the knob will "snap back" to its prior value). I think this is due to the fact that knob::State has an internal field continuous_normal, which looks like it tracks what the "real" position of the knob was. Hence, when the knob gets interacted with, this overwrites the previous value of knob.normal_param.value, causing the snapping behavior. It seems like this makes it impossible to actually keep a knob set via the normal_param.value field, since it will just snap upon interaction.
Thus, my question: How do I set the knob so that it does not do this snapping behavior?
Also, I've included some of the relevant code below:
// Messages for iced
pub enum Message {
    MasterVolume(Normal),
    ForceRedraw,
}

// My GUI struct
pub struct UIFrontEnd {
    // My knob in the GUI
    master_vol_knob: knob::State,
    // The actual parameters that the VST host sets. This is shared with the
    // host thread. All that is relevant is that it contains a field called
    // volume that is an AtomicFloat.
    params: std::sync::Arc<RawParameters>,
}

impl Application for UIFrontEnd {
    type Message = Message;

    fn update(&mut self, message: Self::Message) -> Command<Self::Message> {
        match message {
            Message::MasterVolume(normal) => {
                // This is meant to update the parameter when the GUI knob is
                // changed. However, `normal` ends up being the value of whatever
                // the knob was since the last time it was interacted with in the
                // GUI, which causes the volume to "snap back" to the wrong value
                self.params.volume.set(normal.as_f32());
            }
            // I end up sending this message via a Subscription every few
            // miliseconds. This is used to make the GUI knob update when
            // the VST host sets the parameter.
            Message::ForceRedraw => {
                self.master_vol_knob.normal_param.value = Normal::new(self.params.volume.get());
            }
        }

        Command::none()
    }

    fn view(&mut self) -> iced::Element<'_, Self::Message> {
        /// The knob widget displayed on the GUI. It sends Message::MasterVolume messages
        /// when interacted with.
        let master_vol_widget = Knob::new(&mut self.master_vol_knob, Message::MasterVolume);

        let content: Element<_> = Column::new().push(master_vol_widget).into();
        Container::new(content).into()
    }

    // This subscription is used to send ForceRedraw messages, which is just used
    // so that iced redraws the GUI.
    fn subscription(
        &self,
        _window_subs: &mut WindowSubs<Self::Message>,
    ) -> Subscription<Self::Message> {
        iced_futures::time::every(Duration::from_millis(33)).map(|_| Message::ForceRedraw)
    }
}

TL;DR: How do you set a knob to a different value so that when the user interacts with it, the knob does not go back to its previous value?

Maybe fix found: I implemented a function that sets both continuous_normal and normal_param.value. This seems to fix the snapping behavior.
https://github.com/a2aaron/iced_audio/commit/66c34cd61da8bbdda726bb04830587a5cac779e0
I think I can just add a similar function to the other widgets, since all of those seem to have the same sort of bug.


Hob is better

Hob is way better because hue is bad and hob is smartz
This was written by the anti hue society 😎

no

hue is secret member of ccp

okay no more joke issues.


Fix trufflehog tests

Trufflehog 3.49.0 fixed some of the longstanding issues related to line numbers and missing issues (https://github.com/trufflesecurity/trufflehog/issues/1537). However, there are still some duplicate issues showing up. This is strictly an improvement, but I've added another test input file to reflect this. Note the changes from:

linters/trufflehog/test_data/trufflehog_v3.31.3_buff_size.check.shot
linters/trufflehog/test_data/trufflehog_v3.40.0_buff_size.check.shot
linters/trufflehog/test_data/trufflehog_v3.49.0_buff_size.check.shot

Also marked snapshot as release

what is the reason for the cc test file being so enormous?

what is the reason for the cc test file being so enormous?

trufflehog only exhibits the issue seen in that snapshot progression on very specific buffer sizes. The easiest one I could generate was the one included in the test (this is also the file I provided in the linked issue).

@laurit17


🚀 Feature: Add Sync with Meilisearch for Node.js (TypeScript)

Appwrite Functions allow you to extend and customize your Appwrite server functionality by executing your custom code. 🤩 You can learn more at our official Appwrite Functions docs.
Your task is to implement the Sync with Meilisearch function in Node.js (TypeScript). You can look at the existing Appwrite Functions Templates in another coding language.
Your function should behave and be implemented similarly to existing Sync with Meilisearch Node.js template.
Tasks summary:

[ ] Fork & clone Appwrite's templates repository
[ ] Create a branch feat-implement-sync-with-meilisearch-node-typescript
[ ] Write code for the function in folder node-typescript/sync-with-meilisearch/.
[ ] Test the function using Appwrite, provide a video.
[ ] Write a README.md explaining what the function does, how to use it, and customize it. Here is an example.
[ ] Submit a pull request to our templates repository

If you need any help, contact us on our Discord server.
Are you ready to work on this issue? 🤔 Let us know, and we will assign it to you 😊
Happy Appwriting!

Can i be Assigned this ?
Thank You

Hi @AvaterClasher, I've assigned this issue to you! Thanks your interest in contributing to Appwrite! Happy Hacktoberfest 🎃
Notes:

Please update us with your progress every 3 days, so that we know that you are working on it.
Join us on Discord - https://appwrite.io/discord to chat about Hacktoberfest and Appwrite!

If AvatarClasher is not interested in it, kindly reassign it to me.

Closing this as it has been solved https://github.com/appwrite/templates/pull/211


Error: conversion webhook for getambassador.io/v3alpha1, Kind=Module failed

Describe the bug
conversion webhook for getambassador.io/v3alpha1 is not working. It is still possible to use /v2 but /v3alpha1 throws error: Post [https://emissary-apiext.emissary-system.svc:443/webhooks/crd-convert?timeout=30s]: Service Unavailable, even when emissary-apiext pods are running without any error.
To Reproduce
Steps to reproduce the behavior:

follow installation steps to install via helm https://www.getambassador.io/docs/emissary/latest/topics/install/helm

Expected behavior
Installing emissary-ingress should work when following documentation
Versions (please complete the following information):

Ambassador: [3.4.0 - 3.6.0]
Kubernetes environment [bare metal]
Version [1.22.16]

Additional context
Log messages from emissary-ingress
2023-04-28 04:24:44 diagd 3.6.0 [P15TMainThread] INFO: AMBASSADOR_FAST_RECONFIGURE enabled, initializing cache 2023-04-28 04:24:44 diagd 3.6.0 [P15TMainThread] INFO: WILL NOT update Mapping status 2023-04-28 04:24:44 diagd 3.6.0 [P15TMainThread] INFO: thread count 9, listening on <IP_ADDRESS>:8004 time="2023-04-28 04:24:44.2300" level=error msg="Post \"http://localhost:8004/_internal/v0/watt?url=http%3A%2F%2Flocalhost%3A9696%2Fsnapshot\": dial tcp <IP_ADDRESS>:8004: connect: connection refused" func=github.com/emissary-ingress/emissary/v3/cmd/entrypoint.notifyWebhookUrl file="/go/cmd/entrypoint/notify.go:124" CMD=entrypoint PID=1 THREAD=/watcher/notifyCh time="2023-04-28 04:24:45.2312" level=error msg="Post \"http://localhost:8004/_internal/v0/watt?url=http%3A%2F%2Flocalhost%3A9696%2Fsnapshot\": dial tcp <IP_ADDRESS>:8004: connect: connection refused" func=github.com/emissary-ingress/emissary/v3/cmd/entrypoint.notifyWebhookUrl file="/go/cmd/entrypoint/notify.go:124" CMD=entrypoint PID=1 THREAD=/watcher/notifyCh time="2023-04-28 04:24:46.2327" level=error msg="Post \"http://localhost:8004/_internal/v0/watt?url=http%3A%2F%2Flocalhost%3A9696%2Fsnapshot\": dial tcp <IP_ADDRESS>:8004: connect: connection refused" func=github.com/emissary-ingress/emissary/v3/cmd/entrypoint.notifyWebhookUrl file="/go/cmd/entrypoint/notify.go:124" CMD=entrypoint PID=1 THREAD=/watcher/notifyCh time="2023-04-28 04:24:47.2335" level=error msg="Post \"http://localhost:8004/_internal/v0/watt?url=http%3A%2F%2Flocalhost%3A9696%2Fsnapshot\": dial tcp <IP_ADDRESS>:8004: connect: connection refused" func=github.com/emissary-ingress/emissary/v3/cmd/entrypoint.notifyWebhookUrl file="/go/cmd/entrypoint/notify.go:124" CMD=entrypoint PID=1 THREAD=/watcher/notifyCh time="2023-04-28 04:24:48.2347" level=error msg="Post \"http://localhost:8004/_internal/v0/watt?url=http%3A%2F%2Flocalhost%3A9696%2Fsnapshot\": dial tcp <IP_ADDRESS>:8004: connect: connection refused" func=github.com/emissary-ingress/emissary/v3/cmd/entrypoint.notifyWebhookUrl file="/go/cmd/entrypoint/notify.go:124" CMD=entrypoint PID=1 THREAD=/watcher/notifyCh time="2023-04-28 04:24:49.2358" level=error msg="Post \"http://localhost:8004/_internal/v0/watt?url=http%3A%2F%2Flocalhost%3A9696%2Fsnapshot\": dial tcp <IP_ADDRESS>:8004: connect: connection refused" func=github.com/emissary-ingress/emissary/v3/cmd/entrypoint.notifyWebhookUrl file="/go/cmd/entrypoint/notify.go:124" CMD=entrypoint PID=1 THREAD=/watcher/notifyCh 2023-04-28 04:24:49 diagd 3.6.0 [P15TMainThread] WARNING: Scout: could not post report: HTTPSConnectionPool(host='metriton.datawire.io', port=443): Max retries exceeded with url: /scout (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f3895094610>: Failed to establish a new connection: [Errno -3] Try again')) 2023-04-28 04:24:49 diagd 3.6.0 [P15TMainThread] INFO: Ambassador 3.6.0 booted [2023-04-28 04:24:49 +0000] [15] [INFO] Starting gunicorn 20.1.0 [2023-04-28 04:24:49 +0000] [15] [INFO] Listening at: http://<IP_ADDRESS>:8004 (15) [2023-04-28 04:24:49 +0000] [15] [INFO] Using worker: gthread [2023-04-28 04:24:49 +0000] [17] [INFO] Booting worker with pid: 17 2023-04-28 04:24:49 diagd 3.6.0 [P17TAEW] INFO: starting Scout checker and timer logger 2023-04-28 04:24:49 diagd 3.6.0 [P17TAEW] INFO: starting event watcher 2023-04-28 04:24:50 diagd 3.6.0 [P17TAEW] ERROR: Secret fallback-self-signed-cert.emissary unknown 2023-04-28 04:24:50 diagd 3.6.0 [P17TAEW] INFO: EnvoyConfig: Generating V3 2023-04-28 04:24:50 diagd 3.6.0 [P17TAEW] INFO: V3Ready: ==== listen on <IP_ADDRESS>:8006

Hello @cindymullins-dw i just reinstalled the entire cluster from 1.22.16 to 1.25.9  and the conversion is still working only for  Listener resource

Thanks for the update @JKrajnik .  Will keep this open as a bug.


Full functionality [plus unit testing]

Make able to install fully and actually run.

Load now works


Controlling a mob that isn't a player prevents the client from seeing the source of pointing

Description
Whenever you or someone else points to something and you're pretty much any ghost role, you don't get the "X points at Y" floating message that comes with the pointing arrow.
Video
https://user-images.githubusercontent.com/14862618/192927992-c7510592-84ce-492a-b7f6-718f8b4b0328.mp4

Seems to be fixed for now.


Work in progress: Add GitInfo

This commit adds a GitInfo object to Page if EnableGitInfo is set.
It then also sets Lastmod for the given Page to the author date provided by Git.
The Git integration should be fairly performant, but tests shows that building the docs site goes
from 600 to 800 ms.
Fixes #2102

This has some input:
http://stackoverflow.com/questions/9417634/list-last-commit-dates-for-a-large-number-of-files-quickly

This should work:
git log --name-only --format=format:"%t|%aN|%aE|%ai|%s" HEAD

I have updated the PR.
So if other could chime in with their opinions about:

Is this a good idea? (I know I want it)
Does this implementation make sense?
Does setting Lastmod make sense?

/cc @spf13

Haven't tested this, but I like the idea. :+1:
Is the AbbreviatedHash necessary?  That could be derived later from the Hash if you needed it.

Is the AbbreviatedHash necessary?

You get it for free, and that is the value I want to show on my pages (if any); it's not possible to derive it from the Hash from inside of a Hugo template.

{{ substr .GitInfo.Hash 0 -7 }}

{{ substr .GitInfo.Hash 0 -7 }}

You assume 7 is a constant. It isn't.

{{ substr .GitInfo.Hash 0 -7 }}

Which assumes 7 is a constant value. It isn't.

My understanding was that it's configurable (via the core.abbrev setting).  Defaults to 7.  If you change the setting in your repo, you could update your template to match.
I just thought we could save memory allocs, but it's not that much of a win to drop it.  You win.  :)

You kind of got a point, but it is simplest to let Git and the Git config win ... The memory win is ... not much. Maybe Git-Junio will invent some smart "sliding abbreviated" hashes in the future ... Which is only length 3 for small repos ...

Note to self: Maybe add a CLI flag for this as well, to make it easier to switch it off when in server mode etc.

This is ready now. It needs some docs, but that will have to wait.
/cc @digitalcraftsman @moorereason @spf13 and gang.


AMBARI-23600. cluster name validation issue in ADMIN view

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
Cluster name max-length is setted to 100 symbols, field is required (no other validations)
How was this patch tested?
manually
(Please explain how this patch was tested. Ex: unit tests, manual tests)
(If this patch involves UI changes, please attach a screen-shot; otherwise, remove this)
Please review Ambari Contributing Guide before opening a pull request.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1889/
Test FAILed.
Test FAILured.


Suricata template creation doesn't create temp config properly

Suricata template generation doesn't append the proper Yaml for custom rulesets.
Steps to recreate:
:/opt/IDSDeathBlossom$ python /opt/IDSDeathBlossom/IDSDeathBlossom.py -c /opt/IDSDeathBlossom/config/config.yaml -R run -t "suricata-2.0.6-test-test" --pcappath="/tmp/test.pcap" --globallogdir=/tmp/log/ --glogoverride --reporton=ids --use-custom-rules  --target-opts="all:customrules=/tmp/20160824.070816.1149512942.rules"
2016-08-25 12:14:54,993 - WARNING - cmd_wrapper - /opt/IDSDeathBlossom/IDSDeathBlossom.py +106 - there was an error executing ulimit -c unlimited; /opt/suricata206/bin/suricata -c /tmp/kIYPa3 -l /tmp/log/ -r /tmp/test.pcap -v --runmode=single --set "stream.checksum-validation=no"
25/8/2016 -- 12:14:54 -  - [ERRCODE: SC_ERR_CONF_YAML_ERROR(240)] - Failed to parse configuration file at line 439: did not find expected key
Generated config /tmp/kIYPa3 doesn't include "rule-files:"
$ tail -n 5 /tmp/kIYPa3
napatech:
hba: -1
use-all-streams: yes
streams: [1, 2, 3]

/tmp/20160824.070816.1149512942.rules

Adding "rule-files:" to /opt/suricata206/etc/suricata206.template works.  I am thinking having the code append the  "rule-files:" key before "  - /tmp/20160824.070816.1149512942.rules" will be the best bet for a fix.

fix in https://github.com/EmergingThreats/IDSDeathBlossom/pull/21

fixed, maintainer pls close


Add ability to run multiple rulesets simultaneously OR put a rule in multiple rulesets

It would be nice to be able to keep granular rulesets (e.g. a ruleset for typing judgements, a ruleset for program manipulations) but be able to run them all together. As far as I can tell, run can only take a single ruleset arg. Another way to do this would be to assign a rule to multiple rulesets (e.g. typing and all) and have one ruleset that contains all rules.

I believe you can run a sequence of rulesets repeatedly, or until they are saturated?
https://github.com/egraphs-good/egglog/blob/43a6a3ba0e84954160d4eb8eda1ac5bdf23da310/tests/schedule-demo.egg#L18-L21
So like this?
(run-schedule
      (saturate (seq
            (run typing)
            (run other))))

Running two rules sequentially is different from running them all together,
though. The difference might not matter in many cases, but there could be
exceptions.
On Sun, Oct 1, 2023 at 7:07 PM Saul Shanabrook @.***>
wrote:

I believe you can run a sequence of rulesets repeatedly, or until they are
saturated?
https://github.com/egraphs-good/egglog/blob/43a6a3ba0e84954160d4eb8eda1ac5bdf23da310/tests/schedule-demo.egg#L18-L21
So like this?
(run-schedule
(saturate (seq
(run typing)
(run other))))
—
Reply to this email directly, view it on GitHub
https://github.com/egraphs-good/egglog/issues/246#issuecomment-1742310628,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADEKPFCFUNTUMIMEB4C6T2TX5IOWPANCNFSM6AAAAAA5OX6TPM
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks to the both of you. What Saul posted should be good enough for me for now, but yeah, seems like Yihong is right about the details. Perhaps something that allows you to concatenate two rulesets to make a new ruleset would be nice!
Unsure if you guys wanna take further action on this. Feel free to close.

Multiple rulesets can be simultaneously run with combined-ruleset now (#362).


Dio.download - Access response in the savePath callback?

New Issue Checklist

[x] I have searched for a similar issue in the project and found none

Issue Info

Info
Value

Platform Name
flutter / ios

Platform Version
1.22.5

Dio Version
3.0.10

Issue Description and Steps
Is it possible to access the request object in the Dio.download() savePath callback?  Currently it provides access to the Headers, but that doesn't have the information I need.
I'm trying to download a file that involves a redirect, and I would like to return the name of the basename of the redirect url, not the original,.
For example:  https://whatever.com/file/download  redirects to s3.amazonaws.com/somefile.jpg .  I would like to set savePath to "somefile.jpg", but I don't seem to have access to the redirected URL in the savePath callback -- I believe access to the redirected request would contain this.
Thank you!

There are two extra info for download API  in 4.0.0-beta4:
var r = await Dio().download(
  uri,
  (Headers headers) {
    // redirect counts
    print(headers.value('redirects'));
    // real uri
    print(headers.value('uri'));
  },
);


can't move even with wasd disabled

hi, can't move or do anything with wooting enabled and wasd disabled and i have locked my input method as well, also tried to do all the downloads and none of them are working and also tried running as admin and that doesn't work, works fine with keys2x, someone help plz

This has likely to do with the different gamepads Key2XInput and Wooting Double Movement app emulate. Wooting emulates DS4, where Key2XInput emulates XInput by default.
There is likely something preventing the DualShock 4 gamepad from interacting with the game.
The most common issue here
There is a PlayStation 4 controller connected to your PC.
The Wooting Double Movement app will be fighting with your physical controller for the 'DS Gamepad 1 slot' in Fortnite.
This may also happen if you are running multiple controller emulating(double movement) apps at the same time.
To solve this
Unplug every controller, re-enable the Wooting DM app, and restart your game.

Otherwise you can also checkout the Troubleshooting Page or reach out on Discord in the #fortnite-double-movement channel for a Live chat.


[Server MP Generator] REST API classes only (and not full project)

Epic #4264

See https://github.com/tjquinno/openapi-generator/pull/50


Custom react components

PoC of an easier way for users to customise the layout of the styleguide: each component provides a stateless "renderer" that can be switched out as required using the alias hooks in the webpack section of styleguide.config.js.
Currently implemented for ReactComponent and Layout only: can be extended as desired.

Looks like we need another example to show this customizations. Otherwise people will this that all this files you’ve added to example are required.
I like the implementation and most of my comment below are about code style.

Looks like we need another example to show this customizations. Otherwise people will this that all this files you’ve added to example are required.

Good point. What about moving the current /example/lib/styleguide/directory to example/styleguide-customised to indicate that it's not meant to be a part of the app source or eve necessary?

Yep, move all your example to a new folder and revert basic example from master. And probably move them to examples/basic and examples/customised folders.

I also think that it’d be good to have a complex example in a separate repository. Something more realistic: maybe an existing project like React Bootstrap.

Well that would at least be the ultimate test of how effective this tool is: if it can work against a library that size, including getting the UX right - performance, making components easy to find, etc. - then it can work on almost any codebase

Yep!

Really not sure what the conflict would be: merges fine against master for me :(

Most probably some of my latest changes. I’ll merge it manually after 2.0 release.

Yeah... think I fell out of sync. Apologies if I messed anything up!

You can update the docs and squash everything ;-)

Hm... Probably should apply the same pattern (splitting out stateless renderers) to other components, otherwise it'll confuse users.

Would be cool!

Gonna have to ask for your help squashing these commits :(

I’ll merge it manually later ;-)

Thanks :muscle:

Squashed and merged: 0ff2b2f93dffe30046d8c20c819bf9aeb28b209e.

Any plans to finish the feature (add renderers to other components, update docs)?

Absolutely: sorry for the delay, been prepping for my first tech talk (yesterday: went ok; need practice!)

Thanks for wrangling the rat's nest of commits!

Cool! What was the talk? Slides, video? :-)

It was a primer for how tooling works: how package managers, task runners, transpilers & module bundlers work together

For new devs it looks impenetrable!

That’s true, and not only for new sometimes ;-)

I'll link to slide & video presently 😀

Can't wait! :)


Fix default upload_speed

Baud rate for upload is wrong and prevents upload

Had to change the value to get it working! 👍 for the pull request


Refactor

Not ready for merge just yet.

radio.rb: run() function not ready
config.json.example without comments

We'll fix radio.rb after merge.
config example is ready.


[minio] StatefulSet for minio standalone

In line with this issue #1863, I think it would be a good idea to make the minio chart in standalone mode also use a StatefulSet (only if there is persistence maybe?).
I create this issue to start the discussion for minio.

An alternative would be to at least be able to specify the "helm.sh/resource-policy": keep annotation on the PVC when in standalone mode.

Using the second option prevents you from reinstalling chart after deletion without manually modifying the values.yaml to use existing PVC.
Using statefulset actually allows you to be stateless (how ironic) from that point of view.


_create_completion cache_item.input_ids.tolist() - AttributeError: 'NoneType' object has no attribute 'input_ids'

Prerequisites
Please answer the following questions for yourself before submitting an issue.

[ x] I am running the latest code. Development is very rapid so there are no tagged versions as of now.
[ x] I carefully followed the README.md.
[ x] I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).
[ x] I reviewed the Discussions, and have a new bug or useful enhancement to share.

Expected Behavior
The chat completion endpoint should be processing chat and responding accordingly
Current Behavior
I see the following crash:
llama.cpp: loading model from ./models/ggml-vicuna-7b-1.1-q4_0.bin
llama_model_load_internal: format     = ggjt v3 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 6096
llama_model_load_internal: n_embd     = 4096
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 32
llama_model_load_internal: n_layer    = 32
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: ftype      = 2 (mostly Q4_0)
llama_model_load_internal: n_ff       = 11008
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 7B
llama_model_load_internal: ggml ctx size =    0.07 MB
llama_model_load_internal: mem required  = 5407.71 MB (+ 1026.00 MB per state)
.
llama_init_from_file: kv self size  = 3048.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 1 | AVX512_VBMI = 1 | AVX512_VNNI = 1 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | VSX = 0 |
INFO:     Started server process [7]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://llama-python-server:8000 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:54642 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/protocols/http/h11_impl.py", line 428, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/fastapi/applications.py", line 276, in __call__
    await super().__call__(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/applications.py", line 122, in __call__

Environment and Context
This is a docker-compose project, feel free to check how I have the installation configured:
https://git.ssh.surf/snxraven/llama-cpp-python-djs-bot

Sadly, there's no obvious error there that can point to where the issue is within llama-cpp-python.
Any chance you can reproduce the issue with a an identical curl against the server?

llama.cpp: loading model from ./models/ggml-vicuna-7b-1.1-q4_0.bin
llama_model_load_internal: format     = ggjt v3 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 6096
llama_model_load_internal: n_embd     = 4096
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 32
llama_model_load_internal: n_layer    = 32
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: ftype      = 2 (mostly Q4_0)
llama_model_load_internal: n_ff       = 11008
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 7B
llama_model_load_internal: ggml ctx size =    0.07 MB
llama_model_load_internal: mem required  = 5407.71 MB (+ 1026.00 MB per state)
.
llama_init_from_file: kv self size  = 3048.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 1 | AVX512_VBMI = 1 | AVX512_VNNI = 1 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | VSX = 0 |
INFO:     Started server process [7]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://llama-python-server:8000 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:55220 - "POST /v1/chat/completions HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/protocols/http/h11_impl.py", line 428, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/fastapi/applications.py", line 276, in __call__
    await super().__call__(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/applications.py", line 122, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/cors.py", line 83, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "/usr/local/lib/python3.10/dist-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/usr/local/lib/python3.10/dist-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 718, in __call__
    await route.handle(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 66, in app
    response = await func(request)
  File "/usr/local/lib/python3.10/dist-packages/fastapi/routing.py", line 237, in app
    raw_response = await run_endpoint_function(
  File "/usr/local/lib/python3.10/dist-packages/fastapi/routing.py", line 163, in run_endpoint_function
    return await dependant.call(**values)
  File "/usr/local/lib/python3.10/dist-packages/llama_cpp/server/app.py", line 436, in create_chat_completion
    completion: llama_cpp.ChatCompletion = await run_in_threadpool(
  File "/usr/local/lib/python3.10/dist-packages/starlette/concurrency.py", line 41, in run_in_threadpool
    return await anyio.to_thread.run_sync(func, *args)
  File "/usr/local/lib/python3.10/dist-packages/anyio/to_thread.py", line 33, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread
    return await future
  File "/usr/local/lib/python3.10/dist-packages/anyio/_backends/_asyncio.py", line 807, in run
    result = context.run(func, *args)
  File "/usr/local/lib/python3.10/dist-packages/llama_cpp/llama.py", line 1381, in create_chat_completion
    completion_or_chunks = self(
  File "/usr/local/lib/python3.10/dist-packages/llama_cpp/llama.py", line 1258, in __call__
    return self.create_completion(
  File "/usr/local/lib/python3.10/dist-packages/llama_cpp/llama.py", line 1210, in create_completion
    completion: Completion = next(completion_or_chunks)  # type: ignore
  File "/usr/local/lib/python3.10/dist-packages/llama_cpp/llama.py", line 814, in _create_completion
    cache_item.input_ids.tolist(), prompt_tokens
AttributeError: 'NoneType' object has no attribute 'input_ids'

Yup, looks like a bug with the new diskcache implementation, working on a fix.

Thank you  @abetlen Much respect :)

@snxraven after resolving the issue with the cache (app.py was now pointing to an abstract base class) it looks like there might be a bug with the llama.cpp save_state api, I'll need to look into it but for now it seems that LlamaCache does not work. Note: the models still keep their eval'd tokens so it's not so bad.

@abetlen Thanks for the heads up, ill stay updated here and within the repo for updates. Good looking out

Is this the related issue?
https://github.com/ggerganov/llama.cpp/issues/1699
I applied the fix at the bottom of the thread, and the cache seems to be working.

@AlphaAtlas yes that looks like the issue. Did you also remove this line?

Yeah, I removed all three and False lines and am getting Llama._create_completion: cache saved in the log.

The cache issue is fixed upstream: https://github.com/ggerganov/llama.cpp/issues/1699#issuecomment-1585558881

@AlphaAtlas @snxraven should be fixed now in v0.1.62

@abetlen looks perfect :) All seems well you can most likely close this


Spec pointer to have better support for omit empty

using pointer for empty values instead of using default go values.

/ok-to-test

Looks like a rebase is needed

/retest

rebase needed


Clarify ambiguity in encryption spec/example

From #43, as well as packets.go, the final flag should be the first item in each payload packet in an encrypted message. However, the example currently places the final flag last in the payload packet, introducing ambiguity for those implementing the protocol. This commit changes the example to conform to the actual implementation behaviour.

Not sure why CI is failing, this commit only changes files in spec/. Might need to take a look at .travis.yml.

Thanks for the correction! It took me a while to page all this back in, but I think the original confusion might've been that the final flag is the last field (of 2) in the signcryption mode, but the first field (of 3) here in the encryption-only mode.

@malgorithms can you do a pull for this fix on the webserver?

Thanks for the quick merge @oconnor663! Have a good one.


Unexpected error in provider "opensubtitles"

Soft/Branch/Commit:
SickBeard Custom / master / d6eb72d4e1019e5d1286ae6ac1d7e4b318229ebe
OS:
Linux-4.4.15+-x86_64-with-glibc2.2.5
What you did:
Automatic search
What happened:
I had this error
What you expected:
Subs search on this provider
Logs:
2018-03-24 22:04:09 WARNING  FINDSUBTITLES :: [d6eb72d] Unexpected error in provider u'opensubtitles'
Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 134, in list_subtitles_provider
    return self[provider].list_subtitles(video, provider_languages)
  File<EMAIL_ADDRESS>line 228, in list_subtitles
    query=query, season=season, episode=episode, tag=os.path.basename(video.name))
  File<EMAIL_ADDRESS>line 194, in query
    language = Language.fromopensubtitles(subtitle_item['SubLanguageID'])
TypeError: string indices must be integers, not str
2018-03-24 19:04:43 WARNING  FINDSUBTITLES :: [d6eb72d] Unexpected error in provider u'opensubtitles'
Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 134, in list_subtitles_provider
    return self[provider].list_subtitles(video, provider_languages)
  File<EMAIL_ADDRESS>line 228, in list_subtitles
    query=query, season=season, episode=episode, tag=os.path.basename(video.name))
  File<EMAIL_ADDRESS>line 194, in query
    language = Language.fromopensubtitles(subtitle_item['SubLanguageID'])
TypeError: string indices must be integers, not str

Duplicate of https://github.com/Diaoul/subliminal/issues/902 which should have been fixed.
Please delete the subliminal cache file before retrying.


Cannot LNURL withdraw from LNBits

I've setup a LNBits server but the LNURLw is not working. All wallets just return an error. I have confirmed that the decoded LNURL link returns valid JSON.
Example:
https://public-pool.io:56951/withdraw/KrSuCu

RaspiBlitz v1.10.0 will come with LNbits 0.10.9 which had some config changes. If your problem persists after that update please report again and then I wil try to patch in some lnbits devs.


Fix test ct_check_envs_set

This bug was introduced by commit
https://github.com/sclorg/container-common-scripts/pull/230/commits/beca699792849b376c54e6b9bbd5aaca57bb8d4d
Signed-off-by: Petr "Stone" Hracek<EMAIL_ADDRESS>

[test]


cant download

Hello. i want to download this module. but i cant.
$ go get -u -v github.com/Allenxuxu/gev
github.com/Allenxuxu/gev/connection
github.com/Allenxuxu/gev/connection
/home/m_parsa/go/pkg/mod/github.com/!allenxuxu/gev@v0.1.9/connection/connection.go:65:31: cannot use int(time.Now().Unix()) (type int) as type int64 in argument to conn.activeTime.Swap
/home/m_parsa/go/pkg/mod/github.com/!allenxuxu/gev@v0.1.9/connection/connection.go:137:28: cannot use int(time.Now().Unix()) (type int) as type int64 in argument to c.activeTime.Swap
$ go version
go version go1.16 linux/amd64

Please help me.
thanks

Try this version v0.1.10


Height effiency is always 0.5

How is that supposed to work? Thanks

Oh, I see now - you MUST assemble the contraptions to see actual correct value. Not sure is that a bug or not

I see, probably because I set the minimum value to be 0.5, that is the bare minimum by default, so it never gets to zero. Everything else does get to zero. I think that way is fine, since it doesn't show the biome efficiency value either if you don't built it first. And I don't want to have to calculate that if it is not a valid contraption, no need to tick stuff that does't matter. If it still bothers you, a better way to solve this would be to hide those two efficiencies or put a message telling to build a valid contraption. That might work out.


Improve type safety for SEO data utilities

WHY are these changes introduced?

This PR brings more consistency to the typing of the seo data utilities. This preserves internal consistency within the module and will hopefully help folks in userland who bring the seo data utility module into their own repos.
WHAT is this pull request doing?
Previously, the collection and product seo data utilities in the demo store inferred the types of the data they returned. In contrast, other seo data utililties annotated the return type with the SeoConfig generic.
I realized that the product and collection utilities were using extracted functions for creating the jsonLd values, but those functions returned the incorrect type. I removed the unnecessary array typing and was then able to add the return typing to collection and product.
Continuation of https://github.com/Shopify/hydrogen/pull/757

Checklist

[x] I've read the Contributing Guidelines
[x] I've considered possible cross-platform impacts (Mac, Linux, Windows)
[x] I've added a changeset if this PR contains user-facing or noteworthy changes
[ ] I've added tests to cover my changes
[ ] I've added or updated the documentation

cc: @frehner @juanpprieto @benjaminsehl this is a re-open of https://github.com/Shopify/hydrogen/pull/757

Thanks! Looks like the CI checks are running now, so that's good. Once they pass I'll merge in

Oxygen preview failed. ☹ Oh well.


@Jacksonized: modify generated @(Super)Builders such that they will be used by Jackson's deserialization

This PR implements the proposal discussed here.
Adding @Jacksonized to a context where there is also a @Builder or @SuperBuilder annotation does the following:

Configure Jackson to use the builder for deserialization using @JsonDeserialize(builder=MyClass.MyClassBuilder[Impl].class)) on the class. (An error is emitted if such an annotation already exists.)
Copy Jackson-related configuration annotations (like @JsonIgnoreProperties) from the class to the builder class. This is necessary so that Jackson recognizes them when using the builder.
Insert @JsonPOJOBuilder(withPrefix="") on the generated builder class to override Jackson's default prefix "with". If you configured a different prefix in lombok using setterPrefix, this value is used. If you changed the name of the build() method using using buildMethodName, this is also made known to Jackson.
For @SuperBuilder, make the builder implementation class package-private.

There is one minor difference to the proposal (with regard to step 1.): If there is already a @JsonDeserialize annotation on the class, it will give an error. The reason is that all other parameters of @JsonDeserialize are only useful when not using a builder; often they will even contradict the usage of a builder. So I though it is reasonable to error out then and let the user decide what to do.
I did not yet write documentation for the website, because I didn't where to place it (there is no "external" section in the site). I propose adding it as "experimental".

I pushed two new commits to the branch/PR:

add flag usage configuration key (I just noticed I forgot this)
add documentation and changelog entry

This is amazing work, @janrieke – all I really had to do was think of a funny byline :)


docs: Create setup guide, Add guide to setup on a cloud server

@Khader-1 is this ready for review?
I've been assigned for the buddy review but PR is still in Draft.

It's indeed @rajveermalviya. I remember marking it as ready but I see it's not reflected for some reason!

Thanks @Khader-1 for writing this down, and @rajveermalviya for the thorough review!

Also I'd expect there to be a (interactive) script […] and then this doc could just point to that script. This should probably be done later though.

Yeah, agreed on both counts — that's something we'd want to have if it were a common setup, and it's something I wouldn't want to invest in now. As I alluded to above, the idea with this PR was just to note down the things that Khader already had to work out in the course of setting up a cloud server so that he could do development there (to get better network connectivity than he has locally — particularly for Gradle, which downloads a ton of different dependencies).
I've taken the first half of @rajveermalviya's instructions from that gist, and combined them with some of Khader's text and with text of my own framing it all. The result is instructions for setting up for doing Android builds on a non-graphical remote machine — basically for doing so without Android Studio.
Then I'm not sure what the right answer is for actually running the app. One thing one can definitely do is flutter build apk, and download the APK to install and run it; the main thing you lose that way is hot reload, as well as other debugging features like the inspector.
@Khader-1 is flutter build apk the approach you've been taking? Or have you found a way to use flutter run with the cloud VM? If so, are you using something like the steps in the second half of Rajesh's instructions?

I'm going to go ahead and merge this revised version, because it seems like clearly an improvement and we can always edit it further later.
If there is more to say about the workflow that @Khader-1's already worked out, then I'd be glad to see that added to the doc. But we don't need to invest in figuring out workflows for the sake of writing these instructions — there are plenty of other things for us to do :slightly_smiling_face: and we can always return to this area if we find more need for it in the future.


(PUP-8470) Use usermod to manage group membership when user forcelocal is true

When forcelocal is true and groups are defined for a user, use usermod since
lusermod does not support -G.

Can one of the admins verify this patch?

CLA signed by all contributors.


parsing color from IconStyle in KML files

Added ability to parse <color> node in <IconStyle> and pass it into ol/style/Icon.
Should fix issue 6809.

As noted in #6809 for consistency there should be a corresponding update for writeFeatures:
It hopefully needs no more than adding 'color' to ICON_STYLE_SEQUENCE and 'color': makeChildAppender(writeColorTextNode) to ICON_STYLE_SERIALIZERS then setting properties['color'] in writeIconStyle (and add a color to the "can write an feature's icon style" test).

I totally forgot about KML export. Should be fixed but CI tests are failing with some font issue: Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"

I totally forgot about KML export. Should be fixed but CI tests are failing with some font issue: Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"

That's an ongoing problem with CircleCI intermittently failing to start the rendering tests, not related to any changes in this PR, all those test passed.


Go uses ident size 8 with tabs. Nothing else.

We are using gofmt to format our code. This will emit tabs.
The standard is tabs which is 8 spaces and not 4.

LGTM, even if I'm not sure what ident size really means when you're using tabs anyway

Current coverage is 3.14% (diff: 100%)

Merging #119 into master will not change coverage

@@            master      #119   diff @@
========================================
  Files           33        33
  Lines         7823      7823
  Methods          0         0
  Messages         0         0
  Branches         0         0
========================================
  Hits           246       246
  Misses        7557      7557
  Partials        20        20

Powered by Codecov. Last update 85b8b7f...1ceb56f

LGTM

@metalmatze Actually the entire line could've been deleted. But it doesn't really matter :slightly_smiling_face:

I know, I know. But every editor is going to display Go with tabs as 8 spaces. So I wanted to leave it with that.

My editor show tabs as 2 spaces :trollface:

I prefer a tabsize of 2, it's anyway only a visual thing.


TelephonySessionsEventPartyInfo Missing Recordings

The TelephonySessionsEventPartyInfo should have a Recordings property that is an array of RecordingInfo objects just like CallParty. It's included as part of the AccountTelephonySessionsEvent JSON that a webhook receives when subscribing to Account Telephony Sessions Events (/restapi/v1.0/account/~/telephony/sessions).
JSON example for reference:
{
"uuid": "5592845733081229782",
"event": "/restapi/v1.0/account/874494005/extension/430213004/telephony/sessions",
"timestamp": "2024-03-13T15:46:50.907Z",
"subscriptionId": "b40a2d60-bde5-41cf-b372-848aadeae59d",
"ownerId": "874494005",
"body": {
"sequence": 8,
"sessionId": "19781210005",
"telephonySessionId": "s-a1d145704da1cz18e387e5223z8af60000",
"serverId": "<IP_ADDRESS>.TAM",
"eventTime": "2024-03-13T15:46:50.792Z",
"parties": [
{
"accountId": "874494005",
"extensionId": "430213004",
"id": "p-a1d145704da1cz18e387e5223z8af60000-2",
"direction": "Inbound",
"to": {
"phoneNumber": "+16502420039",
"name": "CallRevu Tester",
"extensionId": "430213004"
},
"from": {
"phoneNumber": "+12035362278"
},
"recordings": [
{
"id": "16164210005",
"active": true
}
],
"status": {
"code": "Answered",
"rcc": false
},
"park": {},
"missedCall": false,
"standAlone": false,
"muted": false
}
],
"origin": {
"type": "Call"
}
}
}

The code is auto generated based on spec. I have raised an internal ticket to update the spec.


[WIP] Add github actions ci config

Summary: add GitHub actions config to initialize CI
TODO:

determine the CI trigger policy and modify the configuration accordingly
add larger GitHub-hosted runners to the org to speed up CI
confirm and optimize the CI scripts
add the CI status badge to the README in the project

And consider the CD configuration, multi platform configuration

configuration

Have discussed it. Do not config CD currently

Summary: add GitHub actions config to initialize CI TODO:

determine the CI trigger policy and modify the configuration accordingly
The current policy is ok.
add larger GitHub-hosted runners to the org to speed up CI
Larger runners is tested in Beta
confirm and optimize the CI scripts
Downloaded cov.py
add the CI status badge to the README in the project
added


What is the status of aiopeewee

Issues are not enabled for aiopeewee. I'd like to try it.

I think its dead. maybe not ? but i suggest you to use peewee-async
https://github.com/05bit/peewee-async
a few useful samples:
https://github.com/05bit/peewee-async/blob/master/examples/tornado_sample.py
https://github.com/rudyryk/python-samples/blob/master/hello_tornado/hello_asyncio.py
Thanks!

Closing due to it being not a sanic related question.


Song won't play if subfolder/filename is in Japanese/Chinese

Hey, thanks for contributing to Koel! To save time for both of us, please make sure these checkboxes are checked before submitting the issue:

[/] You have read and followed closely the Wiki, Upgrade Guide, as well as Troubleshooting
[ ] The issue has not been reported before
[/] This is not a "how to install on Windows" or "why is my npm messed up" question
[/] You're a cool person

All checked? Now also make sure your issue

[ ] Is associated with a version. Or better yet, a commit.
[/] Is as detailed as possible (ahem... OS, browser, steps to reproduce, maybe?)
[/] Includes the error output if it's a bug/error report ("Whoops!" is not very helpful, you know)
[/] Is in English, 因为我不说中文。

These are songs that worked in the player.

These are songs that just out right doesnt want to work. (even with [09 Now You See Me.flac])

and the file directory on mysql looks fine

are there any temporary workaround for this issue? I can't figure it out myself because of the lack of knowledge for laravel and php.
WAMP3.1.0 (PHP7.1.9 exist in directory)
Server type: MySQL
Server version: 5.7.19 - MySQL Community Server (GPL)
User: root@localhost
Server charset: UTF-8 Unicode (utf8)
Apache/2.4.27 (Win64) PHP/5.6.31
Database client version: libmysql - mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
PHP extension: mysqliDocumentation curlDocumentation mbstringDocumentation
PHP version: 5.6.31

fixed by updating WAMP and changing versions on the interface. Hope this helps someone who has the same issue too.

That php version trick only worked on chinese song, japanese song doesn't seem to work with that trick.


Element should have a props to set custom css class on scroll event executed completely.

Element should have a props to set custom css class on scroll event executed completely.
I have a link and i want to scroll to particular element on its click but now i want to set custom css blinking border to that element on scroll complete.
same like active class on link on scroll complete.

You can subscribe to onSetActive and update your element yourself.

I don't want to set a class on link i wanted to perform action on element.
and while using onSetActive function on Link it does not have element as input parameter to the function..


TypeScript 3 project references with a separate outDir

TypeScript Version: 3.1.1

Search Terms: Project References
Code
I'm not sure if this issue is addressed somewhere else, at least I couldn't find an answer, so I'm asking again. I'm trying to use project references for a shared project with specified outDir.
The directory structure looks like this after the compilation:
.
├── A
│   ├── a.ts
│   ├── dist
│   │   └── a.js
│   └── tsconfig.json
└── Shared
    ├── dist
    │   ├── shared.d.ts
    │   └── shared.js
    ├── shared.ts
    └── tsconfig.json

Contents of the Shared directory:
shared.ts
export const name = "name";

tsconfig.json
{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "outDir": "dist",
    "strict": true,
    "composite": true
  }
}

Contents of the A directory:
a.ts
import { name } from "../Shared/shared";

console.log(name);

tsconfig.json
{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "outDir": "dist",
    "strict": true,
  },
  "references": [
    { "path": "../Shared" }
  ]
}

Compile the files by running tsc -p . in the Shared and A directories.
Expected behavior:
The application run successfully when running node dist/a.js in the A directory.
Actual behavior:
Files compile successfully, but when running node dist/a.js in the A directory, I get the following Error:
module.js:538
    throw err;
    ^

Error: Cannot find module '../Shared/shared'

The reason is that in the generated a.js file, the reference to the imported module is not resolved properly:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var shared_1 = require("../Shared/shared");
console.log(shared_1.name);

Is there a way to get it working without putting all output files into the same directory?

This is actually unrelated to project references. When using outDir with project references, the only thing that they do is signal to TypeScript is to do a rebuild if the .d.ts files are out of date.
Ultimately this is just about how TypeScript doesn't touch import paths at all, and you need to import from wherever the .js and .d.ts files end up (rather than the input files).

Also, see #16577.

I think I'm a bit confused about the project reference feature that is added in TypeScript 3.
If you look at my project structure, before using the project references, I had something like this:
.
├── A
│   ├── a.ts
│   ├── dist
│   │   ├── A
│   │   │   └── a.js
│   │   └── Shared
│   │       └── shared.js
│   └── tsconfig.json
└── Shared
    ├── dist
    │   └── shared.js
    ├── shared.ts
    └── tsconfig.json

And I could successfully run it by running node dist/A/a.js in the A directory.
What I didn't like about this was that everything was getting copied into A's output directory. I thought project references are here to fix this problem.
So, my questions is that how is the project references features is supposed to be used in case like mine?

Should I use just one output directory?
Should I manually rewrite generated output files to fix the import paths?
Is there another, better way that I organize my project to make use of project references?

Thanks in advance for your answer.

@afroozeh Also related to my previous comment, can you elaborate a bit more on the 'you need to import from wherever the .js and .d.ts files end up (rather than the input files)'? How should I change importing from the shared module when I have project references?

I'm also really confuse about it, all the example i found are not working properly...

Where could I found a working example of project reference feature?
Thanks :)

@DanielRosenwasser can you elaborate a bit more on the 'you need to import from wherever the .js and .d.ts files end up (rather than the input files)'? How should I change importing from the shared module when I have project references?

Anyone would expect that when you reference a project, you also reference the output created by that project. Otherwise what you reference it for? This is completely missing the point of Keep It Simple, and make using this technology fun, not a nightmare.
Really weird that this ticket is closed with no proper resolution. At least a link to a working solution should be explicitly pointed out.

Combined with VSCode's automatic imports that link to source .ts file, this is a bad solution.
For example, in my project I have this structure:
├── src
│   ├── foo.ts
│   └── tsconfig.json
├── tests
├─── foo_test.ts
├─── tsconfig.json
└── tsconfig.json

Root tsconfig.json:
{
	"references": [
		{
			"path": "./src/tsconfig.json"
		},
		{
			"path": "./tests/tsconfig.json"
		}
	]
}

src/tsconfig.json:
{
	"extends": "../tsconfig-base.json",
	"compilerOptions": {
		"outDir": "../lib",
		"rootDir": "."
	}
}

tests/tsconfig.json:
{
	"extends": "../tsconfig-base.json",
	"compilerOptions": {
		"outDir": "../tests-compiled",
		"rootDir": "."
	}
}

If src/foo.ts exports type Foo, in tests/foo_test.ts I start typing this:
let foo: Foo
When typing Foo, VSCode suggests Foo type. So I click enter to confirm suggestion, VSCode automatically adds import to top of file, pointing to src/foo.ts
This makes VSCode inconvenient because after every automatic import I need to edit import to point to .js file. So one software has bug: TypeScript or VSCode. I prefer to think its TypeScript bug.

Also related to my previous comment, can you elaborate a bit more on the 'you need to import from wherever the .js and .d.ts files end up (rather than the input files)'?

To clarify, if you're in projectB/src/projBMain.ts, and you need to consume projectA/src/projAMain.ts, you need to import from wherever projAMain.js is going to be emitted to. So you'd need to import projectA/dist/projAMain.js in some way.
Now the actual problem you might run into is that if you use relative paths to projectA from projectB, your output directory in projectB will need to have the same level of nesting. In other words, if projectB/src/projBMain.ts is emitted to projectB/output/folder/very/deep/projBMain.js, then a relative import is going to break, and that's considered working as intended (or perhaps a design limitation).
I think in this situation, your best bet is something like path-mapping or symbolic linking (maybe like in this Lerna example).

I want to mention that this is still a big use ability issue almost 3 years later. Having the structure of your project be implicitly limited in a way that most programming languages allow without any guide or explicit explanation is anti-user design.
Making the generated JS import location patched from the output location of the referenced project seems the most obvious solution at first glance. Or, at the very least, having an explicit warning about import locations if they are relative and not at the same nesting level with the reference projects output.

I have wasted so much time on this (in friendly terms) half-baked and misleading feature now, and no success.
The typescript compiler allows you to "compile" code that's impossible to run. What's the job of the compiler and static analysis then?
This is a big mess. You have to manually mirror your source and target directory structures. It becomes practically impossible as soon as your rootDir is not ., but something like ./src.


Make edpm_prepare and deploy accept kustomizations

As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running
[x] Appropriate documentation exists and/or is up-to-date

/lgtm


#6 After adding FENN write junit tests based on a set of valid games

dont ages ago need to keep track of issues lmao


[iOS/Android] "Image property is not set on the Image node."

Description
We have an app running in production both for iOS and Android. For about 3% (280 of 8200) of the installations/updates a crash on first launch is experienced. For every other launch this doesn't occur. So only 1 crash event for every user.
We haven't experienced this for previous releases. Our previous release ran on 0.1.172 and has been very stable.
The logs mention "Image property is not set on the Image node." More details in the logs:
Android:

iOS:

Version
0.1.182
Steps to reproduce
Unfortunately we haven't ever experienced this issue during testing, and we haven't been able to reproduce this. But hopefully the logs provide more insight.
Snack, code example, screenshot, or link to a repository

@rudin This doesn't look obvious (maybe @chrfalch has better insight). Any additional information (even code snippet to see how the Image component is used), would be extremely useful. Hopefully we can find the issue. On your side, do you log errors on the image loading? Could the error be triggered if an image fails to load?

Thanks @wcandillon & @chrfalch,
We'll give a 0.1.186+ version a shot, and see how that will behave in production.
I was just hoping the error message itself would ring a bell.
Our (simplified) implementation is as follows:
function SkiaImage({ localSource, remoteSource, size, width, height, applyBlur }: Props) {
  const sizedImage = !!size && !!remoteSource ? getImageUrlWithWidth(remoteSource, size) : remoteSource;

  const cachedImage = useExternalImageCache(sizedImage || undefined);

  const skiaImage = useImage(localSource || cachedImage);

  return (
    <Canvas style={{ width, height, position: 'absolute' }}>
      {!!skiaImage && (
        <Image x={0} y={0} width={width} height={height} image={skiaImage} fit="cover">
          {applyBlur && <Blur blur={6} mode="clamp" />}
        </Image>
      )}
    </Canvas>
  );
}

If you have any suggestions, please let me know.

I've tried to make a simple reproduction to see if the above was true, but it seems like the useImage hook handles changes in the input. Here is a simple example that verifies this.
import { useState, useCallback } from "react";
import { useWindowDimensions, StyleSheet, View } from "react-native";
import { useImage, Canvas, Image, Fill } from "@shopify/react-native-skia";

const Oslo = require("../../assets/oslo.jpg");
export const Reproduction = () => {
  const { width, height } = useWindowDimensions();
  const [image, setImage] = useState<NodeRequire | null>(null);
  const oslo = useImage(image);
  console.log("Image:", image, oslo);

  const update = useCallback(
    () => setImage((img) => (img === null ? Oslo : null)),
    []
  );

  return (
    <View style={styles.container} onTouchEnd={update}>
      <Canvas style={styles.container} debug>
        <Fill color="rgb(36,43,56)" />
        <Image x={0} y={0} width={width} height={height} image={oslo} />
      </Canvas>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

@rudin - could you test this and verify that clicking the canvas toggles the image on / off? You'd probably need to change the path and name of the image in the following line:
const Oslo = require("../../assets/oslo.jpg");
Just to verify that there is nothing wrong with the image hook.

Hi @chrfalch, I also did some testing with the latest version (0.1.193, both on iOS/Android) and didn't find any issues.
In my tests I set the useImage value from null to the cached image URL with a timeout+random delay, and directly set another timeout to replace the 'image state' with a local image. It's behaving as expected, so I guess you can close this issue. Thanks for your prompt assistance!
https://github.com/Shopify/react-native-skia/assets/1183580/8795ef6c-c222-4653-a22e-9670c35ba6d6

Appreciate the feedback, @rudin - I'll close it and then you can reopen if the error starts to appear again!


Documentation: Deleted non-existing project from libraries-and-tools.md

Project scrz does not exist anymore.

LGTM. Thanks.


Dead link on http://fuse-box.org/#typescript-helpers

Little issue on website :
This list shows the possible helpers.
'list' link show 404 error page.

@felixbillon thank you, fixed with other dead links, please let us know if there is more :)


meatball pasta recipe fix

Description
Resolves issues appearing due to mutton and meatball pasta having a shared first step in their recipes.
Overall the recipes for these two pasta types themselves are unchanged, the first step has now been put into a separate recipe and given a new incomplete item.
Also adds fluids to localization files so names correctly appear on the tooltip of incomplete food items.
Changes in PR

fixes #8

adds new incomplete pasta dish item, made by deploying pasta to a bowl
modified mutton and meatball pasta sequenced deployer recipes to use Incomplete pasta dish as starting item

add fluid names to localization files (ru translation incomplete)
mod version number 1.1.7 -> 1.1.8

Oops not sure why intellij pushed with that account. Astras also me, just the account I use for copilot.

Wow, thank you so much for this solution to the problem, in fact I suspected that this was the problem, but thank you for such a complete solution

In the version for 1.20.1 I included your commits, thanks


How can I use a certificate against a LDAP server ?

Hi,
We are trying to configure Gsuite LDAP in wg-portal. Google give us certificate and key to connect with their LDAP servers.
We do not find the documentation to give the rights parameters.
That We try :
LDAP_ENABLED: "true"
LDAP_URL: "ldaps://ldap.google.com:636"
LDAP_STARTTLS: "false"
LDAP_BASEDN: "cn=xxx,ou=Groups,dc=xxx,dc=com"
LDAPTLS_CERT: "/app/cert/Google.crt"
LDAPTLS_KEY: "/app/cert/Google.key"

with this configuration, we got that error:
ERRO[2022-03-10 09:21:06] skipping provider registration: unable to open ldap connection: failed to bind user: LDAP Result Code 49 "Invalid Credentials": Incorrect password

When we tried with ldapsearch it is working well with these env variables:
LDAPTLS_CERT=./cert/Google.crt
LDAPTLS_KEY=./cert/Google.key
LDAPTLS_CIPHER_SUITE=NORMAL:!VERS-TLS1.3

Thanks for your help

Ldap certificate authentication implemented, thanks to @the-so6 !


Fix on v1.1 backup page

Partner to https://github.com/cockroachdb/docs/pull/1655/

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/07f600efd23027aaf928dc892d03a07dce7d00da/