Precision is always very low when training

i train the model on my custom gray scale data.
However, i always get very low precision (in the following its the highest i could get):
EVAL: Class 0: Recall: 0.9116, Precision: 0.0650, AP: 0.7955
EVAL: Recall: 0.9116, Precison: 0.0650, mAP: 0.7955
EVAL: loss: total: 3.58, xy: 0.29, wh: 0.29, conf: 2.99, class: 0.01

Is it because -

something's wrong with my data?
i don't train properly?
some bug?

Ok, so i figured out that it's because i have at most 2 objects in a frame and nms_topk=150  # keep at most nms_topk outputs after nms. How ever, it seems to me that its not at most nms_topk, its allways exactly

Hey,
what did you change to fix this? I might have the same problem.
Thanks

Hello, I have encountered the same problem. Have you solved it?How to solve it?Thanks!

Ok, so i figured out that it's because i have at most 2 objects in a frame and nms_topk=150 # keep at most nms_topk outputs after nms.

Hello, I have encountered the same problem. Have you solved it?How to solve it?Thanks!

Hello, I have encountered the same problem. Have you solved it?How to solve it?Thanks!
我解决了。如果你不是训练的coco，你只需要把nms_topk调低就好了。因为自己的训练集类别数没有80

Hey,
what did you change to fix this? I might have the same problem.
Thanks

我解决了。如果你不是训练的coco，你只需要把nms_topk调低就好了。因为自己的训练集类别数没有80

I am not sure if it's how it suppose to be, but - i changed nms_topk to 2..now precision is at most 0.5..

Hey,
what did you change to fix this? I might have the same problem.
Thanks

我解决了。如果你不是训练的coco，你只需要把nms_topk调低就好了。因为自己的训练集类别数没有80

I have only 1 class, data is like COCO..what are you suggesting to do?

你好，请问具体减少多少，比如我有10个类别

Ok, so i figured out that it's because i have at most 2 objects in a frame and nms_topk=150 # keep at most nms_topk outputs after nms.

你好该怎么修改呢，比如我的类别是10类

我用的是VOC数据集，20分类，那这个topk设置多少比较合适呢？

Is nms_topk only have effect on eval or also on trainning? Should I retrain the network with a new nms_topk?

i might have the same problem .please save kid.

I am not sure if it's how it suppose to be, but - i changed nms_topk to 2..now precision is at most 0.5..

The same as mine. My class number is 1. I changed the nms_topk to 10 and the most is 0.4. Did you improve the precision result by changing other parameters?


Run pre-installed Windows from PC's SSD

Describe the issue
I have already installed Windows 10 on my SSD, which is being used on my PC. Is there any way to run UTM from this external drive or somehow to create VM from pre-installed Windows?

No, you need download windows preinstalled for vm from Microsoft web


Tumblr Changed Privacy Consent Agreement to New (External) Service -- Breaks Login, Tumblr, SVC, Tumblr Search and Likes Downloading.

Tumblr changed the GDPR privacy consent provider last week and seems to be now using some external services for this. This results in new queries and cookies.
As a result, for me, as EU resident, the TumblThree Tumblr-search- and TumblThree likes/by-Crawler are non-functional. Can someone from the US (or Non-EU) test if it still works for them?
For example, can you download anything from these?
https://www.tumblr.com/liked/by/wallpaperfx
https://www.tumblr.com/search/cars

About this new auth code, I just noticed that I used, without realizing it, two different setups of TumblrThree application files on my laptop. To test the privacy issue I had unzipped the installation files in a certain folder and ran it. Trying to log in with that set of file caused the auth code request. Later I realized that I had installed before the TumblrThree application on another folder and this application copy was already logged on from before when I checked it, just now.
So can it be that the auth request is only a result of having two sets of application files on one PC ?

I have only one instance (I had never other one), but TFA problem exists here, too.

The TFA questions pops up now because if you perform a direct login on a fresh browser session, there will be a privacy consent agreement popup directly after the login and TumblThree thinks Tumblr asks for a TFA code. The authentication process however seems to not have been changed. Usually TumblThree performed the privacy consent agreement at startup in the background. This is broken now however
I've very briefly looked into this, and not sure when/if I'll have time to fix this, but if someone wants to look into this:
The first GET goes to https://www.tumblr.com/privacy/consent/begin. If you click the agree button, another GET to https://www.tumblr.com/privacy/consent/complete is performed with a shitload long query:
{
	"GET": {
		"scheme": "https",
		"host": "www.tumblr.com",
		"filename": "/privacy/consent/complete",
		"query": {
			"{\"cmpId\":10,\"cmpVersion\":11,\"gdprApplies\":true,\"tcfPolicyVersion\":2,\"eventStatus\":\"useractioncomplete\",\"cmpStatus\":\"loaded\",\"tcString\":\"CO4tdkLO4tdkLAKALAENA0CsAP_AAH_AACiQGYtd_X9fb2vj-_5999t0eY1f9_63v-wzjgeNs-8NyZ_X_L4Xr2MyvB34pq4KmR4Eu3LBAQVlHGHcTQmQwIkVqTLsak2Mq7NKJ7JEilMbM2dYGG1Pn8XTuZCY70_sf__z_3-_-___67YGXkEmGpfAQJCWMBJNmlUKIEIVxIVAOACihGFo0sNCRwU7K4CPUACABAYgIwIgQYgoxZBAAAAAElEQAkAwIBEARAIAAQArQEIACJAEFgBIGAQACoGhYARRBKBIQZHBUcogQFSLRQTzRgAA.cAAAAAAAAAAA\",\"isServiceSpecific\":true,\"useNonStandardStacks\":false,\"purposeOneTreatment\":false,\"publisherCC\":\"US\",\"purpose\":{\"consents\":\"1111111111\",\"legitimateInterests\":\"0111111111\"},\"vendor\":{\"consents\":\"1101011101111111010111111101011111011011110110101111100011111110111111111001111101111101111101101101110100011110011000110101011111111101111111111010110111101111111110110000110011100011100000011110001101101100111110111100001101110010011001111111010111111111001011111000010111101011110110001100110010101111000001110111111000101001101010111000001010100110010001111000000100101110110111001011000001000000010000010101100101000111000110000111011100010011010000100110010000110000001000100100010101101010010011001011101100011010100100110110001100101010111011001101001010001001111011001001000100100010100101001100011011001100110110011101011000000110000110110101001111100111111100010111010011101110011001000010011000111011110100111111101100011111111111111111110011111111110111111110111111111110111111111111111111111010111011011\",\"legitimateInterests\":\"01000001001001100001101010010111110000000100000010010000100101100011000000010010010011011001101001010101000010100010000001000010000101011100010010000101010000000011100000000000101000101000010001100001011010001101001011000011010000100100011100000101001110110010101110000000100011110101000000000000100000000000010000000110001000000010001100000010001000000100000110001000001010001100010110010000010000000000000000000000000000000001001001010001000100000000001001000000001100000010000000010001000000000100010000000010000000000000000100000000001010110100000001000010000000000000100010010000000001000001011000000000010010000001100000000100000000000000101010000001101000010110000000000100010100010000010010100000010010000100000110010001110000010101000111001010001000000100000001010100100010110100010100000100111100110100011\"},\"specialFeatureOptins\":\"11\",\"publisher\":{\"consents\":\"1\",\"legitimateInterests\":\"\",\"customPurpose\":{\"consents\":\"\",\"legitimateInterests\":\"\"},\"restrictions\":{}},\"x-tumblr-nonIabVendorConsents\":{\"1\":true,\"2\":false,\"3\":false,\"4\":false,\"5\":true}}": ""
		},
		"remote": {
			"Address": "<IP_ADDRESS>:443"
		}
	}
}

This tcString seems to change. In the response of the first call there is some js included which might generate this string (see the POST to api/v2/privacy/consent and the GET builder including consent/complete?' + encodeURIComponent( JSON.stringify( inAppTCData ))):
function saveConsent() {
  __tcfapi('getInAppTCData', 2, ( inAppTCData, success ) => {
    if ( ! success ) {
      console.error( inAppTCData );
      return;
    }

    __tcfapi('getNonIABVendorConsents', 2, function(consent, success) {
      if ( success
          && consent.gdprApplies
          && consent.nonIabVendorConsents ) {
          inAppTCData['x-tumblr-nonIabVendorConsents'] = consent.nonIabVendorConsents;
      }

      log('saving consent');
      var save = submitToApi ?
        fetch('/api/v2/privacy/consent', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
            'X-CSRF': 'Si8dbo9UfHWj.1598383626'
          },
          body: JSON.stringify({
            "tcfv2_consent": JSON.stringify(inAppTCData)
          })
        })
        : Promise.resolve({ ok: true });

      save.then( function redir( response ) {
        if ( ! response.ok ) {
          console.error(response);
          throw response;
        }
        log('consent saved', response);
        if (shouldRedirectOnConsent) {
          if (redirectOnConsentUrl) {
            log('redirecting to', redirectOnConsentUrl);
            window.location = redirectOnConsentUrl;
          } else {
            var nativeUrl = 'https://www.tumblr.com/privacy/consent/complete?' + encodeURIComponent( JSON.stringify( inAppTCData ));
            log('redirecting to', nativeUrl );
            window.location = nativeUrl;
          }
        } else {
          log('not redirecting');
        }
      });
[..]

I have been a user of Tumblthree since it's inception, having used Tumbltwo previously.  But it is now completely unusable, as I cannot log on.  It wants a TFA authorisation code.  I have never set up TFA, and so there is no code that I can enter!!
I have tried all ways of getting around this problem, and also tried using different browsers as my default, but it still does not work.  Even changing the user agent settings in Tumblthree does not make any difference.  Pity, as it has been a brilliant program up until now.

Did you use your webbrowser to log on to Tumblr? I used Chrome to do that after I got the TFA request in TumblThree and when I restarted TumblThree, it logged on without a problem. Maybe I was lucky but maybe this is the way around the issue.

Did you use your webbrowser to log on to Tumblr? I used Chrome to do that after I got the TFA request in TumblThree and when I restarted TumblThree, it logged on without a problem. Maybe I was lucky but maybe this is the way around the issue.

I tired it a minutes ago, it doesn't help (Chrome, new Edge). Chrome: new login. Edge: logout+login. I had to accept the blabla, site is working. After this I started TT, but it detects still TFA.

same for me, most blogs can't be crawled, error 1 or error 2 or no error just "evaluating" then nothing happens....?
I'm using latest 11.8 - any chance for a bug fix?

Just when I found out about this amazing tool...It became unusable. Today I downloaded the software and tried to authenticate but always getting the TFA message. hopefully it's a solvable problem.  Thank you developer for your hard work.

Did you use your webbrowser to log on to Tumblr? I used Chrome to do that after I got the TFA request in TumblThree and when I restarted TumblThree, it logged on without a problem. Maybe I was lucky but maybe this is the way around the issue.

I tired it a minutes ago, it doesn't help (Chrome, new Edge). Chrome: new login. Edge: logout+login. I had to accept the blabla, site is working. After this I started TT, but it detects still TFA.

This is exactly my issue as well.

update: works again with another internet connection: mobile isn't the best idea but dowdloads do start without Error 1 or 2

edit new: once again the earlier working blogs jump out with api-settings error exceeded number of connections etc.?

When I close the application and restart, the blogs are still there (list from index folder) but the queue will disappear soon as the tags to download picutures, videos etc. are not set anymore - need to be set manually.... is this bug known?

ThumblThree is unusable for me too since some weeks. I also get the TFA-question always when I try to login.
I've tested some things:

Connected with Vodafone Cable Network -> no success
Tried after got new IP -> no success
Connected with O2 DSL -> no success
Got new IP multiple times -> no sucess
Connected via NordVPN with german VPN server -> no success
Tried NordVPN with VPN in US or Switzerland -> no success
Activated TFA in Tumblr settings -> got no SMS with login code
Tried to use one of the backup codes in the TFA-field of TumblThree -> nothing
Used TumblThree on a complete fresh Windows 10 HyperV-VM with the steps above -> no success

:(

Like I said in post #8, someone has to implement the new Privacy Consent Agreement in TumblThree in order to get the proper cookies. Without them, the login will fail, and hence downloading anything except from the old Tumblr Api as well.
The Privacy Consent Agreement looks way more complicated then it was before (2 simple XHR and a simple GET). Now they are doing async promised within some react/js in the background, with hashings, timestamps, requests to some external provider (quantcast.mgr.consensu.org/) and what not. Maybe it's not even possible without executing the actual js.
Alternatively one could extract cookies from chrome, but then again you have to hassle around there, there is no real API for that, it looks like they even changed recently (version 80) how they stored their cookies, they are of course encrypted, and we force everyone to use chrome.
I've trying using the old Internet Explorer (because C# .NET Framework has an API for handling it and reading its cookies) to agree to the Privacy Consent, but the JavaScript/React didn't execute because the JS is too new for the IE.
I'm really tired of this project and will not do it myself. If no ones is interested in doing this within the next month or so, I'll probably archive this project so that the code is still available, but people cannot post anything here anymore.

Sorry to read that it is so complex to solve. Hopefully there will be a volunteer who is able to fix it. TumblThree is a very nice program and it would be a pity if we will not be able to use it anymore.

What cookies are missing exactly? euconsent-v2 is the one that is mentioned here, and if that's the only one that is required then a simple basic fix, for the time being, is just getting the user to input their cookie before attempting to log in so the cookie is passed with the rest of the requests.
I'm not that great at implementing new things into projects I don't work on, so I'm not sure where to begin when it comes to even trying to implement what I'm thinking of as a temp fix. Could someone point me to where this cookie would be required in code please?

I still get requently "exceed" error message after couple of hundreds of download - only works with non-hidden blogs. To use VPN and connect to different country works for a while.....
Where do the "exceed" errors come from?

@bloke90 with VPN, you can download posts from hidden blogs?

One could even try to use selenium (browser automation) to do the login, and then extract the cookies. I'm not sure about this. It's not really elegant, but maybe the easiest solution.

The selenium idea seems to work fine (tried with Selenium+Requests in Python). Not really into C#, but I'm giving it a try.

First of all, thanks a lot to Johannes for such a great app.
I'm using TumblThree for a while and I was unhappy that it no longer worked. Despite not having much time, I've given it a shot and here are my results.
Notes:

MS WebView control for WinForms/WPF doesn't run under Admin account and/or with disabled UAC
I didn't like reconfiguring my system/apps to use a preview of upcoming WebView2 to check, if they support above things in the future
using CefSharp (a lightweight .NET wrapper around the Chromium Embedded Framework (CEF))
difficulties to integrate CefSharp/ChromiumWebBrowser in AnyCPU mode, so changed project settings to x64 only
not so neat proof-of-concept implementation
automatic closing of the login window not working yet

Volunteers for correct integration are welcome.
How to use:
The same as the old Authenticate window. After loging in and closing the browser window, its cookies are transferred to the internal cookie collection. As you successfully logged in, you can use TumblThree as before again.
On my system the new app works as perfect as before.
Comments and contributions are welcome.
Branch for review:
https://github.com/Thomas694/TumblThree/tree/81-workaround-broken-login-with-changed-privacy-consent-agreement

Hi Thomas!
Thanks alot for your contribution and willing to work on this project! Thats wonderful.
Im currently in vacation and don't have my computer around, but if you want to, I might take a look this sunday.
However, like i said. Any contributions are greatly appreciated, and as long as its works its great and better than no contributions at all ;)

Can verify the solution works like a champ!

Would you guys maybe describe exactly how you implemented those changes? I cannot make it work and coding is not exactly my strong suit. I would really appreciate it.

@RawRanger - If you grab Visual Studio and install the community version, you can build a debug version of the application.  You will want to head to thomas694's GitHub (in his post) and grab a zip file of the code, then follow the directions (How To Build The Source Code To Help Further Developing).  Make sure you build the X64 debug version.  Once you get it built, you can run it from within Visual Studio.  Run the app, go to settings, and use the new login button (below where it used to be).  This will open a new window, where you will log into Tumblr using your userid and pwd.  Once you log in, close this window and you'll see the app shows you logged in.  If you performed this on your main machine, you can run the original tumblthree app, and it will grab your cookies.  If you used a different machine, head to where tumblthree stores the config files (For me, it's:  C:\Users\user\AppData\Local\TumblThree\Settings) and grab the cookies.json file.  Move the cookies.json to the same location on your other machine, and it'll work.

@RedneckEngineering
Thanks for your explanation. I tried to follow your steps but I did not find how to use the zip file of the code. A Youtube clip showed that I should select 'Get started' - 'Clone a repository' and then put the link to the project in Visual Studio as the repository location. I used 'https://github.com/thomas694/TumblThree' for the repository location. I could run the application in debug but this appeared to give me the original version from Johanneszab with the original log-in button and the same login error. Can you please let me know which link I should use as the repository location when adding the new project in Visual Studio to get the updated version from Thomas?

Can you please let me know which link I should use as the repository location when adding the new project in Visual Studio to get the updated version from Thomas?

@ErikBrown2, your problem is that you are cloning the master branch of his fork, you need to clone the 81-workaround-broken-login-with-changed-privacy-consent-agreement branch instead. Try using this link instead of the one you used: https://github.com/thomas694/TumblThree/tree/81-workaround-broken-login-with-changed-privacy-consent-agreement

You can also wait until sunday when I'm back from my vacation, then I'll merge Thomas changes and release a new version. Then you don't have to download and setup Visual Studio yourself.

That's even better. Yes, I will wait for it. Saves me a lot of frustration. Thanks!

That's even better. Yes, I will wait for it. Saves me a lot of frustration. Thanks!

Me too. Thanks for the information, though

@bloke90 with VPN, can you download posts from hidden blogs?

no wit VPN I can deviate the "exceeded" situation - again afte some 3000 (?) downloads it says "exceeded" - new VPN location and it runs again - I suppose this is IP related

Totally unrelated, but does anyone know a way to backup chat messages (DMs)?

Not for sure, but I'd try Extreme Picture Finder 3. It works with templates that are at your disposal via an online database. Some scripts come with the application itself, but most are created by its users.
A user can create an entire new template and add to the database, or they can make use of an already existing template and modify it so it can be used for their specific needs. It already has many Tumbler templates for all sorts of purposes, so there might be one right for your purpose.
I've included a pdf which shows you part of such a library (one that I myself never  make use of, obviously.
The program really gives your a lot flexibility by means of editing of scripts. And the best part for me is that is relatively simple to edit those scripts ather simple, even for me. Unlike here on Github, where I let Johanneszab do the "dirty work" for me, for which I am truly thankfulI.
ExtremePictureFinder.pdf

Thanks Thomas for all the work! I've just merged your changes and added some additional code changes in order to be able to save the Cef-cookies.
Now when I wanted to release the changes, I remembered the problem with cef ;-). It's a chromium packed in a .dll with a file size of 80+MB. Any ideas on how we should release this? Even zipped its still 74MBs.

This new Wpf.UI.Controls.WebView from Microsoft sounds kinda nice!
This library provides WebView XAML control for WPF by hosting web content in your WPF desktop application. It is part of the Windows Community Toolkit.
     This control uses the Microsoft Edge rendering engine (EdgeHTML) or the the System.Windows.Controls.WebBrowser, for devices on older versions (WebViewCompatible), to embed a view that renders richly formatted HTML5 content from a remote web server, dynamically generated code, or content files.

It's probably tiny compared to the libcef.dll, but as I mentioned, not sure if it will work on pre-Windows10 systems. ...

Well, in the meantime, I've uploaded a release with Thomas changes on my website: TumblThree_f5fa8d759c5082580a8502de59410741c28def0a.zip.
To login, go to Settings->Connections, press the Authenticate button. A browser embedded window will open with the Tumblr login page opened. After logging in using the password method, also perform the new privacy consent agreement. When you're back on the Tumblr start page simply close the browser window.

TumblThree thinks my blog is offline, but this is not true. Popup login page ok, I see my dashboard within it. But the crawling is not working, app says: Status offline. (Open in browser, Open in tubex.com are working, new login windows has been taken succesfully)

This new Wpf.UI.Controls.WebView from Microsoft sounds kinda nice!
This control uses the Microsoft Edge rendering engine (EdgeHTML) or the the System.Windows.Controls.WebBrowser, for devices on older versions (WebViewCompatible), ...

It's probably tiny compared to the libcef.dll, but as I mentioned, not sure if it will work on pre-Windows10 systems. ...
Maybe It's still worth a quick try at some point to see how it perfoms..

"Unlike WebView, WebViewCompatible uses one of two rendering engines to support a broader set of Windows clients:
On Windows 10 devices, the newer Microsoft Edge rendering engine is used to embed a view that renders richly formatted HTML content from a remote web server, dynamically generated code, or content files.
On devices running older versions of Windows, the System.Windows.Controls.WebBrowser is used, which provides Internet Explorer engine-based rendering."
(WebViewCompatible control for Windows Forms and WPF)
If it falls back on older windows versions and uses WebBrowser control, we have the same as before. A control which cannot display the new Tumblr site.
" Note
The Edge runtime does not at the moment work when the process is elevated as an administrator. Therefore WebViewCompatible will fall back to use the System.Windows.Controls.WebBrowser when it detects that the process is running as administrator." (same link above)
As stated before that was an exclusion criterion to me, because many people are using their system with an admin account and/or have the UAC set to a non-default level. At least I do.
Maybe in WebView2 they'll have fixed this problem. But they haven't officially released it yet and I don't like to fiddle around with that preview stuff. So I'm looking forward to the final release of WebView2 ...
Cef can be recompiled with two different flags, but a quick summary of what they are writing in the readme and their forum, only about 20MB (compressed maybe 10MB) is the difference. That wasn't worth trying.

It works great again. Just a very minor cosmetic issue, the version number is not updated. It still shows <IP_ADDRESS> as the version. Thanks a lot.

I've tried the new release....
But after starting that release it immediately present the following error message (in the light blue line above the list):

Error 1: Could not restore user interface settings.

Anything seems to be fine to this point, all settings are as expected. But after clicking the Authenticate-button in Settings->Connection, it takes two or three seconds and TumblThree closes completely without any information why.
That happened on a fresh Windows 10 Pro installation with all updates and the newest Edge + newest Chrome + newest Vivaldi installed.

You can try the following, maybe it helps.
Go to your settings.json and delete the ColumnSettings section (of course not without a backup file). Then start your program again. Maybe you have to rearrange your columns if you used a different order and/or size.

Thanks for the help... but just one second before your post I've tried to start TumblThree as Administrator, which solved the problem restoring the user interface settings.... ;)
But again no success with the Authenticate-button. Not as user, not as Administrator.

The prepackaged build works great, Windows 7 x64. Thank you very much for everyone involved.
In this age of ever increasing bloat and even printer drivers taking hundreds of MB, is 74 MB really so bad? A couple projects I've used (but haven't worked on) with sizable math libraries have three options for the download.

Everything included, "no hassle" first installation, or for people who don't care about the download size.
Everything else except the big libraries (in this case it would be easy, a single DLL file)
The big libraries in a separate package, or in some cases a pointer to where to get it.

Now that MS owns GitHub, I'd like to think they have the bandwidth even if the full package is the only release option. Some video files on Tumblr are bigger than that. When the program is used for its intended purpose, I'd assume that a good fast network connection is available, So an occasional 74 MB doesn't make much of a difference.

Agree, I think If you use a program for downloading tons of megabytes then you won't be angry about some extra 74MB :)
Do somebody have any idea why tells the TumblThreeApp for every blog is OFFLINE what I added? (I'm logged in, autentication was okay)
The program doesn't exit properly. For example I can't delete debug.log file. (Ther last downloaded file is not closed also, this is an old issue.)
Some experiment/experience:

I'm logged out
Every json file delted, index directory deleted (after killing stucked process)
I'm logged in successfully.
I added my liked list and a randomly selected one
enqueue them
my blog has been changed to offline for some reason
other one do nothing or it has been changed to offline for some reason
sometimes all of CRAWL, PAUSE, RESUME, STOP button are disabled
Summary: TumblThreeApp  doesn't download even a byte,
I'm lost ...

TumblThree thinks my blog is offline, but this is not true. Popup login page ok, I see my dashboard within it. But the crawling is not working, app says: Status offline. (Open in browser, Open in tubex.com are working, new login windows has been taken succesfully)

I don't have that much time currently during the weeks, hence I've only briefly looked at Thomas changes, they looked good, and tested the SVC Tumblr Blog Crawler implementation afterwards, which is fixed now. That was the one which was broken without the privacy agreement cookies.
However, after your comment yesterday I've briefly checked if the API Tumblr Blog crawler still works, I simply assumed it would after getting all cookies with chrome. However, for some reason it returns some HTML now with the changes instead of the API Request data as json.
I've briefly tested to just supply no cookies at all for the API requests which seems to be working. You can even open a fresh browser (incognito tab) and perform the request manually and get the data.
It doesn't really make that much sense why this request wouldn't work with all the cookies, just as it used to be.
I think we just have to sort out the cookies now. I think we have everything we need, but just have to adjust all the requests and supply the proper cookies to each of them.
I'm guessing that the search requests are broken too, because there is no pfg cookie anymore. You can see you stored cookies in %localappdata%\TumblThree\Settings. Simply paste that into your explorer addressbar and open the cookies.json
So, maybe you just have to wait a little long now for progress. I'm already thankfully for Thomas help! He is also new to this code base, hence he still has to figure things out.

Totally agree. Thanks for the work, Thomas! Works great again.

Johannes was so excited to give us a new release that in the hurry of cleaning up ugly code, he has overlooked a small detail. But now it's fixed. And when he finds some time, he'll be so kind to create us another release.

Yeah same here, Too quick to judge. I was downloading through SVC only, and everything worked fine there :-) But through the API, after logging in I get the "Error 1: A post from xxxxx was not parsable." etc.
But after some experiments with the cookies, I stumbled upon this quick fix, no idea why it works, but hey, "it works for me"!

Log in to Tumblr inside the program
Exit the program
Open Cookies.json with your favourite text editor
Delete the entry for the key "logged_in" (the whole entry, not just that line)
Save file, run program again. Now, at least for me, both SVC and API blog downloads work.

The new changes for fixing the broken login and saving the cookies are merged to the master. It's now possible again to log in and then use the program multiple times without the need to log in every time.

A new version has been released:
https://github.com/TumblThreeApp/TumblThree/releases/tag/v<IP_ADDRESS>

I've tried the new release <IP_ADDRESS>, but also this release crashes (closes) after clicking the "Authenticate" button in settings. After that this was logged in the Windows event protocol:
Anwendung: TumblThree.exe Frameworkversion: v4.0.30319 Beschreibung: Der Prozess  wurde aufgrund einer unbehandelten Ausnahme beendet.
Any idea?

Here, it is working!
I had to remove all files from AppData\Local\TumblThree\Settings but after doing this everything is okay.
Thank you very much!

Hello, does the new version <IP_ADDRESS> now only work under 64-bit Windows?

@luemmel76 Hello Thilo, yes, for the time being it only supports 64-bit. What windows version exactly are you using?

@Rochusberg Can you please try the following, if not already tried. Create a new folder in your drive root (eg. C:\TumblThree) and unzip the files there. Also create a backup copy of your old settings (in %localappdata%\TumblThree\Settings), then delete the settings folder. Now start TumblThree and open the authenticate dialog. Can you find a debug.log from CEF in your installation folder?

Yes, I've already did exactly that: extracted the ZIP directly to C: (which contains a folder named 'TumbleThree' instead of 'TumblThree' like before), of course without leaving files from older versions and completely removed the TumblThree settings folder in AppData\Local.
But no success. It always crashes after clicking Authenticate...
There is not debug.log created in the folder.

Not working for me either. Deleted all tumblethree folders. I can authenticate, but immidiatly after going back to the tumblethree window i get an erro saying too many redirections. contents of debug.log:
[0927/092932.131:ERROR:viz_main_impl.cc(150)] Exiting GPU process due to errors during initialization
[0927/092932.318:ERROR:viz_main_impl.cc(150)] Exiting GPU process due to errors during initialization
[0927/092942.800:INFO:CONSOLE(1)] "%c
'.-:://///::-'
'.:/++++++++oooo++:.
'-//////////++++oooooo/-'
'.--/////////////+++oooooo+oy/'
'/+-////////////////+++ooooooosds.
.oo.-/////////////////+++ooooooosds.
'+y://///////////////////++ooosso+sd+
-yo///////////////////////++oosssoody-
'oh//////////////////+//////+ossysoshd+'
:yo////++++++++++++ooossssssossyhyssydo
+ho+++ydhhhhhhs++ooyhhhhdddmdyyyhhysydo
-yoooosyhhyoyyysooshhshshhddhyssyhyshh+
.ys+++oosshysoy++osyo+hyyysoo+oosysshd:
-ds+////++++o++//+++++++++++++++ossshd.
.dh+//////++++////++++++///////+osssdy'
:yoo+++++oossssoossssoo+++++++osyssh:
'+ssssshhyhydddddhhhhdhhyssssyhyyys
-syyydddhdhhhhhdhhhdddmNmdhhhdhyyo'
ossydhdd///++o++++ooyddmdhydhhyhs-
/yoso//oo++////+++oos++syyhddhhds/
:shso++ssooossssyyhhsooyyyddhddds+'
-:yhyss+/oyhhddyysyhyyyhhdddddmdy+.
''-hhhys-.-/:::/--:hhhddddddmmdy+/.
.''-ydhhs--h+--ho-:ydddmmmmdy+:-:-'
'....:odh//hy//hh++ydmmmmds:-::-'
-'':+so+oshyyhmhhdhsdd+--::-'
.:+o.'  ''-:/+ssyd:'./:/+.'
:sy:..''''''''  ''-..-oy+
':::---/o+''''.-:++++o/
'/:/o+:-''.-:/+oohdy++.
'--..-:////++sss:odyo+/
./++oo//+ssyys- :dhso+.
'-///oyhhyyhy+  .dhso++.
'shyyyy+s+.   .yhyoooo'
/++ooy.      'ydysooy-
:+//oys'     'ydysooyo
'::oss+ohmo     -ddhysssh-
./sosyhdmmNNy'    sdyosyyhmy.
'-:+oosyyhdmmNNNd.   'yhyosyyhhmy'
'/++osyhhdddmmNNNNd.   'shhyyhhdddm/
-syyhhhdddmmmNNNNNd+     /dhyyyyyhddh.
+dddddddmmmNNNd+-.       .dhysosyyhhdh'
.sdmmNNNNNdho-'          .dhhyyyhhhdmm+
'.....'               'ymmdddddmmNNh
./oyhdmmmdy+ font-family:monospace", source: https://assets.tumblr.com/pop/js/main-eec6cb61.js (1)
[0927/092942.800:INFO:CONSOLE(1)] "Hello fellow developers! Welcome to Tumblr. In the window property logged below, we have added some helpers we hope you will find useful when writing extensions.", source: https://assets.tumblr.com/pop/js/main-eec6cb61.js (1)
[0927/092942.801:INFO:CONSOLE(1)] "PS: We're hiring! https://www.tumblr.com/jobs", source: https://assets.tumblr.com/pop/js/main-eec6cb61.js (1)
[0927/092942.801:INFO:CONSOLE(1)] "window.tumblr = [object Object]", source: https://assets.tumblr.com/pop/js/main-eec6cb61.js (1)

@jjdnl So it is not an authentication problem. Did you try it with another blog? The mostly temporary problem can occur for different reasons unconnected to TumblThree.

@Rochusberg You could try to enable a log file, maybe it shows the reason.
https://github.com/TumblThreeApp/TumblThree/issues/21#issuecomment-699618439

@thomas694 Hello Thomas, actual i use Windows 7 Ultimate SP1 32bit, my new Win10 64bit computer stays there but is not configured at the moment.

@thomas694 Yes i did, tried 4 different blogs, all result in this message.

@Rochusberg You could try to enable a log file, maybe it shows the reason.
#21 (comment)

I did as desired and shown in the post above. It crashes, but there is no logfile written. Not in the installation folder and not in C;\Temp with using an absolute path in config....

@luemmel76 Maybe that gives you additional motivation to finally configure your new pc ;-)
Nevertheless a 32-bit version should come again soon.
@jjdnl At the moment I don't have a clue why you get this error with all the blogs. If you want, you can make backups of your program and settings (%localappdata%\TumblThree\Settings) folders, empty them, then start with a fresh installation, authenticate first, and then add your first blog. But I'm not sure, if that will help in your case, just to eliminate other things.
@Rochusberg On your system the chromium embedded browser doesn't like to start for some reason. I have no idea yet why.

@thomas694 I've tried it on 2 other pc's, by passing all firewall settings. TumblThree has never been on either pc. Connected first, then add blogs. Result is the same on both so the Too many error.

@jjdnl Have  you tried selecting all offline blogs, and set their crawler to svc in blog settings panel, then right click on selected blogs --> check online status.

brt120 wrote:
@jjdnl Have you tried selecting all offline blogs, and set their crawler to svc in blog settings panel, then right click on selected blogs --> check online status.
@brt120 Tried that, no result
@thomas694  Just tried it in the office, same issue there.

funny, now I get many blogs shown as "offline" which arenot offline (as they do daily postigs according to tumblr control center... "hidden" seems to be disapeard from the "status" option?

Have a similiar issue as jjdnl as my blogs go offline as soon as the crawl starts.
Debug.log shows:
[1002/162727.576:ERROR:viz_main_impl.cc(150)] Exiting GPU process due to errors during initialization [1002/162727.693:ERROR:viz_main_impl.cc(150)] Exiting GPU process due to errors during initialization [1002/162749.882:INFO:CONSOLE(1)] "%c                  ' '  ''             ''.-::::-::--'           '.-::::::////::--'            .-.'          '-:::/:::-///:////:.          '++/'  ''          '-///+/::::/::/://::'         .++:. ::--'.'         '-:++/:-----://::::::.         '++///os+-::---          ':o+/:------://:////:--.'''''.:+o+++os/--://:.          '-o+/:::://+ossys/++:::--://::/+ooo+oo/-::--:-           'smmds/ydmmdds++//+/''.-/ss+++oosssssso/:---:'            .hdho::+++::://+/+syoohmdysoosooossyysys/--+:'             /++o/////:://+++sydNNmds+//oo+oooshhhhy-:-..             .ooso+++o+/++++ohdNNNhyoo//oo++oossys+. '-..              -+osyosso+ooosdNNNNNdysys+oossyyyyy.    -..               '/o++/++ssoymNmNNNNmhyyhdyyyyyydmd-     '                 sooooohddmNmhNNNNNNmhhhddhyydmNmy               -odmyoshddmNmddNNNNNNmmmmdsoyhhdmmd-             :hNNNNmhhyhdNNddmNNNNNNNhmNNmy+sddNhd+           'sNNNmNNNNNs:dNNmmNNNNNNNNmhdNNNhyddmmN+         '+dNNhshmNNNNmsNNNNNNNNmmddmNNhhmNmhdmmNms         yydNmhyyhmNNNNNmNNNNNNNmmmmmddmhsymdhmdmdd'        :m/oNNddhhdNNNNNNhmNmmmmmmmmmmmhddoohdhmddm+        yo/hNNNNmdmNNNNNNmhmdmddddmmmmmmhh+soshhmdhd.      ':o+oNNNNNNNmNNNNNmmdydhdmmmdhdmdmmyooysoyhmdmo     -oo+oyNNNNNdNNNNNmmNmmshdsmmmmdsdhmddso+ssohdhyh-   '+so++++ooydmmmNNNmmdNmdohhysdmmdoyhymmmy+o+oshhhss   /ss++++++ooooNNNNNNmymmmshhsyssddo+yhshmmh+o+osymmy.   +yys+++++oo+smhmmmmmhymmdsddsd+sdsoysyssydso++++hhhh:   -yshydhsooymmd.hmhmmdhydmhsdohy/oyosdoysoo+y+oooooysh/'    -dNNmdsydmmy. -mdhmmydoydds/oo++/oosoohodssosssoosysy/-     '/yhhyo:-.    oyyhmymooyss::+++/++/:ymyoyoo++++ooooo+o.        '           yhydhdy+ohso//+////+o+///ooo++//+hoooooo-                    :syydhsoyoso+++:--:/++yo/::/:::///osys/++                 ':/++ss+s++ooosooo/::::/osys++so/:-:::/++++/                 /so++o/+//+/::///os/:/o::/hd++dy++--//::::::                 -hy++ooo+ss+++++sdmmy+/y+/:::::/:---/+++++++                ':+//+o//sh-:hmNNmmmmmmdsy///:::://:::/+++++:             '-///:::-:+/::/dmmNNNmmmmmmmmmyo/:--/++/++/:::+s           '+ddhy+//::--:/smmmmmmmmmmmmNNmmmmy/--:+//+o/:sdmd          'ymmmmmds/:/++ymmmmmdddmmmmmmNNmmmmmdy+-//+//odmmmd font-family:monospace", source: https://assets.tumblr.com/pop/js/main-0846fbae.js (1) [1002/162749.883:INFO:CONSOLE(1)] "Hallo Entwickler! Willkommen bei Tumblr Beta. In der Variable "window" weiter unten haben wir ein paar Hilfsmittel hinzugefügt, vielleicht findet ihr sie hilfreich bei der Entwicklung von Erweiterungen.", source: https://assets.tumblr.com/pop/js/main-0846fbae.js (1) [1002/162749.883:INFO:CONSOLE(1)] "P. S.: Wir stellen Leute ein! https://www.tumblr.com/jobs", source: https://assets.tumblr.com/pop/js/main-0846fbae.js (1) [1002/162749.883:INFO:CONSOLE(1)] "window.tumblr = [object Object]", source: https://assets.tumblr.com/pop/js/main-0846fbae.js (1) [1002/162751.954:WARNING:spdy_session.cc(3365)] Received HEADERS for invalid stream 5

Anybody has idea about the daily "limit exceed", it works again after some hours (12hs or so)

What this actually means is hopefully well enough explained in the tooltip. I've also more than once explained it in length in the issues. Please use the search here or on the old repository page at: https://github.com/johanneszab/TumblThree/issues?q=rate+limit+
Apparently tumblr changed the rate limits "recently"/some time ago (see also #46). Someone, maybe you, has to tinker around with the values for the rate limiter you can customize in the settings. If you come up with a better pair than 90 connections/per 60 seconds, so that the no connection is blocked and you don't get that error, please let us now. Than we can change the defaults to that lower number.

@Rochusberg On your system the chromium embedded browser doesn't like to start for some reason. I have no idea yet why.

I tried it with TumblThree <IP_ADDRESS> on five different VMs - one none of them it worked to login:

1 Hyper-V-VM on Windows-Host with Windows 10 Pro 2004, up to date and with Chrome, Chromium-Edge and Vivaldi installed: crashes before the AuthenticateView window opens
1 Hyper-V-VM on Windows-Host with Windows 10 Pro 2004, up to date and with Chrome, Chromium-Edge and Vivaldi installed: AuthenticateView window opens, I can enter username and passwort on Tumblr, then it crashes
1 Hyper-V-VM on Windows-Host with Windows 10 Pro 2004, up to date and with Chrome, Chromium-Edge and Vivaldi installed: AuthenticateView window opens, I can enter username and passwort on Tumblr, then I got an Agree-button from Tumblr, after clicking that it crashes
1 Hyper-V-VM on Windows-Host with Windows 10 Pro 2004, up to date and with Chrome, Chromium-Edge and Vivaldi installed, with complete installation of Microsoft Visual Studio Professional 2019 (!): AuthenticateView window opens, I can enter username and passwort on Tumblr, then I got an Agree-button from Tumblr, after clicking that it crashes
1 Virtualbox-VM on Linux-Host with Windows 10 Pro 1803, completely naked without any software installed, only the naked and fresh installed Windows 10: crashes before the AuthenticateView window opens

I don't know what else I could try...  Otherwise anything is different....

@Rochusberg Thanks for your tests. As far as I can say from remote, it has to do something with CEF, the new embedded chrome browser we introduced because of the login problem.
If you can compile the sources as debug version, CEF will create a debug.log in the program folder that may give more information about the reasons for the crash.
CEF requires a minimum of Visual C++ 2015 Runtime (Redistributable Package from MS; VC++ 2017/2019 are backwards compatible). But that should have been installed in your test with full Visual Studio installation. Also you can try unchecking "Accelerate 3D Graphics" option in the virtual machine settings.
I cannot test with VMs here.
Did someone else have this problem and solved it? Did someone use older versions (before august) of TumblThree and it didn't work in a VM too?

@thomas694 Tried again today, and suddenly it works again.

CEF requires a minimum of Visual C++ 2015 Runtime (Redistributable Package from MS; VC++ 2017/2019 are backwards compatible). But that should have been installed in your test with full Visual Studio installation. Also you can try unchecking "Accelerate 3D Graphics" option in the virtual machine settings.

That's the important information I missed. I hadn't seen this requirement.... ;)
In the main VM I had never installed Visual C++ 2015, only an previous version. After installing Visual C++ 2015 it now runs as expected! Thanks for that hint :+1:
In the other VM containing Windows 10 with Visual Studio 2019 it does not run. Same in the other VMs with just the newest Visual C++ Redistributable it crashes after login. But no need to install it there.

Hi everyone, I think I got the same problem, I'm trying to use TumblThree from Netherlands, when I check "Authenticate" button it crashes without messages, there's anything I can do? maybe taking the auth cookie from browser?

Do you have Visual C++ 2015 installed? That helped for me. There are 32- and 64-bit versions of the Visual C++ 2015 Redistributable package and I've installed both, as far as I remember.

Do you have Visual C++ 2015 installed? That helped for me. There are 32- and 64-bit versions of the Visual C++ 2015 Redistributable package and I've installed both, as far as I remember.

this actually fixed the issue, I didn't see any dependence reference on the README

The issue has been fixed and closed. You can still comment. Feel free to ask for reopening the issue if needed.

This hasn't been fixed, cannot log in, nothing works

I assume there's meant to be something there.

This is new issue since some days. The original one was resolved.

For those wondering, Tumblr changed their entire back end. All existing programs (most likely) won't work at all unless they're fully updated. I'm a software dev. myself and ran into this problem. I stumbled across this thread so I thought I'd post this for anyone wondering what happened.

@mikrodotnet Thanks for your information, but if you would have checked before writing, you would have seen that we (as many other existing programs) don't have a problem. That's also why this issue is closed. Tumblr didn't change their entire back end (suddenly), they are constantly evolving their systems, and we adapt, if necessary.
Btw, you are invited to share your skills and contribute here ;-)


Camera Support

Hello Majid
i like your library,
can you add support for capturing images/videos from camera

Hi @Mina-Mikhail
Thanks for your comment 🙏
Good suggestion, I will try to add this feature.

HI @MajidArabi You can for select the other files out image/audio

HI @MajidArabi Can you support for select the other files not image/audio/video

Hi @leducnh1290 Yes, I will add it in the next version


How to start expanded?

How to start expanded?
I want to use isExpandable: false, and start with the calendar expanded, I can easily change line 44 from flutter_calendar from
bool isExpanded = false;
to
  bool isExpanded = true;
But it will work until next update...
Any idea?
Can I add an constructor and commit it too?
Thanks

This issue is fixed, expansion should work as expected.

I still cannot get the calendar to start as expanded. Currently on version 0.0.7.


... available?

I know you guys are working on it but a working sample with XAML etc. would really be welcome at this point. Great stuff BTW, can't wait!

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

ID: 6b0d8b84-01be-3ee5-d4e3-ac01e505ab2a
Version Independent ID: b8e7ca9f-e8e7-99dc-f4c7-08d5c32e763c
Content: Photo Editor C++/WinRT sample application - UWP app developer
Content Source: windows-apps-src/cpp-and-winrt-apis/photo-editor-sample.md
Service: unspecified
Product: windows
GitHub Login: @JoshuaPartlow
Microsoft Alias: wdg-dev-content

@Musenginst, sincere apologies for the delay. We're still dotting the "i"s and crossing the "t"s administratively-speaking in order to be ready to release the source code. Meanwhile, there is example code that shows how to use XAML in the following two topics (it's not what you'd call a full sample app, but the code examples do show XAML in action). https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/binding-property and https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/binding-collection.

@stevewhims, thanks a lot for the reply, and I do get it -- delays happen. Thanks also for the references that I've seen and am in the very process of checking out. These are extremely valuable but, like you indicate yourself, probably don't offer the full potential yet of what I genuinely believe we've yet to see not only in terms of XAML  but also in combination with animation, async coroutines, and overall best practices, the whole shebang. You guys have delivered already red hot stuff, and I have some pointers at this stage, but I really would like to see a sample that demonstrates what you guys have fully in your minds (and I believe it'll be tremendously exciting). The combination is more than the facets.
Anyway, thanks for the update, and I'll continue to wait anxiously.

Thanks so much for your enthusiasm, kind words, and patience, @Musenginst! :) We're super-excited about C++/WinRT, too! Again, thanks!

Hi, @Musenginst, the sample is now available for download. I've updated the topic with the info and the link to the repo, which is: https://github.com/Microsoft/Windows-appsample-photo-editor. Do you mind if I go ahead and close this issue? Many thanks! Steve

Thanks, @stevewhims, for the note. I'm thrilled that you guys have uploaded the sample, and please go ahead closing the issue. I'll be downloading the sample tomorrow (or within very few days' time) and if I have any issues or particular praises, I'll post back anyway. 😉
I don't think C++/WinRT has already got the reception/appraisal yet that it deserves, but I have a pet project of mine in mind (visualizing genealogy) to which it might just be perfect, and that I could issue as public, possibly qualifying as a demo. (Don't mean to promise too much though, at this stage it's just a concept.)

Excellent! I hope your C++/WinRT genealogy project goes well! Thanks again for getting in touch.


None Value on query with derived column

I was experimenting with the CDC feature of the database and the table that returns the list of monitored tables and references, has the object id instead of the table's name. Thus I've tried to insert a column that uses the built-in function to convert the id into a string reference (i.e. the actual name of the table).
The query used is below
SELECT OBJECT_NAME(object_id) as table_name, * FROM [#db].[cdc].[change_tables];
and returns
Column { name: "table_name", column_type: NVarchar } -> String(None)
Column { name: "object_id", column_type: Int4 } -> I32(Some(1221540081))
Column { name: "version", column_type: Int4 } -> I32(Some(0))
Column { name: "source_object_id", column_type: Int4 } -> I32(Some(546100986))
Column { name: "capture_instance", column_type: NVarchar } -> String(Some("TABLE_NAME"))
Column { name: "start_lsn", column_type: BigBinary } -> Binary(Some([0, 0, 196, 153, 0, 0, 76, 34, 0, 3]))
Column { name: "end_lsn", column_type: BigBinary } -> Binary(None)
Column { name: "supports_net_changes", column_type: Bitn } -> Bit(Some(true))
Column { name: "has_drop_pending", column_type: Bitn } -> Bit(None)
Column { name: "role_name", column_type: NVarchar } -> String(None)
Column { name: "index_name", column_type: NVarchar } -> String(Some("IDX01_DO11"))
Column { name: "filegroup_name", column_type: NVarchar } -> String(None)
Column { name: "create_date", column_type: Datetimen } -> DateTime(Some(DateTime { days: 45525, seconds_fragments: 11118279 }))
Column { name: "partition_switch", column_type: Bit } -> Bit(Some(true))

The first column, namely table_name is the one that should not return None. I've tested it directly on the database and it does work, with the same query as above.
My code doesn't have anything fancy, other functions related to CDC work without a problem, just this one.
The values are printed with
for row in result {
		for (c, v) in row.cells() {
			println!("{:?} -> {:?}", c, v);
		}
}

Is anyone experiencing this problem/bug?

Ok, I found out that the problem was the lack of an optional parameter that was the database name. The library does not connect and USE DATABASE but just connects, so the function needed the database name as parameter in order to return something.
It returns null without raising errors or something, so it seems to be a problem related to the library.


Add a command to run a query in 'dry run' mode

Show success or failure messages through the showInformationMessage toasts.

I signed it!

Thanks for the prompt review. PTAL.

Merged - thanks @dan-nom!


Make morphable entities selectable in UI

Morphable entities can selectable and morphing is grayed out when playing animations.

Is this updating the version of ImGui to a more recent one and is it required?

Yes it's required. ImGui::BeginDisabled() and ImGui::EndDisabled() are needed to gray out. But if you want a seperate PR I can do that.

Do not merge until #5083 is merged.


Increase answering speed of chatbot?

Firstly, I want to say thanks to Mayo for making this chatbot open source. I have noticed that the chatbot takes a significant amount of time to load before answering my queries. In contrast, I have previously used a similar bot built in Langchain using Python, which answered instantly. As I am using GPT-3.5, I was wondering if there are any tips on how to optimize the speed of the chatbot?

@tifa365 Hello. I am experiencing the same problem. It takes around 1-3 minutes from time to time, to wait for response. Have you found a solution?


React JSX support

This PR refactors the React definition files in preparation for TypeScript support for JSX (https://github.com/Microsoft/TypeScript/pull/3564)
The breakdown is now:

react-jsx.d.ts: Contains most of the React definitions and the required definitions for JSX
react.d.ts: The external module definition of React; defines a few things locally but mostly re-exports things from react-jsx.d.ts for easier maintainability
react-global.d.ts: Same as react.d.ts, but as the global object React

Working on those tests failures (forgot to run npm update before npm test)

Disregard; need to go with another approach


Update dcp-client to 0.38.0

Updates com.couchbase.client:dcp-client from 0.33.0 to 0.38.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.couchbase.client", artifactId = "dcp-client" } ]

labels: library-update, early-semver-major, semver-spec-minor, commit-count:1

Superseded by #88.


Pickled integer

Int values pickled in RedisCache
In Redis db it looks like hex string !\x80\x04\x95\x04\x00\x00\x00\x00\x00\x00\x00M\xC2z., not 31426
Environment:

Python version: 3.8
CacheLib version: 0.3.0

I don't believe the cache value is supposed to be directly readable. Pickle results in a special bytecode, not plain values.

I don't believe the cache value is supposed to be directly readable. Pickle results in a special bytecode, not plain values.

So, what the matter of if isinstance(type(value), int): construction?

And this one: https://github.com/MyrikLD/cachelib/blob/f4c8864fbef023d1861c2b9ac712074218a7e614/src/cachelib/redis.py#L80

@davidism @MyrikLD
I believe the issue with pickled int values for Redis is that it will break increment and decrement since Redis must identify the type of the value to be an int otherwise an exception will be raised.

#147


[boost-process] Add missing include on algorithm

Fixes https://github.com/microsoft/vcpkg/issues/20413
This change already in Upstream, related to https://github.com/boostorg/process/pull/215.
Error: boost/process/detail/traits/wchar_t.hpp(150,14): error : no member named 'transform' in namespace 'std'
Fix: include in wchar_t.hpp

Please also update the scripts/boost/generate-ports.ps script

Thanks for the bugfix!

Please also update the scripts/boost/generate-ports.ps script

I landed this because people are presumably broken since we just updated Boost, but please do update this. Thanks!


Restructure the yaml file format to separate variable types from fuels

This PR is a first step towards implementing the proposal in #29, namely to separate the list of fuels from the variable definitions. This will make the yaml files more readable (because shorter) and reduce the potential for errors (because avoiding unnecessary repetition).
The key change: the variables for electricity generation by fuel types (including CCS subcategories) are generically given by Secondary Energy|Electricity|<Fuel> (rather than having to define the full list in energy-secondary.yaml) and the <Fuel> tag will be replaced by the list given in fuel_types.yaml when importing the Python package (so that the validation continues to work as expected). A test is added to make sure that the correct variable and description are available via the Python package.
This PR only changed this one instance (electricity generation) to elicit feedback - other variables can then be simplified in a similar manner after a first round of discussion, e.g., replacing numerous occurrences of Maximum Active Power|Electricity|... by just one variable Maximum Active Power|Electricity|<Fuel> in power-plant.yaml.

Thanks @sandrinecharousset and @erikfilias for the suggestions, I have merged them (with some minor editorial changes in the descriptions).
@openENTRANCE/coordination any other comments? (please do not add more suggestions of fuel types for now, this will be implemented via specific PRs later - but general comments on the proposed structure are welcome!)


Await insert break ASI

TypeScript Version:  3.4.0-dev.201xxxxx

Search Terms:
Code
async function foo () {
  const a: Promise<any> = f()
  a./*here*/
}

Expected behavior:
;(await a).xxx

or
await a.xxx

Actual behavior:
async function foo () {
  const a: Promise<any> = f()
  (await a).xxx // asi broken here
}

Playground Link:
https://twitter.com/Luxcium/status/1174602967053471744
Related Issues:

await a.xxx

That wouldn't be the right thing to do because it would be parsed as await (a.xxx) and a is a promise.  Which is why the await is being added in the first place. 😄

friendly ping @andrewbranch
Could you give some suggestions please？I cannot find some existed things about ASI detection....

My issue was open there
I provided code example of my actual issue
But in fact as I am coding I am relying on the linter to add semis on save and if autocompletion add parenthesis it should also take care of not becoming continuation of previous line... await by itself or code by itself will not cause problems because of the automatic semi insertion but a set of parenthesis added on the fly change this behaviour and become continuation of previous line...
in most cases it probably requires to add a semi when autocompleting with a set of parenthesis but some edge cases might implies not doing it but I am not sure why if the parenthesis would have been the continuation of previous line I assume it would have been added by the person not as a completion in that context I think

It’s nice because now automatic completion implement  not only then/catch/finally but also of the « then resolved promises » by adding an await inside a set of parenthesis then a dot and then the other possibility
(async _=>{
const some:any  = await a;
const something:any = some.xxx('do something')
})()

now autocomplete and save you of assigning to an intermediary variable
(async _=>{
const something:any = (await a).xxx('do something');
})()

If you don’t need to say save to a variable/const then
This ...
(async _=>{
  const a: Promise<any> = f()
  (await a).xxx('do something') // asi broken here
})()

... is the same as this:
(async _=>{
  const a: Promise<any> = f()(await a).xxx('do something') // asi broken here
})()

@Kingwl I added a lot of ASI logic in #33402; does that look helpful?

Hi all, sadly I’m not 100% sure what could i do....


Bug: vue-tsc throwing errors looking for Vue Test Utils types/modules in my custom types file

Describe the bug
I have a component written in TypeScript that imports a custom type from my types/index.d.ts file. I then have a Jest test suite that imports this component and uses it in a bunch of tests. The tests all run fine and pass.
However, when I build with vue-tsc --noEmit && vite build I get a list of errors stating that types and objects from Vue Test Utils can't be found in my types file.
For example, here are 3 out of the 9 similar errors
node_modules/@vue/test-utils/dist/interfaces/wrapperLike.d.ts:1:10 - error TS2305:Module '"src/types"' has no exported member 'DefinedComponent'.
1 import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from 'src/types';
           ~~~~~~~~~~~~~~~~

node_modules/@vue/test-utils/dist/interfaces/wrapperLike.d.ts:1:28 - error TS2305: Module '"src/types"' has no exported member 'FindAllComponentsSelector'.
1 import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from 'src/types';
                             ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@vue/test-utils/dist/interfaces/wrapperLike.d.ts:1:55 - error TS2305: Module '"src/types"' has no exported member 'FindComponentSelector'.
1 import { DefinedComponent, FindAllComponentsSelector, FindComponentSelector, NameSelector, RefSelector } from 'src/types';

To Reproduce
Create a types file types/index.d.ts
export type Size = 'sm' | 'md' | 'lg'

Create a component Btn.vue and import the type
<script setup lang="ts">
import { Size } from './types'

defineProps<{
  size: Size
}>()
</script>

Create a test Btn.spec.ts and import the component
import Btn from './Btn.vue'

describe('Btn component', () => {
  it('should display nothing', () => {
    const wrapper = mount(Btn)
    expect(wrapper.text()).toBe('')
  })
})

Run the tests jest and observe they pass
Run vue-tsc --noEmit and observe the errors
Expected behavior
vue-tsc should not get confused about where the types for Vue Test Utils come from.
Related information:

@vue/test-utils version: 2.0.0-rc.18
vue-tsc version: 0.29.8
Vue version: 3.2.25
node version: 16
npm (or yarn) version: 7

Additional context
I've posted about this on Stack Overflow here

Hi @Soviut
This is probably a duplicate of #936 , #1206 and #1239. It was fixed in #1184.
This should be released soon. In the meantime, you can use skipLibCheck in your tsconfig.

@cexbrayat Thanks, "skipLibCheck": true fixed it. Is this something I should be reverting once the next release comes out?

You don't have to, skipLibCheck is probably a good idea anyway, as it speeds up the TS compiler by removing unnecessary work.

@cexbrayat Perhaps I should suggest it on the Vite project to be included in their TypeScript template?

I think it's already the case when using the recommended create-vue to start a Vue/Vite project

The vue-ts template doesn't appear to contain it. I'll suggest it. https://github.com/vitejs/vite/blob/main/packages/create-vite/template-vue-ts/tsconfig.json


fix: Skip port 3389

Summary
This fixes https://lacework.atlassian.net/browse/LINK-2014. This changes our terraform to scope down the ingress and egress rules allowed by the subnet NACL.
How did you test this change?
I made this change in a local version of our Terraform provider and created a new agentless integration with it, confirming that scans still run and succeed as expected.
Issue
https://lacework.atlassian.net/browse/LINK-2014

@jacobkilby, are you able to re-test this with the recommendation from https://github.com/lacework/terraform-aws-agentless-scanning/issues/114
If you adopt that suggest change from the issue, you can confirm it works by issuing another plan and apply, terraform should report that no changes are needed.


Why not suggest a custom webpack configuration?

According to the docs, one should be able to just do this:
// my-custom.webpack.config.js
const webpackConfig = require("./webpack.config");
const NativeScriptHTTPPlugin = require("@klippa/nativescript-http/webpack");

module.exports = (env) => {
  const config = webpackConfig(env);
  config.plugins.push(new NativeScriptHTTPPlugin());
  return config;
};

And in nativescript.config.ts, set webpackConfigPath to "./my-custom.webpack.config.js"
No more hassling with the stock webpack config anymore.

That's cool, didn't know that was possible :) I'll add it to the docs soon for the versions that support it.

Added this to the readme, thanks!


Add passive listener option

Make sure these boxes are checked before submitting your issue -- thank you!

[x] Check FAQ and Caveats
[x] Search if there's already one reported in Issues
[ ] Prepare a JSFiddle reproducing the issue

perfect-scrollbar JSFiddle

[ ] Provide a page or source code where the issue can be checked

It would be nice to have the option to add the event listeners passively.
See https://developers.google.com/web/tools/lighthouse/audits/passive-event-listeners?utm_source=lighthouse&utm_medium=cli

Latest related page on this: https://web.dev/uses-passive-event-listeners/

From https://github.com/mdbootstrap/perfect-scrollbar/issues/975#issuecomment-731771857, there is a PR to set the listener's passive: false since they call preventDefault(). It doesn't look like anyone plans to add support for making the value optionally set by consumers of this library.


HOSTEDCP-1032: e2e: ensure default PSA policy is not privileged

https://issues.redhat.com/browse/HOSTEDCP-1032

nice! beyond this in/out guest cluster admin behaviour, is there anything we could be checking for regressions in the service side that is usually managed by operators but that we "hand craft" via the CPO, e.g.  https://github.com/openshift/hypershift/blob/55a2549d0320c33a9e824a605e8799a1a91a01be/control-plane-operator/controllers/hostedcontrolplane/kas/config.go#L92-L99
And
https://github.com/openshift/hypershift/blob/55a2549d0320c33a9e824a605e8799a1a91a01be/control-plane-operator/hostedclusterconfigoperator/controllers/resources/namespaces/reconcile.go#L8-L16

The kas/config.go is what we are testing here.  We could try to admit a privileged pod into openshift-infra and make sure it works.

/retest

/override "Red Hat Trusted App Pipeline / hypershift-operator-main-on-pull-request"


Request: shareable URLS that load a saved XML

This is a feature request.
Since the demo at http://ondras.zarovi.cz/sql/demo/ already has the ability to save and load files, wouldn't it be really cool if you could just have a link that loads up a saved file?
Something like
http://ondras.zarovi.cz/sql/demo?load_xml=yada_yada
This would really help me collaborate with others on schemas.

Already works: http://ondras.zarovi.cz/sql/demo/?keyword=default
I will adjust this project's webpage link accordingly.

oops, my bad. Thanks a ton good sir!

Just a reminder, it would be a good idea to add this to the documentation page. I couldn't find it, so I had to find this issue again.

Already present -- the last-but-one paragraph at https://github.com/ondras/wwwsqldesigner/wiki/Manual. I am not sure how to make this one particularly visible to newcomers.

Ah I see, it wasn't obvious to me to find that. Its up to your discretion, but in my view, when I click documentation, it would probably be most helpful to link to this: https://github.com/ondras/wwwsqldesigner/wiki/Manual#basics
The best github front pages are ones that also tell you how to use it, like this one: https://github.com/antirez/redis


Better propagation of type predicate signatures

declare function isNumber(value: {}): value is number;
declare const values: {}[];
declare function filterAs<a, b extends a>(values: a[], isIt: (value: a) => value is b): b[];
const yayNumbers = filterAs(values, isNumber); // number[]
const ohNoNotAgain = filterAs(values, x => isNumber(x)); /* <-- expected to work,
actual: Argument of type '(x: {}) => boolean' is not assignable to parameter of type '(value: {}) => value is {}'.
        Signature '(x: {}): boolean' must have a type predicate. */

There actually is a way, but it's cumbersome.
const yayayayayayay = filterAs(values, (x): x is number => isNumber(x));

Is there a way that this can be improved? It seems very counterintuitive for the type of the predicate to be lost when passed as a callback.

 I'd like to think that for the following:
declare function isNumber(x: any): x is number;
declare function isString(x: any): x is string;

function isSomething(x: any) {
    return isNumber(x) || isString(x);
}

isSomething becomes a predicate on x for string | number.
But for the following
declare function isNumber(x: any): x is number;
declare function isString(x: any): x is string;

function uhhhh(x: any, y: any) {
    return isNumber(x) || isString(y);
}

we'd like to potentially maintain the checks from each predicate, but we don't have a way to encode those guarantees on the signature of uhhhh. Maybe that's okay though.

What I dont understand is that why 10% of corner cases prevent 80% of straightforward cases from being implemented. Can we error in these cases you mentioned? Or can we default to the current fall back to conventional boolean as it currently is?

It seems like the return type of uhhhh would be (hypothetically)
x is number & y is any | x is any & y is string

But while this could be useful maybe it doesn't need to block inference that doesn't require new syntax to express explicitly. It seems like that would be an orthogonal feature, something like "Correlated User-Defined type Gards". I may be misunderstanding the issue however.

@aleksey-bykov Implementing features that are useful but not entirely thorough attract a lot of criticism. e.g. https://github.com/Microsoft/TypeScript/issues/13002

Exactly, since we dont get to choose, the type guards don't work at certain positions, let's make them more thorough is my message here, and lets make readonly right by breaking some crappy code (https://github.com/Microsoft/TypeScript/pull/6532#issuecomment-174356151) that is standing on the way, that sarcasm me gets too.

I think it is just unexpected. I think it is surprising because type predicates are as rich and compositional as they already
if (true || isNumber(x) && isString(x) && isFunction(x)) {
  x // {}
}
if (false || isNumber(x) && isString(x) && isFunction(x)) {
  x // number & string & Function
}

so one may be surprised when they do not work
if (!true || isNumber(x) && isString(x) && isFunction(x)) {
  x // {}
}
if (!false || isNumber(x) && isString(x) && isFunction(x)) {
  x // {}
}

these are rather academic however.

I would like to add that && combinator can be replaced by successive application of different typeguards
Whereas || doesn't make much sense if we keep in mind that typeguards are for narrowing (not widening), I might be wrong about it, so a real life example proving me wrong would be helpful.
With this said there seem not to be a real situation that would require && and || combinators, ans if so it doesn't seem rational to invest in solving a nonexisting problem.
On the other hand the orifinal situation with type guards used for filtering is very real and needs some attention

Situations that imply string | number are usually (in our code) explicitly stated: string | number | boolean | null | undefined | Function and then all it takes is to chip the cases off one type at a time:
if isNumber ... else if isString ... else if isBoolean

@aleksey-bykov I agree that these are edge cases. I also like the chip them off one type at a time approach and use it myself.

Just wanted to mention, on a somewhat unrelated note, that the way the T is U syntax uses the word is is quite ambiguous. Does it mean that type T is exactly U (in the sense of the types being an exact structural or nominal match), or it means that T is a subtype of U.
Common usage suggest the latter (in the sense that subclasses would pass instanceof checks for their super class) so it seems more appropriate that it would have been T extends U (and possibly the predicate is would be reserved for exact matches).
I feel it would be even more unfortunate that this misleading syntax is "abused" with composition operations like T is U || V is W. Somewhat incidentally (almost entirely unrelated) I formulated a boolean syntax that used the more semantically accurate extends in #12942.

@rotemdan

Just wanted to mention, on a somewhat unrelated note, that the way the T is U syntax uses the word is is quite ambiguous. Does it mean that type T is exactly U (in the sense of the types being an exact structural or nominal match), or it means that T is a subtype of U?

the type predicate type annotation doesn't operate on two types it operates on a value and a type. A basic type predicate has the type
(x: any) => x is T

which means that if it returns true, the argument x is a subtype of T. It does not in any way mean that x is is exactly a T.
What do you mean by nominal match? private members create pseudo nominal-like assignability.

Common usage suggest the latter (in the sense that subclasses would pass instanceof checks for their super class) so it seems more appropriate that it would have been notated T extends U (and possibly the predicate is would be reserved for exact matches).

Is type predicates take a value and a TypeScript (i.e. erased) type. The instanceof operator in JavaScript, surfaced in TypeScript, takes two values it doesn't take types at all...

@aluanhaddad
I 100% agree that the extends syntax would not be appropriate for values, thanks for correcting me, I had types in mind (as that was something I was thinking about for other, unrelated purposes) and got a bit confused.
Now that I sort out the confusion is seems better. The funny thing is that I suggested a syntax for exact types that would read like just T, and I specifically had in mind that val is just T would read well. Silly me, got completely confused there..

Bumping off my "stale" list because this is still a good idea

Another use case here that seems like it should work but doesn't - direct type assertions in a predicate (as opposed to a type assertion being done by a subroutine of a predicate):+
class Extension { }
class ImageExtension extends Extension {
  imageUrl: string | null = null;
}

const extensions: Extension[] = [];
extensions.push(new ImageExtension());

// Doesn't work
const imageExtension: ImageExtension | undefined = extensions.find(e => e instanceof ImageExtension);

// Does work, but is unnecessarily verbose
const imageExtension2: ImageExtension | undefined = extensions.find((e): e is ImageExtension => e instanceof ImageExtension);

Playground

This may not be the right place to raise this, and I can't guarantee that this is a limitation in the language and not just me coding something poorly.. but given the following type predicate:
export const isDefined = <T>(
  value: T | null | undefined
): value is NonNullable<T> => value !== null && value !== undefined;

It seems that I can't do something like the following, as it seems not to narrow the type (minimal contrived example based on an issue I just hit in my code):
const doSomethingWithFoo = (foo?: string) {
  const hasFoo = isDefined(foo);

  const someObject = { bar: "bar" };

  if (hasFoo && someObject.hasOwnProperty(foo) {
    // TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string | number | symbol'.

    doSomething();
  }
}

Screenshot of the actual error case in my IDE:

With the variables defined as:
const hasSprites = isDefined(sprites);
const wantsSprites = isDefined(spriteName);

Yet when I use the type predicate functions directly within the if, it seems to work fine and has no type errors:

Is this another case of TypeScript not 'passing on' it's narrowed types? Or am I just making some kind of 'rookie error' here?

This would be really great because currently it forces me to sacrifice the type safety.
E.g. I have the following predicate:
type Checked = ...

function check(smth, x: Blah): x is Blah & Checked { ... }

I'd like to filter by this predicate:
const filtered: (Blah & Checked)[] = xs.filter(x => check(smth, x))

For this to work, I have to add a type signature:
const filtered: (Blah & Checked)[] = xs.filter((x): x is typeof x & Checked => check(smth, x))

However, TypeScript doesn't seem to check that check(smth, x) actually is a type-guarding predicate. The following compiles as well:
const filtered: (Blah & Checked)[] = xs.filter((x): x is typeof x & Checked => true /* or anything equally wrong */)

So each of these lambda type guards is an extra line to potentially worry about.

This issue makes (TS 5.0) decorators more difficult to write if they want to be able to be applied to potentially type predicates.
For example suppose we have:
function deprecatedMethod(reason: string) {
    function decorator<This, Args extends any[], Return>(
        method: (this: This, ...args: Args) => Return,
        context: ClassMethodDecoratorContext,
    ): (this: This, ...args: Args) => Return {
        return function decoratedMethod(this: This, ...args: Args): Return {
            // A proper implementation would only print once ever, rather than per call
            console.warn(reason);
            return method.call(this, ...args);
        };
    }

    return decorator;
}

class SomeClass {
    @deprecatedMethod(`SomeClass.isSomeClass is deprecated and will be replaced in future`)
    static isSomeClass(value: any): value is SomeClass {
        return "field" in value;
    }

    field = "blah";
}

Then we get the same problem as in the OP:
Decorator function return type '(this: unknown, value: any) => boolean' is not assignable to type 'void | ((value: any) => value is SomeClass)'.
  Type '(this: unknown, value: any) => boolean' is not assignable to type '(value: any) => value is SomeClass'.
    Signature '(this: unknown, value: any): boolean' must be a type predicate.(1270)

While this can be resolved by decorator authors by adding an overload:
function deprecatedMethod(reason: string) {
    function decorator<This, Kind>(
        method: (this: This, value: any) => value is Kind,
        context: ClassMethodDecoratorContext,
    ): (this: This, value: any) => value is Kind;
    function decorator<This, Args extends any[], Return>(
        method: (this: This, ...args: Args) => Return,
        context: ClassMethodDecoratorContext,
    ): (this: This, ...args: Args) => Return {
        return function decoratedMethod(this: This, ...args: Args): Return {
            // A proper implementation would only print once ever, rather than per call
            console.warn(reason);
            return method.call(this, ...args);
        };
    }

    return decorator;
}

It feels like it will be a large footgun for authors of fairly generic decorators (like deprecated, experimental, metadata, etc) who might not even be aware of the fact that type predicates require separate overloads.
I'm not sure if this could be more narrowly fixed for decorators, or if it would require a general solution like is proposed in the OP.


#590: Process local adapter manifests before internal manifests

Reordered the processing of adapter manifests. Also fixed bug in Manifest.extend() which missed hook types if they weren't included at Manifest creation.

It looks like there is a conflict in manifest.py.  Can you rebase on top of the latest master to resolve the conflict?  Sorry about that.  I suspect that is also why the unit test suite hasn't been run on this.

Resolved.

Or maybe not... hang on.

There we go.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #591   +/-   ##
=======================================
  Coverage   81.67%   81.67%
=======================================
  Files          72       72
  Lines        2729     2729
=======================================
  Hits         2229     2229
  Misses        500      500

Flag
Coverage Δ

#py27
81.65% <ø> (ø)
:arrow_up:

#py36
?

#py37
81.65% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Great catch @JoshBurnell, thanks for fixing this!


Send Arrow Keys

Is it possible to send up/down arrow keys so that the cli getting automated can be navigated by arrow keys?
If so, can you document how this would be done?

Thank you for the question.
It was impossible until v0.10.0, therefore I have implemented a new function: sendvkey(VIRTUAL_KEY_CODE) on v0.11.0.
Would you please try sendvkey of v0.11.0 ?
( The sample code is written in the release note of v0.11.0 )

@chrisdonlan ?

Though I would close this issue, if you have a problem, please reopen it.


Enable dependabot

Enable dependabot on the various packages.
Update Go modules.

:eyeglasses: @bwplotka

I'm not familiar with the bingo stuff, will have to figure that part out.


chore(master): Release 0.8.4

:robot: I have created a release beep boop
aztec-packages: 0.8.4
0.8.4 (2023-10-04)
Bug Fixes

deploy_dockerhub.sh permissions (#2682) (628127d)
Deploy npm fixes (#2685) (0b788c6)
Foundation package is not private (71d6cda)

barretenberg.js: 0.8.4
0.8.4 (2023-10-04)
Miscellaneous

barretenberg.js: Synchronize aztec-packages versions

barretenberg: 0.8.4
0.8.4 (2023-10-04)
Miscellaneous

barretenberg: Synchronize aztec-packages versions

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg.js-v0.8.4 :sunflower:

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg-v0.8.4 :sunflower:


Errors after install

I am getting these errors when trying to access the page after install. Error 500.
[Tue Jan 31 16:58:44.717812 2017] [:error] [pid 5028] [client] PHP Warning:  file_put_contents(tmp/cache/e9qwqh0btibw.3c7hoawcwa804.sql): failed to open stream: Permission denied in /var/www/pathfinder/app/lib/base.php on line 1834
[Tue Jan 31 16:58:44.731631 2017] [:error] [pid 5028] [client] PHP Warning:  file_put_contents(tmp/34hvqvgcm9esg.n8dy5gthftgj.php): failed to open stream: Permission denied in /var/www/pathfinder/app/lib/base.php on line 1834
[Tue Jan 31 16:58:44.734161 2017] [:error] [pid 5028] [client] PHP Warning:  require(tmp/34hvqvgcm9esg.n8dy5gthftgj.php): failed to open stream: No such file or directory in /var/www/pathfinder/app/lib/base.php on line 2504
[Tue Jan 31 16:58:44.734205 2017] [:error] [pid 5028] [client] PHP Fatal error:  require(): Failed opening required 'tmp/34hvqvgcm9esg.n8dy5gthftgj.php' (include_path='.:/usr/share/php') in /var/www/pathfinder/app/lib/base.php on line 2504

check the rights for your /tmp/cache/ dir..... your WebServer User does not have the rights to access them...

So changing the right let me access it. My setup page though has no styling. It's plain html.


Launching of Application Crash

[REQUIRED] Step 1: Describe your environment

Xcode version: 12.4___
Firebase SDK version: __Version 7.7.0 ___
Installation method: CocoaPods
Firebase Component: GoogleUtilities/GULSwizzler_ (Auth, Core, Database, Firestore, Messaging, Storage, etc)

[REQUIRED] Step 2: Describe the problem
On Launching of application,  Following method is called by APMScreenClassName load.
+(void) swizzleClass:(Class)aClass
selector:(SEL)selector
isClassSelector:(BOOL)isClassSelector
withBlock:(nullable id)block
For selector. SEL	"viewDidDisappear:"  at the end of this method It crashes.
With in main 0x000000016dd73730
objc[4836]: Memory corruption in class list.
Steps to reproduce:
We are using 3rd party Library , after adding 3rd party Library in our code it is crashing on launch before calling Did finish launch method .

This is almost definitely a result of Firebase classes being duplicated in your app's runtime. See the console warnings in your Xcode screenshot and check the full log output to see if there are multiple copies of Firebase in your app.
The error you're running into is defined in objc-runtime-new.mm and could occur if two copies of Firebase tried to swizzle the same class.

See this doc for more details: https://github.com/firebase/firebase-ios-sdk/blob/master/docs/firebase_in_libraries.md

HI Team
Sorry for late reply.
I have removed firebase from pod framework. but now it is still giving  me same runtime error objc[18925]: Memory corruption in class list., but root cause is unkown.
This issue is only happens when I integrate 3rd party framework.
Previously I was able to find reason by keeping break point method swizzling  methods of GULSwizzler, but now There is no method swizzling in my project still same error.

Closing since this is not a Firebase issue.
You can likely debug this problem by inspecting the classes at runtime. Enumerate all class and check each class for a cyclic superclass list.


Fix: corrected some spelling errors

Description
Corrected some spelling errors in file: https://mapie.readthedocs.io/en/latest/theoretical_description_regression.html#the-jackknife-method
Fixes #392

Thank you @isaiahthedev for these corrections!

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (614293e) 100.00% compared to head (9d0b7b5) 100.00%.
Report is 200 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##            master      #401    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files           39        39
  Lines         4616      4815   +199
  Branches       487       800   +313
==========================================
+ Hits          4616      4815   +199

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update example to use multiple upstream DNS servers

Update example to use multiple upstream DNS servers
Ref: https://github.com/satishweb/docker-doh/pull/25

New container image v2.3.7-1 is built and pushed to docker registry. New image is marked as latest.
Old configurations will continue to work as expected.
New users who are setting up their docker-compose with multi DNS upstream env will work as expected with latest image pulls.


Totally omit a class' mermaid diagram if there are more than n slots

Possible N = 60 (or whatever fits vertically on one average screen)
In the future, we might think about ways to show the structural part of the mermaid diagram without the slots, but just omitting diagrams with excessive slots is a good start.

see also https://github.com/microbiomedata/nmdc-schema/pull/441

see also:

https://github.com/microbiomedata/NMDC_documentation/issues/10

In this issue we're saying that we should use one parameter, the total number of slots associated with a class to decide whether the Mermaid UML diagram should be rendered on a class documentation page or not.
I'm proposing that we add three more parameters to make this decision. They are:

Number of edges between given class (in consideration) and is_a parents
Number of edges between given class (in consideration) and is_a children
Number of edges between given class (in consideration) and other classes that are linked/associated based on a slot

The above has been implemented in PR #1625 in class_diagram.md.jinja2


FSH Examples unit test

This PR adds a unit test checking that the Examples modal is properly populated from the examplesConfig prop passed into the FSHControls component.
I wasn't able to get clicks on the actual example objects in the file tree to be recognized. This limited what I was able to actually test for, as I wasn't able to test that child examples are being rendered properly or that the actual example text is being fetched properly without being able to click objects in the file tree. I've included a second unit test in this PR (commented out) that shows the second test case that I think should be represented. If anyone has a workaround or knows of something that I'm doing wrong here, I'm all ears!

I tried and I also couldn't figure out how to make the tests work. I noticed that if the callback in the TreeView component was changed from onNodeSelect to onClick, it looked like it does trigger fetchExamplesFSH, but I don't want to have to change our code so that we can test it. I'd rather just figure out how the heck to test it. But I can't figure it out.

I am not approving just yet though, because I'd like to see if maybe someone else can figure it out first, and if not, we can just take out the commented out piece and I'll approve.

I tried and I also couldn't figure out how to make the tests work. I noticed that if the callback in the TreeView component was changed from onNodeSelect to onClick, it looked like it does trigger fetchExamplesFSH, but I don't want to have to change our code so that we can test it. I'd rather just figure out how the heck to test it. But I can't figure it out.

I'm not opposed to making minor changes to the actual code to make it a bit more testable. I did find that using onClick was problematic for the feature itself due to the lack of information that was available in the actual event. Somehow, the fetchExampleFSH function needs to take in the id of each node as an argument so that it can check the metadata lookup table for its GitHub url. I wasn't able to figure out how to pull this from a regular click event, but the custom onNodeSelect event that's specific to this component does provide the nodeID as an argument to its callback which allows the function to work. Switching to an onClick event could be a good solution if we can think of a way around that issue.


Error: Class 'FieldValue' has no instance getter '_delegate' with cloud_firestore: 0.13.4

When I upgraded cloud_firestore: 0.13.4 in my project, one of the existing tests throws the following error:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following NoSuchMethodError was thrown running a test:
Class 'FieldValue' has no instance getter '_delegate'.
Receiver: Instance of 'FieldValue'
Tried calling: _delegate

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      FieldValuePlatform.getDelegate (package:cloud_firestore_platform_interface/src/platform_interface/field_value.dart:19:18)
#2      MockDocumentReference.updateData.<anonymous closure> (package:cloud_firestore_mocks/src/mock_document_reference.dart:57:50)
#3      _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8)
#4      MockDocumentReference.updateData (package:cloud_firestore_mocks/src/mock_document_reference.dart:49:10)
#5      _DummyTransaction.update (package:cloud_firestore_mocks/src/cloud_firestore_mocks_base.dart:158:30)
#6      TagsModel.save.<anonymous closure> (package:hitomemo/person_tags_model.dart:185:18)
<asynchronous suspension>
#7      MockFirestoreInstance.runTransaction (package:cloud_firestore_mocks/src/cloud_firestore_mocks_base.dart:63:51)
#8      TagsModel.save (package:hitomemo/person_tags_model.dart:173:39)
#9      main.<anonymous closure> (file:///Users/suztomo/Documents/hitomemo/test/tags_model_test.dart:56:30)
<asynchronous suspension>
...

The problem does not occur if I use the master HEAD.
-  cloud_firestore_mocks: 0.4.2
+  cloud_firestore_mocks:
+    path: ../cloud_firestore_mocks


RTN16b

LGTM

@ricardopereira Note how testAttachedChannelFails fails from time to time with a timeout. I believe that's because it's the first tests that uses the test app, so it's the one issuing the slow POST /apps request. I still think we should increase the timeout at least for the old test suite.

@tcard Ok, I agree but we should only increase the timeout for the app request and leave the testTimeout used in our tests.


Feat: add minimum and maximum element limits in row-layout

[x] I have followed the 'Sending a Pull Request' section of the contributing guide

Summary
This PR introduces 2 new props which provide more control to the end-user on row layout.
minPhotoCount - absolute minimum number of elements (Photos) allowed in a row.
maxPhotoCount - targeted maximum number of elements (Photos) allowed in a row.
Techincal choices

maxPhotoCount will be overridden by limitNodeSearch if its value is greater than the guestimated value for performance's sake.

Hi there! Can you describe the issue you are trying to address with this PR? I'd like to understand your use case. Some examples (screenshots or code sandbox) will be very helpful.

Hi there! Can you describe the issue you are trying to address with this PR? I'd like to understand your use case. Some examples (screenshots or code sandbox) will be very helpful.

Hello!
You can see the use case and screenshots in discussions of this PR.
TL;DR of that conversation would be that just using targetedRowHeight is not giving us desired results. So implementing a limit ( minimum and maximum ) would give us more direct control over the end result.

Thank you!
I'm going to pull min/max props one level down and introduce just one top-level prop rowConstraints since minPhotos/maxPhotos props are applicable only to rows layout.
Please also keep in mind that it won't be a good idea to set both minPhotos and maxPhotos to 2 unless you are planning to display only even number of photos. So what you'd probably want to do is to set maxPhotos to 2, and decrease the targetRowHeight value.

@ayushnirwal ,
I also couldn't help myself but notice a potential bug in the way you are using spacing/margin props in 10463. PhotoAlbum's spacing prop defines spacing between photos (think in terms of grid gap). layout.width and layout.height provide the exact calculated dimensions of an image, so you don't want to subtract 2 * margin here as otherwise you'd break your images' aspect ratios and your images would look stretched.
So instead of
margin={PHOTO_MARGIN + 'px'}
width={layout.width - 2 * PHOTO_MARGIN}
height={layout.height}

you'd probably want to do something along these lines
marginBottom={PHOTO_MARGIN + 'px'}
width={layout.width}
height={layout.height}

You need to take care of the vertical spacing yourself since you removed row wrapper divs, and flexbox will take care of the horizontal spacing (I'd give justify-content: space-between a shot here)

Oh, and also PhotoAlbum is exported as both default and named exports so you can import it either as
import { PhotoAlbum as Gallery } from 'react-photo-album';

or
import Gallery from 'react-photo-album';


using customized changelist template

Hi.
I have a customized changelist template for a model. is there a way to use that with the package?

I have the same question. I wanna customize the import form (just add a link, nothing else) and I wanna overwrite it. I can overwrite the whole thing for the entire admin app but not for a specific model app. Is this possible?

I have the same question. I wanna customize the import form (just add a link, nothing else) and I wanna overwrite it. I can overwrite the whole thing for the entire admin app but not for a specific model app. Is this possible?

if you check the source code of package, in 'admin.py' file and  in 'ImportMixin' class there is a variable named 'import_template_name'. I think you can overwrite it for a modelAdmin and set it to the address of customized import template like this:
class SnmpModelAdmin(ImportExportActionModelAdmin):
import_template_name = 'address of customized import template'

I have the same question. I wanna customize the import form (just add a link, nothing else) and I wanna overwrite it. I can overwrite the whole thing for the entire admin app but not for a specific model app. Is this possible?

if you check the source code of package, in admin.py file and in ImportMixin class there is a variable named import_template_name. I think you can overwrite it for a modelAdmin and set it to the path of customized import template like this:
class SnmpModelAdmin(ImportExportActionModelAdmin):
    import_template_name = 'path of customized import template'

Thanks! This worked and I saw it in the documentation as well. Now I wonder if it can be detected automatically which is what's suggested for django admin's templates or if templates just can be overwritten with an explicit indication like this.

#1483 was added to 3.0.0 and included options for customization of template.  Closing issue.


Readme is difficult to follow

I am a new user to the GridAPPS-D system and I am not able to follow the readme documentation provided in this repo.  I am working on Windows WSL 2 and using Docker with the WSL 2 backend which could be complicating the setup.
One issue I found in readme.md involves adding the solar_forecast image to the gridappsd-docker compose.yml file.  The image name in the master branch is "solar_forecasting_app" not "solar-forecast-app"
I have no idea where I should run the python command to start Bokeh in Step 4.  Maybe inside a docker container?
The long python command in the Docker section of the readme also makes little sense.

+1  ... I have this same issue.
bokeh_two_plot ... does not appear to be included. Please add additional documentation.
Additionally, on OSX it was necessary to omit the 'network' argument when building the solar-forecasting-app (and correct the name, as noted by kahmker).

+1  ... I have this same issue.
bokeh_two_plot ... does not appear to be included. Please add additional documentation.
Additionally, on OSX it was necessary to omit the 'network' argument when building the solar-forecasting-app (and correct the name, as noted by kahmker).


Bring CI up to latest and greatest, drop upper bounds

Same idea as https://github.com/freckle/faktory_worker_haskell/pull/59

Commit noise is due to needing to bring base bounds back in. Removing this breaks Release.