(no subject)
So, Livejournal now has, in their words, "full Tags support." Of course, their idea of "full" is letting you view one specific user's entries filtered by content tag, making it really an inline version of the Memory system*. It's a pretty trivial addition to the S2 infrastructure to let you filter any view by tag, and a not-too-difficult advanced configuration feature to allow specification by user, or even substring/regex matching. I've toyed with adding the functionality to my own style, which is impractical mainly because I can't add a configuration page for it. Well, they can, and did, it's just weak.
Well, at least their beginning to address the (frequently requested and easy to implement) tagging feature, maybe it will improve over time.
*That is, it let's you memo(r)ize keyword filtering on post creation, rather than making it an extra step, but is otherwise functionally the same as the Memory system, AFAIK.
Well, at least their beginning to address the (frequently requested and easy to implement) tagging feature, maybe it will improve over time.
*That is, it let's you memo(r)ize keyword filtering on post creation, rather than making it an extra step, but is otherwise functionally the same as the Memory system, AFAIK.
no subject
no subject
no subject
no subject
no subject
no subject
Yet another thing LJ could do to let us customize our information: allow monitoring comment trees by root node, whether that's a post or a given comment that sparks a new thread. Ordinarily marking a whole post is fine-grained enough, but ideally one of the available options for 'watching' a thread would be to have later comments emailed to you the way the comments/replies are now; there are lots of times when I'd like to see if there's a reply to someone's reply to me, but I wouldn't want to track all the comments on a given post.
So, again, LJ doesn't offer nearly enough in the way of content management. But then, not many systems do. Livejournal does a good enough job for most of the time, but the somewhat random set of options they allow is frustrating for an open source project. The entire point of an open platform such as theirs is to allow anyone to add what they want, but I can't do that unless I start an entirely separate installation, which of course would have no user base. Perhaps if LJ allowed a more straightforward API to their data, such that I could could up my own version of the user side, without compromising their management of private data...
Anyway. Maybe I'll see what I can do.
no subject
I suspect that the problem has nothing at all to do with them not having enough cycles to implement these features in the UI; rather, it's probably all about efficiency. The kinds of features you're looking for are easy in a small-scale system, but generally pretty hard to scale properly unless you specifically design for them at the data level.
So I'm betting that the reason this degree of flexibility isn't available in the APIs is that the internal data structures can't support them scalably, and they don't want to expose functions that can easily bring the system to its knees. We can wish for otherwise, and hope that they improve it, but I'm pretty sympathetic to their situation: there's no such thing as arbitrary scalability, and they have to pick their battles.
(Yes, I spend a good deal of my time nowadays having these arguments from the other side. Indeed, I spend a fair amount of time explaining to my own management why we don't want to add function X to our APIs, because a benignly-intentioned user could accidentally crush us with it...)
no subject
I don't know, maybe that's naïve. I've never tried to write a convenient and safe API of that nature, so it's quite possible there are major problems with doing it that I haven't considered. Superficially, it seems like they could do it.
no subject
The issue is mainly if something catches on. While a small number of *any* kind of query isn't going to cause problems, they have to assume that any API they open may potentially get a great deal of traffic. An open query API is *very* dangerous under those circumstances, unless you've specifically built the DB structures for that kind of open access from the very beginning.
I've only seen one major server-based company recently that has that open an API -- and that is a *very* expensive piece of software (on the order of hundreds of dollars a year per seat), so the company can afford to throw as much hardware at it as they need. And they clearly made a strategic decision that this is what their company does: they're trying to be an open platform as a key element of company strategy, so they've put a great deal of effort and resources into it.
And of course, then there are the security implications. The more open and flexible the API, the greater the chance of unintended security leaks via clever data joins. This is why most large-scale systems (like we have at Convoq) don't even have open APIs *internally* -- our internal systems address themselves to carefully-designed and vetted stored procedures buried in the database, so that we understand both their security and performance implications extremely well. That's a major consideration: the more powerful the API, the more dangerous it is, because it gets that much harder to comprehensively understand what can be done with it.
Frankly, the past couple of years have been a real education for me: building large-scale client/server systems is just *different* in a number of ways. When you're trying to build a server that is intended for millions of users, you structure it quite differently than you would normally expect -- performance and security trump most other considerations, and impose a lot of interesting constraints. Dealing with those effectively is a lot harder than you'd expect...
no subject
no subject
no subject
Proper handling of user-defined grouping, ideally including addition, subtraction, union, and intersection, is a well-understood and cheap to implement process that far too many systems lack for no obvious reason. Bringing things back to Livejournal, I ought to be able to define a Carolingia friend group as the intersection of Boston and SCA, and then lock a post to Carolingia + a specific 3 people, without jumping through inordinate hoops. Granted, the majority of users are not clamoring for this feature - but it's not really very expensive at all, either.
no subject
That being said, I'm probably going to use them to keep track of which posts are public, friends-only, or custom. Anything else is, as you pointed out, made mostly redundant by Memories.