Please explain ARM properties for premium plan

Re: https://docs.microsoft.com/en-us/azure/azure-functions/functions-infrastructure-as-code#create-a-premium-plan
What do I put in these properties below? They are undocumented in the schema https://docs.microsoft.com/en-au/azure/templates/microsoft.web/2018-02-01/serverfarms.

workerSize
workerSizeId
numberOfWorkers
hostingEnvironment

The maximumElasticWorkerCount property, I can see this maps to the "Maximum Burst" setting in portal (Elastic Scale Out blade). Which property do I use for "Minimum Instances"?

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

ID: a1ba8817-3e01-7e84-6c71-b98b131f2927
Version Independent ID: a7703386-9e83-1075-72ef-f9e63f3dc4de
Content: Automate function app resource deployment to Azure
Content Source: articles/azure-functions/functions-infrastructure-as-code.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

Hi @ishepherd Thanks for reaching out. We will review and update as appropriate.

@ishepherd I have assigned this to content author for further review and update as appropriate.

@ishepherd the portal does seem to be using a much older version of the /serverfarms schema, and even the schema version I see referenced in active deployments don't match the generated docs. I'll need to look into this more.


create action to save the uploaded dataTable to the store

When I upload a dataTable via the index/home page, the content of this file should be parsed and then fed to an action that populates/updates the appropriate state variables in the store.

Some other notes:

in cypress I can upload files now: https://www.cypress.io/blog/2022/01/19/uploading-files-with-selectfile/. This should allow me to test the mutation being fired from the correct page

@surchs I am attaching my current version of index.vue for two reasons. The first is that regarding testing the index page, we must ensure that the names of the methods being called by the file upload button are unique from their actions counterparts – either that or the component attribute can call the action directly.
Secondly, my new mutation in #291 will need to be called in this action along with the call to the getColumnNames getter to passed along to that mutation – as we had discussed today in our huddle over the issue.
<template>

{{ uiText.dataTableHeader }}

            <textarea
                :cols="textArea.height"
                :rows="textArea.width"
                v-model="stringifiedDataTable" />

            <file-selector
                data-cy="data-table-selector"
                :content-type="contentTypes.dataTable"
                @file-selected="setDataTable($event)" />

{{ uiText.dataDictionaryHeader }}

            <textarea
                :cols="textArea.height"
                :rows="textArea.width"
                v-model="stringifiedDataDictionary" />

            <file-selector
                data-cy="data-dictionary-selector"
                :content-type="contentTypes.dataDictionary"
                @file-selected="setDataDictionary($event)" />

</template>

@jarmoza and @rmanaem: I'm realizing that we didn't really discuss what's supposed to happen when you add a new dataTable. I can think of at least a couple of cases that might have to behave differently:

I just launched the app with nothing in it. Once I upload my table, I expect it to populate the state without regard for anything already there (because there isn't any)
I have (for some reason) already uploaded a data dictionary, and now I upload my dataTable. It just so happens that my dictionary doesn't have information for all of the columns. What should I do
I noticed mid-annotation that I loaded the wrong data table ....

I think it'd make sense to have a quick chat about this stuff to make sure we don't go overboard with complexity but also have it be functional.

Moving this to blocked until I have dealt with #298

Unblocked by #302


Django 3.2

Hello, I have seen that the LTS for Django 2.2 comes to an end in 2 months so my question is:
Will Django-SHOP be made compatible for Django 3.2 on time?

It is already compatible with Django-3.2. However, I haven't had enough time to bundle a new release. It takes a lot of time to test everything, therefore I waited. Sorry for that.

no thats great! thanks for letting me know


Add ability to set noCalendar on flatpickr.

Hi, I added the noCalendar setting. If you could merge this into a release that would be super.
With this addition, ember-flatpickr does everything I need to where other plugins have not been so successful. Thank you for writing this plugin!
#3

Merged, thanks @xtagon! I just released version 0.1.3 which includes your change.

Thanks for merging! 😃
On May 21, 2016 6:59 AM, "Robert Wagner"<EMAIL_ADDRESS>wrote:

Merged, thanks @xtagon https://github.com/xtagon! I just released
version 0.1.3 which includes your change.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/shipshapecode/ember-flatpickr/pull/4#issuecomment-220779260


Add support for RFC 3062: LDAP Password Modify Extended Operation

Hello.
I’m working on a web service where I’d like the user to be able to change their LDAP password and I understand that the best way to do this is by using the Password Modify extended operation defined in RFC 3062.
I’m new to LDAP and ANS1, but I’ve had a look at the doc and I think a modify_password function could look like this (not tested):
use bytes::BytesMut;
use ldap3::asn1::{write, ASNTag, OctetString, Sequence, Tag};
use ldap3::exop::Exop;

pub fn modify_password(dn: &str, old_password: &str, new_password: &str) -> Result<(), Error> {
    let seq = Tag::Sequence(Sequence {
        inner: vec![
            Tag::OctetString(OctetString {
                inner: dn.as_bytes().to_vec(),
                ..Default::default()
            }),
            Tag::OctetString(OctetString {
                inner: old_password.as_bytes().to_vec(),
                ..Default::default()
            }),
            Tag::OctetString(OctetString {
                inner: new_password.as_bytes().to_vec(),
                ..Default::default()
            }),
        ],
        ..Default::default()
    })
    .into_structure();

    let mut buf = BytesMut::with_capacity(XXXXX);
    write::encode_into(&mut buf, seq).expect("encoded");

    let operation = Exop {
        name: Some("<IP_ADDRESS>.4.1.4<IP_ADDRESS>".to_string()),
        val: Some(Vec::from(&buf[..])),
    };

    conn.extended(operation)?.success()?;
}

I’m willing to work on this feature if needed, but this is a whole new world to me so I might need a bit of help.

Using the Password Modify exop is indeed the cleanest option if your LDAP infrastructure is set up to support it. Your sketch of a Password Modify issuing function has the right elements, but several details would either create an invalid exop encoding, or make it not conform to the expected structure of an exop.
The first thing to note is that, according to spec, all components of a PasswordModifyRequestValue are optional. The presence of an individual field is signalled by tagging it with a context-specific numeric tag. For example, userIdentity is specified as userIdentity [0] OCTET STRING OPTIONAL, with the numeric tag of zero when present. The correct encoding in the source would be:
Tag::OctetString(OctetString {
    id: 0,
    class: TagClass::Context,
    inner: Vec::from(...),
}

Furthermore, if all components are absent, which the spec allows, the value element of the encoded exop should not be present at all.
If you look at the implentations of existing exops in the library, you'll see that all of them have an exop-specific struct and a From<CustomStruct> for Exop implementation. Putting this all together, the request side could be written as follows:
use bytes::BytesMut;
use ldap3::asn1::{write, ASNTag, OctetString, Sequence, Tag, TagClass};
use ldap3::exop::Exop;

pub const PASSMOD_OID: &str = "<IP_ADDRESS>.4.1.4<IP_ADDRESS>";

struct PasswordModify<'a> {
    user_id: Option<&'a str>,
    old_pass: Option<&'a str>,
    new_pass: Option<&'a str>,
}

impl<'a> From<PasswordModify<'a>> for Exop {
    fn from(pm: PasswordModify<'a>) -> Exop {
        let pm_val = if pm.user_id.is_none() && pm.old_pass.is_none() && pm.new_pass.is_none() {
            None
        } else {
            let mut pm_vec = vec![];
            if let Some(user_id) = pm.user_id {
                pm_vec.push(Tag::OctetString(OctetString {
                    id: 0,
                    class: TagClass::Context,
                    inner: Vec::from(user_id.as_bytes()),
                }));
            }
            if let Some(old_pass) = pm.old_pass {
                pm_vec.push(Tag::OctetString(OctetString {
                    id: 1,
                    class: TagClass::Context,
                    inner: Vec::from(old_pass.as_bytes()),
                }));
            }
            if let Some(new_pass) = pm.new_pass {
                pm_vec.push(Tag::OctetString(OctetString {
                    id: 2,
                    class: TagClass::Context,
                    inner: Vec::from(new_pass.as_bytes()),
                }));
            }
            let pm_val = Tag::Sequence(Sequence {
                inner: pm_vec,
                ..Default::default()
            })
            .into_structure();
            let mut buf = BytesMut::new();
            write::encode_into(&mut buf, pm_val).expect("encoded");
            Some(Vec::from(&buf[..]))
        };
        Exop {
            name: Some(PASSMOD_OID.to_owned()),
            val: pm_val,
        }
    }
}

This should be enough to get you started. Password Modify has the response structure, which will contain a server-generated password if you ask for one by not supplying the new password value in the request, but that's a bit of a niche use case, and not something I would recommend on security grounds.
I will add a full Password Modify implementation to the library, and I'll keep this issue open until I do so (soon, I hope).

Thank you very much for your reply and for your work on this library, I understand a bit more how the RFC translates to Rust code within your library and and how the crate is structured.

I will add a full Password Modify implementation to the library, and I'll keep this issue open until I do so (soon, I hope).

If you feel that this can be a good first issue for a beginner, let me know :)

If you feel that this can be a good first issue for a beginner, let me know :)

It might have been, but the code above is 75% of the feature already :slightly_smiling_face: Commit incoming.


[storagte] state pruner: offload the first seek to the worker thread

Motivation
PR #6803 avoided repeatedly seeking to the beginning in the stale node index, which was costly, by doing it beforehand and only once at construction time. However that one time yet costly call sit in the critical path of the node start up, which can result in a slow node start if the pruning window was large.
This moves the initial seek to the work thread.
Have you read the Contributing Guidelines on pull requests?
Y
Test Plan
existing coverage.
Related PRs
#6803

/land

/land

/cherry-pick release-1.1

/cherry-pick release-1.1

@msmouse :cherries: Opened PR #7154 to cherry-pick these changes into release-1.1

@msmouse :cherries: Opened PR #7154 to cherry-pick these changes into release-1.1


Thank you 🙇♀ for wanting to create an issue in this repository. Before you do, please ensure you are filing the issue in the right place. Issues should only be opened on if the issue relates to code in this repository.

If you have found a security issue please submit it here
If you have questions about writing workflows or action files, then please visit the GitHub Community Forum's Actions Board
If you are having an issue or question about GitHub Actions then please contact customer support

If your issue is relevant to this repository, please delete this text and continue to create this issue. Thank you in advance.

git fetch origin
git checkout 1-agilesolutionsapp

https://hackerone.com/github


change Input props type to HTMLInputElement

Currently, TypeScript is not able to recognize event.target.value in an Input component's onChange event. When I changed the typings in node_modules so that the Input props were of type HTMLInputElement, that fixed the issue. I don't know how this codebase works (nor how to test my changes), but I believe this change would fix the problem.

Coverage remained the same at 100.0% when pulling 17ae4f160c2b06d2037b6681d89c0dc5b2291fdd on tesselode:patch-1 into b9af8271840c9a52ecf493f3b1f919d8cd3e5fc1 on AlgusDark:master.


Allow re-use of Existing Resource in ARM

ARM creates resources on the fly when creating an image, and then discards them.  The user should be allowed to use existing resource such as resource group, VNET, etc.

It's been about six months, and this issue has not risen in priority in that time, nor do we think we are any nearer to coming up with a suitable design.
We have made recent changes to re-use a VNET, but I do not think we will ever re-use Resource Groups.  I would rather close and re-open (if something changes), than keep an issue open without any movement.


Add incubator chart for SignalSciences agent

Signed-off-by: Marc Campbell<EMAIL_ADDRESS>
What this PR does / why we need it:
There is no Helm chart for the SignalSciences agent. Having a convenient way to install the agent is useful.
Checklist

[x] DCO signed
[x] Variables are documented in the README.md

/assign @mattfarina

Please go straight for the stable repo.

/lgtm


Sometimes solanum copy is not visible on TH and ATP

I can launch the probe and it will make her visible. Maybe I should just put any light there? From QM for example

Probably fixed with last update

Fixed with nightly


Some issues, notes :)

OK, so i got it working, is pretty cool. Have some cool ideas for new signals. These were the issues/bugs I found:
(1) From the documentation and code it seems that the signal unique id has to be uppercase, turns out it has to be lower case. This is confusing especially with point 2
(2) The unique code it reads back, is said too quickly, especially if I'm trying to write it down. Some of the words also didn't sound right. I ended up checking my google activity logs for the actual words.
(3) When you create a new signal, it asks you to say 'I'm ready' to start back reading the code. I have a bit of a speech impediment (can't say r properly) and it was a nightmare to get past that point. Maybe a simple yes or no to continue for getting code. also maybe repeat the code?
(4) It seemed to get confused sometime, not sure if you guys have access to the discussions, but if you do you will see it.
I get that its a concept/prototype/new thing so issues to be expected, just giving feedback on what I found :)
Countdown Signal is now up and running and will be trying the others in the next couple of days.
T

Thanks for these! One question - did you do this on a Google Home, or the Google Assistant on a phone?

I am doing this directly on google home. here is a video of it in action: https://twitter.com/geekc0der/status/937387314560602112

Thanks for the feedback @tomvdb! Using the Google Assistant app may help during some of the setup steps, since you can read the signal identifier on the screen. Google Home speaks notoriously quickly, so those identifier words really fly by. We've also added lot's of suggestion chips within the Assistant app to the conversation flow that may help you pass any unintentionally challenging steps, like saying "I'm ready."
Looks like some of the extended voice command set didn't make it into the website instructions, but at any time you can say "What is the identifier for [Signal Name]?" and you can hear the signal ID again.
Would be good to un-capitalize the identifier in the code that make that part less confusing off the bat

@KacobJeith I wonder if the user is setting up for the first time on a Google Home, we should maybe suggest that doing it on the Assistant is easier...

I wanted to originally use assistant, but couldnt get it working on my phone, but good to know. Found another problem/bug. When you config the countdown timer with a "Start countdown timer for 30 seconds', then it works fine, but you cant restart a countdown timer for 30 seconds. ie, if I ask for count down to 30 seconds again then it ignores it. I need to start a countdown for another value, then it works again, but not a second time with the same value. hope that makes sense?


Reduce warnings during build, in IDE and in GitHub UI

Thank you for submitting a pull request!
[x] Keep your commits clean: squash your commits if necessary.

Existing tests should cover everything, most changes in this PR are only for human readers.

@TimvdLippe rebased to resolve conflict, ready for review. Recommended commit by commit, only the last one has a lot of (whitespace) changes, the rest are tiny.

This looks good to me, do you mind rebasing again as I just merged your other PR?

(Merge shows what changes more trivially than rebase, if you open it on GH)


RestJSON Blob without media type

The response content type for payload blobs without @mediaType should be any (always allowed). This is not documented and not supported at the moment in https://github.com/awslabs/smithy/blob/df456a514f72f4e35f0fb07c7e26006ff03b2071/smithy-model/src/main/java/software/amazon/smithy/model/knowledge/HttpBindingIndex.java#L352-L384

Can you elaborate? I’m not sure what you’re trying to do or asking for.


EKF: come up with recommended default tuning parameters for lower quality boards

This user log with a pixhack board had  large vibration errors on the accelerometer and very noisy baro data that caused a temporary loss of height reference. A different set of tuning defaults would have prevented this.
Note: The internal isolation design of the pixhack is poor and can cause clipping if resonance of the mount occurs. Unfortunately there are lots of those boards out there and users do not think they need to be isolated.
http://logs.uaventure.com/view/DJwKnqsFtHVJQuaKoEK8UY
This particular log would likely require a  increase in baro observation noise to 3.0m  and accel process noise to 0.5 m/s/s which would come at a cost of reduced angular accuracy and increased susceptibility to GPS glitches.

@priseborough Can share the exact param names for these?

EKF2_ACC_NOISE = 0.5
EKF2_BARO_NOISE = 3.0

Thanks!

If we can collect logs using the new ulog format for representative boards, then I now have a python script tool that will generate population statistics to assist in determining appropriate values.
https://github.com/priseborough/pyulog/tree/ekfAnalysis-wip


Sort add function call in depedencies

Fixes first part of #57.
This change allows to call add(configurationName: String, dependencyNotation: Any) and similar functions.
I am aware this is not a common usecase.
Please guide change for better solution.

 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.

Can you add a test for the non-quoted syntax?

Test case is updated.

Thanks!


fixed #995 explodeable headmeshes for TR5 guards

fixed slots: (also added headshot instant death to these objects)
ID_SNIPER
ID_MAFIA
ID_MAFIA2
ID_SWAT
ID_GUARD1
ID_GUARD2
ID_GUARD3

I would recommend the headshot death is also added to ID_SCIENTIST

Functionally though: works great.

https://user-images.githubusercontent.com/84292688/218770608-16ec4749-e574-458f-bea7-92adfb9ed5cb.mp4

added hitroutine for ID_SCIENTIST

Fix #994 #995


feat: add read only port support for koordlet

Signed-off-by: 黄金<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
add read only port support for koordlet.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in make test

/approve


Async docs are broken

Just that: https://facebook.github.io/jest/docs/tutorial-async.html
I ran into the issue of using itand having a false green :(. I saw then that the docs are broken. Anyway, using pitworks. I just saw this https://github.com/facebook/jest/issues/928 so I guess it will be 'safer' to use ``ìt``` soon :)

Thanks. That was a silly bug. The website system apparently tries to evaluate ${userID} in a template literal.
Yes, I think we should remove pit and use it and see how that goes :)


Failure to Install - Raspbian Jessie with node.js v6.2.0 and npm v3.8.9

Operating System and Hardware: Raspberry Pi 3 B running Raspbian Jessie
NodeJS Version: v6.2.0
Serialport version: 3.1.2
Python Version (if you're having trouble building serialport): 2.7.9
(Run node -v && npm -v && python --version to get the version numbers.)
Expected behavior
should install with npm install serialport or sudo npm install serialport
Actual behavior
Lots and lots of errors. In particular:
"
node-pre-gyp ERR! Tried to download: https://github.com/voodootikigod/node-serialport/releases/download/3.1.2/serialport-v3.1.2-node-v48-linux-arm.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v48 ABI) (falling back to source compile with node-gyp)
"
Full error message on pastebin here
npm-debug.log as attachment: npm-debug.txt
Steps and/or code to reproduce the issue
I'm running node.js version 6.2.0 on a raspberry pi 3B running Raspbian Jessie. I'm using npm v3.8.9.
Is this just a version incompatibility issue? It seems like it can't find anything for v6.2.0 of node.js, but maybe I'm misunderstanding the error. Thank you!

I have also tried cloning the repo at https://github.com/EmergingTechnologyAdvisors/node-serialport.git with git and running $ npm install but have had no luck with that either.

Did the following things and it seemed to work:
- installed node-pre-gyp with npm
- changed the owner of ~/node_modules/ to the user rather than root
- used git to clone the module from https://github.com/EmergingTechnologyAdvisors/node-serialport.git
- npm install inside the node-serialport folder
- moved the folder inside node_modules

Seems to work now

I also seem to not be able to install it, despite trying your solution.

Reconbot,
Opened a new issue.


How we can Invalidate or Blacklist token when user logout

Hi @tuupola , thanks for your library, I am using your library (slim-jwt-auth) it is very useful but I don't know how to invalidate token or add a token to the blacklist when the user logout.

You could for example save the invalidated token to database. Check for the token in the callback and return boolean false if blacklisted. Something like:
$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/admin",
    "users" => [
        "root" => "t00r",
        "somebody" => "passw0rd"
    ],
    "callback" => function ($request, $response, $arguments) {
        $token = $request->getAttribute("token");
        if (check whether $token is blacklisted here) {
            return false;
        }
    }
]));


Support for source fields and Amazon AWS ES Uri.

Hi @AlexIoannides.  Here's a preliminary update to support source fields and also to support connection to an Amazon AWS hosted ES Uri (which doesn't currently pass the conformance check).
It's not been done with a + or | operator and suspect we should refactor to implement as you suggested.  Let us know if you are happy with the direction that we are taking.

Thanks guys. Currently travelling, but will hopefully take a look in the next day or so. Alex


Clicking on any card link with turbo search results in Content missing

The turbo integration for the search results is causing the index pages to try and load the individual show pages into the results turbo frame, which is a problem because we don't want to do that.


Shortcode zig_section improvement

Given the paragraphText element generally has HTML markup in it, i would suggest pulling that out to be the body of the shortcode.
This way the markup can be indented and formatted more easily than having it injected from a single line string.
Can't remember exactly how it works, but here's a pseudocode example.
{{< zig_section
    titleText="My Title"
>}}
    <p>
        My formatted paragraph text can go here
    </p>
{{< /zig_section >}}

Then in the shortcode HTML snippet there's a way to capture that content and inject it.

Fixed by #93


[Legacy] [Linux Branch] {all flavors} Build Error

https://github.com/Microsoft/ChakraCore/wiki/Build-Status-(linux)#legacy-builds
00:15:57 d:\j\workspace\daily_dev12_x---b34c9c6b\lib\common\Codex\Utf8Codex.cpp(486): error C2220: warning treated as error - no 'object' file generated [d:\j\workspace\daily_dev12_x---b34c9c6b\lib\common\Codex\Chakra.Common.Codex.vcxproj]
00:15:57 d:\j\workspace\daily_dev12_x---b34c9c6b\lib\common\Codex\Utf8Codex.cpp(513) : see reference to function template instantiation 'size_t utf8::EncodeIntoImpl<true>(LPUTF8,const char16 *,charcount_t)' being compiled
00:15:57 d:\j\workspace\daily_dev12_x---b34c9c6b\lib\common\Codex\Utf8Codex.cpp(486): warning C4127: conditional expression is constant [d:\j\workspace\daily_dev12_x---b34c9c6b\lib\common\Codex\Chakra.Common.Codex.vcxproj]

Repro locally: https://github.com/Microsoft/ChakraCore/wiki/Jenkins-Repro-Steps#legacy-builds-windows-only

Some more details on issue;
Helpers.cpp(533): error C2065: 'S_IREAD' : undeclared identifier [d:\j\workspace\daily_dev12_x---c4e76fe7\bin\ch\ch.vcxproj]
02:27:51 Helpers.cpp(533): error C2065: 'S_IWRITE' : undeclared identifier [d:\j\workspace\daily_dev12_x---c4e76fe7\bin\ch\ch.vcxproj]
02:27:51 Helpers.cpp(533): error C2660: '_wchmod' : function does not take 1 arguments [d:\j\workspace\daily_dev12_x---c4e76fe7\bin\ch\ch.vcxproj]

@mrkmarron any idea?

I didn't realize this issue was for the linux branch at first.
The fix I made was on master.
We should integrate the fix from the master branch to linux.
Do we plan on doing this soon or should I cherry-pick the fix to the linux branch ?

We do sync master to linux (vice versa) often. So IMHO no need for a separate action.


LOC CHECKIN | Microsoft/msbuild vs16.0 | 20190213

@Pilchie ok to take this for vs16.0 P4?

Approved by me, but we'll need QB approval.  @tmeschter are you working on coordinating that for a few insertions already?

@Pilchie For 16.0 @cdmihai is still coordinating loc work in Microsoft/msbuild. I'm taking over for post-16.0 releases.


[ERROR]:  AttributeError: 'QueryResult' object has no attribute 'as_pandas'

Contact Details [Optional]
No response
System Information
"superduperdb==0.1.0",
"os_uname": [
"Linux",
"6.2.0-1017-aws",
"#17~22.04.1-Ubuntu SMP Fri Nov 17 21:07:13 UTC 2023",
"x86_64"
],
"package_versions": {},
"platform": {
"platform": "Linux-6.2.0-1017-aws-x86_64-with-glibc2.35",
"python_version": "3.10.12"
},
"startup_time": "2024-01-29 16:56:40.638752",
"superduper_db_root": "/usr/local/lib/python3.10/dist-packages",
"sys": {
"argv": [
"/usr/local/lib/python3.10/dist-packages/superduperdb/main.py",
"info"
],
"path": [
"/root",
"/usr/lib/python310.zip",
"/usr/lib/python3.10",
"/usr/lib/python3.10/lib-dynload",
"/usr/local/lib/python3.10/dist-packages",
"/usr/lib/python3/dist-packages"
]
}
}
What happened?
Hi,
We realized that there is no pandas module in superduperdb package. It returns following error.
Is there any updated python script that we can check and do demo ?
Thanks
# Use the OpenAIChatCompletion model to predict the next query based on the provided context
output, context = db.predict(
model_name='gpt-3.5-turbo',
input=search_term,
context_select=db.execute(RawSQL(f'DESCRIBE {table_name}')).as_pandas().to_csv()
)
ERROR:
Traceback (most recent call last):
File "/root/test.py", line 111, in
result = chat_with_your_database(table_name, query)
File "/root/test.py", line 59, in chat_with_your_database
context_select=db.execute(RawSQL(f'DESCRIBE {table_name}')).as_pandas().to_csv()
AttributeError: 'QueryResult' object has no attribute 'as_pandas'
Steps to reproduce
No response
Relevant log output
No response

@cansayin what format is your data in exactly?

dataset that i upload to db is


Jadeite Login, Advanced tab, Debug GCI button needs to be a tad wider

If you go to the advanced tab, there's a button labled "Debug GCI".  I clicked this (somewhat at random to see if I could get the Login button re-enabled).  While it looks fine when you start there, the act of clicking on it messes up the display.

Still like this in 3.2.12. This irks me out of proportion, so putting it the to-fix list.  Seems like it shouldn't be that hard

Made the button 30 px wider. Can increase more if necessary.


why you use webpack as dependency?

remove webpack from dependency because it is unnecessary in your script
thanks!

Having webpack 3.12.0 as a dependency of react-app-rewire-hot-loader is conflicting with Create React App's webpack dependency on a newer version of webpack (4.19.1):
There might be a problem with the project dependency tree.
It is likely not a bug in Create React App, but something you need to fix locally.

The react-scripts package provided by Create React App requires a dependency:

  "webpack": "4.19.1"

Don't try to install it manually: your package manager does it automatically.
However, a different version of webpack was detected higher up in the tree:

  /Users/user/my_project/node_modules/webpack (version: 3.12.0)

Manually installing incompatible versions is known to cause hard-to-debug issues.

Thanks for the comments, I've removed webpack as a dependency now and republished. hope this helps!


Annotate a new data set

Hi，
Can I use AIDE to label a new data set? How to use？For example, pascal voc2012.

Hello!
Yes, AIDE can also be used to label new data sets, optionally with AI model support. To do so, you would basically create a new project, define its settings (including the label classes), upload the images, and then, upon completion of the labeling process, use the download functionality to obtain the meta data.
AIDE currently only supports annotation export as delimiter-separated files, as well as TIFF images for segmentation masks. More advanced annotation formats (Pascal VOC, etc.) are planned for future releases.


controller: should respect the StorageReserved setting of Longhorn

Problem:
Should update the StorageReserved for extra disks.
before fixing (this is disk related info on nodes.longhorn.io)
spec:
  allowScheduling: true
  disks:
    a827440145f11f652f00f2a6ae656ed0:
      allowScheduling: true
      diskType: filesystem
      evictionRequested: false
      path: /var/lib/harvester/extra-disks/a827440145f11f652f00f2a6ae656ed0
      storageReserved: 0
      tags: []

After fixing
spec:
  allowScheduling: true
  disks:
    a827440145f11f652f00f2a6ae656ed0:
      allowScheduling: true
      diskType: filesystem
      evictionRequested: false
      path: /var/lib/harvester/extra-disks/a827440145f11f652f00f2a6ae656ed0
      storageReserved:<PHONE_NUMBER>
      tags: []

Solution:
get the Longhorn storage reserved settings to calculate the correct value
Related Issue:
https://github.com/harvester/harvester/issues/5042
Test plan:
make sure the storageReserved is the correct value. (default is 30%)

Thanks @votdev for reviewing it.
I thought maybe we did not need this PR.  Confirming with LH team.

drop this because we do not need storage reserved as default for extra disks


Customise the loading panel

The loading panel content should be customisable, either the text, or user provides a template.

I would like to add my own spinner icon. Would be nice to add, as part of the customizable icon, a loading icon.

Hi Ceolter,
Thanks for such a fantastic library. I have a similar wish to @jettagozoom, so if you do implement this feature, user provides a template would be very helpful.
Thanks again!

today's release has customisable loading panel.


Batch upsert leads to run-time crash

Version: (e.g. 4.8.1)
Hey there,
I have a very strange problem.
Here is some (simplified) Scala 2.13 code that I recently wanted to port to Scala 3.
https://scastie.scala-lang.org/pgbGGOK6TC2t0lUR3AKV5Q
It compiles fine, and while I can't run it in Scastie (no Postgres available), I've tried it locally and it works.
However when I change scalaVersion to 3.3.1 it no longer compiles, see here:
https://scastie.scala-lang.org/MMwQdJbjRMyHbE0ovf7alw
It also fails to compile when I leave scalaVersion on 2.13 and use an SqlMirrorContext rather than a PostgresJdbcContext:
https://scastie.scala-lang.org/svaVZIl9TZGUqV4UlfCmig
I don't know how to do batch upserts on Scala 3 at this point.

duplicate of https://github.com/zio/zio-protoquill/issues/250


Missing W in www

The first two lines of the script create client subnet objects for North America and Europe. The two lines after that create a zone scope within the contoso.com domain, one for each region. The two lines after that create a record in each zone that associates ww.contoso.com to different IP address, one for Europe, another one for North America. Finally, the last lines of the script create two DNS Query Resolution Policies, one to be applied to the North America subnet, another to the Europe subnet.
UNDER TRAFFIC MANAGMENT.  Please note that a "w" is missing from www.contoso.com

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

ID: b951d0a2-1d11-00dc-cfd3-64dd31bbf377
Version Independent ID: ab56539c-e788-9209-2d35-057fcacd972b
Content: DNS Policies Overview
Content Source: WindowsServerDocs/networking/dns/deploy/DNS-Policies-Overview.md
Product: windows-server
Technology: networking
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

#assign:xelu86

Thanks again for contacting Microsoft. We've submitted a documentation change based on your suggestion. Changes will be live after the next business day. #please-close


ci: disable electron build for now

disable electron macosx build for now, as it's breaking the CI pipeline.

 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.


Couldn't deploy ModelScope/iic/Whisper-large-v3 model on macOS

Describe the bug
Couldn't deploy ModelScope/iic/Whisper-large-v3 model on macOS
Steps to reproduce
Run GPUStack on macOS and deploy iic/Whisper-large-v3 model from ModelScope.
Result

Environment

GPUStack version: v0.4.0
OS: macOS 15.1
GPU: M2 Ultra

Since ModelScope/iic/Whisper-large-v3 model need extra dependency when installing and faster-whisper's performance is better, so now supported  https://modelscope.cn/collections/Audio-3199751d3fa048 instead of the ModelScope/iic/Whisper-large-v3 model.
Synced models under https://huggingface.co/Systran to model scope https://modelscope.cn/collections/Audio-3199751d3fa048, so user can use whisper from model scope.


refgenie remove does not remove the main asset package dir

refgenie remove -c genomes.yaml rCRSd/bowtie2_index:new

this leaves the bowtie2_index dir in place. Just new subdir is removed
we need to check whether any other tags are left and remove the enclosing dir if not

that's probably correct, right? The bowtie2_index dir can hold other tags...

that's right, but if there no other tags the empty dir should be removed

we need to check whether any other tags are left and remove the enclosing dir if not

k.

resolved in https://github.com/databio/refgenie/commit/b8c424c9b1db5e970ceb18c4931be775d2ff4ca1


Itsycal doesn't show up in Calendars tap in Privacy section

I tried to grant Itsycal the access to my calendar , but the app literally doesn't show up in Calendars tap.
I added the app in Accessibility section, but it didn't help anything.

Do we have a solution to this problem?


Fixed the typo changed 'id' to 'Id'

replaced el.shadowRoot.getElementByid with el.shadowRoot.getElementById

 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.

Thanks a lot !


Azure Container Registry / automated build as per Karl Henrik

Implement
https://docs.microsoft.com/en-us/cli/azure/acr?view=azure-cli-latest
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-tutorial-build-task

Wont do -  current release pipeline is through GH Actions


Proposal: On enter function call

Using the selected-object call back, I'm able to submit my form when hitting enter on select object. Is there a way to trigger this without a selected object (I'd like to be able to submit an empty string)?

Not sure if it works or not but try override-suggestions.


Change currency icon to BEAM

Change currency icon to BEAM as in design

Need to change currency icon to BEAM on all screens

checked


fix version variable Closes #10

using the same "flutter_runner_tool_cache" value template in "actions.sh" as in "action.yaml"
took up some lines the variable "flutter_runner_tool_cache" be cause the flutter version was changing from latest to the exact number and this was causing the difference between .yaml file and .sh file!
Closes #10

Thank you for your PR, since I've to make a significant changes to the action.sh. It breaks your implementation.
Anyway I will add a reference to this PR in the source code and in the release note for your contribution.


Fix picking rect calculation

Background
The bug: {y: 0, radius: 0} yields an invalid picking rect. This is because we are actually picking the pixel above (x, y) when pickingRadius is 0.
Change List

Fix how getPickingRect and getClosestObject handle pickingRadius: 0
Tests

Coverage increased (+2.1%) to 76.517% when pulling a0bd288211bab3a26dab150857e874f1309b0bcd on x/tests into f5c368d1ade6d7b0529bbfd29ca8c4b06229ad7e on master.

Looks good to me, the changes for grid layer picking test cases can be reverted, I am ok to keep them as is too, since the result between CPU and GPU paths is still the same.
Changing picking location may not change picking result, if changed location still points to same cell.


CallOps: extend memory according to outSize arg, rather actual return…

… data size
See explanation in: https://github.com/input-output-hk/etc-client/wiki/TX-Execution---problematic-blocks#68460

There's an edge case that I'm not sure we are considering (at least according to geth), if the size of the data stored in memory is 0, it doesn't seem to be expanded (https://github.com/ethereumproject/go-ethereum/blob/master/core/vm/memory.go#L40). For example in this case if outOffset is too big but outSize is 0 we would be extending the Memory.

@ntallar

the size of the data stored in memory

Not sure what you mean by that. The memory contents prior to storing the return data? Or the return data from the called contract?
In either case, if I'm not mistake the size in geth code, refers to the stack argument to CALL, not the actual data size.
In our code we only extend memory when we store/load data of size > 0.

For example in this case if outOffset is too big but outSize is 0 we would be extending the Memory.

I don't think we do. Are you saying we should?

@ntallar correction: the memory actual does get expanded, but the gas is calculated correctly. So we are correct, but we have a small performance bug.

@ntallar correction: the memory actual does get expanded, but the gas is calculated correctly. So we are correct, but we have a small performance bug

@rtkaczyk :1: I was just looking into a test to show that.
Apart for it being a performance bug, as the memory is changed, wouldn't that affect the gas cost of the next attempts to read or store data to memory?

Good point @ntallar

I think EvmConfig#calcMemCost (or usages of it) might be wrong. It should the word count, μi, rather than memory size in bytes.

About mentioned OOM errors, I think gas limit may prevent it, am I right?

calcMemCost calculates how many words will be needed to store given amount of bytes, do you mean that dataSize is in words not in bytes?

No, calcMemSize takes memory size and data size in bytes, but it converts them to size in words. In other words, forget what I said 😛

About mentioned OOM errors, I think gas limit may prevent it, am I right?

Theoretically you could have enough gas (or Ether to pay for it) to cause OOM.

what about gas per block limit?

what about gas per block limit?

I don't know. Feel free to do the calculations :)
However as per YP:

it is highly unlikely addresses will ever go above 32-bit bounds. That said, implementations must be able to manage this eventuality.

Thanks, but I'm adding one more test here 😄


Add more of the common e2e tests

Help messages for command and sub commands;
System info.

Will be covered by https://github.com/o1-labs/zkapp-cli/issues/645


refactored quickstart - example

An example of how we could shorten the Quickstart guide

Just went through the page and I think the majority of the changes are really great! here's quick bullet list with very rough feedback points:

I'm not in favor of removing the language switcher but open to discuss it
like the idea of showing the Prisma schema and  mock data in the expandable section
like that the "add"-notation is used to show the new code
like that the CLI expandable result section is used
the note about statically typed result might scare away JS users (IMO we should ensure that JS users are not confronted with any TS concepts when they get started with Prisma)
why not user the "edit"-notation to adjust the code for the later code snippets?
idea: instead of showing the data changes in a markdown table, maybe mention prisma studio and show a screenshot with the data?

Just went through the page and I think the majority of the changes are really great! here's quick bullet list with very rough feedback points:

I'm not in favor of removing the language switcher but open to discuss it
like the idea of showing the Prisma schema and  mock data in the expandable section
like that the "add"-notation is used to show the new code
like that the CLI expandable result section is used
the note about statically typed result might scare away JS users (IMO we should ensure that JS users are not confronted with any TS concepts when they get started with Prisma)
why not user the "edit"-notation to adjust the code for the later code snippets?
idea: instead of showing the data changes in a markdown table, maybe mention prisma studio and show a screenshot with the data?

Thanks for looking through it Niko!

I think having a discussiojn around the language picker would be great, maybe next weeks docs sync?
You note about the typed result rings true if we dont have the language picker, if its TS then we should show it but just JS then no. Seeing as I droped the picker for this draft i included the types. But i understadn where you are coming from
Good point about the edit notation! I honestly forgot about it, but that makes total sense
Love the screenshot idea


Allow to clone all repos, regardless of groups

Problem
Use case:

There is a default group
You run tsrc init
Repos are split across 2 separate groups, group-a and group-b, and some repos become orphans (not part of any group)
You want to keep all repos in your workspace (even the orphan ones)

Currently: not feasible. You have to read the remote manifest to get the full list of groups, then clone orphan repos by hand.
Describe the solution you'd like
There's already a magic default group, which is used by default. We can have a group named all for this use case.
Scenario becomes:

There is a default group
You run tsrc init
Repos are split across 2 separate groups, group-a and group-b, and some repos become orphans (not part of any group)
You want to keep all repos in your workspace (even the orphan ones)
You edit the config file to have groups: [all]
You run tsrc sync

In implementing the feature, we discovered it was much easier to add a all_repos boolean to the manifest config rather than adding a magic group.


Tablib and tabulate

Build commandline and csv files using the tablib and tabulate libraries, to offload the logic (and make manipulating the data easier).

@cpennington done reviewing, some questions inline.  great idea to add the tab* libraries.

:+1:


[WIP] Feature/articles

Implementation based on https://github.com/gothinkster/realworld/tree/master/api

Path
Status

GET /api/articles
✅

GET /api/articles?author=johnjacob
⬜

GET /api/articles?favorited=jane
⬜

GET /api/articles?tag=dragons
⬜

GET /api/articles/train-your-dragon
✅

POST /api/articles with Auth 🔒
✅

DELETE /api/articles/train-your-dragon with Auth 🔒
✅

PUT /api/articles/train-your-dragon with Auth 🔒
⬜

POST /api/articles/train-your-dragon/favorite with Auth 🔒
⬜

DELETE /api/articles/train-your-dragon/favorite with Auth 🔒
⬜

GET /api/tags
✅

The addition of credo is not relevant to this pull request and should be done separately.

@Florian95 What's the status on this?

@Florian95 Thanks a lot for all the effort put into this.
I've merged master into your changes and created a feature/articles branch in this repo. I also implemented some missing functionality and fixed the tests.
I created a new PR #22 (still in progress) - So I'll close this one.


Discord link on the home page goes nowhere

 @click.native="openURL($configFile.get('external').discordUrl)"
Maybe we need discordUrl in a config somewhere?

that is weird, I've re-added it to the config. somehow it got deleted from the jungle config.


Call to a member function isA() on null

For Bug Reports

BookStack Version: 0.15.3
PHP Version:  7.0.15
MySQL Version: mysql  Ver 15.1 Distrib 10.0.29-MariaDB, for Linux (x86_64) using readline 5.1

Actual Behavior
Error message below is displayed as soon as I login.
Whoops, looks like something went wrong.
1/3
FatalThrowableError in 230a713bd67b5126facb2c4be365c73cb1a9260c.php line 5:
Call to a member function isA() on null
in 230a713bd67b5126facb2c4be365c73cb1a9260c.php line 5
at include() in PhpEngine.php line 42
at PhpEngine->evaluatePath('/var/www/bookstack/storage/framework/views/230a713bd67b5126facb2c4be365c73cb1a9260c.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'obLevel' => 1, 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection), 'entities' => object(Collection), 'style' => 'compact', 'emptyText' => 'You have not viewed any pages')) in CompilerEngine.php line 59
at CompilerEngine->get('/var/www/bookstack/resources/views/partials/entity-list.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'obLevel' => 1, 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection), 'entities' => object(Collection), 'style' => 'compact', 'emptyText' => 'You have not viewed any pages')) in View.php line 137
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php line 34
at include('/var/www/bookstack/storage/framework/views/fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php') in PhpEngine.php line 42
at PhpEngine->evaluatePath('/var/www/bookstack/storage/framework/views/fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection))) in CompilerEngine.php line 59
at CompilerEngine->get('/var/www/bookstack/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection))) in View.php line 137
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in Response.php line 38
at Response->setContent(object(View)) in Response.php line 225
at Response->__construct(object(View)) in Router.php line 602
at Router->prepareResponse(object(Request), object(View)) in Router.php line 559
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Controller.php line 44
at Controller->BookStack\Http\Controllers\{closure}(object(Request), object(Closure)) in Pipeline.php line 131
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 45
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Localization.php line 21
at Localization->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51
at Debugbar->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53

2/3
ErrorException in 230a713bd67b5126facb2c4be365c73cb1a9260c.php line 5:
Call to a member function isA() on null (View: /var/www/bookstack/resources/views/partials/entity-list.blade.php)
in 230a713bd67b5126facb2c4be365c73cb1a9260c.php line 5
at CompilerEngine->handleViewException(object(FatalThrowableError), 3) in PhpEngine.php line 46
at PhpEngine->evaluatePath('/var/www/bookstack/storage/framework/views/230a713bd67b5126facb2c4be365c73cb1a9260c.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'obLevel' => 1, 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection), 'entities' => object(Collection), 'style' => 'compact', 'emptyText' => 'You have not viewed any pages')) in CompilerEngine.php line 59
at CompilerEngine->get('/var/www/bookstack/resources/views/partials/entity-list.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'obLevel' => 1, 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection), 'entities' => object(Collection), 'style' => 'compact', 'emptyText' => 'You have not viewed any pages')) in View.php line 137
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php line 34
at include('/var/www/bookstack/storage/framework/views/fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php') in PhpEngine.php line 42
at PhpEngine->evaluatePath('/var/www/bookstack/storage/framework/views/fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection))) in CompilerEngine.php line 59
at CompilerEngine->get('/var/www/bookstack/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection))) in View.php line 137
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in Response.php line 38
at Response->setContent(object(View)) in Response.php line 225
at Response->__construct(object(View)) in Router.php line 602
at Router->prepareResponse(object(Request), object(View)) in Router.php line 559
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Controller.php line 44
at Controller->BookStack\Http\Controllers\{closure}(object(Request), object(Closure)) in Pipeline.php line 131
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 45
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Localization.php line 21
at Localization->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51
at Debugbar->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53

3/3
ErrorException in 230a713bd67b5126facb2c4be365c73cb1a9260c.php line 5:
Call to a member function isA() on null (View: /var/www/bookstack/resources/views/partials/entity-list.blade.php) (View: /var/www/bookstack/resources/views/partials/entity-list.blade.php)
in 230a713bd67b5126facb2c4be365c73cb1a9260c.php line 5
at CompilerEngine->handleViewException(object(ErrorException), 1) in PhpEngine.php line 44
at PhpEngine->evaluatePath('/var/www/bookstack/storage/framework/views/fa0ff50fc8e18236cf8dbec2533e2fd4657d916e.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection))) in CompilerEngine.php line 59
at CompilerEngine->get('/var/www/bookstack/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'signedIn' => true, 'currentUser' => object(User), 'activity' => array(object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity), object(Activity)), 'recents' => object(Collection), 'recentlyCreatedPages' => object(Collection), 'recentlyUpdatedPages' => object(Collection), 'draftPages' => object(Collection))) in View.php line 137
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in Response.php line 38
at Response->setContent(object(View)) in Response.php line 225
at Response->__construct(object(View)) in Router.php line 602
at Router->prepareResponse(object(Request), object(View)) in Router.php line 559
at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Controller.php line 44
at Controller->BookStack\Http\Controllers\{closure}(object(Request), object(Closure)) in Pipeline.php line 131
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 45
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Localization.php line 21
at Localization->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51
at Debugbar->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53

Hi @j3br, Sorry to hear you are facing issues. Did this issue appear after an upgrade or is this a fresh installation?
Could you try running the following commands from the BookStack folder:
php artisan cache:clear
php artisan view:clear

Hi,
I noticed the issue after rebooting the server following some OS patching. The BookStack installation is a few months old.
I ran the commands you provided but I still receive the same error messages.

HI @j3br, Sorry for my late reply. I can only think to suggest running the commands again with admin privileges (via sudo if on a linux/mac system).
I believe the old cached views are being used which are outdated after updating. After running the commands you should not have any files within the storage/framework/views folder (Which are shown in the above log).

Hi, thank you for your response.
I ran the commands again (as root) but unfortunately the problem still persists.
/var/www/bookstack # php artisan cache:clear
Cache cleared successfully.
/var/www/bookstack # php artisan view:clear
Compiled views cleared!
/var/www/bookstack # ls -la storage/framework/views/
total 12
drwxr-xr-x 2 www-data www-data 4096 Apr  4 01:30 .
drwxr-xr-x 5 www-data www-data 4096 Dec 10 17:11 ..
-rwxr-xr-x 1 www-data www-data   14 Dec 10 17:11 .gitignore

I decided to just reinstall Bookstack. It seems to work as it should now.


Semanticsdb is missing synthetics information about implicits in for comprehensions

I have the following file (Input2.scala):
import scala.concurrent.Future

object Input2 {
  import scala.concurrent.ExecutionContext.Implicits.global

  val f1 = Future { 1 }
  val f2 = Future { 2 }

  f1.flatMap(v1 => f2.map(v2 => v1 + v2))
}

The synthetics part of the corresponding semanticsdb correctly shows 4 occurrences of the global execution context being inserted at the right places:
scala/fix/Input2.scala
195 -- *(scala.concurrent.ExecutionContext.Implicits.global)
269 -- *(scala.concurrent.ExecutionContext.Implicits.global)
214 -- *.apply[Int]
268 -- *(scala.concurrent.ExecutionContext.Implicits.global)
226 -- *(scala.concurrent.ExecutionContext.Implicits.global)
183 -- *.apply[Int]
253 -- *[Int]
240 -- *[Int]

However, if I rewrite the code above to (Input1.scala):
import scala.concurrent.Future

object Input2 {
  import scala.concurrent.ExecutionContext.Implicits.global

  val f1 = Future { 1 }
  val f2 = Future { 2 }

  for {
   v1 <- f1
   v2 <- f2
  } yield v1 + v2
}

I get only 3 occurrences:
scala/fix/Input1.scala
183 -- *.apply[Int]
277 -- *(scala.concurrent.ExecutionContext.Implicits.global)
214 -- *.apply[Int]
261 -- *.map[Int]
195 -- *(scala.concurrent.ExecutionContext.Implicits.global)
248 -- *.flatMap[Int]
226 -- *(scala.concurrent.ExecutionContext.Implicits.global)

In the desugaring of for comprehensions, one use of implicit is missing.
An example project (using scalafix to setup things quickly) is here:
https://www.dropbox.com/s/fsg8z86p9spe4n9/semdb-forcomp.tar.bz2?dl=0
Using scalameta 2.0.1, scala 2.12.3

I had a quick look at the scalameta sources and the problem is that for both flatMap and map the ApplyToImplicitArgs has the same end position. Since the storage is a map, they get overwritten.

Thank you for reporting! We use Inferred to merge multiple synthetics with the same position, see https://github.com/scalameta/scalameta/blob/7b58f0e0a54b4d925668dc8f721881cb40da419f/scalameta/semanticdb-scalac/src/main/scala/scala/meta/internal/semanticdb/Inferred.scala#L32-L37
What do you think would be sensible locations for the implicit synthetics? They should clearly not be the same, but I'm not sure what position makes more sense. Merging *.flatMap and *(ExectuionContext.Implicits) into *.flatMap(Implicits) is not correct.

Making Inferred.args a list is one possible solution, but that would produce non-sensical synthetics like (Implicit)(Implicit). Do you have an idea how we could distinguish the inferred Implicits that have the same position? It would be nice if we could someone know which one is attached to which .flatmap/.map

Indeed, it would be really good to know which one is which.
I'm not sure if I completely get the meaning of _star_, but it looks like a placeholder. In the Input2.scala (from above) you can basically replace the star by whatever is on the given position and you get out a valid desugared code. I guess that is the purpose, right?
For the for comprehension, this does not seem to be working well, since it is a more complicated rewrite. In this case wouldn't it make sense to actually merge the whole thing? For example:
for (v1 <- f1; v2 <- f2) yield v1+v2
^                              ^   ^
0                              31  35

will produce:
[0..35) f1.flatMap[Int](((v1: Int) => f2.map[Int](((v2: Int) => v1.+(v2)))(_root_.scala.concurrent.ExecutionContext.Implicits.global)))(_root_.scala.concurrent.ExecutionContext.Implicits.global)

or
[0..31) <empty string signalling removal>
[31..35) f1.flatMap[Int](((v1: Int) => f2.map[Int](((v2: Int) => *))(_root_.scala.concurrent.ExecutionContext.Implicits.global)))(_root_.scala.concurrent.ExecutionContext.Implicits.global)

and the names in both cases will contain all the corresponding resolved names (flatMap, map, Int, global, ...).
Perhaps this will break a lot of other things, but for our use case it will be perferct :-)

Gentle nudge 😉😉 @olafurpg? Turns out this important for the work that @fikovnik et al are doing analyzing implicits code. I think @fikovnik would be up to make a PR, but might need to be pointed in the right direction...

Sorry, totally forgot this, thanks for the reminder @heathermiller
I think the solution proposed by @fikovnik is the best, we can make args: List[AttributedSynthetic ]. Would that solve your use-case @fikovnik ? If so, would you be interested in making a PR doing the change? I suspect the diff would be small, I'm curious to know if our tests will be affected.
Synthetics for for-comprehensions are a best-effort for now anyways, so I believe it's fair to over-persist data instead of under-persist.

replace the star by whatever is on the given position and you get out a valid desugared code. I guess that is the purpose, right?

Correct. That is at least the idea for implicit conversions in particular. I agree this doesn't seem to scale well for for-comprehensions.

@olafurpg - yes I'll be happy tot try to make a PR.
Making it a List[AttributedSynthetics] will work for us, however, it will break the assumption with _star_. Another option would be to turn:
for (v1 <- f1; v2 <- f2) yield v1+v2

into
[0..35) f1.flatMap[Int](((v1: Int) => f2.map[Int](((v2: Int) => v1.+(v2)))(_root_.scala.concurrent.ExecutionContext.Implicits.global)))(_root_.scala.concurrent.ExecutionContext.Implicits.global)

or
[0..31) <empty string signalling removal>
[31..35) f1.flatMap[Int](((v1: Int) => f2.map[Int](((v2: Int) => *))(_root_.scala.concurrent.ExecutionContext.Implicits.global)))(_root_.scala.concurrent.ExecutionContext.Implicits.global)

which will preserve it.
Which one would you prefer?

@fikovnik I don't like the idea of persisting the full desugaring of for-comprehensions in synthetics since it would bloat the semanticdb.
I like where you are going in the end by using star to replace the non-synthetic argument. Can we take that idea further by changing the position of the implicit argument to follow flatMap/map/foreach? The output would be something like
[35] .flatMap[Int](*)(ExecutionContext)
[42] .map[Int](*)(ExecutionContext2)

even if the execution context is not part of

Fixed by #1142


App CRASHED when PurchaseUpdateListner() was called

^4.5.3 of react-native-iap
0.63 of react-native
IOS/ANDROID
Expected behavior
Actual behavior
Environment: Testflight
Steps to reproduce the behavior

@kleytonbarcelos tough to help without any additional information... could you fill the template first?


Spotify doesn't work (any more)

Hi all, I had a good working Phoniebox for 1,5 years. In the last weeks all spotify playlists stopped working but streaming radio channels worked.
Today I reset the entire box to RPi buster and did a fresh installation from scratch using the one-line-install script. Everything works fine, soundcard, buttons, RFI card reader. But I still cannot play any song or playlist from spotify. What happened? Can anybody support?
I'm running buster on RPi Jukebox 2.0-64a42f1 develop and mopidy 3.45.0. Connected my account several times already with mopidy and spotify. I'm pretty much sure that all: user, pass, client id and secret are correct. I have a premium family account.
Any ideas?

That's really strange, now I was able to start one playlist by coincidence. But after rebooting the box it doesn't work any more. Mopidy seems to be quite buggy. It tells me it's connected but I cannot start any playlist any more neither from Phoniebox nor directly from Mopidy (Mopidy: Failed to add some tracks).

What's the output of journalctl -u mopidy?
Did you try mopidy local scan?

Here is the output of journalctl -u mopidy directly after reboot:
pi@raspberrypi:~ $ journalctl -u mopidy
-- Logs begin at Thu 2019-02-14 11:11:59 CET, end at Wed 2020-04-15 10:20:57 CEST. --
Apr 15 09:54:22 raspberrypi systemd[1]: Starting Mopidy music server...
Apr 15 09:54:23 raspberrypi systemd[1]: Started Mopidy music server.
Apr 15 09:54:29 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.__main__ Starting Mopidy 3.0.2
Apr 15 09:54:29 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.config Loading config from builtin defaults
Apr 15 09:54:29 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.config Loading config from file:///usr/share/mopidy/conf.d/mopidy.conf
Apr 15 09:54:29 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.config Loading config from file:///usr/share/mopidy/conf.d/mopidy-local.conf
Apr 15 09:54:29 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.config Loading config from file:///etc/mopidy/mopidy.conf
Apr 15 09:54:29 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.config Loading config from command line options
Apr 15 09:54:29 raspberrypi mopidy[450]: ERROR    [MainThread] mopidy.internal.log Loading logging config '/etc/mopidy/logging.conf' failed. 'formatters'
Apr 15 09:54:30 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.__main__ Enabled extensions: stream, mpd, softwaremixer, file, iris, http, local, spotify, m3u
Apr 15 09:54:30 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.__main__ Disabled extensions: none
Apr 15 09:54:32 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Starting Mopidy mixer: SoftwareMixer
Apr 15 09:54:32 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Mixer volume set to 30
Apr 15 09:54:32 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Starting Mopidy audio
Apr 15 09:54:32 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Starting Mopidy backends: FileBackend, M3UBackend, StreamBackend, SpotifyBackend, LocalBacke
Apr 15 09:54:32 raspberrypi mopidy[450]: INFO     [Audio-2] mopidy.audio.actor Audio output set to "alsasink"
Apr 15 09:54:33 raspberrypi mopidy[450]: ERROR    [SpotifyEventLoop] spotify.session Spotify login error: <ErrorType.UNABLE_TO_CONTACT_SERVER: 8>
Apr 15 09:54:35 raspberrypi mopidy[450]: INFO     [SpotifyBackend-6] mopidy_spotify.web Logged into Spotify Web API as kfuzej1pajj038nhge0w1af92
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [SpotifyBackend-6] mopidy_spotify.playlists Refreshed 18 Spotify playlists
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Starting Mopidy core
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Starting Mopidy frontends: IrisFrontend, HttpFrontend, MpdFrontend
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [IrisFrontend-11] mopidy_iris.core Starting Iris 3.45.0
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [HttpFrontend-13] mopidy.http.actor HTTP server running at [::ffff:<IP_ADDRESS>]:6680
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [MainThread] mopidy_mpd.actor MPD server running at [::ffff:<IP_ADDRESS>]:6600
Apr 15 10:20:53 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Starting GLib mainloop

and output of mopidy local scan
pi@raspberrypi:~ $ mopidy local scan
INFO     2020-04-15 10:23:49,422 [1082:MainThread] mopidy.__main__
  Starting Mopidy 3.0.2
INFO     2020-04-15 10:23:49,576 [1082:MainThread] mopidy.config
  Loading config from builtin defaults
INFO     2020-04-15 10:23:49,583 [1082:MainThread] mopidy.config
  Loading config from file:///home/pi/.config/mopidy/mopidy.conf
INFO     2020-04-15 10:23:49,590 [1082:MainThread] mopidy.config
  Loading config from command line options
WARNING  2020-04-15 10:23:49,606 [1082:MainThread] mopidy.config
  Ignoring config section 'local-images' because no matching extension was found
INFO     2020-04-15 10:23:50,136 [1082:MainThread] mopidy.__main__
  Enabled extensions: local, softwaremixer, stream, file, m3u, iris, mpd, spotify, http
INFO     2020-04-15 10:23:50,136 [1082:MainThread] mopidy.__main__
  Disabled extensions: none
INFO     2020-04-15 10:23:50,742 [1082:MainThread] mopidy_local.commands
  Finding files in file:///home/pi/RPi-Jukebox-RFID/shared/audiofolders ...
INFO     2020-04-15 10:23:50,774 [1082:MainThread] mopidy_local.commands
  Found 6 files in file:///home/pi/RPi-Jukebox-RFID/shared/audiofolders
INFO     2020-04-15 10:23:50,799 [1082:MainThread] mopidy_local.schema
  Creating SQLite database schema v6
INFO     2020-04-15 10:23:50,839 [1082:MainThread] mopidy_local.commands
  Checking 0 tracks from library
INFO     2020-04-15 10:23:50,841 [1082:MainThread] mopidy_local.commands
  Removing 0 missing tracks
INFO     2020-04-15 10:23:50,844 [1082:MainThread] mopidy_local.commands
  Found 1 tracks which need to be updated
INFO     2020-04-15 10:23:50,844 [1082:MainThread] mopidy_local.commands
  Scanning...
WARNING  2020-04-15 10:23:50,862 [1082:MainThread] mopidy_local.commands
  Failed scanning file:///home/pi/RPi-Jukebox-RFID/shared/audiofolders/placeholder: gst-stream-error-quark: Stream contains no data. (4)
INFO     2020-04-15 10:23:50,863 [1082:MainThread] mopidy_local.commands
  Scanned 1 of 1 files in 0.018s.
INFO     2020-04-15 10:23:50,864 [1082:MainThread] mopidy_local.commands
  Done scanning
INFO     2020-04-15 10:23:50,883 [1082:MainThread] mopidy_local.storage
  Cleaning up image directory

OK, restarted mopidy again, and executed journalctl -u mopidy again
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands GLib mainloop got SIGTERM. Exiting...
Apr 15 10:27:14 raspberrypi systemd[1]: Stopping Mopidy music server...
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Stopping Mopidy frontends
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [IrisFrontend-11] mopidy_iris.core Stopping Iris
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Stopping Mopidy core
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Stopping Mopidy backends
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Stopping Mopidy audio
Apr 15 10:27:14 raspberrypi mopidy[450]: INFO     [MainThread] mopidy.commands Stopping Mopidy mixer
Apr 15 10:27:15 raspberrypi systemd[1]: mopidy.service: Succeeded.
Apr 15 10:27:15 raspberrypi systemd[1]: Stopped Mopidy music server.
Apr 15 10:27:19 raspberrypi systemd[1]: Starting Mopidy music server...
Apr 15 10:27:19 raspberrypi systemd[1]: Started Mopidy music server.
Apr 15 10:27:20 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.__main__ Starting Mopidy 3.0.2
Apr 15 10:27:20 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.config Loading config from builtin defaults
Apr 15 10:27:20 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.config Loading config from file:///usr/share/mopidy/conf.d/mopidy.conf
Apr 15 10:27:20 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.config Loading config from file:///usr/share/mopidy/conf.d/mopidy-local.conf
Apr 15 10:27:20 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.config Loading config from file:///etc/mopidy/mopidy.conf
Apr 15 10:27:20 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.config Loading config from command line options
Apr 15 10:27:20 raspberrypi mopidy[1570]: ERROR    [MainThread] mopidy.internal.log Loading logging config '/etc/mopidy/logging.conf' failed. 'formatters'
Apr 15 10:27:21 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.__main__ Enabled extensions: softwaremixer, file, stream, mpd, spotify, iris, m3u, local, http
Apr 15 10:27:21 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.__main__ Disabled extensions: none
Apr 15 10:27:21 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Starting Mopidy mixer: SoftwareMixer
Apr 15 10:27:21 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Mixer volume set to 30
Apr 15 10:27:21 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Starting Mopidy audio
Apr 15 10:27:21 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Starting Mopidy backends: FileBackend, M3UBackend, StreamBackend, SpotifyBackend, LocalBack
Apr 15 10:27:22 raspberrypi mopidy[1570]: INFO     [Audio-2] mopidy.audio.actor Audio output set to "alsasink"
Apr 15 10:27:22 raspberrypi mopidy[1570]: INFO     [SpotifyBackend-6] mopidy_spotify.web Logged into Spotify Web API as kfuzej1pajj038nhge0w1af92
Apr 15 10:27:22 raspberrypi mopidy[1570]: INFO     [SpotifyEventLoop] mopidy_spotify.backend Logged in to Spotify in online mode
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [SpotifyBackend-6] mopidy_spotify.playlists Refreshed 18 Spotify playlists
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Starting Mopidy core
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Starting Mopidy frontends: IrisFrontend, HttpFrontend, MpdFrontend
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [IrisFrontend-11] mopidy_iris.core Starting Iris 3.45.0
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [HttpFrontend-13] mopidy.http.actor HTTP server running at [::ffff:<IP_ADDRESS>]:6680
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy_mpd.actor MPD server running at [::ffff:<IP_ADDRESS>]:6600
Apr 15 10:27:56 raspberrypi mopidy[1570]: INFO     [MainThread] mopidy.commands Starting GLib mainloop

What I can see is that mopidy was now able to login to Spotify:
before:
Apr 15 09:54:33 raspberrypi mopidy[450]: ERROR    [SpotifyEventLoop] spotify.session Spotify login error: <ErrorType.UNABLE_TO_CONTACT_SERVER: 8>
after restart of mopid:
Apr 15 10:27:22 raspberrypi mopidy[1570]: INFO     [SpotifyBackend-6] mopidy_spotify.web Logged into Spotify Web API as kfuzej1pajj038nhge0w1af92
Why does it not login directly after the booting procedure? To early maybe, before WiFi connection?

Ok, seems to be the same as #893.
I agree, that the problem could be that a internet connection is not available yet, but that doesn't explain why this suddenly doesn't work anymore.

Closing as duplicate, please see #893


Added support for mode-switched fullscreen and borderless fullscreen

This PR is for implementation of PR #50 correctly.
resolves #50
EDIT by @LovelySanta: resolves #86

I'm not sure if this is completely relevant, but I'd like to note that the Fullscreen/Borderless Mode still has the same problem of not actually rendering the entire window when the window becomes larger that the main branch has (as noted by @LovelySanta in #86).
The xPos and yPos WindowData variables are declared and used, but never set and never updated. I think we would use a glfwSetWindowPosCallback to update it? And depending on whether this callback is triggered at the window's creation we might need to also manually get the initial position.

I'm not sure if this is completely relevant, but I'd like to note that the Fullscreen/Borderless Mode still has the same problem of not actually rendering the entire window when the window becomes larger that the main branch has (as noted by @LovelySanta in #86).

This should get fixed for sure in this PR, I did not actual test anything yet as I had already enough comments for an initial review.

The xPos and yPos WindowData variables are declared and used, but never set and never updated. I think we would use a glfwSetWindowPosCallback to update it? And depending on whether this callback is triggered at the window's creation we might need to also manually get the initial position.

In the init function we are extracting the initial position:
glfwGetWindowPos(m_Window, &(m_Data.XPos), &(m_Data.YPos));

I like the idea of setting the actual position (or at least give the ability to). Since the create function does not allow us to say where it should create the window, we should use the glfwGetWindowPos and save it to a local variable and compare it with the given props. If they are not equal, we should glfwSetWindowPos to match our wanted position.
While thinking of that I also came up with:

the position should be stored as a glm::vec2 as it would look a bit more clear
It is also easy to compare a glm::vec2 with another glm::vec2
glfwSetWindowPosCallback to keep track when the window is  getting moved.

No need to rush, take all the time you need :)

When switching borderless -> fullscreen, it is actualy calling the maximize, (noticeable at the maximize button), but not actualy showing it maximized...

Regarding the bug with the whole window not being rendered to when increasing the size, the issue seems to lie with the OpenGL Viewport. According to the docs, it is set when the context is first attached to the window and then we never change it. So the solution seems to be to simply call the glViewport method with the new width and height whenever we resize the window.
I am not sure of the best way to implement this currently. The fact that we need to call OpenGL code is somewhat annoying. My current implementation adds a SetViewport method to the GraphicsContext class and then has Application respond to a WindowResizeEvent with a call to this new method using the new width and height of the window. To do this it has to first get the GraphicsContext from its Window instance. Then the actual glViewport call is finally made in OpenGLContext.
This solution seems to mostly correct the bug with two caveats:

When resizing the window manually by dragging the mouse from the frame the actual resizing only happens when the mouse is released and rendering seems to be frozen while the dragging is happening (probably because of constant OpenGL API calls?). This definitely needs to be fixed.
If the Window is dragged to a weird aspect ratio, then the rendered image becomes correspondingly weird. I suggest we fix the aspect ratio using glfwSetWindowAspectRatio when creating the WindowsWindow.

Not sure if this implementation is the best way of doing it. It is probably better to have WindowsWindow take responsibility for updating the Viewport. Any ideas?

I don't think that SetViewport should be in GraphicsContext. Sounds to me more like a RenderCommand. The frozen rendering isn't specific only to OpenGL you get the same behaviour when using DirectX and Win32. So that sounds more like a Windows thing. And also should user resizing be really possible? Isn't it pretty expensive? What would we gain by allowing user to resize? Why not just allow resizing using the settings menu or something?

Regarding the bug with the whole window not being rendered to when increasing the size, the issue seems to lie with the OpenGL Viewport. According to the docs, it is set when the context is first attached to the window and then we never change it. So the solution seems to be to simply call the glViewport method with the new width and height whenever we resize the window.
I am not sure of the best way to implement this currently. The fact that we need to call OpenGL code is somewhat annoying. My current implementation adds a SetViewport method to the GraphicsContext class and then has Application respond to a WindowResizeEvent with a call to this new method using the new width and height of the window. To do this it has to first get the GraphicsContext from its Window instance. Then the actual glViewport call is finally made in OpenGLContext.

Sounds about right. The Window is responsible for creating, the window has ownership over the context. This is what (I think) needs to happen:

GraphicsContext needs to have a Create methode that switches between API's instead of hardcoding an OpenGL context, just like other OpenGL classes have.
GraphicsContext needs to have a function SetViewport, where it passes the new width & height
Window and WindowsWindow require a GetGrapicsContent
Application requires a OnWindowResize that calls the GraphicsContext::SetViewport function

It is up to the window to provide GraphicsContext to force aspect ratio or not.
It is up to the GraphicsContext to calculate the required viewport offsets (that will add borders) to maintain aspect ratio inside a not-ratio window.

I rather not implement it and first figure out the whoe Window class before moving on to the viewport.

I don't think that SetViewport should be in GraphicsContext. Sounds to me more like a RenderCommand. The frozen rendering isn't specific only to OpenGL you get the same behaviour when using DirectX and Win32. So that sounds more like a Windows thing.

The viewport is linked to the context, so it should indeed be the context that resolves this?

And also should user resizing be really possible? Isn't it pretty expensive? What would we gain by allowing user to resize? Why not just allow resizing using the settings menu or something?

It is indeed not the cheapest operation (manual resizing, switching fullscreen/borderless/windowed is only 1 resize, versus click drag (events times 9000) release.
=> Window should have extra functions to disallow resizing, or to force the aspect ratio. For WindowsWindow these would resolve to glfwSetWindowAttrib(GLFW_RESIZABLE, GL_TRUE/GL_FALSE) for the resizing, and the aspect ratio should be taken care of in the Context, resolved by calling the viewport, as mensioned in my previous comment.

glfwWindow is finaly more or less working as intended. Think we can start working on setting the viewport during the raised events as discussed before (https://github.com/TheCherno/Hazel/pull/108#issuecomment-525817166)
@CleverSource I did enough coding today, feel free to do so, otherwise I might do some tomorrow.

Are there still changes required, it says it can't be merged until a change is made but I can't seem to find which changes are required. Can you re-review what needs to be changed?

LGTM

I really doubt this can even be merged, the SetWindowMode is taking too long. 8000 us to be exact.
My visual studio 2019 profiler is broken right now.
https://prnt.sc/ozxyr5

@LovelySanta he should run his test on a recent clone of the Hazel repo and grab the branch from this PR. His test was done on his personal engine which he has implemented 3D in and etc.

@LovelySanta he should run his test on a recent clone of the Hazel repo and grab the branch from this PR. His test was done on his personal engine which he has implemented 3D in and etc. Which does not give a good example for how this affects Hazel compared to his personal engine.

I'll add the testing to this branch, quickly add the timer that cherno recently made in the cpp series.

quickly add the timer that cherno recently made in the cpp series.

Do you want me to add the timer or are you saying you will?

quickly add the timer that cherno recently made in the cpp series.

Do you want me to add the timer or are you saying you will?

I was planning on doing it, but I didn't fine time to do yet, feel free to do so, but don't commit it, just put results from like 5 test, and between each mode...

As you saw in cherno's Day in the Life - Hazel 2D Dev Vlog video, cherno will fix the bug part of this PR (the resizing). I'll put this on hold until that is implemented, we can go from there about how to proceed.


[Suggestion] Remove all unwanted items from 'minecraft:trim_materials'

It would be great if the mod dynamically removes the entries from the 'minecraft:trim_materials' tag so that there is no recipe clutter and in turn only parse the 'allthetrims:whitelist' tag into the 'minecraft:trim_materials' tag as to avoid showing the unwanted materials.
It would also be quite cool to be able to configure which armor can have a trim applied and which doesnt, as all vaguely armor related items can currently be trimmed.

Whitelisting is being removed but I am working on simplifying the recipes see this comment

Recipe viewing improved in 3.3.0


Review OLC repo

Go through the checklist and update project.

readme updated with demo
release created
package created
docker updated
test datat
tests created
ci/cd created
settings changed
Badges
license
security
code of conduct

The cleanup branch is merged, and thereby this issue is solved.


Pages Generic Replication

In order to implement more endpoints for the Go SDK, I was finding myself creating Pages structures for each resource. @tomerweller @nikhilsaraf and myself began to discuss the best way for doing this and here are the two options we discussed:

Generate code to create each of these structs.
We have a Pageable interface which we use for a BasePage:

// BasePage represents the simplest page: one with no links and only embedded records.
// Can be used to build custom page-like resources
type BasePage struct {
	FullURL *url.URL `json:"-"`
	Embedded struct {
		Records []Pageable `json:"records"`
	} `json:"_embedded"`
}

Here is a nice overview of all options (with pros + cons): https://appliedgo.net/generics/

Copy-pasta
Use interfaces
Use type assertions
Use reflection
Use a code generator

Related to #491

Hey @robertDurst,
take a look at this: https://github.com/GoogleCloudPlatform/google-cloud-go/wiki/Iterator-Guidelines

IMHO, interface pages are probably the most idiomatic.

This will probably be solved by creating *Page (ex. EffectsPage) structs in protocols/horizon. See #1132 for a discussion and reasoning.


Customize top left icon

Hey,
Not sure if this is part of the plugin or just native to vim, but I would love a way to customize the icon in the top left-hand corner i.e. the blue thing with 9 black dots.
Thanks!

Nevermind, found it.

Nevermind, found it

I'm glad you found it @bitshiftnetau. Gonna answer regardless for future.
That blue thing is actually a Tabpage representation. As many Tabpages you will have in vim, that many blue things will be there, with buffers following the active one. So for example, if you have 5 Tabpages, and currently have 3rd Tabpage open, then you will have:
| # | # | # | ... buffers ... | # | # |

To change the icon of it, there is a dedicated variable for that, called g:buffet_tab_icon, just assign it in your vimrc like this (e.g. you want the icon to be $):
let g:buffet_tab_icon = "$"