GET /api/v2/news/63/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 63,
    "url": "https://swarfarm.com/api/v2/news/63/?format=api",
    "title": "Status of SWARFARM",
    "body": "It's gotten a little dry here, *huh*? Don't worry, it's not a goodbye message. *Right?* ***RIGHT?***\r\n\r\n## Introduction\r\nSince the Reloaded Update, I've been adding new stuff which may or may not be useful for you as users, for ex. generating reports by filtered date or new \"Rune Builds\" menu option in Profile. Some I announced, some did not. But... I've neglected the site's performance for too long. You know that, I know that, everyone knows that. The site was running poorly, there was a lot of API errors, people have been (and still are) seeing \"Server Error (500)\". Lately I've heard a lot of phrases like \"Great, SWARFARM is down ***AGAIN***\" and probably it's the push (or rather slap in my face) I needed.\r\n\r\nWith that in mind, I would like to apologize for not taking care of SWARFARM in terms of performance and stability. All I did in last one and a half, or even two years, was updating Bestiary with balance patches and new monsters. Would I call it strange? It depends. I'm not playing Summoners War for even longer, but I'm still responsible for this site. That lack of maintenance led to the problem I'm facing today. In order to resolve it, I'm currently working at a lot of things you may not even notice.\r\n\r\n## Status\r\n1. *Optimization of profile parsing* - **IN PROGRESS**: as of today 4x faster locally, aiming to 10x; on server it will be even faster because I'm cutting off thousands of SQL queries (hi fellow IT guys) which doesn't have that much of an impact on local database with only one ongoing connection\r\n2. *Database optimization* - **IN PROGRESS**: as of today 15x faster queries, aiming to... as fast as possible\r\n3. *Archive system* - **IN PROGRESS**: instead of storing everything in one place, old data will be moved to other (\"archived\") tables; it should speed up generating reports\r\n4. *Browsing archived data* - **PROTOTYPING**: I'm still thinking of the best solution to allow seeing old reports, for ex. from B12 before Reloaded update or B10 year ago\r\n5. *Fixing deadlocks* - **PLANNING**: IT guys will know what I mean, but basically it's the situation when you are in a store and want to take milk from the shelf, but there is a man standing near it, so you pretend to look at the eggs until he goes; but of course, he waits until you go so he can take the eggs from shelf you are standing next to; you are both waiting for each other to move; the same happens with database connections in some cases\r\n6. *Migrating to front-end framework* - **RESEARCH PHASE**: basically, Django Template Language isn't the best. Also SWARFARM code may be labelled as legacy; it still uses Django 2.2 where there is official 4.2 moving into LTS and 5.0 in development. Using proper framework would definitely improve user experience, but sadly I'm not a graphic designer and it's quite hard for me to come up with good design. Also, upgrading backend libraries could potentially increase the performance (with Python 3.11)\r\n7. *Creating more optimized API v3* - **RESEARCH PHASE**: at first I need to collect as much data as possible about how often API v1 & v2 are being used, which one is inefficient, what data is missing; of course v1 and v2 will remain functional for the sake of backward compatibility\r\n8. *Feedback & github issues cleanup* - **TO DO**: basically, fixing errors reported there, adding new stuff based on feedback\r\n9. *Monster reports* - **ON HALT**: some of old users may remember that SWARFARM started asking for consent to use your data in (un)anonymous reports about monster builds; something similar to old SWStats or in-game stats provided by Com2Us; the modal still shows for new users, but unfortunately I'm not planning to work on that, at least for now. Right now generating such reports is inefficient; maybe I'll get back to it once I do the performance & stability stuff; no promises here\r\n10. *Live Sync* - **TURNED OFF/ON HALT**: too much workload for database right now, we'll see after performance & stability stuff\r\n\r\n## Update? When?\r\nNo date announced. I don't want to work under pressure of time. I want to make this update as good as possible.\r\n\r\n## Known limitation\r\nServer in which SWARFARM is running still uses HDD instead of SSD. It drastically decreases the capabilites of our database. The best option would be to upgrade from current dedicated server to newer one, with SSD and better parameters, buuuuut... It's a lot of time from planning, through testing to executing to set everything up so you won't notice any downtime.\r\nMoney is also a factor, infrastructure is not free. Porksmash's policy was to make SWARFARM completely free no matter what. I stand by that. So don't worry, there won't be any paywall, neither ads. That being said, all that stuff I'm working on is so we don't need to move to better/newer dedicated server. First software, then hardware. \r\nThe only \"income\" for SWARFARM is Patreon, which still being taken care of by Porksmash. From what I know, current patreons donate enough to make the server pay for itself with a slight excess. As you may be guessing, it's not enough to get better/newer server. In my country, something great for SWARFARM costs about 90$/month, not including backup storage etc.\r\nAs I mentioned earlier, I'm not going to implement any paywall or add ads on the site. I'm grateful to you all for supporting this project and just wanted to let you know what limitations we are facing. **Thus, I would like to thank all the patreons for support you provide.**\r\n\r\n## Some numbers for nerds like me\r\n1. Almost **600 000 000 records in data log** tables since March 2019; these include runs, shop refreshes, wishes, drops; basically everything we collect automatically through SWEX profile\r\n2. In just september (~12days), we've collected over **7 000 000 more data logs**, which means that SWARFARM gets at least **7 requests from SWEX per second**; not to mention visitors, auto profile upload, and all these other community tools (like SWOP) getting data directly from us\r\n3. We store almost **10 000 000 monster instances**, from which \"only\" ~130 000 are LD5's (incl. farmable)\r\n4. Monsters? Who cares... **Runes** is what's important in this game - currently approx. **30 000 000** in our database\r\n5. What about you? Over freaking **50 000 registered users**!\r\n\r\n\\* I will share more data after performance & stability update\r\n\r\n## Worth mentioning\r\n- Xzandro - for being... Xzandro, everyone knows him. On a serious note, for all the help he gives\r\n- Cerusa - for taking care of all skill effects, which need to be updated manually every balance patch\r\n- Seiishizo - for providing a good feedback and promoting site\r\n\r\n## Pepperidge farm remembers\r\nDid you know that *Porksmash was working on [SWARFARM UI version back in 2019]( https://alpha.swarfarm.com/bestiary)? It hasn't been touched since then*\r\n\r\n## Last words (feel free to ignore)\r\nBecause of my professional life, I forgot how fun it is to work on side project in which you don't have deadlines (except site-breaking updates) and are in full control. I've been burned out because of stuff I had to do and had no control over no matter how stupid it was. Happily it changed and now the fun of working as a programmer is back. So I hope that I'll be working on this site for a little longer.\r\n\r\n*By the way, is anyone reading these news? lol*",
    "created": "2023-09-12T15:07:06-07:00",
    "sticky": false
}