Jump to content

Makoto

Clients
  • Posts

    5,279
  • Joined

  • Last visited

  • Days Won

    32

 Content Type 

Downloads

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Development Blog

Deprecation Tracker

Providers Directory

Forums

Events

Store

Gallery

Everything posted by Makoto

  1. WebP is amazing for lossless image compression (or rather, maybe you could say PNG is just really bad), but for lossy compression it's a bit iffy. It can sometimes beat out jpeg while preserving the same quality level but it's a hit or miss in my experience.
  2. Makoto

    Radical Tags

    Hey @ekforum! Support for group restricted tags will hopefully be coming in the next major release of the application.
  3. I know e-mail replies to existing support tickets do not work, but maybe creating a support ticket via e-mail will. Regardless I'd rather not deal with the support ticket system until those issues are resolved.
  4. I'm going to use this thread for reporting minor API bugs (still using the forums as my support area is still bugged and I can't submit or reply to support tickets.) POST /api/core/members/{id}/follows :: Does not update the front-facing following counter for content items when a member is added through the API datetime fields do not accept timestamp inputs >>> $r = $api->system()->members()->addWarning(49, ['moderator' => 1, 'reason' => 'For <strong>science</strong>', 'points' => 2, 'memberNote' => 'you food', 'moderatorNote' => 'they food', 'modQueue' => -1, 'expire' => 1601742513]) InvisionApi/Exceptions/ServerException with message 'DateTime::__construct(): Failed to parse time string (1601742513) at position 8 (1): Unexpected character' POST /api/core/members/{id}/warnings :: Setting modQueue, restrictPosts, etc. results in an undefined index exception >>> $r = $api->system()->members()->addWarning(49, ['moderator' => 1, 'reason' => 'For <strong>science</strong>', 'points' => 2, 'memberNote' => 'you food', 'moderatorNote' => 'they food', 'modQueue' => -1, 'expire' => '2020-10-03T16:31:26+0000']) InvisionApi/Exceptions/ServerException with message 'Undefined index: warn_-1' DELETE /core/members/{id}/warnings/{warning} :: The undoOnly parameter is no longer functional. Assume this is because there's no longer a "revoke only" option, only "revoke and delete". Should probably be replaced with deleteOnly.
  5. The "hide" option when deleting a member via the API does not seem to work as intended. Posts are left visible and unhidden even when specifying this parameter. The delete action works as intended, however.
  6. My stance is if you want WebP support, just use a good CDN service like CloudFlare. It's a much more sensible solution. CloudFlare converts images to WebP, optionally performing only lossless or lossy compression, ensures WebP images are only served to clients that support it, and requires absolutely no additional processing power or storage on your end. The same can be done with other reputable CDN services I believe. If you are bare metal and absolutely don't want to use Cloudflare or so on, there is also mod_pagespeed as mentioned above.
  7. Hey @SJ77, Sorry for the delay! I'll get this fixed in the next release.
  8. Makoto

    Radical Tags

    Did you recently upgrade / move from using Advanced Tags & Prefixes to Radical Tags? Can you send me a PM here and set me up with temporary AdminCP access? I can have this resolved for you in a few minutes.
  9. Currently it is a fixed position, but I will add more positions in the next release.
  10. That'd absolutely work for me! It's a niche requirement so simply adding in a way for us to hook a plugin in and add the flags we need would be a perfectly acceptable solution.
  11. This is not something that is going to be relevant to 98% of clients, but for certain enterprise configurations this can be helpful. On load balanced setups, the database server can saturate a 1Gbps connection line on larger more active communities far before it's actually CPU constrained. Though I'm currently looking at getting this client set up with an upgraded 10Gbps network cable to accommodate for this as our NIC supports it, simply enabling network compression for TCP based database connections can significantly reduce the bandwidth overhead as long as you can afford expending a bit of extra CPU cycles for the compression/decompression. I looked into making a plugin for this, but as you're calling parent::real_connect() in \IPS\Db, we can't overload it to apply the flags this way, so the only solution is to apply a manual patch. Which isn't a huge deal for this alone, but it'd still be a small QoL improvement to have an official flag for it.
  12. Due to a lack of proper communication from the IPS team on a change in standards, the most recent update including the above mentioned bug fix has been delayed and will probably not be live until at least the end of the week. I apologize for the delay and will work to ensure this does not happen again going forward.
  13. I also recommend upgrading to Cloudflare's Pro plan personally, at least. Business has some useful things, but they usually have additional pricing associated with them and you need a good budget to be able to afford these optimizations. Pro is the perfect balance for 98% of clients I'd say. Outside of security, here are the general settings I recommend enabling to improve performance on Cloudflare, Essentially, basically all of them but Railgun. Lossy vs Lossless image optimization comes down to preference but I cannot tolerate lossy optimizations, but even lossless optimizations with WebP enabled can be extremely useful. Outside of performance, it cannot be understated how much of a boon Cloudflare can be for security as well. As @Paul E. said, the security features of Cloudflare alone make it worth using. The performance boons are secondary, but potentially great as well. On top of that, Cloudflare can even work as a good load balancer for larger communities that need it, so that's there for you if you ever need to scale to that point.
  14. Your cache level should definitively be Standard, the default setting. Using anything else will break IPS' cache busting feature, which is needed to recache static assets. Cache TTL can come down to a matter of preference. Considering important resources like CSS and Javascript assets are cache busted as needed, it's safe to use values up to even 30 days if you so wish. The potential concern with this is, if image attachments are deleted but left embedded into posts as an example, they will still display as cached in the users browser for however long you set this to. So, it can be a minor privacy concern, as IPS currently does not automatically remove image embeds from posts when attachments are deleted from the users control panel. That's really the only thing to keep in mind. Otherwise, I recommend at least 7-days personally. Outside of these, there are several useful features Cloudflare provides that I recommend taking advantage of. Note, some of these features are Pro only, but if you're a Free user, use the ones that aren't. They help if even a little bit and there's no reason not to. Now, if you have a high traffic website and you can afford it, I personally believe it's worth upgrading to the Pro plan. But to get started with the optimizations, under the Speed tab, go to Optimization and make sure these settings are enabled. Polish with WebP enabled can be hugely useful if you have a lot of PNG attachments / avatar uploads on your site, as WebP can provide substantially better lossless image compression compared to PNG. Auto Minify is disabled by default and you should enable it. The actual performance improvement is small, but it's still an improvement with no risks, so there's no reason not to use it. Brotli, again, small improvements, but no risks and and no reason not to use it for clients that support it. All the overhead involved in performing the compression is handled by Cloudflare here after all. Enhanced HTTP/2 Prioritization and TCP Turbo are again zero risk performance improvements and if you have access to them you should enable them. Mirage can be great in theory for mobile browsers by automatically optimizing images on slow networks. It's in beta, but I do definitely recommend enabling this. Roughly half the of the internets traffic today is mobile. These optimizations can yield huge benefits to your users. Rocket Loader I do not recommend enabling, as it can cause functional and perceptional issues with IPB. It makes things look and act in strange ways, and can potentially just break things. Rocket Loader is one of those things that works well for some sites, but is awful for others. It's not great for IPB in my experience. I say the same for PageSpeed JS optimizations and so on as well. Under the Network tab, make sure these settings are enabled. All of these are, again, zero risk performance optimizations. No reason not to use them. Argo tunnel can potentially be useful as well, but note that it can be extremely expensive depending on your bandwidth requirements. It's an additional $0.10/GB of bandwidth. Do not enable it until you have at least a months worth of bandwidth analytics logged from Cloudflare so you have an idea of how much you can expect to pay if you enable this feature.
  15. For the record I'm hired to manage servers with up to 16 million posts on servers running MariaDB 10.5 with no performance issues, so I would take anecdotal performance concerns with a grain of salt unless there's documented issues that can be reproduced. Otherwise it's generally safe to assume the latest compatible build is the best to be using. I assume you're referring to MDEV-20519 though, which impacted all releases prior to 10.5 up to a certain maintenance build and is, again, why you should always keep updated, https://jira.mariadb.org/browse/MDEV-20519
  16. Ah, I see. Currently there's not a way to do that, you'd need either a plugin or to modify the template yourself to make that change.
  17. Yes, it works absolutely fine with 10.5
  18. Can you elaborate on what you are after specifically? Are you trying to use prefixes, but keep them invisible (I'm not sure why you would want to do this, so please elaborate why if so!), or do you want the prefixes to be displayed somewhere else?
  19. Hey abobader! There are some minor non-breaking issues with the plugin at the moment, but it otherwise should be compatible and work with IPS 4.5 right now. The reputation overview is currently not displaying when you have expanded topic view toggled, but otherwise it should work and display as normal. Expanded topic view is the only thing I've seen that isn't functioning in 4.5, but please let me know if you're seeing other issues / errors! I am still working on implementing support for sorting by reputation as well, it's definitely high on my priority list and will try and get that in as soon as I can.
  20. This should be fixed now and an update has been submitted to a marketplace. As soon as you see 1.5.3 live, this should include the fix you need for the above issue. Let me know if you run into any other problems in the meantime!
  21. FWIW it's the same for us, on a site getting millions of pageviews a month. YMMV on if it actually improves performance or not. MySQL overhead is very low for us because our database server is well optimized and runs on a powerful server. If MySQL overhead is high on your server, Redis will likely help. If not, it may do nothing or can actually make performance worse in some cases, as hard as it is to believe. This isn't placebo either. I've benchmarked and monitored the performance impact over time using NewRelic and confirmed this for our specific server environment. On the other hand, I've had a client where it made portions of his site that were inaccessible (e.g. the online users list from session handling) functional again once Redis was set up and configured. So it all depends.
  22. Hey @breatheheavy! Thank you for the report and sorry for the inconvenience! I'll look into this for you today and let you know as soon as I have more information. If I'm able to reproduce the bug I'll have a fix ready by the end of today, but it may take a few days for IPS to review and approve the marketplace update.
  23. First, please excuse me reporting bugs here, my client area account is currently bugged and I can't submit support tickets do to my e-mail being changed and some kind of issue with the support desk software. In short, this is an issue specific only when uploads are being chunked. Non-chunked uploads do not produce the error. Say you have a video file with a really long filename like this, ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))).mp4 If you try and upload it as a file submission without needing to chunk it, it will upload file, and you'll get a filename like this returned, ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))-))))))))))))))))))))))))))))))))))))))))))))))))))))))))))).mp4.2ca3c24a17116f9fe2ebe688bf7cb0ee.mp4 Which is 201 characters and has no problem being saved on Windows or Unix systems. Now, here's what IPS tries to rename that file to when the upload is chunked, )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))).mp4.2a847996b9a6ec8384c1b621e41e0038.mp4 This is 265 characters in length and produces an error on Windows systems, But simply fails silently on Unix (and the file returns 404'd). Looks like you're skipping the setFilename call when processing chunked uploads and just trying to rename the file directly, which skips this necessary check in the aforementioned method, /* Most operating systems allow a max filename length of 255 bytes, so we should make sure we don't go over that */ if( \strlen( $filename ) > 200 ) { /* If the filename is over 200 chars, grab the first 100 and the last 100 and concatenate with a dash - this should help ensure we retain the most useful info */ $filename = mb_substr( $filename, 0, 100 ) . '-' . mb_substr( $filename, -100 ); } $this->filename = $filename;
  24. It shouldn't matter considering the files and directory have public write permissions set, unless SELinux or some form of extended attributes are being used. If you want to send me a PM I could take a closer look at this myself but otherwise I can't think of anything else that would cause this issue off the top of my head right now.
×
×
  • Create New...