Welcome to Inkbunny...
Allowed ratings
To view member-only content, create an account. ( Hide )
Inkbunny

Release 77 - Mo' mentions, mo' mobile… and more secure

It seemed like the summer of code would never end… but we're here at last, with a fresh release!

Our shiny new feature is mentions. Ever wanted to know when someone said your name? Now you can, as long as they used @/[name]/[icon]. Mentions are not monitored in PMs, or from users you've banned. Try them out when posting your next commission or request!

The new ib! username shortcut prefix can also be used for this, similar to fa!, da!, sf! and w!
We think you'll appreciate being notified; but if not, you can disable the feature.
 
We've improved mobile/netbooks usability, including intro text height and notices, and reworked the presentation of background images. We removed render-slowing drop-shadows on Firefox for Android, and optimized scrolling performance and memory usage on lower-spec laptops.

We've added Picarto.TV, Twitch, Piczel, LiveStream and Furry Network as contact details, plus site mascots by HeffalumpJump, Amuzoreh, Harurin, Lambent64, PInknuss, SholiBoy and SmusserD. Hover over the site banner and click < and > to try them out!

We increased Popular submissions to four pages (240 submissions) in the last three days,
showing work from 30% more members, and promoting a higher proportion of General-rated work.

Inkbunny still runs fine on the servers we leased in 2014, with ongoing help from many generous donors.
But everyone likes a boost, so we've reconfigured software to use our hardware more efficiently:

* Upgraded main server to Debian Jessie (Apache 2.4, PHP 5.6), speeding page rendering up to 85%.
* Restricted CPU cores allocated to image processing, for a ~75% speedup for that part of uploading.
* Combined the CloudFlare fork of pngcrush (using CLMUL instructions) with the SSE2-optimized
  Paeth filtering present in recent versions of libpng, for a ~30% speedup in PNG optimization.
* Tweaked RAID5 stripe cache on our secondary server to handle database transaction logs better.
* Moved database usage statistics to RAM-backed filesystem.
* Reduced the amount of data retrieved and processed while listing private messages.

We've continued to refine our cache network and image preloading system:

* Caches opened in France, Quebec, Chicago and New Jersey.
* Tokyo and Sydney caches upgraded to 2TB/month transfer; they now serve recent original-sized files.
* São Paulo cache upgraded to support IPv6; all caches now write data using asynchronous I/O.
* Closed Singapore and Johannesburg caches after conclusion of one-year trials.
* Occasional cache-full outages eliminated by nginx bug fix.
* Upgraded caches to support latest HTTP/2 standard, ALPN.
* Enabled OCSP stapling, reducing the time to establish a secure connection.
* Tweaked image preload on Chrome/Opera to prioritize on-screen content over adjacent pages.
* Use <link rel="preconnect"> to accelerate initial connection to a content server.

We've made several other infrastructure changes in the last six months:

* Upgraded our streaming database replication to cascading off-site replication.
  This should minimize data loss in the unlikely event of a total datacenter failure.
* Upgraded server BIOS, iLO, and network and disk array firmware.
* Replaced MySQL with MariaDB (used for web stats and the IB wiki).
* Enabled staff email monitoring for important metrics on all servers/caches.

We've overhauled notification counts, with fixes and performance improvements for account and journal deletion, submission publication, friend-status changes, tickets, and deleting friends' comments.

Security got more attention, in part due to issues elsewhere. We've encrypted support ticket contents, removed support for unused image formats (also saving 200MB), improved the security of tickets and private messages while at rest, and enhanced SQL/image format sanity checking.

Other security related changes include:

* Use time-constant comparisons and insert random delays to defeat timing attacks.
* Always check password even if IP range check fails, to avoid identifying accounts using the feature.
* Attempt to preclude HTTPoxy and more SQL injection attacks.
* Prevent fishing for valid email addresses via the password reset system.
* Upgrade length and widen character set used to salt hashes.
* Use cryptographically-secure pseudorandom number generator for reset/activation/verification codes.
* Increase length of auto-suggested passwords.
* Rate-limit per-IP and per-account for password reset, account activation.
* Run checks on account and allowed IP addresses before password checks.
* Switch passwords and reset codes to use a stronger hash format on login.
* Limit string length for user credentials to prevent denial of service.
* Sanitize numeric entries in cookies; remove null bytes in user entry and various API calls.
* Properly sanitize content server and background time of day preferences when set.
* Avoid backing up site/server data which can be regenerated from scratch.
* Restrict read and write access to uploaded files to web server user.
* Include user activation when checking the user session.
* Specify expected file types when interacting with image processing software.
* Improve base name validation of incoming filenames; don't allow .php as a file name.
* When checking new password suitability, use POST rather than GET to avoid logging.
* Avoid shelling out where PHP functions exist for common tasks.
* Filter and/or collapse dangerous symbols in file names for uploads/editing.
* Improve checks for invalid/hidden/symlink files in bulk uploads.
* Prevent private file handler from using symlinks; scrutinize file extensions and MIME types.
* Kill database connection manager during emergency shutdown.
* Remove obsolete sales and payment information from the database.
* Update email software; force use of plain-text email; prevent advertising version in X-Mailer.
* Disable obsolete finance reporting/print processor management and remove relevant data.

No site is perfect here, but we improve where we can. If you notice a problem, let us know!

Our API has had the following changes:
* Prevent non-requested parameters from being returned in the Submission API.
* Expose stable unique content_tag_id for ratings in the Submissions API.
* Add several error codes relating to new/modified functionality.

DusXMT also created a C library and samples for the API, while Onelio created an Android app.

Mobile-related changes:

* Set 980px viewport; adjust shadows and main navigation positioning to fit.
* Avoid front-page section header wrapping on mobile.
* Abbreviated comment/submission status notices, guest warning and user stats for mobile.
* Fix flick scrolling on IE/Edge by removing position: relative style from <body> tag.
* Condense search hints and trim artist and +favs-by inputs.
* Trim Main/Scraps Gallery links on submission view to avoid overflow on scaling.
* Set background colour on <html> element (avoids white flash as Android address bar hides).
* Render background in a <div> below <head>; enables hardware rendering with transform: translateZ(0) while preventing fixed image resize popups from scrolling on Chrome/Safari.

Other minor and cosmetic site changes:

* Restore old pool order page as an option, for those without drag'n'drop ability.
* Add ability to bulk publish without notifying watchers, for accounts with bulk publish enabled.
  Like bulk upload, you can request this via a support ticket; work must meet keyword/content policies.
* PNG uploads should use JPG for preview to match extension, not force PNG.
* Rollback gracefully if file/thumb upload/replacement fails (e.g. due to invalid format).
* Don't stop journal submission if we warned about a bad title and they fixed it.
* Remove temporary search result set names from session data.
* Switch to Lanczos2 resize filter to fix ringing on high-contrast content/backgrounds.
* Default to viewing current user's +favs if no user specified.
* Simplify keyword suggestion/+fav notifications by removing them on submission deletion.
* Expand journal title to fill available width.
* Fix loading of HD version of tall images where width is less than 920px.
* Don't allow the load HD option if the full-size image is only 920px or less.
* Don't show "HD Loading" if the user is in the wide mode by default.
* Make small default view mode loads "SD" medium-size image on first click.
* Restore middle-click opening file in a new tab on IE and Chrome.
* Reduce minimum account age before a user may suggest keywords to one week.
* Remove superfluous referrer checks on various UI actions.
* Fix cut-off animation warning for GIF files in small view mode.
* Fix "show custom thumbs" link running into thumbnails on Members page.
* Explain that comment deletion entails removal from view, optional notes are visible only to staff,
  and banning will preclude receipt of private messages as well as comments.
* Clarify that file replace can replace both files and thumbs.
* Don't consider the virtual pools used for gallery navigation when preloading.
* Don't assume there are any prev/next items in the gallery.
* Don't assume queries returned results when clearing temporary search tables.
* Preserve "fit to window" aspect ratio when enlarging the window.
* Force vertical scrollbar to avoid background/horizontally centered content jumping.
* Properly handle HTML entities (e.g. apostrophes) when editing multi-line character sheet fields.
* Center-align first/last in pool text on submission view; add padding benath submission.
* Separate setting of background-size to keep IE8 from showing a white background.
* Use cancelBubble if event.stopPropagation is unavailable (IE8 support).
* Fix image resizing on IE8, where "this" is only ever the window object.
* Remove shadowed image class while determining image dimensions to fix scrolling.
* Don't zoom narrow images to greater than 100% width when in medium mode.
* Don't record a HD image resize click as a download event in website stats.
* Use account name or all-numeric ID for Pixiv contact details, replacing URLs.
* Use HTTPS links for Twitch, Drawpile and Piczel contact details.
* Encourage streaming links to be added to user profiles as contact details.
* Add staff preference to show deleted submission and journal records on userpages.
* Improve bulk submission upload instructions.
* Don't return user to change password page after successful login.
* Use temporary unavailability status code to avoid maintenance mode page being cached.
* Cache error page with unique code in URL to permit removal from session.
* Remind members they can change their username rather than create a new account.
* Replace invalid characters in uploaded filenames rather than redirect to an error page.
* Remove files incrementally while processing a bulk upload.
* Fix infinite loop in private file handler if read fails.
* Be more generous with failed logins to avoid triggering unnecessary CAPTCHA test.
* Log username changes and password resets in staff account notes.
* Include website visitor statistics in backups.
* Shuffle and condense adult content warnings on rating setting page.
* Set max-height to 'none' when fitting a clicked image to the page.
* Flush data compression buffers prior to flushing general output.
* Show progress when recalculating keyword masks.
* Avoid specifying redundant POST method for scripted requests, as it's the default.
* Remove execution time limit when when recalculating notice counts and keyword masks.
* Set maximum execution timeout to half an hour to reduce failed bulk uploads.
* Prevent normal pngcrush output from filling Apache logs.
* Don't try to close the watch options box when the user clicks outside the window.
* Use current revision images on maintenance mode screen.
* Prevent user-initiated account deletion if PM system is offline, as we can’t send a confirmation.
* Email account owner when their deletion request has been processed, rather than send a PM.
* Use email software's inbuilt validator for email addresses.
* Store internationalized domain names as punycode.
* Fix staff email reverification feature.
* Clearly explain why a password failed if it contains your username.
* Cut unused support for quote feature in private messages.
* Fix cron errors due to minimal shell environment path.
* Don't try to send email if no valid email address was specified.
* Rework layout of submission details to avoid published date overlapping MD5 section.
* Fix an issue where site status might not be displayed if the user has unread notices.
* Add a time limit for re-sending the activation email (which may take minutes to arrive).
* Enforce default submission, journal, and stream announcement titles if missing; trim whitespace.
* Enhance multiple-click detection for submission details page.
* Trim new email addresses in account settings to avoid spurious errors.
* Remove overly-restrictive warning about characters valid in password.
* Fix edge-case where a submission type was not set if the first file upload failed.
* Ensure re-verification email has a From: name, not just an address.
* Document procedures for btrfs snapshots, mdadm rebuild, and VBox raw disk usage.
* Use the phrase "unset friends only" rather than "remove friends only" on gallery dropdown.
* Remove accepted friend request notices before adding a new one when re-friending.
* Remove apostrophes around activation/reset codes in emails to avoid confusion.
* Fix handling of private files with "noncustom" at the end of their names.
* Add staff note if account email address changed by staff.
* Add multi-submit protection to settings page and staff account administration.
* Add sanity checks for submission file and unread notification cleanup operations.
* Fix logic error in content server addition/update system.
* Reduce columns selected from database tables where not all data in a row is required.
* Remove obsolete keyword management functions.

As with all changes, there's potential for new issues - some of you may have noticed spurious mentions emails earlier in the week. If you do find a problem, please file a support ticket and we'll take a look!
Viewed: 2,094 times
Added: 11 months, 2 weeks ago
Site News Item: yes
 
Roketsune
11 months, 2 weeks ago
Every other site pales in comparison to this one in the realm of site improvement and promulgation of such improvements. One of my favorite things about this place. I wish FA's administration had 1/10th the level of competence you all have.
HellDoradoLion
11 months, 2 weeks ago
THIS!! ^ EXACTLY THIS SO MUCH! IB is the best and these are the reasons i try to get others to use this site as well, i cannot speak any more highly of this site than i already do XD
DarkMacroMaster
11 months, 2 weeks ago
Agreed! I am regularly blown away by the amount of effort that the IB staff puts into giving us a good experience!
Alfador
11 months, 2 weeks ago
+1
FurCollector
11 months, 2 weeks ago
Neat :3
Gittons
11 months, 2 weeks ago
You guys will always be the best site for me <3
Tweaker
11 months, 2 weeks ago
Once again you guys never fail to deliver. Love these changes! Keep up the great work, crew!

Out of curiosity: Any chance of indexing mentions made prior to the feature's inception? I know it's probably a stretch, but now that mentions are a thing I'm kind of curious where it may have happened that I didn't know about before.
GreenReaper
11 months, 2 weeks ago
We're probably not going to do that, because it wouldn't be fair to people who didn't know you'd be notified, and they'd only time out after six months anyway. But you can always search for your username in titles and descriptions, which will get a lot of the mentions, without any time limit! (We did some extra-hideous full-text search indexing magic to make that work fast, a couple of revisions ago.)
Tweaker
11 months, 2 weeks ago
Oh yeah, the submission stuff is all kosher (I considered that method of search after posting my comment, actually); it's mainly just journals and comments that had me curious. I just know staff have all the fancy search stuff available for journals and us peons are left without. Talk about unfair. :P (Kidding!)
GreenReaper
11 months, 2 weeks ago
We have a few tools to aid moderation, but even we don't have full-text search for comments. It'd be neat, but has the potential to be expensive as well, soaking up hundreds of megabytes of RAM/SSD. After all, there are over 5,000,000 submission and journal comments in total! But Google may have some of what you're looking for, at least for guest-visible content.
Roketsune
11 months, 2 weeks ago
Wow, really? I thought that would have been a rather trivial device to create and give to staff. Shows how incompetent I am in the realm of programming and coding.
GreenReaper
11 months, 2 weeks ago
Well, it's partly a performance concern, and partly the fact that we don't often have a task which would benefit from the ability to search comments in general.

We do need to be able to review the comments of specific users… but that's a much simpler task, which doesn't require retrieving and comparing the potentially-compressed text of every comment against a specific string.

There'd be ways to do it fast, though; it's mostly a question of whether it's worth it. Everything in the list took time to develop, and there's only so much to go around.

In fact, one way to view mentions is that it partially solves a problem which might otherwise require full-text search: knowing when people said your name.
Taleir
11 months, 2 weeks ago
I do hope comments get attention in general, sooner or later.  I still would love to have a basic listing of submissions/journals I've commented on as well as ones I was mentioned on.  Would be fun to take a walk to the past and see old, forgotten comment threads I was a part of.

This is a step in a good direction, though!  Much appreciated.
GreenReaper
11 months, 2 weeks ago
Being able to review your past comments is an open issue in our request tracker. The current tools we have for moderation are not fleshed out in a format suitable for public use, but I'll note the interest here, and maybe it'll grab the attention of our development team in a forthcoming release.
Aogami
11 months, 2 weeks ago
Always impressed with the updates, and always happy to see the staff still care.
karpa
11 months, 2 weeks ago
This is the best Site!!! X)
Kittzy
11 months, 2 weeks ago
LOVE IT!
Vixel
11 months, 2 weeks ago
Very impressive. Thank you!
Gingle
11 months, 2 weeks ago
cool lol even inkbunny uses linux 8D
Kamashari
11 months, 2 weeks ago
Well what else for servers but Linux? (Aside from BSD, but we don't like to talk about that in my circle...)

I mean, PERSONALLY Debian's a bit... Dated, but still nice and stable.

God, I shudder to think what kind of OS FurAffinity runs their servers on... After all, to quote Noah of the Linux Action Show, "I'd trust a fart with a stomach flu more than I'd trust Windows with my data."
GreenReaper
11 months, 2 weeks ago
We're running Debian as the base system, but we're on a Linux 4.6 kernel (soon 4.7), latest ImageMagick and PostgreSQL, and the caches have the latest nginx. That way we can upgrade the parts we care about the most, but can still rely on regular security patches for the rest. :-)
Gingle
11 months, 2 weeks ago
theres also windows servers, bsd is really good too ,but the only bsd os's ive tried are pcbsd, solaris and mac os.
GreenReaper
11 months, 2 weeks ago
Timduru and I run WikiFur and Flayrah on FreeBSD. It's a workable option, with good points - I like the ports system, but bits tend to break now and then if you're not on the latest release. Honestly, though, that may be an issue with any system which exposes source compilation.
Kamashari
11 months, 2 weeks ago
" GreenReaper wrote:
Honestly, though, that may be an issue with any system which exposes source compilation.

S o u r c e   c o m p i l a t i o n . . .
PTSD flashbacks of trying to install Gentoo...
EcchiNemi
11 months, 2 weeks ago
Awesome these changes and new functions are nice :3
RobTheBunny
11 months, 2 weeks ago
As per usual, awesome ! Adore the mentions feature, just wish we could be alerted on prior mentions pre-update xD
Kamashari
11 months, 2 weeks ago
Very nice job, dude, as always. Might write a journal later.
JasonSonicZombie
11 months, 2 weeks ago
Ooh very nice, good job you guys, keep it up!
XD
DizziMorhlis
11 months, 2 weeks ago
Always hard at work for us ^^ Thanks a ton guys
AndyBunneh
11 months, 2 weeks ago
I understood like 20% of what was mentioned (let's be honest) but I love the fact that the site is always being updated and improved!
SholiBoy
11 months, 2 weeks ago
I will add my voice to the ever-growing support in this comment section and say thanks to all IB staff, seriously you guys are the best. Best community, moderators, support, just everything <3 The way this site is ran is a beautiful example of what online communities should be, in which you listen to your members and actually work to improve functionality as well as usability and ease of access for your users.

Thank you IB!!! <3
pandapaco
11 months, 2 weeks ago
Inkbunny is the best gallery ever!!
ShanetheFreestyler
11 months, 2 weeks ago
That's a shitload of improvements! Good job, guys! :3
GratitudeAdvocate
11 months, 2 weeks ago
You guys fucking rock hard and live harder.
'Nuff said! <3

TwistedTales
11 months, 2 weeks ago
Awesome.
Ketsa
11 months, 2 weeks ago
All the more reason to keep running my gaming marathons~ Every dollar goes to good use!
Nishi
11 months, 2 weeks ago
Bunch'a good changes, nice work. :3
sedkitty
11 months, 2 weeks ago
I've said it before and I'll say it again: IB's got the best modmins around.
billmurray
11 months, 2 weeks ago
👍
StarChildebrite
11 months, 2 weeks ago
Thank you so much for the continued, amazing work!
KNIFE
11 months, 2 weeks ago
You guys just CONSTANTLY KICK ASS!!
Thank you SO much! :D
BlastoTheHanar
11 months, 2 weeks ago
Will the mentions notify you of your own posts where you used your own name link?

Also, if the link to you is used multiple times in a single post is that one notification for the post or one for each use of the link?
GreenReaper
11 months, 2 weeks ago
Once is enough, no? And no, it shouldn't notify you for yourself. That would be kinda silly. :-)
BlastoTheHanar
11 months, 2 weeks ago
Hey, even with a site with great support like this and you guys having worked on these features for a long time, there's always that small chance of little things like that being overlooked. Nobody else had asked yet that I could see, so I thought I might as well.
Nivy
11 months, 2 weeks ago
I wanted to make a inkbunny maskot...
FerretWilliams
11 months, 2 weeks ago
@ mentions... now that's a feature you don't see on other art sites, as far as I know. Very useful on Twitter & Facebook. I think it'll be a stand-out feature! Of course, it'll also lead to lots of surprises for the people who didn't expect an artist to see their comment :-p
Years ago, someone made fanart of one of my characters & I didn't find out about it until I did a search months later. This will be especially useful for discovering fanart of my characters. That could be good or bad, heh(I'm glad you have filters). I generally don't do mature or adult art, and the fanart was mature, so I can see why he didn't tell me, but it was cute.
whiteleo
11 months, 2 weeks ago
Rawrsome!
Autorun
11 months, 2 weeks ago
from such Internet speed, I at least have the page load
 :-B
Rakuen
11 months, 2 weeks ago
That sounds pretty cool.
Vladimir
11 months, 2 weeks ago
nelson88
11 months, 2 weeks ago
This is absolutely awesome!^^
RubisDrake
11 months, 2 weeks ago
Shifted from MySQL to MariaDB huh? Nice. That shift that must have taken some time. But MySQL is tainted with Oracle's democracy ever since they've taken it over. Most people have nothing good to say about them. That's mostly why MariaDB was even conceived in the first place.

Though I am curious, people keep saying the performance of "NoSQL" implementations is still better. That's what a lot of people seem to be shifting to, but I'm not sure why... Is it because databases like SQL seem to use high file sizes, or what? I mean, on compressed filesystem it shouldn't matter that much. Decompressing also takes time depending on the rate. An archived file on a compressed FS means small sizes, but at the cost of performance...

Anyway, I'm curious about the performance of NoSQL solutions, and if it's worth switching to it. You're the pro, though.
mercurywolf
11 months, 2 weeks ago
As someone who works to develop products with various NoSQL databases, I think I can answer this question well enough.

NoSQL databases are a very broad category of databases that share the commonality of "we are not SQL". At the start of the rush to NoSQL, SQL databases didn't scale as well for high performance applications, and was rather oriented toward transactions which can be hard to optimize. By contrast, many NoSQL databases are optimized for specific use cases which SQL was traditionally bad for.

As an example, take Neo4j. It is a graph database which is optimized for relationship and path finding, something that, using SQL, is very hard to do. This means trees, linked lists, and graphs are all quickly searchable, which can be a performance boost to sites providing driving directions, user navigation metrics, and relationship analysis.

Redis, an in-memory DB, is optimized for small, fast writes. Its a key value store that is often used as a cache because it runs entirely in memory (optionally swapping out to disk every so often). By focusing on a handful of useful features and simple data structures, it is able to write very, very fast.

Cassandra is optimized as a highly scalable, highly write and read efficient columnar store. It likes running on hundreds of commodity-grade machines, and can shard data really well between those machines to aid in parallelization of queries. It shines when you're looking for a handful of needles in a vast haystack, but limits you to queries that can be answered  very quickly (so, no transactions).

Elasticsearch is optimized for lucene indexing, often used for cases where it'd be expensive to index all possible queries into your data. It is most often used for searching text, but if you've got a large data structure with tens or more of fields that might be queried on in any combination, it can be tailored toward that as well. Its uses are mainly for when traditional indexing would be too expensive in terms of memory, and rarely-used queries would flush recently-used data to disk.

MongoDB, probably one of the most general DBs in the NoSQL world, eschews the notion of transactions and schema in order to allow objects of any structure to be saved into the database. It still maintains the notion of indexed fields, but otherwise you can store and search vastly dissimilar objects in the same collection (their analog of a SQL table). The attraction here for many groups is that development groups could do most of their work without bothering the DB admins with every little DB change, saving that for the performance-critical collections they needed help tuning.

I've used all of these DBs at work, and as you can hopefully tell by now, each of these databases (all touted as "NoSQL") are very different in terms of what capabilities they have. SQL could support most of the NoSQL use cases well enough, but performance can become an issue when you start getting rather big. That isn't to say SQL is the wrong choice in every case, and in fact is still what I would recommend by default since many successful applications run just fine on top of it. Simply, its all about choice, and giving you options for data that would otherwise be hard to represent or query in a traditional SQL database.

Hopefully this was a useful write up for you and gives you some idea why you would - or wouldn't - use a NoSQL database. Keep in mind that this is just from my experience as a developer working on a performance-critical product for a large enterprise, so others might have different opinions on these systems.
GreenReaper
11 months, 2 weeks ago
Thanks for the detailed input! As noted below, I've not had much personal experience with them, so it's good to hear from someone who has. :-)
GreenReaper
11 months, 2 weeks ago
Actually, the longest part of migrating to MariaDB was tuning it to use huge pages (reserving big chunks of memory) for greater TLB efficiency. Debian (and MariaDB) makes it fairly easy to switch.

To be honest, we've not seen a great need for NoSQL, in part for the reasons outlined here, but also because PostgreSQL (our main database) has proven incredibly flexible and performant for our needs, and has a long history of usage. There is some information which might potentially be better-stored in a more flexibly-structured way (e.g. character sheets), but for that there's hstore and json data types.

Similarly, for fast temporary key/value storage there is APCu, memcached or redis (we use APCu), and for more extensive structured data (e.g. search results) we use temporary or unlogged tables, depending on whether they would benefit from persist over requests.

We don't currently use compressed filesystems, but PostgreSQL's TOAST data types are compressed if long enough. Many journals, like this one, will be compressed, shrinking them from ~18.5kb to ~8kb.

A lot of people jumped on the NoSQL bandwagon because a) Google was doing it (for a few very specific use-cases where current solutions weren't there), and b) databases can be hard to get to grips with for a programmer (and in some companies are controlled by separate groups). But PostgreSQL has made huge strides in performance over recent years, and they're about to throw the switch on parallel intra-query execution, which is going to blow away many long-running select queries.

Then, consider high-resilience features such as streaming replication, which have been developed and tested over the years. There's lots you can do to speed up/save space with structured databases, too.

As Mercury says above, your default choice should be an SQL database, unless and until you know exactly what you are doing and why a particular NoSQL solution is right for your particular use-case. And for those who don't know which one to pick, I heartily recommend PostgreSQL.
Tydaze
11 months, 2 weeks ago
I actually really appreciate the proportion of General rated submissions in the Popular list being bumped up! Porn is great and all but not nearly enough clean art gets the recognition it deserves in the fandom.
SmusserD
11 months, 2 weeks ago
I don't undesrtand very good things about programming... But I'm going explore some of these points and other changes by myself (?)... :D

And thanks about the icon :D :3
KatEllis
11 months, 2 weeks ago
Hard-working admin keep the #1 furry art site #1. ^_^
Shryke
11 months, 2 weeks ago
Looks great! Though GreenReaper can I re-request support for .odt open-document (text) files, used by open source programs like Libre Office... RTF is mostly good but it loses nuances of formatting, and DOC... well, I'd rather not feed the beast. :-)
DusXMT
11 months, 2 weeks ago
I personally switched over to plaintext because the formatting in my RTF files kept getting messed up (moving from one computer to another), and you can't really mess up anything on a plaintext file (other than perhaps not using the right encoding, but pretty much any editor under the sun should support UTF-8)
GreenReaper
11 months, 2 weeks ago
We do have a development ticket for that; I've noted your request, and added a little to it on potential options. The tricky part is extracting formatting, but it might be useful even to extract plain text.
RubisDrake
11 months, 2 weeks ago
https://github.com/dstosberg/odt2txt/

World this work, or does it have to be something more sophisticated? I'm not sure how much rich text Inkbunny supports. If it's just BBCode, then something like that would be harder to find.

EDIT:
Oh, this one might be better to use for a backend, since it uses UNO from LibreOffice. https://github.com/dagwieers/unoconv
GreenReaper
11 months, 2 weeks ago
I've noted those for the development team to consider later. One key factor will be support for UTF-8 encoding, which was also an issue for RTF in the past.
KamenOne
11 months, 2 weeks ago
Yet will remain the butt of the fanbase because you allow cub...I don't even...
DusXMT
11 months, 2 weeks ago
IB was created because of FA's ban on cubs =3 (from what I recall at least, I know there were other reasons as well, but that was the main one)
KamenOne
11 months, 2 weeks ago
I don't know the origins of this place either. All I know is if it weren't for that one rule about no human/human-like creatures in sexual situations, I'd close my FA and move here totally...maybe one day. THEN we'll really start seeing FA bleed users.
RubisDrake
11 months, 2 weeks ago
Sounds like you want Pixiv or e621, which both allow all that sorta content, but they're not InkBunny. Hahaha.
GreenReaper
11 months, 2 weeks ago
Actually, that came six months after Inkbunny launched. It's true that Inkbunny's traffic increased threefold at that time; however, it's doubled since - we topped 75,000 submissions in Q2.

Inkbunny was created to provide a better furry art community, and to provide furry artists with better tools to present, promote, and sell their work. There was a pressing need for this in 2010, and I'd argue there is a continued need in 2016 (hence our work).
DusXMT
11 months, 2 weeks ago
Well, in either case, IB's completely fulfilling my needs, so thanks (both to you, and the rest of the staff) for all your great efforts =3
CarlosPenguin
11 months, 2 weeks ago
They use servers in countries where cub is wholly illegal (like the Canadian server, where the Supreme Court has ruled ANY depiction of a minor sexually is illegal). It's only a matter of time.....
KamenOne
11 months, 2 weeks ago
I swear fictional kids have more rights and protections than REAL ONES.
CarlosPenguin
11 months, 2 weeks ago
You're right!
Mounties hate "creep catchers", now we figured out why....
http://www.cbc.ca/news/canada/british-columbia/surrey-...
Protecting their own.
KamenOne
11 months, 2 weeks ago
Sounds like you need to clean house.
DusXMT
11 months, 2 weeks ago
That would only really affect the caches in Canada, and other such places.
CarlosPenguin
11 months, 2 weeks ago
There is a Quebec IB server.
DusXMT
11 months, 2 weeks ago
The main server is in the Netherlands. The other servers are caches.

From what I understand, they lessen the strain on the main server by being able to get a picture once from the main server, and provide it to many people in the same area who'd like to see it, so if a 100 people wanted to see the same picture, and they all live near Quebec, IB only has to send the picture once to the cache instead of a 100 times to all the people who want to see it, and since the caches have more bandwidth, except for the first couple people who'll want to see the picture (since it has to get to the cache somehow), it'll even be faster than from IB itself. And when the picture becomes irrelevant, it gets replaced by a different one in the cache.

But the caches themselves are just that, they serve a mechanical purpose, and they can be removed (legal reasons) or added (lessening the strain on the main server and making the experience smoother) as needed.

(Of course, if anyone wiser than me sees this and I've said something wrong, please correct me)
GreenReaper
11 months, 2 weeks ago
As many courts have found, animals are not people. Minors are invariably defined as people under a particular age. So no; as far as we know, content permitted by Inkbunny is as legal in Canada as content on any other furry art site.

Of course, if anyone is concerned about accessing content in a specific country, they can always block certain keywords and/or choose a different content server (such as our new Chicago cache). All request to Inkbunny servers and caches are encrypted, including the filename, and we do not typically log successful cache requests.
CarlosPenguin
11 months, 2 weeks ago
Actually, there is on the same server and their lawyers have told them to ban cub, bestiality and incest stories.
(can't remember the name... Canadian, mascot is a too-skinny blonde arctic fox girl with spots)

Anyway, they threated to give me the boot for my Porn Star Chronicles for dabbling in incest... so I told him where to go and how to get there.

The filters here are amazing and I'm nagging the hell out of Toumal to copy them.

As for the courts, here's the section:
http://laws-lois.justice.gc.ca/eng/acts/C-46/section-1...

And here's some interpretations:
http://www.vice.com/en_ca/read/criminalizing-cartoons-...

http://www.adjectivespecies.com/2014/01/20/the-legalit...
Excerpt of the R. vs Sharpe decision, " ‘material that poses a reasoned risk of harm to children [and] it should include visual works of the imagination as well as depictions of actual people’. "

...should include visual works of the imagination as well as depictions of actual people.
GreenReaper
11 months, 2 weeks ago
That's not the full quotation, though. Wikipedia has a bit more, where the judge makes clear they're talking about "actual and imaginary human beings". (Some courts have determined that e.g. the Simpsons count as people for this purpose, although this has also been controversial.)

As for bestiality and incest… that's part of why we forbid human sexuality in general. Allowing them opens up too many cans of worms, and it's not what the site is about.

I disagree with JM's interpretation at [a][s]; but we've talked extensively on that, and I think it came down to "we'll see what happens, but either way it's a silly law". :-)
CarlosPenguin
11 months, 2 weeks ago
I think I've stumbled across the ruling saving cub's ass in this country from full prosecution, while looking for something completely different:
http://www.efc.ca/pages/law/court/R.v.Laliberte.html
Wy
Wy
11 months, 2 weeks ago
Thanks for the update!
Xial
11 months, 2 weeks ago
There you go again, posting changelogs that show what is going on behind the damned scenes here.

All this transparency, you know. :)

Here's hoping for an #id exclusive to stories to be added to div.elephant:nth-child(13) > div:nth-child(3) in a future release, so that I can reliably style just the story area and not have it bleed over into other portions of the site. nth-child kind of is pants to use, since it's just blindly counting targets, instead of aiming. Calling the elephant every time does mean I can be off-target, when I probably should be calling giraffes, as example. ;)
LoliSwitch
11 months, 2 weeks ago
i hope this fixes the oddly specific loading issues ive been having for the past few couple months
GreenReaper
11 months, 2 weeks ago
It should if it is relevant to what is mentioned in the notes! If not, feel free to file a ticket with the details.
leinad56
11 months, 2 weeks ago
👍LIKE
Thanks Inkbunny for all good experiences

P. D. Only thing I don't like is the "Name change", but is only a comment.
maxinered
11 months, 2 weeks ago
Nice work, like always!
PizzaKing64
11 months, 2 weeks ago
This sounds freaking awesome!
Hebiyoujo
11 months, 1 week ago
Good shit. Good shit.
CharmanDrigo
10 months, 4 weeks ago
Hehe I hope we get the full mobile optimized site soon :P I check it a lot on my phone when I'm not home.
New Comment:
Move reply box to top
Log in or create an account to comment.