Home » Forum » Developers blog »
Wikiloops v14 release notes

wikiloops v14 release notes

Here's the list of changes & improvements,
the due contributor credits and
some note-worthy things about this new release of wikiloops.com.

We have been working on this release for over 200 days, starting in October 2022.
This is definitely among the largest updates ever made to the wikiloops engine,
as we have literally turned over every line of back-end code in a full refactoring overhaul.

We deliberately did not change too much on the surface in this release,
so it might be hard to anticipate that you are now looking at an entirely changed wikiloops.
Let me underline that with some details before going into the technical stuff.
One of the "improvements" was to put the wikiloops code under version control (a way to keep track of changes - I do not know how I managed to live without that for a decade), and with that at hand, it is now quite easy to shed light on how much has been changed since October.

My favorite screen is this one:
[img]https://wloops2.r.worldssl.net/blog/deletions.png[/img]
I guess 4.300 touched files gives a first idea of "this wasn't small", and looking at the 444k deletions vs. 127k additions, it seems a bit miraculous how the house is still standing.
Mind, we did not delete any tracks, images or user-entered text like comments, this is about the code only!

Truth is, a lot of cleaning up had to take place after twelve years of continued amateur development, and the gained expertise on my end leads to a much more condensed code.
I guess one does not have to have any coding knowledge to anticipate that less code is most likely much easier to maintain than loads of more or less unorganized code that piled up over the years.

In technical terms, here is what we did:
  • put wikiloops under version control
  • upgraded from php version 7.4 to php 8.1
  • restructured the code-base from "spaghetti-code" to an MVC-structure with dependency injection
  • separation of concerns by migrating html to twig templates & sql to database repositories
  • updated all third party plug-Ins via composer, including the package used for track and image uploads
  • setting up a fully automated deployment-pipeline to roll out updates without any manual actions


Whilst the above will not make much of a difference to you as a user, here are some things you may notice:
  • the whole radio page has been overhauled to look a bit better on smaller devices
  • smoothed upload experience with a less error prone upload script & improved part-markup creation
  • added image cropper when uploading profile / avatar images
  • improved safari browser experience
  • added sharing options for whatsapp and telegram, improved sharing endpoints for all social media platform
  • smaller visual changes, with a focus on highlighting the more relevant functionalities



On to the due credit notes:


This update is a true collaboration, as our fellow member Karuma has played a major part in what has been done. You may have noticed his name & little avatar in the online users section in the past months, but he has managed not to upload a single track so far, so, don't feel bad if the name does not ring a bell right away. To tell the long story of how the two of us ended up collaborating on wikiloops code would exceed this posts scope, but I'll try to give you a feeling of what Karuma has contributed to wikiloops version 14.
karuma
When I got to know this guy, he was introduced to me as "a 'nations-league level' senior developer", which I kindly doubted, since the person saying that had little to none idea about coding, and I have by now met my share of senior developers, that's a wide field as I've learned.

Turns out, that statement is something I'd totally support today, as I have not met anyone more sophisticated about good code, or more experienced in what works and what doesn't.
Talking about code with Karuma is inspiring like a jam with a seasoned musician who knows all the tricks.

I still have a hard time understanding why on earth he decided to volunteer as my mentor in restructuring wikiloops, as I've seen him happily decline to work on code which wasn't half as bad as mine.
If I can't tickle him to answer that right here, it shall remain a mystery, fact is:
We spent a lot of time discussing stuff, he pointed in the right directions, smiled about my lack of expertise and the crude hacks most of wikiloops code consisted of and laid some groundwork to showcase the direction things would need to go.
At times he managed to annoy the shizzle out of me with his consequent smart-assing, but somehow it dawned on me that he was most likely right (as always), so I gave up rebellion and fiercely refactored one file after another.
Dear Karuma: A big thank you for these hours of tutoring me & working on wikiloops, it has been a wild ride, and you know best how big of a milestone this update is, for me, and for wikiloops as well!

Credit also goes out to Shi, wjl and TeeGee who tended to the community as we were busy working in the engine room, and also to
LittleWing, FrankieJ, rootshell, ivax, Ernie440, BooDoggie, Krasimir, kmoon235, GBD, ROBJOL, mySounds, titi, Andri, jampikus and Wade, who helped BETA-test the release in the past two weeks.

Also, I'd like to once more include all of you who are supporting wikiloops.com monetarily - it would all not work without that support, and I'm especially grateful for those who silently send some funding - including some people who are not actively using wikiloops, but support our idea of collaboration.
wikiloops version 14 would not be around without these people, you know who you are - thank you very much.

If you feel we delivered well, please do head over to the donations page and send us some backup some time - and should you come across anything that doesn't seem to work right just yet, please do let us know via the forum!

Long live wikiloops :)
Karuma
Thanks for the praise, Dick - and apologies for being the lone wolf here on wikiloops so far. The simple reason is that I'm not a musician, so there's a chance I'll never upload any tracks. But I like the idea of this platform and the great community behind it, so I decided to join in in a very different way and clean up the code together with Dick.
Let me just add one small detail here: All the work we've done over the last few months has only been to lay the groundwork for future updates to wikiloops. Updates that will bring you a better looking user interface and a better user experience. So if our plan works out, you may see more updates very soon ;)
+11
MySounds
I had a rough idea of the scope of your work but going through the source code line by line...please keep it to yourself that this was a two men job, I'd normally deploy a whole project team for these tasks.

Anyway, well done to you and Karuma and long live Wikiloops.
+3
rootshell
congrats to Dick, Karuma and the rest of the team! long live wikiloops! :W +3
TeeGee
I don't know what to say other than well done and thanks for all the hard work! @Karuma thanks for helping Dick, we all appreciate the work you did, and I am so happy that the future of the Loops from a technical side looks good. So thank you both, and I join the call: Long live Wikiloops :W +3
shiihs
Congratulations to everyone involved in ensuring the site will remain alive for some time to come! +2
PatrickDA
Many congratulations to the Tech Team for all the work you do to keep this unique site operating efficiently. +2
dk768
I wanted to point out that while if I choose a genre I can listen to the songs one after the other, on the radio it only lets me listen to one song at a time and then stops. I don't know if you noticed. +1
April 30, 2023 at 11:53 AM
Dick
Dick I'll have a look why that might happen, thank you for the hint :) +1
April 30, 2023 at 10:21 PM
Dick
Dick That issue is taken care of, thanks again :) +1
magirtiko
Oh yeah \o/

Now that the codebase is safe and solid, what are the next features you think to improve?

If I can I'd suggest the search (and its results pagination) needs to be improved :)

Thanks to you all :W
+1
May 2, 2023 at 7:09 AM
Dick
Dick I believe we fixed the pagination issue, still doesn't look overly nice, but at least page two and following show what they are supposed to show now ;)
I do agree there is a lot of room for improvement on search, we will get around to it eventually.
I believe we will probably not add any breathtaking new features anytime soon, as wikiloops already is quite "feature rich" as one would say.
We'll probably invest more time making sure the wealth of options doesn't overwhelm new visitors, aiming to reach a more intuitive and less text-heavy interface, as people expect in 2023, whilst not taking away anything that has become dear to anyone.
+1
May 2, 2023 at 7:23 AM
magirtiko
magirtiko Thank you all, Dick & friends :) +0
June 19, 2023 at 12:55 PM
Dick
Dick had to come back here to point you at the new search page we rolled out yesterday ;)
The text search capabilities are still very limited, but I believe you'll agree everything else is improved quite a bit ;)
+0
Lawaai
On mobile, the "show my recent activity" list shows some rogue code:

May 07 2023".$date."
+1
May 9, 2023 at 6:55 AM
Dick
Dick Hey - thanks for the pointer, that's fixed now :) +1
Krillo
FYI: When browsing WL using Pale Moon, the upload / publish process seem to have been broken after the update. Will post on the Pale Moon forum also, as the issue might rather be related to that particular browser than WL. +1
May 7, 2023 at 12:49 PM
Dick
Dick We switched to a well bespoken plugin called flow.js for the upload handling (the file upload process itself, not the text & data adding offered on our "upload" page). You might want to include that information if you let them know. I must admit I'm not familiar with the Pale Moon browser at all yet, will have a look at that. +1
May 7, 2023 at 1:58 PM
Krillo
Krillo Here's the post I made: https://forum.palemoon.org/viewtopic.php?p=239132#p239132 +0
May 7, 2023 at 4:39 PM
Dick
Dick Thanks for sharing the link, I checked out pale moon and saw exactly the error you posted there - it might be some race condition thing, where pale executes earlier, I will include a patch that makes sure the expected condition is reached when that code fires. Worst case scenario is that the waveform will not display, as that is what is supposed to happen there: passing the chosen files data to the waveform generating script. I'll need a bit to implement that, but I'll try to keep you updated on my progress. +1
May 7, 2023 at 6:18 PM
Krillo
Krillo Thanks, I appreciate that :) +0
May 7, 2023 at 11:11 PM
Dick
Dick this issue is solved, I posted some technical hints to the pale moon forum (still awaiting moderators review) and included a workaround on wikiloops, so it should be working on wikiloops regardless of their willingness to fix it. Thanks again for the hint! +2
May 8, 2023 at 6:31 AM
Krillo
Krillo Super! +0
Posted on
 User Avatar

Founder of
Posts: 2851
Joined: December 30, 2010
wikiloops online jamsessions are brought to you with friendly support by:
user profile image
Without wikiloops I would have stayed forever silent ;o)
Uloisius from Europe

wikiloops uses Cookies and processes data in compliance with the GDPR,
as stated in our data privacy policy.