The 2020 Mid-Year Update

The moment you have all been waiting for, it's...

The 2020 Mid-Year Solstice Update

It has been a while coming and last it is here, a collection of items for you to peruse on what is happening around the site.

Technical update

This is for the geeks out there, if you don't know or care what Gazelle is, feel free to skip past.

Gazelle, is (if you didn't know) the framework that was written by the What.cd developers, way back when. The good thing is that it has a lot of features. The bad this is, as the saying goes, someone learnt PHP while they were writing it.

One good attempt the original developers did was to separate presentation logic in the sections and business login in classes. Except it was not followed closely: there is a lot of business logic in sections, and the paradigm used in classes was poor. So we are salvaging what we can and rewriting it using a modern object oriented approach, and writing new code in app. A rough metric is to look at lines of code. The following table shows the progress so far:

+-----------------------------------------+

| app classes sections |

| July 2018 888 53765 68092 |

| March 2020 7138 40622 68085 |

| July 2020 14815 36850 62638 |

+-----------------------------------------+

One of the uglier sins the original coders made was mashing together strings and variables until it makes a database query and running it.

https://imgs.xkcd.com/comics/exploits_of_a_mom.png

As long as care is taken, there is no harm done, but it is awfully easy to rush things and let a vulnerability slip past. One of the things we have been doing is rewriting queries to use placeholders, which essentially means "run that query with these variables". For instance, in the past, to get the user id of a member based on their name, one might have written:

$DB->query("SELECT ID FROM users_main WHERE Username = '"

. db_string($username) . "'");

list($id) = $DB->next_record(MYSQLI_NUM, false);

These days, we can now write

$id = $DB->scalar("SELECT ID FROM users_main WHERE Username = ?", $username);

It's a little thing, but we have been adding lots of similar things to make Gazelle safer and more concise, and hence easier to work with. So one of the metrics I keep my eye on are the number of query() calls that still exist in the codebase. And in that respect we are making good progress:

+---------------------------------------+

| app classes sections |

| July 2018 1 315 1586 |

| March 2020 18 195 1104 |

| July 2020 22 113 531 |

+---------------------------------------+

Enough geeking out. While much of this work is simply maintaining the status quo (although sometimes breaking things along the way), we have been able to add some...

New Features

Some of these things have been around for a while, but not everyone may be aware of them since many of the announcements were squirreled away in the Suggestions forum.

Release Types

Demo, Sampler & Split are now recognized release types and you may categorize things as such. If you have uploaded a split or a sampler in the past, you can go back and change it to better reflect the contents (and if you do not (yet) have the ability to do so, you may request an edit to have it changed).

New Collage Types

Two new types have been added: Award and Series. See the definitions on the creation page to see if your new collage would be better suited to, e.g., an Award rather than a Chart.

Logchecker

The logchecker has had many, many bugfixes added and no longer requires Windows emulation to run the old EAC.EXE binary.

Next User Class

Most people have probably already spotted this, it lets you know what you are missing to rise to the next user class.

Checksum Trumps

Another little thing, it is now possible to report a checksum trump... as a Checksum Trump. No major change but it makes for nicer stats.

Report Notifications

When one of your uploads is reported, you will now receive a notification. If there is something you can do, (e.g. fix up tags or filenames) you will have a chance to step in and fix things before it is too late.

Discogs Integration

This project is still in its infancy, but we have decided to throw in our lot with Discogs, and follow their approach to dealing with disambiguation.

New BBCode Markup

You can reference a @user directly in a post (and they will receive a notification). You may also cite collages, forum threads and posts directly. See bbcode.

Bonus rates

The table can now be sorted by all columns! With a marker to indicate which column, and a new column to show BP acquired by fixed size, which helps people short on space decide which seeds to remove and optimize their BP accrual (which usually amounts to the most heavily seeded torrents).

Latest uploads

If you have logged in and viewed the front page, you have of course seen this. What you may not know are the conditions to be met. They are:

  • The release is lossless (16- or 24-bit FLAC).
  • No paranoia regarding your uploads
  • The release group has cover artwork.

(And a tip o' the hat to the dedicated crew who are adding missing artwork to existing releases and artists. We love you).

Bounty Refunds

It is now possible to request a refund, if you made a mistake. This is actually a side-effect of some new code to deal with a bunch of clowns who convinced themselves that ratio cheating was allowed and sanctioned on Orpheus. (Reality check: it is not). Their accounts were disabled, but in the meantime they had generated several TB of fake upload, which they showered over a number of requests, some of which had been filled.

All of the request votes from these people were removed. And now as a result, we are able to remove bounty. That said, you should have a very good reason why. To date, this has only been granted once.

And remember, rules are there for a reason. They will be enforced and nobody is above the law. People who dismiss them or think they do not need to follow them will wake up and discover their account is disabled.

Decisions Taken

Audience recordings [.AUD]

Not going to happen. Apparently there are other sites that have the situation covered well enough and it is not something we need to spend resources on.

Comedy and Spoken Word

Is allowed only if ripped from CD. No WEB podcasts or other material of dubious origin.

Welcome Jello Biafra, Whoopi Goldberg, Henry Rollins, Richard Pryor, George Carlin and more.

MP3 V2 (VBR)

The original idea for maintaining V2 was a thing called OrpheusTime (in fact, a project from the previous site). The idea was direct streaming over the BT protocol. The code was half written and then the developer disappeared and no-one else wanted to take it over.

The next idea was to set it permanent Freeleech, to allow try-before-you-buy of the lossless format of a release. This idea was canned as well, since it is pretty easy to survive in the economy here, and there was a question of whether people would find ways to abuse it to generate buffer.

Against this, the cost of tracking V2 must be considered. Currently the front-end proxy for the tracker (Ocelot) sustains around 70% load, which is closing in on the danger zone. In the not too distant future it will have to be moved to more powerful (read: expensive) hardware, so removing V2 sheds a few percent load and buys some extra time.

Since there is no longer a viable use case for V2 and a good reason to remove it, V2 now enters a sunset phase and will be removed from the site. There is no need to launch a wave of reports, it will be done programmatically. The first visible step you will see is that V2 no longer accrue bonus points. There will be a follow-up blog post when that happens, and at that point you may as well begin to stop seeding V2 content. At some later date they will be deleted from the catalog.

If V2 is the only format available in a group, it will of course stay, but trumpable by V0 or 320.

And no, we are not going to begin to offer Opus or any other superior lossy format (see: oxymoron).

When this is complete, we will angle back and implement the ability to upload sub-192k material (which will always be trumped by higher bitrates).

Image Hosting

Donations were a little rough late last year, and Staff stumped up the funds to keep the site going. Things have since picked up this year, and recently, to keep an eye on funding, I followed PTP's lead and added a percentage indicator in the header. Whether this has been an incentive, I don't know, but I am greatly pleased to see that in the past three months the rent for servers has been paid for entirely by our generous donors.



We are now in good shape and in a position to move on the next major piece of infrastructure, which is storing and hosting our own images. One of my biggest wishes is not to be reliant on any third party hoster, commercial or otherwise. To that end, a server with 3TB of space is now online (this was the reason of the most recent maintenance), and this will provide us with many years of growth.

Extra disk space is one thing. Some code has already been written, but more remains to be written. No ETA, but it is high priority.

And once again, thank-you to all the donors who make this possible.

Fun With Stats

If you were wondering what the most used tags on Orpheus are, electronic kicks it of with 154,486 releases.

  1. electronic
  2. rock
  3. pop
  4. jazz
  5. hip.hop
  6. experimental
  7. folk
  8. ambient
  9. techno
  10. alternative

Alternative has 31,757 uses, and not far behind is classical, with 30,931. The least used official tag is avant.garde.rock, with a mere 18 releases tagged so.

And now to close, it's time for some...

Staff Picks

Only lossless formats are freeleech. They will be up for a week or two, so don't delay.

More here

One Last Thing™

Time for another round of bonus points giveaways (unless you have opted out of freeleech tokens, which is taken to imply that you are already swimming in points).

This time, with a recent addition to Gazelle, you are awarded points based on your recent activity.

  • If you have logged into the site after May 1st, you are awarded 2000 bonus points.
  • If you are currently seeding at least one release that you have snatched, you are awarded 12000 bonus points.
  • And finally, if you have uploaded at least one release since the equinox, you are awarded 16000 bonus points.

If you have played your cards right, you have received 30000BP. This is something that will happen again in the future, and perhaps expanded with more conditions, so make sure you get in and make full use of the site

Enjoy!

,
—Orpheus Staff

Discuss this post here