Site Development Notification and Feedback Thread

OneMoreAnonymous
My Little Pony - 1992 Edition

@WingbeatPony
The really stupidly annoying thing is that CSS can’t do that, we’d probably need JS but then not everyone has JS…probably would end up putting together some utter ass solution in Ruby that Slim could use.
 
Hey there, I meant to post this a week ago but kept forgetting, and my browser was giving me grief and other crap.
 
I think it’s doable in CSS, in a horribly hacky way, as in, make a huge list replacing 1000 for 1k, 1001 for 1k etc. all the way to 999999 for 999k. A quick calculation says the CSS file would be over 66MB in size… but it would work. Maybe.
 
But I just thought up a less hacky but more viable way. Every post number field would actually be this big block. Yes, for each time a number of posts with a tag is displayed:
 
 
<input type="hidden" min="1000" max="1999" value=[number of posts goes here]>  
<input type="hidden" min="2000" max="2999" value=[number of posts goes here]>  
<input type="hidden" min="3000" max="3999" value=[number of posts goes here]>  
.  
.  
.  
<input type="hidden" min="999000" max="999999" value="[number of posts goes here"]>
 
And the CSS pixie dust:
 
input:in-range {  
type: "normal";  
}  
input:out-of-range {  
type: "hidden";  
}
 
This means every instance of number of posts with any tag would take about 83KB worth of hacky code. Better than 66MB, I suppose. And it would work. Maybe.
 
However, the real point of my post is that I’m fairly sure it can be done in a fairly simple way with XSLT. That said, I honestly don’t like that formatting and prefer to see an exact number.
 
Since I already got your attention, I might as well ask. Is there estimated date for the site software code to go public? I tried searching the forum for any hints but couldn’t find anything.
byte[]
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
Verified Pegasus - Show us your gorgeous wings!
Preenhub - We all know what you were up to this evening~
An Artist Who Rocks - 100+ images under their artist tag
Artist -

Philomena Contributor
@OneMoreAnonymous  
Making the site software public is something I have wanted to do for a long time, but I have received pushback from other staff on the issue claiming potential security vulnerabilities being used against the site and the creation of copycat sites that could be used for phishing.
 
I have audited the code before and found major security issues present, which I immediately fixed. As of now there are no security issues that I am aware of, only minor bugs that are revealing of certain site internals and of sloppy coding, but do not themselves pose a risk.
 
The suggestion that one could use the site code to create a copycat is not outside the realm of possibility. The problem, then, is that a local copy of the site is a real pain to set up, even when using a tool like Vagrant (and without it, it’s even more fun). Probably only someone truly dedicated to setting one up would be able to do it in one go without needing to ask me for help, and the kinds of people with that dedication will phish with impunity regardless of whether they have a copy of the code.
 
 
So, until further notice, we aren’t providing the code. That said, if you would like code samples or explanations of functionality (e.g., how do you do this thing) I can readily provide you with that, as it doesn’t really pose either of these risks.
Lead Pie
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
My Little Pony - 1992 Edition
Wallet After Summer Sale -
Magical Inkwell - Wrote MLP fanfiction consisting of at least around 1.5k words, and has a verified link to the platform of their choice
Birthday Cake - Celebrated MLP's 7th birthday
Not a Llama - Happy April Fools Day!
Artist -

This is a box.
@byte[]  
That sucks. Given how your search engine is set up and tag formatting and everything, it could be a really powerful tool, intead of using other software.
byte[]
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
Verified Pegasus - Show us your gorgeous wings!
Preenhub - We all know what you were up to this evening~
An Artist Who Rocks - 100+ images under their artist tag
Artist -

Philomena Contributor
@Lead Pie  
There’s honestly not very much that you, as an end user, could gain from having a local copy of the site. It’s too much of a pain to set up and it doesn’t provide much that the real copy doesn’t.
 
This is not a justification for not releasing it, just a matter-of-fact statement.
Lead Pie
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
My Little Pony - 1992 Edition
Wallet After Summer Sale -
Magical Inkwell - Wrote MLP fanfiction consisting of at least around 1.5k words, and has a verified link to the platform of their choice
Birthday Cake - Celebrated MLP's 7th birthday
Not a Llama - Happy April Fools Day!
Artist -

This is a box.
@Binkyt11  
Yeah, I get that. And I understand the security concerns.  
But it would still be great to get a release. Maybe with certain license terms.  
There could maybe be a release version that’s not completely up to date/doesn’t get updated with every site update. So people could use it for their own stuff and testing, but not get an exact copy of the Derpibooru site.
OneMoreAnonymous
My Little Pony - 1992 Edition

@byte[]  
Well, that’s a shame. This site is, by far, not just the best booru but the best tag-oriented image gallery I know of, and I’ve been researching such sites from around the world since I’m looking into starting one. I don’t want to push the issue, but seeing as I had been looking forward to the release of what seems to be the best gallery site software in the world (hell, the fact that it’s the most feature-ladden booru while barely using JS is already worthy of a prize), I would like to make an argument here before dropping the issue.
 
Put simply, fear of copycats literally makes no sense. First because, as you say, it can be done right now. Crawlers and similar bots are common as mud these days (fun fact: bots already account for more than half of all internet traffic), so saving a chunk of the site and putting it up somewhere else is a fairly simple affair. Second, it’s unfortunately something that can happen with quite literally any site and there’s little to nothing to be done about it. It’s the nature of the beast. You wouldn’t believe how damn many copycats Joyreactor.cc has.
 
As far as my knowledge goes, the only two things you can really do is inform your users of always checking the URL to make sure it’s correct and in HTTPS, and more importantly, protect Derpibooru’s pics from 3rd-party leeching. One thing I observed is that copycats usually have the gall to steal their victim’s bandwidth as well, by hotlinking to their pics, since hosting them might incur into hosting costs. I confess I don’t know enough webdev to know how viable anti-hotlinking measures are these days, but in ye olden times, sites could replace the hotlinked image with a pre-set pic to warn the user he’s at risk and direct him to the real site. That saved my ass a couple of times back in the day.
 
However, I reckon exposing a security flaw is a valid concern. I recall that Toady, he of Dwarf Fortress fame, had some way of letting people improve his code without revealing any significant portion. Fun fact: when he first did that, people found out he didn’t even know about the switch statement, and instead he just used huge nested if statements.
 
That’s my piece then, sorry if I tested your patience. If the decision has been changed to “eventual release” to “indefinitely postponed”, I think it would be best to announce so, because no doubt plenty of people had been looking forward to it too. Thanks for your work on this great piece of software regardless.
Joey
Dawnsong - Derpi Supporter
Lunar Supporter - Helped forge New Lunar Republic's freedom in the face of the Solar Empire's oppressive tyrannical regime (April Fools 2023).
Flower Trio - Helped others get their OC into the 2023 Derpibooru Collab.
Roseluck - Had their OC in the 2023 Derpibooru Collab.
A Lovely Nightmare Night - Celebrated the 12th anniversary of MLP:FIM!
Cool Crow - "Caw!" An awesome tagger
Tree of Harmony - Drew someone's OC for the 2022 Community Collab
Elements of Harmony - Had an OC in the 2022 Community Collab
Non-Fungible Trixie -
Verified Pegasus - Show us your gorgeous wings!

PM me your cute OCs
I’m not particularly concerned about copycat sites. If someone wants to create a another MLP booru, that wouldn’t bug me at all. Likewise I’m not too concerned about security issues or bugs - the code is written with a heavy focus on security, and open sourcing it would actually give the potential for more people to find and report bugs we may’ve missed.
 
Instead, my concerns are:
 
  1. there’s been over a dozen people who contributed code to the site, and we’d need permission from all of them to release their contributions. I don’t think that would be too much an issue, except it would be rather time consuming to do.
     
  2. the code is extremely specific to Derpibooru, to the point where it wouldn’t be usable for other sites without heavy modifications.
     
    The second one is my main objection. I’m sure if we released the code as is, someone would be glad to fork it and generalize it to make it usable for other sites. But then that’d likely break compatibility with the original code, so any changes made to the original code wouldn’t be compatible with the forked version, and any changes to the forked version wouldn’t be compatible with the original code. I don’t want a situation where there’s multiple, incompatible versions of the same thing and people are missing out on features because it was made for a different version of the code.
Lead Pie
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
My Little Pony - 1992 Edition
Wallet After Summer Sale -
Magical Inkwell - Wrote MLP fanfiction consisting of at least around 1.5k words, and has a verified link to the platform of their choice
Birthday Cake - Celebrated MLP's 7th birthday
Not a Llama - Happy April Fools Day!
Artist -

This is a box.
@Joey  
How is it specific to Derpibooru ? Got any good examples ?
 
 
@OneMoreAnonymous  
Yeah. I looked for booru software, and booru-on-rails seems better than others out there. Want to run one locally to sort my tons of art and photos. And maybe other files.
Joey
Dawnsong - Derpi Supporter
Lunar Supporter - Helped forge New Lunar Republic's freedom in the face of the Solar Empire's oppressive tyrannical regime (April Fools 2023).
Flower Trio - Helped others get their OC into the 2023 Derpibooru Collab.
Roseluck - Had their OC in the 2023 Derpibooru Collab.
A Lovely Nightmare Night - Celebrated the 12th anniversary of MLP:FIM!
Cool Crow - "Caw!" An awesome tagger
Tree of Harmony - Drew someone's OC for the 2022 Community Collab
Elements of Harmony - Had an OC in the 2022 Community Collab
Non-Fungible Trixie -
Verified Pegasus - Show us your gorgeous wings!

PM me your cute OCs
@Lead Pie  
A lot of things are hard coded into the site, such as:
 
  • Tags in the quick tag picker on the upload page  
  • Static pages (site rules, FAQ, contact page, etc)  
  • The procedurely generated background pony avatars  
  • Lots of the text on the site (Half of it is in language files, half are hard coded into templates and controllers)
     
    Basically put, a lot of things are not easily configurable by changing a setting on the site or editing a configuration file. Instead, stuff is embedded straight into the code because it was never intended to be edited to work with something that is not Derpibooru
GyroTech
Blitz - For supporting the site
Piaow!! - Derpi Supporter
My Little Pony - 1992 Edition
Friendship, Art, and Magic (2020) - Took part in the 2020 Community Collab
The Magic of Friendship Grows - For helping others attend the 2020 Community Collab
Bronze Bit -
Emerald -
Toola Roola - For helping others attend the 2019 Community Collab
Friendship, Art, and Magic (2019) - Celebrated Derpibooru's seventh year anniversary with friends.
A Tale For The Ages - Celebrated MLP's 35th Anniversary and FiM's 8th Anniversary

The Prettiest Catbird
@Joey
 
Though, one could easily argue that that situation is better perhaps than missing out on all features because they were never made public in the first place.
byte[]
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
Verified Pegasus - Show us your gorgeous wings!
Preenhub - We all know what you were up to this evening~
An Artist Who Rocks - 100+ images under their artist tag
Artist -

Philomena Contributor
@Joey  
I have no problems with a release with hardcoded stuff.
 
I don’t think your second concern is very realistic. People that just want to make their own booru can run shimmie or danbooru. In practicality, very few people will ever create a site that gets as big as derpibooru has. Open source success is proportional to influence: if one or two other big players arise that are using our code, unwillingness to work with us is not likely to ever be an issue. If dozens of small players spring up, then making their admins keep their shit in line and up to date is way more of a problem than any potential features a competing project would have (they wouldn’t even get them of they weren’t updating, mind you…)
WingbeatPony
Daring Do Dakimakura - Attended a Derpibooru panel at a MLP convention
Elements of Harmony - Had an OC in the 2022 Community Collab
Twinkling Balloon - Took part in the 2021 community collab.
My Little Pony - 1992 Edition
Wallet After Summer Sale -
Friendship, Art, and Magic (2019) - Celebrated Derpibooru's seventh year anniversary with friends.
Equality - In our state, we do not stand out.
Friendship, Art, and Magic (2018) - Celebrated Derpibooru's six year anniversary with friends.
Cool Crow - "Caw!" An awesome tagger
Birthday Cake - Celebrated MLP's 7th birthday

Tag horse
@byte[]  
Put it another way, then - if we were going to play ball with a couple sites big enough to be sister sites, we’d probably put in the effort to encapsulate or otherwise abstract any Derpi-specific things like static text or default options, much like creating an API was a gesture towards people creating user extensions. However, if just open-sourcing for the sake of open-source, it’d come with a giant AS IS, NO WARRANTY sticker and it’d be largely the responsibility of the end user to modify the code to suit their needs.
byte[]
Solar Supporter - Fought against the New Lunar Republic rebellion on the side of the Solar Deity (April Fools 2023).
Non-Fungible Trixie -
Verified Pegasus - Show us your gorgeous wings!
Preenhub - We all know what you were up to this evening~
An Artist Who Rocks - 100+ images under their artist tag
Artist -

Philomena Contributor
@WingbeatPony  
It’s not very hard to take the derpibooru out of derpibooru - someone with only minor experience with the whitespace-based markup languages we use could do it. If someone wanted to do this to the site code, and give it back to us in a customizable form I’d support that.
Princess Luna
Preenhub - We all know what you were up to this evening~
Thread Starter - Started a thread with over 100 pages
My Little Pony - 1992 Edition
Notoriously Divine Tagger - Consistently uploads images above and beyond the minimum tag requirements. And/or additionally, bringing over the original description from the source if the image has one. Does NOT apply to the uploader adding several to a dozen tags after originally uploading with minimum to bare tagging.
Cool Crow - "Caw!" An awesome tagger
Economist -
A Perfectly Normal Pony - <%Nebulon> Yeah, just fetch me a smaller anus, sweetie.
Magnificent Metadata Maniac - #1 Assistant
From the Night -

Senior Moderator
Site Developer
Tag Czar
My main concerns for open sourcing would be security and the sorry state of our code/data separation. We have it down mostly for comments, but not posts, for example. Best not to give people something that’s so hard to maintain.
 
Anyways, as to actual stuff that will be coming soon, the “implied by” section on tag/search pages will be an expandable section. This is due to many very NSFW tags existing and implying completely safe tags etc..  
Artist Credit will also be coming sometime within the week, but not within the next few days.
Princess Luna
Preenhub - We all know what you were up to this evening~
Thread Starter - Started a thread with over 100 pages
My Little Pony - 1992 Edition
Notoriously Divine Tagger - Consistently uploads images above and beyond the minimum tag requirements. And/or additionally, bringing over the original description from the source if the image has one. Does NOT apply to the uploader adding several to a dozen tags after originally uploading with minimum to bare tagging.
Cool Crow - "Caw!" An awesome tagger
Economist -
A Perfectly Normal Pony - <%Nebulon> Yeah, just fetch me a smaller anus, sweetie.
Magnificent Metadata Maniac - #1 Assistant
From the Night -

Senior Moderator
Site Developer
Tag Czar
@The Luna Fan  
And it’s live now. The triangle looks bad IMO, but I’m not sure the correct way to fix it (it’s created by CSS so it’s rather wonky; can’t just use an FA icon because there’s no way to use CSS :before to insert one).
 
And it has a little warning text since the whole point’s “here be dragons” etc.
therandomone95
Non-Fungible Trixie -

Apple Bloom cute no crap
Hi! I don’t have as much experience on this site as the rest of you, but I’m just wondering the reason of the ‘implied by’ button.
 
I don’t even know if this would be the right thread to post this, but I’m just wondering that. If someone can reply to this little question, then that would be appreciated.
 
I just don’t see any reason for it to exist, and it wasn’t even annoying, did other people complain about this?
 
An advanced thank you and a farewell to all of you!
 
Thanks!
Princess Luna
Preenhub - We all know what you were up to this evening~
Thread Starter - Started a thread with over 100 pages
My Little Pony - 1992 Edition
Notoriously Divine Tagger - Consistently uploads images above and beyond the minimum tag requirements. And/or additionally, bringing over the original description from the source if the image has one. Does NOT apply to the uploader adding several to a dozen tags after originally uploading with minimum to bare tagging.
Cool Crow - "Caw!" An awesome tagger
Economist -
A Perfectly Normal Pony - <%Nebulon> Yeah, just fetch me a smaller anus, sweetie.
Magnificent Metadata Maniac - #1 Assistant
From the Night -

Senior Moderator
Site Developer
Tag Czar
@therandomone95  
Yes, other people did complain, after several NSFW tags were made that implied SFW ones. We’ve always had this problem to an extent, but it has become more noticible over time. Additionally, some tags have a ton of tags implying them. Character tags were at the intersection of these issues.
Princess Luna
Preenhub - We all know what you were up to this evening~
Thread Starter - Started a thread with over 100 pages
My Little Pony - 1992 Edition
Notoriously Divine Tagger - Consistently uploads images above and beyond the minimum tag requirements. And/or additionally, bringing over the original description from the source if the image has one. Does NOT apply to the uploader adding several to a dozen tags after originally uploading with minimum to bare tagging.
Cool Crow - "Caw!" An awesome tagger
Economist -
A Perfectly Normal Pony - <%Nebulon> Yeah, just fetch me a smaller anus, sweetie.
Magnificent Metadata Maniac - #1 Assistant
From the Night -

Senior Moderator
Site Developer
Tag Czar
@GyroTech  
Implications should never be extensive nor above the rating (or off-topic in general) of the tag implying them, so I don’t see a reason to do it for them.
Interested in advertising on Derpibooru? Click here for information!
Sky Railroad Merch Shop!

Help fund the $15 daily operational cost of Derpibooru - support us financially!

Syntax quick reference: **bold** *italic* ||hide text|| `code` __underline__ ~~strike~~ ^sup^ %sub%

Detailed syntax guide