Fix #91 Fix #93 Fix #90 Fix #104 - [Refactor] Add 4 new prepare response services. Add send_*_request services. Add make_headers service. Refactor tests to pytest

Related issues: #91, #88, #56, #93, #90, #104

Add 4 services (with tests):

get_response_data

prepare_object_response

prepare_index_response

prepare_create_response

Add send_*_request services
Add make_headers service
Use *Mixins for default method implementations
Add return types to *Client methods
Fix mypy errors
Reorder and clean imports
Refactor code and tests:

Models (only formatting, imports and mypy typing errors)

*Client (deep refactoring)

services (added new services)

tests (unittest to pytest migration, added new tests)

No breaking changes here.
0 mypy errors now 🎊
Check list of commits for details https://github.com/getlago/lago-python-client/pull/102/commits
Points of interest:

Generics in Python: check "mixins.py" module in this commit here: https://github.com/getlago/lago-python-client/pull/102/commits/b0020909e9fabf92ab4c3e2250a1689a2d578916

Is it possible to make smaller PR for this scope? It's really hard to review for us 🙏


GDA mappings

Closing this pull request because the same commits will be included in the other pull request: https://github.com/superfluid-finance/superfluid-console/pull/198


Multiple months in the same view?

Hello again! I would like to have my Calendar show multiple months on the same page using Swift, like the example here:

But I can't find any documentation on how to do it. Please help!

calendar.pagingEnabled = false

That works! Thanks again! However, when trying to set pagingEnabled to OFF using the interface builder, XCode crashes. I'm not sure if this is just a problem on my end, though.

Set pagingEnabled to OFF using the interface builder, XCode crashes
This is fixed.


Make choice into radios

Instead of two forking calls to action, make "change" or "cancel" into radio buttons.

Lovely!


fix: fixed the duplicates  in gradle stack analysis

Fixed the duplicates  in gradle stack analysis.

Describe what you did and why.

Related issue (if any): fixes #issue_number_goes_here
https://issues.redhat.com/browse/APPENG-2425
Checklist

[x] I have followed this repository's contributing guidelines.
[x] I will adhere to the project's code of conduct.

Additional information

Anything else?

/retest


Integrate with ExP to enable A/B controlled rollouts

Hi there!
Chatted with @bwateratmsft offline about integrating this extension with ExP to enable experimentation support. A few links/resources that may be helpful:

CMake extension integration PR
VS Code TAS Client package

PR #783 adds the experimentation client. I am planning to attend the office hours tomorrow to see what needs to be done on the EXP side.


Update readme & readme architecture

We need to update the readme and the readme architecture to reflect the revisions from issue #50.

I added a description of the error-logging.json file and removed the opted_out columns descriptions from the readme.
web-crawler-architecture.pptx
updated architecture/analysis flow diagram ppt

The readme architecture is updated.


Small improvements/fixes in the AI getting started doc

fix the broken sentence: test Workers AI locally by running.
remove --remote flag requirement (as it is no longer necessary)

Looks like this was addressed in the latest version of the doc.
Closing for now, but feel free to re-open if I'm reading this wrong.


Enable demo (inference on multi-view images)

Motivation
The most natural expectation is to have a demo script to run results on your own data, which is the main "selling point" of the paper. To make it more convenient for the users, it would be nice to have a script that directly takes images and produces 3D poses, without having to go to other repository first to produce 2D keypoint estimations.
Description
In order to support demo, several steps need to be prepared:

[ ] 2D keypoint detections (using a "custom" detector, such as OpenPose)
[ ] camera parameters estimation (in case the parameters are not already obtained)
[ ] create a custom dataset on-the-fly
[ ] 3D keypoint estimations similar to the current test() function

Hi @kristijanbartol! Thanks for the amazing work. Any updates on v0.2?

Hi @anas-zafar , thank you for the reminder and I'm sorry to disappoint! I am currently working hard to finish my new work so I can't finish v0.2. As a minor excuse, the v0.2 is out of the scope of the paper anyways (it is part of future work), so I would be glad to assist you with v0.2 for your use case or, ideally, assist you with the pull request to update this repository. :) I am planning to go back to this project by the end of May!


App.After breaks error checking from App.Before

Hello,
Using App.After resets the err variable (in App.Run) used to capture the error from App.Before, so no error is reported.
Here is a sample:
package main

import (
	"errors"

	"github.com/codegangsta/cli"
)

func main() {

	app := cli.NewApp()

	app.Name = "test"
	app.Usage = "test"
	app.Action = func(c *cli.Context) {}

	app.After = func(c *cli.Context) error { return nil }
	app.Before = func(c *cli.Context) error { return errors.New("test") }

	app.RunAndExitOnError()

}

I would expect the error from App.Before to get catched by App.RunAndExitOnError, which it also does if i remove the App.After function.

This also seems to be an issue with invalid flags to commands.
If I setup app.After() any invalid flags are no longer returned to main.

It's not quite clear if this is the intended behavior or not. It appears to me that After was tacked on without prior planning due to its signature missing the result. It's also not clear if returning an error in After should terminate the call chain.
I see two possible solutions

After should not eat errors
After should receive an error from a previous invocation to atleast be allowed to decide how to propgate the error back

This should be fixed by #230, let me know what you think @sigmonsays. I went with the error aggregate approach to avoid changing the API, but I think your second suggestion is the best if we make a breaking API release.


Enable TypeScript noUncheckedIndexedAccess

noUncheckedIndexedAccess prevents undefined from slipping through the type system via out-of-range array[index] and missing record[key]. This has caught several type safety issues:

#30188
#30189
#30190
#30193
#30205
#30206
#30250
#30251
#30259

(It also caused me to notice #30191, #30192.)
 I’ve split all other changes by file for easier review and bisection.

This lgtm, feel free to merge. You could consider merging those bot holding off on the last commit with all its type assertions if you're thinking we might avoid a bunch of them with new helpers; I'll leave that up to you.


Error 429 + Scraper gives up

Many moons ago, Internet Archive added some rate limiting that seems to also affect Wayback Machine.
( See discussion on similar project here https://github.com/buren/wayback_archiver/issues/32 )
The scraper scrapes too fast, and gets IP banned for 5 minutes by Wayback Machine.
As a result, all the remaining URLs in the pipeline fail repeatedly, Scrapy gives up on all of them and says "we're done!"
...
2023-11-09 22:09:57 [scrapy.downloadermiddlewares.retry] ERROR: Gave up retrying <GET https://web.archive.org/cdx/search/cdx?url=www.example.com/blog/stuff&output=json&fl=timestamp,original,statuscode,digest> (failed 3 times): 429 Unknown Status
2023-11-09 22:09:57 [scrapy.core.engine] INFO: Closing spider (finished)

I see two issues here:

Add a global rate limit (I don't think the concurrency flag covers this?)
1.b. If we get a 429, increase the delay? (Ideally should not occur, as the limit appears to be constant? Although this page https://web.archive.org/429.html suggests that the error can occur randomly if Wayback is getting a lot of traffic from other people.)
Also, if we get a 429, that seems to mean the IP has been banned for 5 minutes, so we should just pause the scraper for that time? (Making any requests during this time may possibly extend the block?)
(Unnecessary if previous points handled?) Increase retry limit from 3 to something much higher? Again, if we approach scraping with a "backoff"

TODO:

Find out exactly what the rate limit is: May be 5 per minute, or may be 15 per minute? (12 or 4s delay respectively.)
They seem to have changed it several times. Not sure if there are official numbers.
https://archive.org/details/toomanyrequests_20191110
This page says it's 15. It only mentions submitting URLs, but it appears to cover retrievals too.
Find out if this project already does rate limiting. Edit: Sorta, but not entirely sufficient for this use case? (e.g. no 5-minute backoff on 429, autothrottle does not guarantee <X/minute, etc.)

Seems to be using Scrapy's autothrottle, so the fix may be as simple as updating the start delay and default concurrency:
__main__.py
'AUTOTHROTTLE_START_DELAY': 4, # aiming for 15 per minute

and
parser.add_argument('-c', '--concurrency', default=1.0, help=(

This doesn't seem to be sufficient to limit to 15/minute though, as I am getting mostly >15/min with these settings (and as high as 29 sometimes). But Wayback did not complain, so it seems the limit is higher than that.
More work needed. May report back later.

Update: added download_delay = 4 to mirror_spider.py. This seems to make auto_throttle unnecessary (?), so I disabled it. But now I get very low pages/minute, sometimes only 2-3 per minute. My theory is that this is due to Wayback being very slow sometimes? I haven't measured. Still, 30s/req seems very fishy.

I am getting the same issue too. I need to scrape 150k pages to rebuild a website, but am constantly hitting the rate limit on archive's servers.


Users cannot select geometries in JOIN analysis

The issue was caused because there were cases where this.model.attributes didn't have isSourceType property defined when rendering the template of dataset nodes in the JOIN analysis dropdown. As the template data object didn't include the property, the template render was throwing an error when trying to access that property.
This PR fixes https://github.com/CartoDB/support/issues/1281.

retest this please

I think the main blocker for this issue is the backend tests. I can take a look at them if you think that could help.


added the ObjectNet benchmark

I pushed what seems to be a working version, including tests like those for ImageNet. Let's get this baby running!

There is not a perfect overlap in the labels. Sometimes imagenet labels are either a bit more specific or they are a list of things that aren't a perfect fit for objectnet labels. I don't have a metric for how good a mapping is. I do know that the imagenet class that an objectnet class is mapped to is the most frequent imagent class prediction for that objectnet class. This means that at least the mapped imagent class is the best one of the 1k options, even if it's not quite perfect. Also many imagnet labels don't perfectly align with the actual images in the imagnet training set anyway. (Look at sunglass).
We could try an exact label match vs less exact label match objectnet metric, but I don't think we need it right now for brainscore.
-------- Original message --------
From: Martin Schrimpf @.>
Date: 4/6/22 2:41 PM (GMT-05:00)
To: brain-score/brain-score @.>
Cc: David Mayo @.>, Author @.>
Subject: Re: [brain-score/brain-score] added the ObjectNet benchmark (PR #318)
@mschrimpf approved this pull request.
small change request + fix the unit test and this should be good to go

In brainscore/benchmarks/objectnet.pyhttps://github.com/brain-score/brain-score/pull/318#discussion_r844269251:

+from brainio.lookup import lookup_stimulus_set

+NUMBER_OF_TRIALS = 10
+
+_logger = logging.getLogger(name)
+LOCAL_STIMULUS_DIRECTORY = '/braintree/data2/active/common/objectnet-stimuli/'
+
+class Objectnet(BenchmarkBase):

def init(self):

   self._stimulus_set = brainscore.get_stimulus_set('katz.BarbuMayo2019')

   self._similarity_metric = Accuracy()

   ceiling = Score([1, np.nan], coords={'aggregation': ['center', 'error']}, dims=['aggregation'])

   super(Objectnet, self).__init__(identifier='katz.BarbuMayo2019-top1', version=1,

                                      ceiling_func=lambda: ceiling,

                                      parent='ObjectNet',

parent should be 'engineering'

In brainscore/benchmarks/objectnet.pyhttps://github.com/brain-score/brain-score/pull/318#discussion_r844270512:

                                                           Josh Tenenbaum and

                                                           Boris Katz},

                                               title     = {ObjectNet: {A} large-scale bias-controlled dataset for pushing the

                                                           limits of object recognition models},

                                               booktitle = {NeurIPS 2019},

                                               pages     = {9448--9458},

                                               year      = {2019},

                                               url       = {https://proceedings.neurips.cc/paper/2019/hash/97af07a14cacba681feacf3012730892-Abstract.html},

                                               }""")

def call(self, candidate):

   # The proper `fitting_stimuli` to pass to the candidate would be the imagenet training set.

   # For now, since almost all models in our hands were trained with imagenet, we'll just short-cut this

   # by telling the candidate to use its pre-trained imagenet weights.

   candidate.start_task(BrainModel.Task.label, 'imagenet')

is there perfect overlap between imagenet labels and objectnet labels? If not, should this be taken into account in the similarity metric / or even better when instructing the model about the task?

In packaging/katz/BarbuMayo2019.pyhttps://github.com/brain-score/brain-score/pull/318#discussion_r844270901:

+from brainio.stimuli import StimulusSet
+from brainio.packaging import package_stimulus_set

+import csv
+import pandas as pd
+stimuli = []  # collect meta
+image_paths = {}  # collect mapping of image_id to filepath
+stimuli_directory = "images_no_border"
+
+with open('mappings/objectnet.csv' ,'r') as f:

df = pd.read_csv(f)
df = df.reset_index(False)
df = df.rename(columns={"index":"image_id", "imagenet_label":"synset", "file_name":"filepath"})
df = df.astype({'image_id':'str'})
df['filepath'] = 'images_no_border/'+df['filepath']
#print(df)

dead code, but it's in packaging, so I'm not going to chase you

Reply to this email directly, view it on GitHubhttps://github.com/brain-score/brain-score/pull/318#pullrequestreview-933938835, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABKQG6KJIF2LX6CDVELTP6DVDXLGRANCNFSM5SC74INA.
You are receiving this because you authored the thread.Message ID: @.***>

not sure what happened with travis here, re-triggering


Upgrade pulumi-gitlab to v6

Part of https://github.com/pulumi/pulumi-gitlab/pull/282

@iwahbe my bad, it should be this link https://github.com/pulumi/pulumi-gitlab/pull/282.

Yes https://github.com/pulumi/pulumi-gitlab/actions/runs/5157658368


Rank & Awards Page

Would love to see a page populated with awards and ranks within the virtual airline.

If I wanted to create a ranks page and I were to update the version of phpvms that would cancel out my page right? As I would be creating controllers and adding routes to the RouteServiceProvider?

Not if it's in a module. The module wouldn't be affected.

I was thinking of making it a module, but then there would be two "Rank" spots in the admin panel right?

What do you want to make? A page that's listing everyone's ranks? Because if you create at as part of the full install (not a module), in a PR, I can just have it included part of the default install

Yea I will go ahead and create a Frontend awards page and controller. I'll try to learn how to submit commits and such.

Fork this repo, then create a new branch (git checkout dev and then git checkout -b 703-Ranks-Page - that's the convention I've been using), and then create a pull-request against the dev branch

Ranks Page Information:

Create Ranks folder under Resources/Views/Layouts/"Your Theme"

Create index.blade.php & table.blade.php within Ranks folder.

Add the following to index.blade.php:

@extends('app')
@section('title', trans_choice('common.ranks', 2))

@section('content')

Ranks

      @include('ranks.table')

@endsection

Add the following to table.blade.php:

    Rank
    Hours Required
    Aircraft

  @foreach($ranks as $rank)

      image_url }}" />
      {{ $rank->name }}
      {{ $rank->hours }}

      @foreach($rank->subfleets as $sf)
      {{ $sf->name }} ({{ $sf->type }})
      @endforeach

  @endforeach

Create RankController.php in App/Http/Controllers/Frontend

Add the following into RankController.php:

<?php

namespace App\Http\Controllers\Frontend;

use App\Contracts\Controller;
use App\Repositories\RankRepository;
use Cache;
use Illuminate\Http\Request;
use Laracasts\Flash\Flash;
use Prettus\Repository\Criteria\RequestCriteria;

class RankController extends Controller
{
    private $fleetSvc;
    private $rankRepository;
    private $subfleetRepo;

    /**
     * RankController constructor.
     *
     * @param FleetService       $fleetSvc
     * @param RankRepository     $rankingRepo
     * @param SubfleetRepository $subfleetRepo
     */
    public function __construct(
        RankRepository $rankingRepo
    ) {
        $this->rankRepository = $rankingRepo;
    }

    /**
     * Get the available subfleets for a rank
     *
     * @param $rank
     *
     * @return array
     */
    protected function getAvailSubfleets($rank)
    {
        $retval = [];
        $all_subfleets = $this->subfleetRepo->all();
        $avail_subfleets = $all_subfleets->except($rank->subfleets->modelKeys());
        foreach ($avail_subfleets as $subfleet) {
            $retval[$subfleet->id] = $subfleet->name.
                ' (airline: '.$subfleet->airline->code.')';
        }

        return $retval;
    }

    /**
     * Display a listing of the Ranking.
     *
     * @param Request $request
     *
     * @throws \Prettus\Repository\Exceptions\RepositoryException
     *
     * @return mixed
     */
    public function index(Request $request)
    {
        $this->rankRepository->pushCriteria(new RequestCriteria($request));
        $ranks = $this->rankRepository->all();

        return view('ranks.index', [
            'ranks' => $ranks,
        ]);
    }

}

Note common title names are available in Resources/lang/"Your language"/common.php. You will need to add the rank.common variable.

@nabeelio If this feature request is still open, I wouldn't mind giving these suggestions by @nickkecooper a quick run over, maybe create the PR for them, It may even give me some ideas of for the "Awards" display I want to add to the "Pilot Profile" page.

Sure thing. For now, i think adding a section to the user's profile will be the best/easiest way, it's one less page to navigate to and having all the user's info on one page would be nice

I agree, the Pilot Profile is the right place, I'll have a closer look at this code to see how it was being suggested, to see if it will be able to help me get it working on the Pilot Profile Page, and create a PR against this issue if I get it working.


How to make ES6 file work with React

Hey Xavier, I am using jeelizFacePatched.js from JeelizTest
in my react app as I was getting so many errors if I import the ES6 version. I want to add multi-face detection but I cant do that with jeelizFacePatched.js as it missing the videoElement object in the init function which is required by JeelizHelper. What changes do I have to make in the ES6 file to make it work with React? Thanks Xavier!

issue #138 is very similar to this but instructions arent very clear :(

Hi,
You could ask to the guy who did jeelizTest.
If we did a lib which is framework agnostic, it is not to talk about react, angular or vue.
Of course you are welcome to provide information to integrate the lib with main JS Framework, but personnaly I don't want to provide support for JS libraries of Facebook, Google or Alibaba. We already have to support Apple products and their lame implementation of standards (WebGL, WebRTC, ...).
I have added some information on the main doc of FaceFilter about integration with these frameworks: https://github.com/jeeliz/jeelizFaceFilter#with-javascript-frontend-frameworks
It is not complete, but it gives some help.
Best,
Xavier

I understand, I will have a look at it again. Thanks!

A NPM/React/Three-Fiber boilerplate has been added to the repository: https://github.com/jeeliz/jeelizFaceFilter/tree/master/reactThreeFiberDemo


coverage badge shows the last pull request instead of the develop branch

Mmmm... that's what I get from https://app.codecov.io/gh/CPPAlliance/url/settings/badge:
[![codecov](https://codecov.io/gh/CPPAlliance/url/branch/develop/graph/badge.svg?token=jUkdNr0eJi)](https://codecov.io/gh/CPPAlliance/url)

So there's nothing we can do here regarding the link.
Unfortunately, codecov associates whatever is in your fork's develop branch with CppAlliance's develop:
https://app.codecov.io/gh/CPPAlliance/url/commits
That never happens with any of my branches.
Maybe that's just the branch name? Where could that association be coming from?

Are we moving from codecov with our own reports?

Not yet, because our own reports look terrible


Error parsing template heat template

hey,
Im using openstack mitaka
heat version 1.1.0
I cant create stack from corekube-openstack.yaml
The error is:
Error parsing template mapping values are not allowed here
in "", line 3, column 13:
description: >

Hello, Just copy paste the content of the yaml file here http://www.yamllint.com/ and then press GO to validate/format it.
Replace the original file with the new content.
And it should work..


Best option to regularly crawl a channel and download new videos

Checklist

[X] I'm asking a question and not reporting a bug/feature request
[X] I've looked through the README
[X] I've read the guidelines for opening an issue
[X] I've searched the bugtracker for similar questions including closed ones

Question
I am wondering what the best option is to check a youtube channel regularly (say every hour or so) and download a new video if it was uploaded? It seems like yt-dlp always checks every video, which can take quite a while for large channels and only causes unnecessary load. I have tried a few options, but I cannot figure out a way to prevent the check of every video that the channel ever uploaded.
I am currently using something like
yt-dlp --playlist-reverse --dateafter now-1week --download-archive downloaded.txt -i -o "%(uploader)s/S01E%(playlist_index)s - %(title)s.%(ext)s" -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]" --merge-output-format mp4 --add-metadata --write-thumbnail --batch-file=channel_list.txt
Does anyone have a recommendation?
Verbose log
No response

Try --break-on-existing --break-per-input

Thanks a lot! That seems to work great. :)

Hey I'm facing the same issue. However, --break-on-existing --break-per-input doesn't seem to work. yt-dlp still downloads every video. Let's say I just want to download video from now - 1 week, how do I tell yt-dlp to break on all videos that are older than this?

@Myzel394 --dateafter "today-1week" --break-on-reject

Hey I'm facing the same issue. However, --break-on-existing --break-per-input doesn't seem to work. yt-dlp still downloads every video. Let's say I just want to download video from now - 1 week, how do I tell yt-dlp to break on all videos that are older than this?

Btw: There is also https://github.com/jmbannon/ytdl-sub Maybe useful, depending on what you are trying to achieve

@bashonly That worked, thank you!

@bashonly Is there a way to extend this where only new videos which have a title containing a specific substring will be downloaded? For example, suppose there is a channel and I want to download only their new videos which contain "foo" within the video title. Does yt-dlp have a built in way to do this?

@wagler
you're looking for the --match-filters option
--match-filters "title*='foo'"
which is interpreted by yt-dlp as: match videos where title contains (*=) foo
it can be used in conjunction with the --date... options:
--match-filters "title*='foo'" --dateafter "today-1week"
or you could do it this way, only using the --match-filters option:
--match-filters "title*='foo' & upload_date>20230210"
--match-filters FILTER          Generic video filter. Any "OUTPUT TEMPLATE"
                                field can be compared with a number or a
                                string using the operators defined in
                                "Filtering Formats". You can also simply
                                specify a field to match if the field is
                                present, use "!field" to check if the field
                                is not present, and "&" to check multiple
                                conditions. Use a "\" to escape "&" or
                                quotes if needed. If used multiple times,
                                the filter matches if atleast one of the
                                conditions are met. E.g. --match-filter
                                !is_live --match-filter "like_count>?100 &
                                description~='(?i)\bcats \& dogs\b'" matches
                                only videos that are not live OR those that
                                have a like count more than 100 (or the like
                                field is not available) and also has a
                                description that contains the phrase "cats &
                                dogs" (caseless). Use "--match-filter -" to
                                interactively ask whether to download each
                                video

@wagler you're looking for the --match-filters option --match-filters "title*='foo'" which is interpreted by yt-dlp as: match videos where title contains (*=) foo
it can be used in conjunction with the --date... options: --match-filters "title*='foo'" --dateafter "today-1week"
or you could do it this way, only using the --match-filters option: --match-filters "title*='foo' & upload_date>20230210"
--match-filters FILTER          Generic video filter. Any "OUTPUT TEMPLATE"
                                field can be compared with a number or a
                                string using the operators defined in
                                "Filtering Formats". You can also simply
                                specify a field to match if the field is
                                present, use "!field" to check if the field
                                is not present, and "&" to check multiple
                                conditions. Use a "\" to escape "&" or
                                quotes if needed. If used multiple times,
                                the filter matches if atleast one of the
                                conditions are met. E.g. --match-filter
                                !is_live --match-filter "like_count>?100 &
                                description~='(?i)\bcats \& dogs\b'" matches
                                only videos that are not live OR those that
                                have a like count more than 100 (or the like
                                field is not available) and also has a
                                description that contains the phrase "cats &
                                dogs" (caseless). Use "--match-filter -" to
                                interactively ask whether to download each
                                video

@bashonly Thanks. Works like a charm. :)


Explore presenting channel suggestions on subscriptions page / modal

The Issue
Similar to how we currently fetch featured content, we will be implementing an endpoint  (https://github.com/lbryio/internal-apis/issues/262 - internal issue) which lists suggested channels for users to subscribe/view content from. I've also suggested a community-driven category be added to the endpoint which would list channels with the highest claim bids. The endpoint for featured subs will have a description
Since we don't have channel metadata, we'd need a clever way to engage the user/show the suggestions.
For a user without any subscriptions, this could be shown when they enter the subscriptions page.  For those with subs already, could show it as a compact view near the top or have an option to view the suggestions.
We could also incorporate this as part of the first run experience to drive exploration/engagement.
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

Acceptance Criteria

Completed design and implementation

Definition of Done

[ ]  Tested against acceptance criteria
[ ] Tested against the assumptions of the user story
[ ] The project builds without errors
[ ] Unit tests are written and passing
[ ] Tests on devices/browsers listed in the issue have passed
[ ] QA performed & issues resolved
[ ] Refactoring completed
[ ] Any configuration or build changes documented
[ ] Documentation updated
[ ] Peer Code Review performed

@alyssaoc I'll let you determine if we should be created an Epic for this as a separate issue, or possibly turn this one into an Epic

API sample output:
https://api.lbry.io/subscription/suggest
{
  "success": true,
  "error": null,
  "data": {
    "featured": {
      "Crypto Candor": "@CryptoCandor#9152f3b054f692076a6882d1b58a30e8781cc8e6",
      "Dota 2 Divine": "@Dota2Divine#2d2c1a3dc98ca868d1f2bfe76b8a1bb820857c5a",
      "UC Berkeley": "@UCBerkeley#de0fcd76d525b1db36f24523e75c28b542e92fa2",
      "Mothers Basement": "@MothersBasement#65dee913b4f26144d573118b2e87704e03d01b8f",
      "bluedrake42": "@bluedrake42#32de523ba228dd3f3159eb5a6cc07b6fd51f4dc0",
      "Tech Fox": "@TechFox#2305db36455aa0d18571015b9e9bd0950262aa0f",
      "Crazy Fox Movies": "@CrazyFoxMovies#1516361918bfd02ddd460489f438e153c918521c",
      "Lunduke": "@Lunduke#e8f68563d242f6ac9784dcbc41dd86c28a9391d6",
      "grabthegames": "@grabthegames#379290e593323eb208070269ea2c29a4ddf64985",
      "Pro Tips": "@ProTips#abc44c18d8842a2dbb5db8491e91a207c1d9b7d8"
    },
    "top_bid": {
      "@Porn": "@Porn#9377895520f71f82702b2dc56cc45d2f046ada8a",
      "@LBRYCommunity": "@LBRYCommunity#a1372cf5523885f5923237bfe522f02f5f054362",
      "@invariantchange": "@invariantchange#cb8c10c765c004b0351594a9de284dd20b9b33f4",
      "@TheBlockCrypt": "@TheBlockCrypt#2ae94dafc42b4b6be170128a3bc32d2ac0bf1a14",
      "@timcast": "@timcast#c9da929d12afe6066acc89eb044b552f0d63782a",
      "@Books": "@Books#fa1c5e4636d4087018dfdbb10d5a4838a10f50dd",
      "@oakey": "@oakey#71b3ce7e10fa0e25074f6003833224e3b402d76c",
      "@ProTips": "@ProTips#abc44c18d8842a2dbb5db8491e91a207c1d9b7d8",
      "@InvariantChange": "@InvariantChange#2406a17ac686524bff75c72e9239eddfdd45a406",
      "@jack": "@jack#251305ca93d4dbedb50dceb282ebcb7b07b7ac65"
    },
    "top_subscribed": {
      "@CryptoCandor": "@CryptoCandor#9152f3b054f692076a6882d1b58a30e8781cc8e6",
      "@TechFox": "@TechFox#2305db36455aa0d18571015b9e9bd0950262aa0f",
      "@Lunduke": "@Lunduke#e8f68563d242f6ac9784dcbc41dd86c28a9391d6",
      "@Acituanbus": "@Acituanbus#aeb882df790ac1c25697954b2bf5cbb3a4ed06f9",
      "@MothersBasement": "@MothersBasement#65dee913b4f26144d573118b2e87704e03d01b8f",
      "@oniblackmage": "@oniblackmage#0ddd797e39c5fe706ed4ee62f96becb792aee03a",
      "@brightsunfilms": "@brightsunfilms#5a1b164d0a2e7adf1db08d7363ea1cb06c30cd74",
      "@davidpakman": "@davidpakman#760da3ba3dd85830a843beaaed543a89b7a367e7",
      "@3Blue1Brown": "@3Blue1Brown#ba79c80788a9e1751e49ad401f5692d86f73a2db",
      "@CrazyFoxMovies": "@CrazyFoxMovies#1516361918bfd02ddd460489f438e153c918521c"
    }
  }
}

This is gonna be part of my subscriptions epic.

Closed in https://github.com/lbryio/lbry-desktop/issues/1825


[Bug] container name already in use after failed image pull or port conflict

If a cluster creation fails due to a port conflict or a failed image pull, a subsequent run (with fixed parameters, but unchanged name) will result in a container name conflict, because the container was already created (but not started).
TODO: if starting the container fails due to any issue, but it was already created, we need to delete it before erroring out.

Solved via #38 thanks to @zeerorg


select call on stdin not working as expected (IDFGH-2451)

Environment

Development Kit:      ESP32-DevKitC
Kit version (for WroverKit/PicoKit/DevKitC): v4
Module or chip used:  ESP32-WROOM-32U
IDF version (run git describe --tags to find it):
Build System:  PlatformIO, Framework (espidf)
Compiler version (run xtensa-esp32-elf-gcc --version to find it):
Operating System:     Windows
Power Supply:         USB

Problem Description
I am trying to read STDIN using select function but I am getting uart driver error instead and return 0 (timeout). But never read anything. Any help would be appreciated.
Expected Behavior
Select call should return >0 if bytes present
0 for timeout
-1 if error
Actual Behavior
Select ret: 0
E (243542) uart: uart_get_buffered_data_len(1253): uart driver error
Steps to repropduce
Code to reproduce this issue
Following is code I am running.

		timeout.tv_sec = 1;
		timeout.tv_usec = 0;

		FD_ZERO(&set); /* clear the set */
		FD_SET(STDIN_FILENO, &set); /* add our file descriptor to the set */
		ret = select(STDIN_FILENO + 1, &set, NULL, NULL, &timeout);
		debug(DBG_OFF, "Select ret: %d\n", ret);
		if (ret > 0) {
			ret = 0;
			read(STDIN_FILENO, &ret, 1);
			break;
		}

Debug Logs
Select ret: 0
E (328242) uart: uart_get_buffered_data_len(1253): uart driver error
Select ret: 0
E (329342) uart: uart_get_buffered_data_len(1253): uart driver error
Select ret: 0
E (330442) uart: uart_get_buffered_data_len(1253): uart driver error
Select ret: 0
E (331542) uart: uart_get_buffered_data_len(1253): uart driver error
Select ret: 0
E (332642) uart: uart_get_buffered_data_len(1253): uart driver error

Other items if possible

Hello @ajaybhargav.
Please take a look how it is done in the example: https://github.com/espressif/esp-idf/tree/master/examples/peripherals/uart/uart_select
Did you called esp_vfs_dev_uart_use_driver() like it is done here: https://github.com/espressif/esp-idf/blob/master/examples/peripherals/uart/uart_select/main/uart_select_example_main.c#L46
Another example which could be helpful: https://github.com/espressif/esp-idf/tree/master/examples/system/select

I have not called esp_vfs_dev_uart_use_driver() I believe driver must be already setup since standard IO should be setup by system itself. I may be wrong, but I will still try with calling this function and update.

I think a proper stdin/out initialization missing in documentation. If anyone else stumble upon the same issue then please init your standard IO as follows:
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
ESP_ERROR_CHECK(uart_driver_install((uart_port_t)CONFIG_CONSOLE_UART_NUM,
						256, 0, 0, NULL, 0));
esp_vfs_dev_uart_use_driver(CONFIG_CONSOLE_UART_NUM);
esp_vfs_dev_uart_set_rx_line_endings(ESP_LINE_ENDINGS_CR);
/* Move the caret to the beginning of the next line on '\n' */
esp_vfs_dev_uart_set_tx_line_endings(ESP_LINE_ENDINGS_CRLF);

I thought the above would be done automatically since printf was working fine. Anyways, Problem is now resolved.


package main references lib/index.js which doesn't exist

Title says it all, makes this module broken as it currently stands :(

@tommoor thanks for reporting! Problem was in forgotten .npmignore file. You can update to version 0.1.2 with fix


Create a Trigger, Paste Nivols : Nivol with leading 0 are no longer recognized

If I create a trigger and paste a list of nivol, the nivol with leading 0 (0000XXXXX) are no longer recognize.
The leading 0 should be removed before searching for volunteers.
It's also the case in volunteer search
https://redcall.minutis.croix-rouge.fr/management/volunteers

fixed

fixed


debugProfileBuildsEnabled and other equivalents should include arguments

...with debugCreator, widget constructor location from the widget inspector, etc.
cc @goderbauer

(in the Timeline.startSync call, that is)

maybe the whole debugFillProperties list?


Use MinRevTTL instead of constant

In SCIONLab, if we change the value path_mgmt.MinRevTTL from 10 to e.g. 20, some UTs in beacon_srv won't pass. Using the constant MinRevTTL instead of hardcoded 10 fixes them.

This change is

Closing this in favor of https://github.com/scionproto/scion/pull/3111


Fix broken links to geode docs.

Links to How To Install and Geode in 15 min are
now refer to 1.1.0 docs for now.

GEODE-2554 addresses to fix the doc references issue and we would not need this fix.


Mechanism to include multiple search paths?

I was wondering if there was a mechanism to include multiple search paths?  We're looking to introduce to a fairly large code base and it can take a long time to search through all the classes.  However, we have classes in a couple different top level directories that we'd like to convert.
app/
  Foo/
  Bar/
  Irrelevant/

Something like search_paths' => [app_path('Foo'), app_path('Bar')] would be awesome but I'm not sure how to go about it.

Hi @timmartin19,
That's a good point, I'm currently working on v2, let me take a look how easy it is to add multiple search paths.

Hi @timmartin19 this is now a new feature in v2!


[Help] Allow another port

Hello,
I do not have much experience on iptables. I want to allow access to port 3000 publicly. But below rule was not worked.

-A INPUT -p tcp --dport 3000  -j ACCEPT

Can you help with a correct rule?
Thanks!

@phamviet - there is also a digital ocean firewall that blocks traffic that gets created as part of this deployment. You can login and find it here: https://cloud.digitalocean.com/networking/firewalls. You'll need edit the firewall and add a rule for that port.

Excellent! This is my bad.
Thanks @dan-v!

No worries @phamviet ! Hope it works well for you.


Randomly getting Broken pipe error on upload on certain combinations of files and channels

Reproducible in:
The Slack SDK version
sudo pip3 freeze | grep slack
slackclient==2.9.3
Python runtime version
python --version
Python 2.7.16
python3 --version
Python 3.8.6
OS info
ProductName:	Mac OS X
ProductVersion:	10.15.7
BuildVersion:	19H2
usage: uname [-amnprsv]
Steps to reproduce:
Run the command:
python3 /usr/local/lib/python3.8/site-packages/slack/slack_file_upload.py $SLACK_CHANNEL $TOKEN $PATH_TO_FILE
slack_file_upload.py file contents:
import os
import slack
import sys

def upload_file(
        slack_channel,
        slack_token,
        filepath):

    client = slack.WebClient(token=slack_token)
    response = client.files_upload(file=filepath, channels=slack_channel)
    assert response

upload_file(slack_channel=sys.argv[1], slack_token=sys.argv[2], filepath=sys.argv[3])

Expected result:
It should upload everytime with success as it was the last 2-3 weeks
Actual result:
Randomly I am getting this error on certain combination of files + channel (while on other channels the files are uploaded flawlessly), and when I try to upload to other channel the same file it works, then when getting back to the old channel sometimes it starts to work sometimes not.
Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 1350, in do_open
    h.request(req.get_method(), req.selector, req.data, headers,
  File<EMAIL_ADDRESS>line 1255, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File<EMAIL_ADDRESS>line 1301, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File<EMAIL_ADDRESS>line 1250, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File<EMAIL_ADDRESS>line 1049, in _send_output
    self.send(chunk)
  File<EMAIL_ADDRESS>line 971, in send
    self.sock.sendall(data)
  File<EMAIL_ADDRESS>line 1204, in sendall
    v = self.send(byte_view[count:])
  File<EMAIL_ADDRESS>line 1173, in send
    return self._sslobj.write(data)
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/slack/slack_file_upload.py", line 15, in <module>
    upload_file(slack_channel=sys.argv[1], slack_token=sys.argv[2], filepath=sys.argv[3])
  File "/usr/local/lib/python3.8/site-packages/slack/slack_file_upload.py", line 11, in upload_file
    response = client.files_upload(file=filepath, channels=slack_channel)
  File "/usr/local/lib/python3.8/site-packages/slack/web/client.py", line 1533, in files_upload
    return self.api_call("files.upload", files={"file": file}, data=kwargs)
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 150, in api_call
    return self._sync_send(api_url=api_url, req_args=req_args)
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 241, in _sync_send
    return self._urllib_api_call(
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 352, in _urllib_api_call
    response = self._perform_urllib_http_request(url=url, args=request_args)
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 495, in _perform_urllib_http_request
    raise err
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 475, in _perform_urllib_http_request
    resp = urlopen(  # skipcq: BAN-B310
  File<EMAIL_ADDRESS>line 222, in urlopen
    return opener.open(url, data, timeout)
  File<EMAIL_ADDRESS>line 525, in open
    response = self._open(req, data)
  File<EMAIL_ADDRESS>line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File<EMAIL_ADDRESS>line 502, in _call_chain
    result = func(*args)
  File<EMAIL_ADDRESS>line 1393, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File<EMAIL_ADDRESS>line 1353, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 32] Broken pipe>

Hi @NudeNULL , thanks for writing in! Under the circumstances, it seems that the server-side were unable to handle your requests for some reason (e.g., Slack's capacity and/or outage, network issues between your app and Slack). In this case, there is nothing we, as the maintainers of this API client library, can do for you.
I'm sorry for bothering you but could you contact from https://my.slack.com/help/requests/new? As this is a public issue tracker, we are unable to access your app/workspace information.

Hi @seratch , I was wondering if the upload was receiving the error due to the storage limitation, I found that the user has reached the limit of 10GB. After deleting all of the files I was no more receiving that error, instead I started to receive another one the same random way, I just use the same command in Terminal again and again, and it works randomply 50/50, and when it doesn't work I am receiving this error this time:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 355, in _urllib_api_call
    response_body_data: dict = json.loads(response["body"])
  File<EMAIL_ADDRESS>line 357, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/slack/slack_file_upload.py", line 15, in <module>
    upload_file(slack_channel=sys.argv[1], slack_token=sys.argv[2], filepath=sys.argv[3])
  File "/usr/local/lib/python3.8/site-packages/slack/slack_file_upload.py", line 11, in upload_file
    response = client.files_upload(file=filepath, channels=slack_channel)
  File "/usr/local/lib/python3.8/site-packages/slack/web/client.py", line 1533, in files_upload
    return self.api_call("files.upload", files={"file": file}, data=kwargs)
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 150, in api_call
    return self._sync_send(api_url=api_url, req_args=req_args)
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 241, in _sync_send
    return self._urllib_api_call(
  File "/usr/local/lib/python3.8/site-packages/slack/web/base_client.py", line 358, in _urllib_api_call
    raise err.SlackApiError(message, response)
slack.errors.SlackApiError: Failed to parse the response body: Expecting value: line 1 column 1 (char 0)
The server responded with: {'status': 408, 'headers': <http.client.HTTPMessage object at 0x1057f87f0>, 'body': 'request timeout'}

Is this still not related to the API and I have to contact Slack team?

Thanks for sharing this. In this case, I don't think you need to contact the support team to clarify the issue more.
Just out of curiosity, but does your app upload a large file using the API? Personally, I've never encountered 408 errors when uploading files via the Slack API.
Although the error message contains enough information, the direct cause of the error is a failure of parsing a response body (somehow, the response body is not in JSON format). If many developers encounter the same error, this API client may need to improve the error message in exception.

This is funny, the old error suddenly started to popup again, so I am getting both errors randomly.
In my case, to reproduce the error it is enough to upload using the Mac OS Terminal with the same command other over and over again, the same file, all of the parameters are the same.
The file size is anything from 20MB to 60MB.

Thanks for sharing more detailed information. I'll escalate this issue to the servers-side teams.
This library relies on urllib, the standard API for HTTP communication, while it uses AIOHTTP for async interface. If other solutions such as requests work much better for your specific use case, I have to say it's worth considering to switch to another.

On my side I just made a loop where the app tries to upload again and again until it works. In my case usually it works from the first time and the worst case are 3-4 fails with one of these 2 errors and after that success.
Will keep you updated in case it there will be no more errors (maybe some server side fix).

Hi @NudeNULL ,

Will keep you updated in case there will be no more errors (maybe some server side fix).

If you have any updates on your issue and can share your knowledge here, it would be greatly appreciated.
Also, if I understand correctly, this project maintainers don't have any further action to take for this issue. If you don't mind, let us close this issue.

Yes thanks, you can close the issue.


Add unit tests for compress in random shuffling buffer

~Compress remaining shuffling buffer should use remained size, that is, self._size.~
self.size actually is a property decorator defined afterwards.
I just change it to keep consistent with other places of code to improve readability.
Also, I added some unit tests to check compress results.

 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.

@selitvin I cannot request reviewer on the right side panel, can you help me review or assign it? Thanks.

Thanks for the fix. Really surprised we didn't catch that with a unit-test. Can you see if a test case is missing? If not, please let me know I'll take a stab at it.

Thanks for the fix. Really surprised we didn't catch that with a unit-test. Can you see if a test case is missing? If not, please let me know I'll take a stab at it.

@selitvin
It seems that in test_shuffling_buffer.py, only result length,  can_add, can_retrieve are tested. There is no test to verify the output of add_many with remaining shuffle buffer should be valid. Maybe I missed some points, I was new to petastorm. :)

Appears to be a miss then! Would you be able to extend the test to cover this line with the typo or you'd need a hand with that?

Appears to be a miss then! Would you be able to extend the test to cover this line with the typo or you'd need a hand with that?

Sure. I will start with that and reach out to you if need help.

Appreciate it! Would be glad to help, but I think it should be pretty straight forward. Don't know how did we miss that...

@selitvin
Actually this is not a typo in original code.
self.size is defined as a property decorator afterwards.
But I just recommend to change it to be consistent with all other places in the code using self._size
Please feel free to drop the first commit.
I also added necessary unit tests to check compress results in second commit, please take a look and let me know anything to change.

@selitvin How to re-trigger the test? I don't quite understand why build can fail just for a single character change.

@selitvin How to re-trigger the test? I don't quite understand why build can fail just for a single character change.

Appears to be a linting issue:
petastorm/tests/test_shuffling_buffer.py:262: [C0325(superfluous-parens), ] Unnecessary parens after 'not' keyword

https://travis-ci.com/github/uber/petastorm/jobs/464041086
You should be able to repro locally:
pylint --rcfile=.pylintrc petastorm examples -f parseable -r n

Got it!

@selitvin Fixed.

@selitvin Fixed.


Rotating View appears jagged

React Native version:
"react": "16.3.0",
"react-native": "0.54.4",
"react-native-svg": "6.4.1"
Steps To Reproduce
I used the View rotation animation and found that there are jagged edges around it. This appears on the Samsung S9 and  Honor 10 and Red mi 7.  I think there are other models and it has obviously affected normal use. Below are screenshots and sample code

Both svgView and View have significant jagged edges
code:
import React, {Component} from 'react';

import {
    View,
    Animated,
} from 'react-native';

import Svg, {
    Ellipse,
    Circle,
    Defs,
    Stop,
    G,
    LinearGradient
} from 'react-native-svg';

const AnimatedCircle = Animated.createAnimatedComponent(Circle);
const AnimatedSvg = Animated.createAnimatedComponent(Svg);

export class SvgCircle extends React.Component {

    render() {
        let {size, strokeWidth, startColor, endColor, gradient, svgStyle} = this.props;
        let width = size, height = size;
        if (svgStyle) {
            width = svgStyle.width;
            height = svgStyle.height;
        }
        let center = width / 2, radius = size / 2.0;
        if (strokeWidth) {
            radius -= strokeWidth / 2;
        }
        radius -= 1;
        let hasGradient = gradient && startColor && endColor;
        let strokeColor = hasGradient ? "url(#grad)" : (this.props.stroke || "none");
        let fill = this.props.fill || 'none';

        return (
            <AnimatedSvg
                width={width}
                height={height}
                style={svgStyle}
            >
                <Defs>
                    {hasGradient && (
                        <LinearGradient id="grad" x1={gradient.x1} y1={gradient.y1} x2={gradient.x2} y2={gradient.y2}>
                            <Stop offset="0" stopColor={startColor} stopOpacity="1"/>
                            <Stop offset="1" stopColor={endColor} stopOpacity="1"/>
                        </LinearGradient>)
                    }
                </Defs>

                <AnimatedCircle
                    {...this.props}
                    r={radius}
                    cx={center}
                    cy={center}
                    originX={center}
                    originY={center}
                    stroke={strokeColor}
                    fill={fill}
                    ref={(ref) => this.circle = ref}
                />
            </AnimatedSvg>)
    }
}

const circleRadius = 60;
export default class SvgTest extends Component {

    constructor(props, context) {
        super(props, context);

        this.circleAnimated = new Animated.Value(0);
        this.rotateCircleZ = this.circleAnimated.interpolate({
            inputRange: [0, 1],
            outputRange: ['0deg', '360deg'],
        });

        this.startRotate();
    }

    startRotate() {
        this.circleAnimated.setValue(0);
        Animated.timing(this.circleAnimated, {
            toValue: 1,
            duration: 2000,
        }).start(() => {
            this.startRotate();
        })
    }

    render() {
        return (
            <View style={{
                flex: 1,
                backgroundColor: 'red',
            }}>
                <Animated.View
                    style={{
                        width: circleRadius * 2,
                        height: circleRadius * 2,
                        alignItems: "center",
                        justifyContent: 'center',
                        backgroundColor: 'blue',
                        marginLeft: 30,
                        marginTop: 30,
                        transform: [
                            {rotateZ: this.rotateCircleZ},
                        ]
                    }}>
                    <SvgCircle
                    svgStyle={{
                    width: circleRadius * 2,
                    height: circleRadius * 2,
                    }}
                    size={circleRadius * 2}
                    strokeWidth={10}
                    stroke='yellow'
                    />
                </Animated.View>
            </View>
        )
    }
}

👋 there.
This seems to be related to react-native-svg, not strictly because of React Native - or does this happen with, let's say, standard Image components?
Also, you are using a really old version of React Native, can you test with 0.59 and/or the 0.60 latest RC?

@kelset  This seems to be a problem with the android platform, which may appear on different phones.

I will close this question first.


Online Lecture Set Up

Teams meetings and links for the different days
Breakout rooms for the online teams during tutorials

Links sorted, not doing breakout rooms but will have standing teams meeting for tuts


qaoa runtime algorithm: No swap strategy can be found for ibm_perth

Context:
When using the qaoa runtime algorithm with the 7 qubit quantum device ibm_perth and setting the attribute  'use_swap_strategies':True
Current bahvior:
This currenttly returns an error as No swap strategy can be found for ibm_perth
Suspected cause
Please add ibmq_perth and ibmq_lima to listed backend in the get_swap_strategy() function
`def get_swap_strategy(
    backend_name: str, n_qubits: Optional[int] = None
) -> Tuple[SwapStrategy, List[int]]:
    Get a swap strategy and the mapping based on the backend.
    Args:
        backend_name: the name of the backend as a string.
        n_qubits: the number of qubits to use. If not specified then all qubits will be used.
    Returns:
        A tuple where the first element is a swap strategy for the given backend and the second
        element is the list of physical qubits that the swap strategy applies to.

    if backend_name in [
        "ibmq_belem",
        "ibmq_quito",
        "ibmq_lime",  ## shouldn't it be ibmq_lima
        "fake_belem",
        "fake_quito",
        "fake_lime",
    ]:
        return FiveQubitTeeSwapStrategy(), list(range(5))

    if backend_name in [
        "fake_lagos",
        "ibm_lagos",
        "ibmq_casablanca",
        "ibm_nairobi",
        "ibmq_jakarta", #please add ibm_perth   (without q)
    ]:
        return SevenQubitHeavySwapStrategy(n_qubits), list(range(n_qubits))`

Further suggestion for enhancements:

if a simulator is selected ignore the swap strategy parameter or continue with alternative behavior (optimization level) if no swap strategy can be found.

This has been fixed.
Also this repo is being archived. Please open any future issues in https://github.com/Qiskit/qiskit-ibm-runtime/issues


Validation error when creating auto increment column on Mysql

Search first

[X] I searched and no similar issues were found

Description
Tried to create an auto increment column with a unique constraint in a mysql table, but Liquibase Validation doesn't allow it with the message "Cannot add a non-primary key identity column".
Despite the validation, coded on this line, mysql actually supports an auto increment column not being a PK, as long as it is a key itself (unique in this case).
Steps To Reproduce
Try to create a an auto increment column with a unique constraint, and it will fail:
        <addColumn tableName="campanha">
            <column autoIncrement="true" name="cd_campanha" type="INT(10)">
                <constraints unique="true" uniqueConstraintName="cd_campanha_UK" nullable="false" />
            </column>
        </addColumn>

Nonetheless, if we run an equivalent SQL command it works:
        <sql>
            alter table campanha
                add cd_campanha int not null auto_increment,
                add constraint cd_campanha_UK unique (cd_campanha)
        </sql>

Expected/Desired Behavior
Expected behavior is that Liquibase Validation allows to create an auto increment column in mysql, even if it's not a primary key, as long as it has a unique constraint associated with it.
Liquibase Version
4.9.1
Database Vendor & Version
mysql 8.2.-0
Liquibase Integration
spring boot
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
Ubuntu
Additional Context
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR (Thank you!)

Hi @jfneis, thank you for reporting this issue.
Have you tried using the latest Liquibase version? Is the problem still replicable with it?
Let me know.
Thank you,
Tatiana

Hi @tati-qalified!
Yes, running validate using Liquibase 4.27.0 the error persists, thus showing that it's not a Spring integration problem.
[2024-04-30 15:06:40] INFO [liquibase.ui] ERROR: Exception Primary Source:  4.27.0
[2024-04-30 15:06:40] INFO [liquibase.command] Command execution complete
[2024-04-30 15:06:40] SEVERE [liquibase.integration] Validation Failed:
     1 changes have validation failures
          Cannot add a non-primary key identity column, changelogs/add_auto_increment_non_pk_column.xml::202404291200-1::jfneis
liquibase.exception.CommandExecutionException: liquibase.exception.ValidationFailedException: Validation Failed:
     1 changes have validation failures
          Cannot add a non-primary key identity column, changelogs/add_auto_increment_non_pk_column.xml::202404291200-1::jfneis

@jfneis I figured out what the problem is - the autoIncrement="true" attribute is being processed before the unique constraint is added, so the error is technically correct at that point. If the autoIncrement  is added after setting the constraint, then the changeset will run as expected:
  <changeSet id="1" author="1">
    <addColumn tableName="campanha">
      <column name="cd_campanha" type="INT(10)">
        <constraints unique="true" uniqueConstraintName="cd_campanha_UK" nullable="false" />
      </column>
    </addColumn>
  </changeSet>

  <changeSet id="2" author="1">
    <addAutoIncrement tableName="campanha" columnName="cd_campanha" columnDataType="INT(10)"/>
  </changeSet>

It's a simple workaround, though it might get tedious if you need many columns with this configuration.
I see that you're willing to submit a PR - our development team is available to provide guidance if needed, so feel free to submit it and ask any questions you may have.
Thank you,
Tatiana

@tati-qalified thanks for pointing out this behavior.
The given examples work as there is no validation about column keys when adding an auto increment separately. Actually even not adding the unique constraint, liquibase validates the changeSets and tries to apply them to the database, thus failing with
liquibase.exception.DatabaseException: Incorrect table definition; there can be only one auto column and it must be defined as a key [Failed SQL: (1075) ALTER TABLE teste.teste MODIFY cd_campanha INT AUTO_INCREMENT]
	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:473)

I'm OK with this exception as liquibase doesn't check the current database characteristics before applying the change sets. Basically, it can't check if the column is not a key in this situation, opposed to when it's adding a new column.
All said, the problem remains in the add column statement in a non primary key auto increment column, as liquibase incorrectly doesn't allow a changeSet generated by diffChangeLog to be applied. I will open a PR for this!
Thanks for your help!

Hey @jfneis , thanks for the report! So probably the fix would be around here: https://github.com/liquibase/liquibase/blob/ef45633b4bd2e500cc334ac9bb15df59b9749de2/liquibase-standard/src/main/java/liquibase/sqlgenerator/core/AddColumnGenerator.java#L90
I see 2 options:

remove this validation and let Mysql handle it - anything wrong and you get a database error
improve this if statement by adding the other possible values - but as we don't have the original column definition here I believe we would need to query it inside this if condition.

Hi @filipelautert, thanks for taking a look at it.
I ran over this problem while generating a diff between 2 databases. The result is that the liquibase generated changelog doesn't run, because of the validation line you pointed out, but also because liquibase doesn't generate single SQL commands to create the column + add the necessary constraints so Mysql accepts its creation alltogether.
This limitation (not creating constraints and the column itself in a single statement) is completely understandable for me, as that's a more generic way to work with multiple databases, but leaves us with the question: how can we create an identity non-PK column in Mysql using liquibase? And, as far as I can see, the only answer is: create the column and desired constraints, and after that use an addAutoIncrement statement.
With that in mind, I believe the best way to go would be:

remove the validation. As it's an add column statement, there is 0 chance that anything can be queried from the database. The scenario of a non-PK identity column will not be possible to achieve using this statement, as liquibase creates diferentes SQL statements for each constraint
review the diff generation strategy to use addAutoIncrement instead of the addColumn for auto increment columns, making sure this is the last constraint to be processed, at least for Mysql

Maybe dealing with autoIncrement as a regular constraint in the column creating could be an option, as it would allow a validation in the same style it's done today (considering the other constraints allowed by Mysql). Nonetheless, it forces the awareness of precedence between constraints, which as far as I looked is not possible and would require some work on the column creation strategy.

Hi @jfneis , I  agree that it would be the best way to handle that. But I think that maybe you could create 2 PRs, as the validation removal will be something easy while item 2 may be complicated to accomplish - everything that deals with diffs is very sensible, you try to fix one thing and break another one - and we also don't have many DB specific behaviours there too.


Create branch for ch32v

./tools/configure.sh ch32v307evt:nsh
make
Succeeds. Doubt it runs since my board won't connect.
linker script and startup.S need nuttx-ified.

I think @acassis answer your question about gpio through email?


.gitignore ignores cmake/lib

There's a directory labeled "lib" located at python-cmake-buildsystem/cmake/lib, however the .gitignore file is causing this to be ignored.

Thanks for the report and apologize for the late reply.
How could I reproduce the problem ?
I tried adding a file to the cmake/lib folder and it is properly detected.

I think the issue is the use of lib in .gitignore. Try /lib instead.

@isaachier  Thanks for the note.
Out of curiosity, did you manage to reproduce the problem ?

No sorry, just noticed the patterns in the .gitignore would do that. From Git's gitignore docs:

For example, "**/foo" matches file or directory "foo" anywhere, the same as pattern "foo".

https://git-scm.com/docs/gitignore


[AutoDiff] Enable end-to-end differentiation using Builtin.autodiffGetVJP

This patch makes Builtin.autodiffGetVJP usable as a differential operator. It gives you the vector-Jacobian product function, for example:
func func_to_diff(x: Float) -> Float {
  return x * x
}
let (y, pullback) = Builtin.autodiffGetVJP(func_to_diff)(4)
pullback(1) // 8

We are still fixing various issues, including:

Teaching SILGen to emit reabstraction thunks for @autodiff functions.
Changing Builtin.autodiffGetVJP to Builtin.autodiffApplyVJP so that

the parent function (any differential operator defined as functions in stdlib) can rethrow when the closure throws, and
the argument to the builtin need not be @escaping.

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow macOS


Inconsistent lifecycle events when working with modals

Short description of the problem:
When I'm on page P and I open the modal M, P will fire the lifecycle events onPageWillLeave and onPageDidLeave, and then M will fire onPageWillEnter and onPageDidEnter. When I'm dismissing M, it will fire onPageWillLeave and onPageDidLeave, but P wont fire any lifecycle events.
What behavior are you expecting?
I would expect P to fire onPageWillEnter and onPageDidEnter.
Which Ionic Version? 2.x
Run ionic info from terminal/cmd prompt: (paste output below)
Cordova CLI: 6.1.0 (cordova-lib@undefined)
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.1
Ionic Version: 2.0.0-beta.3
Ionic CLI Version: 2.0.0-beta.19
Ionic App Lib Version: 2.0.0-beta.9
OS: Windows 7 SP1
Node Version: v5.7.0

Hey @schlaus ! Thanks for opening an issue with us! Would you be able to make a codepen or plunker that demonstrates this issue?

Hello all! As it seems it has been a while since there was any activity on this issue i will be closing it for now. Feel free to comment if you are still running into this issue. Thanks for using Ionic!

same issue.
creating modal like this:
let modal = Modal.create(NewTicketPage);
this.nav.present(modal);

normally the lifecycle onPageWillEnter() works perfect with all the other pages.
the modal itself is also a page btw. so nothing special there.
but since this sounds like a big issue, i do not know whether i did a mistake.
the constructor itself is called everytime it should be called.

This seems to be an issue again on current master (ccf6ae5) with ModalController:
let modal = this.modalCtrl.create(ReportDetailsPage, {report: report})
modal.present();

and later dismissing the modal
this.viewCtrl.dismiss(this.report);

ionViewWillEnter will not be called.

Is there a workaround in Beta 11 until this is fixed, perhaps to manual way to fire or subscribe to the ionViewWillEnter and ionViewDidEnter events?
All my views are populated according to the ViewController lifecycle, using the ionViewWillEnter and ionViewDidEnter events, so would rather not refactor that code if this will be fixed in upcoming an beta.

Ok, this is strange, but if I override the showBackdrop and enableBackdropDismiss options, then the modal fires the ionViewWillEnter and ionViewDidEnter events as expected.
let modal = this.modalController.create(ModalPage,
  {},
  { showBackdrop: false, enableBackdropDismiss:false });
modal.present();

Perhaps a workaround until this issue has been fixed...

I am using @dalezak 's workaround ATM. (I don't want to know what they had to do to arrive at this workaround. 😬) I am using a view that can be called from many places in the app, so it really needs to be a "modal." [RC4] Settings those options works for me on those specific modals, as this is only "phone"-sized devices. After adding those options, I am getting expected results from dismissing the modal and re-entering it.


Possible data corruption issue under stress

Context and Description
I think there may be a concurrency issue with Kuery-ORM when subjected to stress which causes infrequent errors, but looks like it could potentially cause data corruption.
I am using this work-in-progress branch of my TechEmpower implementation for Kitura, compiled in release mode, and driven with the following command:
wrk -c128 -t4 -d30s http://localhost:8080/db

Client output:
Running 30s test @ http://localhost:8080/db
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    27.07ms   50.19ms 388.46ms   88.90%
    Req/Sec     2.94k   250.29     3.78k    70.75%
  351630 requests in 30.02s, 68.00MB read
  Socket errors: connect 0, read 7, write 0, timeout 0
  Non-2xx or 3xx responses: 6
Requests/sec:  11711.99
Transfer/sec:      2.26MB

...the Non-2xx or 3xx responses line indicates the number of failed requests during this period.
The corresponding output from the Kitura process:
bananas:latest djones6$ .build/release/TechEmpowerPostgresORM
2018-11-01 15:58:56.243 TechEmpowerPostgresORM[19240:215117] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon or value in dictionary on line 1. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolonOrValue to debug.
[2018-11-01T15:58:56.329Z] [INFO] [HTTPServer.swift:195 listen(on:)] Listening on port 8080
[2018-11-01T15:59:16.245Z] [ERROR] [main.swift:65 TechEmpowerPostgresORM] 706 : Query execution error:
ERROR:  invalid byte sequence for encoding "UTF8": 0x90
 For query: SELECT * FROM "world" WHERE "world"."id" = $1
[2018-11-01T16:14:14.680Z] [ERROR] [main.swift:65 TechEmpowerPostgresORM] 706 : Query execution error:
ERROR:  invalid input syntax for integer: ""
 For query: SELECT * FROM "world" WHERE "world"."id" = $1
[2018-11-01T16:14:15.810Z] [ERROR] [main.swift:65 TechEmpowerPostgresORM] 706 : Query execution error:
ERROR:  invalid input syntax for integer: "ld".""
 For query: SELECT * FROM "world" WHERE "world"."id" = $1
[2018-11-01T16:14:18.968Z] [ERROR] [main.swift:65 TechEmpowerPostgresORM] 706 : Query execution error:
ERROR:  invalid input syntax for integer: ""
 For query: SELECT * FROM "world" WHERE "world"."id" = $1
[2018-11-01T16:16:24.992Z] [ERROR] [main.swift:65 TechEmpowerPostgresORM] 706 : Query execution error:
ERROR:  invalid byte sequence for encoding "UTF8": 0xc9 0xcf
 For query: SELECT * FROM "world" WHERE "world"."id" = $1
[2018-11-01T16:16:25.543Z] [ERROR] [main.swift:65 TechEmpowerPostgresORM] 706 : Query execution error:
ERROR:  invalid byte sequence for encoding "UTF8": 0xf9
 For query: SELECT * FROM "world" WHERE "world"."id" = $1

The same benchmark driven by the TechEmpowerPostgres executable (which uses Kuery directly and does not involve the ORM) runs without such errors.
Also, running with fewer concurrent connections (eg. 20) seems to prevent the errors from occurring.
Environment Details
macOS 10.13.6 High Sierra, Swift 4.2.1 (Xcode 10.1), compiled in release mode.
Running against a local PostgreSQL database.
Steps to Reproduce

...
...

Expected vs. Actual Behaviour

[ ] Expected to happen...
[ ] Actually happened...

@kilnerm FYI.


Target WSGI script cannot be loaded as Python module

Hello
I am getting the below error. I have followed many solution on the net as it seems to be common, but no success. Please guide
[Wed Dec 26 17:27:25.198103 2018] [:error] [pid 25654] mod_wsgi (pid=25654): Target WSGI script '/opt/graphite/conf/graphite.wsgi' cannot be loaded as Python module.
[Wed Dec 26 17:27:25.198140 2018] [:error] [pid 25654] mod_wsgi (pid=25654): Exception occurred processing WSGI script '/opt/graphite/conf/graphite.wsgi'.
[Wed Dec 26 17:27:25.198167 2018] [:error] [pid 25654] Traceback (most recent call last):
[Wed Dec 26 17:27:25.198189 2018] [:error] [pid 25654]   File "/opt/graphite/conf/graphite.wsgi", line 7, in
[Wed Dec 26 17:27:25.198254 2018] [:error] [pid 25654]     from graphite.wsgi import application
[Wed Dec 26 17:27:25.198269 2018] [:error] [pid 25654]   File "/opt/graphite/webapp/graphite/wsgi.py", line 15, in
[Wed Dec 26 17:27:25.198326 2018] [:error] [pid 25654]     application = get_wsgi_application()

Seems like there are some lines missing from the stack trace, quite hard to say what is wrong without them.
Would also be helpful if you would post more info about your environment, os, python version, django version, apache version..


Stop multiple ID on status command

HI a useful feature to stop multiple ID will be good. Sometime I have crash multiple game and I want to stop them. If I use pm2 stop, it's once per time. Thank you

Hi,
For now, start, stop and restart is all handled by PM2. You can you pattern matching by name to stop / start / restart / reset processes. Here are some examples:
Restart all HOT game sessions
pm2 restart /HOT:/

Stop all instances of Oxyen
pm2 stop /Oxy/

Hi,
For now; the starting, stopping, and restarting of game sessions are handled by PM2. You can use pattern matching by name to affect multiple game sessions. When the pattern you type between the two forward slashes (/) matches one or more game sessions, the command will be applied to all matches. Here are some examples:
Restart all HOT game sessions
pm2 restart /HOT:/

Stop all instances of Oxygen Auto-upgrade
pm2 stop /Oxygen-autoupgrade/

Hi thanks for advices. I noticed that the session usually corrupted recently. Did it was effected by recently update? Can you check that

Hi, can you clarify which game(s) and what update you are referring to please?

Hi, can you clarify which game(s) and what update you are referring to please?

I’m issue with hot, seed. The latest update script. When I run a bout a few day, I got that. It seem the game cannot open session data

Hi,
My processes have been running fine for the last 5 days, since I restarted them. I don't think it's an issue with the script.


how to build u-boot-bup-payload?

Hi there, I used to be able to build bup-payload in U-boot work directory, but it has gone. I tried to add u-boot-payload into IMAGE_INSTALL under core-image-minimal.bb, but Yocto reports "do_populate_sdk error". What is the correct way to enable the bup-payload build?

See this recipe for an example.

Thank you @madisongh  should I add u-boot-bup-payload as as RDEPENDS of core-image-minimal image?

You can't directly add u-boot-bup-payload, since it doesn't install anything in the rootfs. You have to create another recipe (like the one I linked to) to install the deployed payload into the rootfs, and add that recipe/package to your image.

Got it thanks you so much!


Question about distributed training

The official tutorials  says we can train one net with multi machine by the commond
../../tools/launch.py -n 2 -H hosts --sync-dst-dir /tmp/mxnet     python train_mnist.py --network lenet --kv-store dist_sync
Does that means we don't need compile the code on every machine? I do all the steps as tutorials, but mxnet will report errors unless the version of library strictly match on every machine.
So I recompile mxnet on every machine, it don't report errors neither work, just stuck the shell,  I check the process by ps aux and there is indeed process whose command is python train_mnist.py --network lenet --kv-store dist_sync but its status is Sl. Could anyone give me more detailed information about training distributed

launch.py copies mxnet installation to all machines. You need to make sure PYTHONPATH point to /tmp/mxnet/python on all machiens

Sorry, I have tried your method but it doesn't work. I read ssh.py in dmlc_core and I find it will export the LD_LIBRARY_PATH on master to the slaves' env. And I check the libmxnet.so by command ldd, which shows libmxnet.so need many xx.so files such as libcudnn.so, libprotobuf.so. Doesn't that mean /tmp/mxnet/python isn't integral? And I try to copy all xx.so files libmxnet.so needs from master to slave, it react same as the scene I recompile mxnet on slave machine. Can you give me more tips about the problem? Thank you for your further help.

libcudnn.so is not copied in default. i think you can put it on the same folder as libmxnet.so. so it will be synced to all worker machines


Add provider to set server ID and install License

@mkrakowitzer did you decide against doing this or just never get around to it?

+1

I'm pretty sure this can already be done? If not, then I'm going to decide that this issue has died of old age and disinterest :)


MAC OSX homebrew mariadb

➜  ~ mysql_install_db

Installing MariaDB/MySQL system tables in '/usr/local/var/mysql' ...
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] /usr/local/Cellar/mariadb/10.1.12/bin/mysqld (mysqld 10.1.12-MariaDB) starting as process 78349 ...
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: The InnoDB memory heap is disabled
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Memory barrier is not used
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Compressed tables use zlib 1.2.5
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Using generic crc32 instructions
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Completed initialization of buffer pool
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Highest supported file format is Barracuda.
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: The log sequence numbers 2493223 and 2493223 in ibdata files do not match the log sequence number 2493452 in the ib_logfiles!
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Database was not shutdown normally!
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Starting crash recovery.
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Reading tablespace information from the .ibd files...
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Restoring possible half-written data pages
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: from the doublewrite buffer...
2016-03-14 23:36:39 7fff70f51000 InnoDB: Error: page 7 log sequence number 2493499
InnoDB: is in the future! Current system log sequence number 2493452.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: for more information.
InnoDB: wrong number of columns in SYS_INDEXES record
InnoDB: wrong number of columns in SYS_INDEXES record
InnoDB: wrong number of columns in SYS_INDEXES record
InnoDB: wrong number of columns in SYS_INDEXES record
2016-03-14 23:36:39 7fff70f51000 InnoDB: Error: page 5 log sequence number 2493499
InnoDB: is in the future! Current system log sequence number 2493452.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: for more information.
InnoDB: wrong number of columns in SYS_INDEXES record
InnoDB: wrong number of columns in SYS_INDEXES record
2016-03-14 23:36:39<PHONE_NUMBER>96640 [Note] InnoDB: Creating tablespace and datafile system tables.
2016-03-14 23:36:39<PHONE_NUMBER>96640 [ERROR] InnoDB: Creation of SYS_TABLESPACES and SYS_DATAFILES has failed with error 18.  Tablespace is full. Dropping incompletely created tables.
2016-03-14 23:36:39 7fff70f51000  InnoDB: Assertion failure in thread<PHONE_NUMBER>96640 in file dict0crea.cc line 1901
InnoDB: Failing assertion: err == DB_OUT_OF_FILE_SPACE || err == DB_TOO_MANY_CONCURRENT_TRXS
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
160314 23:36:39 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see http://kb.askmonty.org/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.

Server version: 10.1.12-MariaDB
key_buffer_size=402653184
read_buffer_size=2097152
max_used_connections=0
max_threads=153
thread_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1023017 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x0 thread_stack 0x48400
0   mysqld                              0x0000000101b693e3 my_print_stacktrace + 61
0   mysqld                              0x0000000101601bb9 handle_fatal_signal + 632
0   libsystem_platform.dylib            0x00007fff8cd47eaa _sigtramp + 26
0   ???                                 0x0000000102ac26f0 0x0 +<PHONE_NUMBER>
0   libsystem_c.dylib                   0x00007fff916c06e7 abort + 129
0   mysqld                              0x00000001019e4782 _Z40dict_create_add_tablespace_to_dictionarymPKcmS0_P5trx_tb + 0
0   mysqld                              0x0000000101b1d67d _Z34innobase_start_or_create_for_mysqlv + 9623
0   mysqld                              0x0000000101a5e51e _ZL13innobase_initPv + 2877
0   mysqld                              0x00000001016027d8 _Z24ha_initialize_handlertonP13st_plugin_int + 94
0   mysqld                              0x0000000101775701 _ZL17plugin_initializeP11st_mem_rootP13st_plugin_intPiPPcb + 349
0   mysqld                              0x00000001017753b2 _Z11plugin_initPiPPci + 2845
0   mysqld                              0x00000001016b5ca4 _ZL22init_server_componentsv + 1786
0   mysqld                              0x00000001016b4110 _Z11mysqld_mainiPPc + 10815
0   libdyld.dylib                       0x00007fff965595ad start + 1
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

Installation of system tables failed!  Examine the logs in
/usr/local/var/mysql for more information.

The problem could be conflicting information in an external
my.cnf files. You can ignore these by doing:

    shell> /usr/local/Cellar/mariadb/10.1.12/scripts/scripts/mysql_install_db --defaults-file=~/.my.cnf

You can also try to start the mysqld daemon with:

    shell> /usr/local/Cellar/mariadb/10.1.12/bin/mysqld --skip-grant --general-log &

and use the command line tool /usr/local/Cellar/mariadb/10.1.12/bin/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/local/Cellar/mariadb/10.1.12/bin/mysql -u root mysql
    mysql> show tables;

Try 'mysqld --help' if you have problems with paths.  Using
--general-log gives you a log in /usr/local/var/mysql that may be helpful.

The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
MariaDB is hosted on launchpad; You can find the latest source and
email lists at http://launchpad.net/maria

Please check all of the above before submitting a bug report
at http://mariadb.org/jira
I am desperate, I tried in every way, I also just installed mysql, but the result is the same. Moreover also I get error "ERROR 2002" when I try to connect using the mysql client. you have a my.cnf functioning? I tried to use my-huge.cnf support files

Sorry but you have not followed the requested steps on the Troubleshooting page: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting
Please follow (all of) these steps and post the information here so we can help you with your problem.
Thanks!

Closing for a lack of response; happy to reopen once there's some activity here.


IX Bid Adapter: FPD

In this PR, we are updating our documentation to reflect upcoming changes to https://github.com/prebid/Prebid.js/pull/6784

@jeanstemp I've updated the path for the two functions


serializers: PID in marshmallow context

Depends on #211

@lnielsen WDYT? This solves the issue where the id is not picked up by the serializer for the response.


merge package from arlac77/npm-package-template

.npmignore

chore(npm): update .npmignore from template

Codecov Report

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

@@           Coverage Diff           @@
##           master     #388   +/-   ##
=======================================
  Coverage   83.56%   83.56%
=======================================
  Files           1        1
  Lines         213      213
=======================================
  Hits          178      178
  Misses         35       35

Continue to review full report at Codecov.

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

Coverage remained the same at 84.322% when pulling 1f33707ee6984b0a088125ae0c90bf68f9656408 on template-sync-1 into 87fe7615b60dd8cc75549ee7c7f43e4009b7c3ae on master.

:tada: This PR is included in version 3.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


abseil-cpp_202401: 20240116.0 -> 20240116.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/abseil/abseil-cpp/releases.
meta.description for abseil-cpp_202401 is: An open-source collection of C++ code designed to augment the C++ standard library
meta.homepage for abseil-cpp_202401 is: https://abseil.io/
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 20240116.1 in filename of file in /nix/store/y8sbqd39a5l00q267lac8ypv0hg7gca8-abseil-cpp-20240116.1

Rebuild report (if merged into master) (click to expand)

6146 total rebuild path(s)

6146 package rebuild(s)

First fifty rebuilds by attrpath
BeatSaberModManager
CHOWTapeModel
ChowKick
CuboCore.corepdf
CuboCore.coretoppings
EmptyEpsilon
MIDIVisualizer
MMA
SDL2
SDL2_Pango
SDL2_gfx
SDL2_image
SDL2_image_2_0
SDL2_image_2_6
SDL2_mixer
SDL2_mixer_2_0
SDL2_net
SDL2_sound
SDL2_ttf
SDL_audiolib
SDL_compat
SDL_gpu
Sylk
_1oom
_1password-gui
_1password-gui-beta
_20kly
_7kaa
_86Box
_90secondportraits
aaxtomp3
abbaye-des-morts
abracadabra
abseil-cpp
abseil-cpp_202401
abuse
acquire
activitywatch
adapta-gtk-theme
adbfs-rootless
adenum
adl
adriconf
adwaita-qt6
aegisub
agi
airgeddon
aitrack
ajour
akkoma

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/y8sbqd39a5l00q267lac8ypv0hg7gca8-abseil-cpp-20240116.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A abseil-cpp_202401 https://github.com/r-ryantm/nixpkgs/archive/21a35cf998e32f24fe5ce17c92ad59d54529ab76.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/21a35cf998e32f24fe5ce17c92ad59d54529ab76#abseil-cpp_202401

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/y8sbqd39a5l00q267lac8ypv0hg7gca8-abseil-cpp-20240116.1
ls -la /nix/store/y8sbqd39a5l00q267lac8ypv0hg7gca8-abseil-cpp-20240116.1/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @GaetanLepage for testing.

Obsoleted by #288469


⚠ Jenkins Plugins Artifactory has degraded performance

In 5763066, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 2821 ms

Resolved: Jenkins Plugins Artifactory performance has improved in f38668e after 2 hours, 22 minutes.


Spatial filter

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

61 of 83 (73.49%)  changed or added relevant lines in 13 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.5%) to 68.913%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/react-api/src/hooks/useFeaturesCommons.js
1
2
50.0%

packages/react-core/src/filters/geojsonFeatures.js
3
4
75.0%

packages/react-redux/src/slices/cartoSlice.js
19
20
95.0%

packages/react-core/src/filters/tileFeatures.js
11
14
78.57%

packages/react-api/src/hooks/useGeojsonFeatures.js
2
7
28.57%

packages/react-core/src/utils/transformToTileCoords.js
14
19
73.68%

packages/react-api/src/hooks/useTileFeatures.js
2
8
25.0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.5%

Covered Lines:
1044

Relevant Lines:
1424

💛  - Coveralls


Improve toast messages

Reload on click (only jsonrpc errors)
Improve style

Before:

After:

I don't know if a refresh really solves the problem. Maybe you can check that @ivy-lmu (with this fix or right click and refresh? Because I don't know how to reproduce this...)


Type checking

Should we or shouldn't we type check? Implicitly or explicitly? If we type check, what shall we use to do that? For example, Flow can do implicit or explicit type checking.

Flow seems to be more popular for working with React than Typescript. One scheme for where to use explicit vs implicit types is to annotate function arguments and return values while relying on type inference for internal variables. That allows you to document what a function does, especially whether it handles null/undefined, while allowing more freedom in implementing a function. Annotating the types of object member variables would also be useful.

To put in my $0.02, type checking could be a very useful thing, especially for field inputs and when sending and/or objects to/for calculations. I also think it might be not be a problem to put it on hold until after the MVP is done.

I agree that type checking is a larger concern that can wait until after the MVP is done.

Decided then. No type checking, though we are going to make sure client object always has valid values, as discussed in #166.


Research: Figure out how to make sockets work better

Some resources that may be helpful:

Connection state recovery
Delivery guarantees

hopefully there will be a way with socket.io to guarantee messages are sent/received. make the socket system more robust.

I believe this is currently the biggest functional shortcoming of the game. We want all users to have a totally seamless experience - right now it can be shoddy.


⚠ ClamAV has degraded performance

In a090b44, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 578 ms

Resolved: ClamAV performance has improved in 3e90f58.


Extending RoomsListing & Quick look at room users count without joining

As discussed with @novabyte on gitter. At present, thr is an easy way to get a chat topic last messages without joining it, however thr is no way to get actual number of users online in that topic without joining.
Use Case:
If a game wants to list game discussion topics without joining. This requires last few messages which is already available but additionally it also requires actual online user count to offer more info UI to users before joining the Topic & also to sort it based on number of users because it represents importance of those topics.
Extended Feature: Thr is a list of topics which constantly increase or decrease over time. If thr is a way to do a lightweight registration which gives realtime update of just user count in that room.
e.g. We have listed Room A, B & C. Without joining the room, if we can update realtime update of number of users in those rooms, it would be a great addon.

This is possible since the addition of the Streams API. You can count presences to get the number of users in that chat channel and list presences to get the full list of users currently in the channel.
The user does not need to actually join the channel, just call an RPC function that performs the operations above.


Adopt graceful convention for unavailable terms of a sequence

Some sequences, such as the Heegner numbers, are inherently finite. Others may be conceptually infinite, but only finitely many terms have been determined. And yet others may have been truncated to a finite length by the Numberscope user. The resolution of #17 simply sidestepped this problem by ensuring the VisualizerDifferences did not request vastly more terms than it actually needed. However, an underlying problem remains: how should a Sequence implementation indicate that a given term is unavailable, and should it differentiate between the term not existing and the term simply not having been computed or fetched?
Note that this is something of a longer-term design issue as opposed to something with a clear, quick fix. Whatever convention is adopted for unavailable values must allow visualizers to gracefully handle the situation, visualizing as much of the sequence as is available, without ending up with uncaught exceptions that derail the visualizer (of course, the solution may also involve conventions for what visualizer code has to do to handle unavailable terms, but the easier we can make it for writing visualizers, the better).

Design work on this issue should likely also address #20.

I am currently suggesting that we should maximize fidelity to the OEIS model and consider each Sequence object to be a sequence of integers with a contiguous collection of indices from a specific minimum index to a maximum index (which might be less than the minimum to indicate that in fact terms are available for all indices greater or equal to the minimum). Then the Sequence would produce a specific integer result for each index in the valid range, and so there would be no issue of unavailable or missing terms. See the discussion at https://numberscopef21.slack.com/archives/C02H8SRCDBM/p1637456846026000.

The proposal in the previous comment has been accepted; see the discussion of "option (B)" in issue #48. So the PR #51 when it is completed and merged will resolve this issue as well.


Don't consider prototype beans, and don't consider lazy init beans

Fixes #71
Please have a look @duergner
Will release it then with 0.6.1.

:+1:


Publish store package

GitHub package registry is not going to cut it:

published versions public package can not be deleted;
they can not be re-published either;
they are not available in normal package repositories;

So, I need to configure publishing to JCenter...

Done