Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Arantor
7051
Off-topic / Re: Unknown's thoughts on Wedge
« on July 4th, 2011, 11:37 AM »
Quote
I think they're fine an all "hookable" in some fashion, although whether hooks would necessarily be forethought for all these areas is uncertain.  Th only area I see a theme potentially wanting to touch is the IP one, and probably not.
Well, each page of key areas (like the profile) should have some kind of hook to it, then combine that with the template list and you're done. I don't think having a hook for each area of things like the profile, or even the admin panel, is that onerous, really.
Quote
Ah, good.  While I think no one uses that feature (at least they didn't used to), I think it's a good feature.  It came from YaBB SE and probably even YaBB, originally.
It is recommended periodically by the SMF support team, but honestly I suspect that's more because it's "find and repair errors" as if it's some magic tool, without understanding what it does.
Quote
Still don't agree that the core should have a working kitchen sink that churns out boiling hot and cold water
Interesting analogy, and one I can see the merits of, even if in this particular case I don't agree. To me, if you're going to have a kitchen sink, while all it *needs* is cold water, its power is greatly increased with hot water too. In this case, it's having a safety net of people removing posts without really removing them - prevents people abusing the system too much, IMO.
Quote
Well, edge cases are important.  Even if just knowing about them and documenting them.
*nods* I try to take such things into account.
Quote
In this case, I think I've seen before a "hook weight" where you can basically say "I want to be first"
I did think about that, but even then I can still see cases of two hooks requesting to go last, and I ultimately considered that the times it occurred were sufficiently rare in most cases that it could be dealt with by the mod's author where necessary.

Though if I do resurrect the stuff I was working on, it might not be a bad idea to have some kind of facility for this.
Quote
I don't see the point of picking a specific version to emulate when it seems as if the software can figure this out itself.
Well, you could do it that way, I guess, but right now it can't actually do it. All it can do is search through the package for any versions which match and if it doesn't find any, bail. But there are still some abuses of the system going on, like specifying 2.0 - 2.0.99 which worked even for release candidates...
Quote
Originally we set out to move to the DB and that was it.
I don't think the upgrader looks at it, though... been a while since I looked, and it was more a curiosity and something of a bug, but one I was never that interested to investigate.
Quote
And as much as I hate UAC the way it works in Windows, I like the concept of opting in to having lower privileges for a period of time.
Interesting. I always felt the opposite, that what is in SMF and Wedge with the secondary validation, that you're practically doing exactly what UAC does: a secondary confirmation that you do indeed want to go into the administrative areas.

I still wonder about my methodology from SimpleDesk, which turned it into role-based permissions which could be attached to groups - but still effectively separating permissions from groups directly for the most part. (Then, mix in role templates, and you get all kinds of interesting scenarios)

http://www.simpledesk.net/community/simpledesk_team_blog/the_new_permissions_system_simpledesk_1.1_709.0.html if you're curious. Admittedly, it is helpdesk-centric and it's more complex now than it was when I implemented it and discussed it there (namely, departments support, which is similar to tickets in boards but slightly more complex in other ways), but I'm sure there's something of consideration there. The implementation, though, I probably would do differently now.
Quote
I would still take it out (if I ran a forum) and just drop a link in my menu to a Google Apps calendar (if I even needed a calendar.)  I would also remove PayPal / any payment stuff (in fact, that would be the very first thing I'd do) and if that HiveMail or whatever mod got integrated I'd remove it too.  I'd remove the moderation center, dumpdatabase, any friendly theme editing features (and especially the viewfile thing in the error log viewer)
I understand where you're coming from, but OTOH, I have arguments that encourage me to keep some of them too:
* calendar, because I think it can be made more useful and worth keeping around as a consequence
* PayPal, because I take the view (much, as I think the team did at the time) that anything payment related, I'd rather have that in the core than a possibly unmaintained mod, for security purposes
* HiveMail... not sure what you mean? Certainly there aren't any mods named that on sm.org.
* Moderation center... I suspect that was implemented in response to how vB did things. It's not ideal and needs reworking, but removing it entirely, down to the concept of it, is not really where I think we want to go: managing a busy and active forum through just email-to-all-moderator notifications means that things do get forgotten and unresolved.
* DumpDatabase - agreed.
* Theme editing - I think we already got rid of them, and if we didn't, we're in favour of doing that.
* ViewFile thing... hmm. I can't see any huge reason to get rid of it, and I can see a smallish reason for keeping it: people *do* post its output when things are broken, because when you have file edits, it can show what's broken. Though for the most part I'd probably argue it doesn't help, but that doesn't mean it hurts to keep it either. (Curious, what about it don't you like?)
Quote
block me from logging in whenever a hacker wants to spam my account to lock me out
That has actually been removed even in SMF.


:edit: Oh, I missed this one:
Quote
I'd add code afterward that would do e.g. $actionArray['x'] = array('y', 'z');.  While "ruining" the style, this didn't ever break and my mods were fairly low maintenance.
Until you have half a dozen mods that all do the same thing, all attached to the same comment and none of which can be uninstalled unless you remember the order of installation because of the way find/replace is done in packman.
7052
Off-topic / Re: Unknown's thoughts on Wedge
« on July 4th, 2011, 10:02 AM »
Quote
Or try a diff between the two release trees, which probably wouldn't apply cleanly in most cases.
If you don't have any modifications, of course, this isn't a problem. The only trouble is, the diff is enormous since the RC5->final patch modified every single PHP without exception.
Quote
It means your stuff is wrong and has to be rewritten now, no matter what.
Yes, if the API changes in some fashion. That's the single biggest factor in migrating SMF 1.1.x mods to SMF 2.0, in fact.
Quote
then I don't think there's generally any good reason for a theme ever to change the meat of an administrative section.
Let me explain what exactly my edits did, and I'll let you judge for yourself. FWIW, I'm of the view that these are acceptable, not necessarily desirable.

I just checked, there are three template edits being made in SimpleDesk 2.0:
* manage attachments
* package manager
* track IP

Manage Attachments is one of those necessary edits. For a variety of reasons, we had SimpleDesk take SMF's attachments and modify the core code, specifically so that if attachments worked normally, SD's would too. All that we do is store the SD-specific metadata in its own table, and don't attach a topic id to the normal attachments (and yes, I did account for that in the maintenance... I think I did, anyway... have to check that now, it's been a year since I wrote it)

All the template edit has to do is add to the 'Browse attachments' / 'Browse thumbnails' links in the browse files area, to add 'Browse helpdesk attachments' / 'Browse helpdesk thumbnails'. Since it's injecting two links directly into the template, I wasn't uncomfortable with it.

Package Manager... well, SD has a form of plugin manager (which is to say, it has an interface for managing hooks that other things might use). For convenience I used SMF's package manager to get the plugins onto the server and files in the right places, then SD's code deals with activation and making them work.

Since that was already the case, I moved SD plugins into their own block of the package manager which is a template edit to expand. (Were I in charge of this, I wouldn't have it as a template edit, I wouldn't require one, I'd have the setup of the $context variables specifically to avoid needing any kind of edit, but that's me.)

There are only a handful of mods for the package manager, one of which I wrote, and I knew full well that it wouldn't be a problem to integrate this in with it.

Lastly, track IP. Underneath the 'list of posts from this IP', we add 'list of helpdesk posts from this IP'. It's not commonly modified, and it's just another call to the generic list template, really, so that's a not a problem either - it's just that if the template weren't a single monolith but a list of templates, it would be trivial to add another.
Quote
but potentially they could be used for hooks (e.g. instead of something liek query_see_board.)
I actually made is substantially easier for a mod to declare such things, and add them to the query; it's now possible to define your own without having to modify the DB code itself - which is the sort of thing I meant when I said that hooks weren't the only thing to contend with.
Quote
Well, I agree with designing in a way that this is not necessary to think about.  Just like security; anything that can be made automatic is better that way, as long as it doesn't have other downsides
That's really what I'm trying to do, is to make it possible to automate as much as possible without having to make mod authors and/or mod users deal with it.
Quote
Sure.  Although that can't do everything.  Imagine if the recycle bin functionality were to be made a mod (in fact, I'm fairly sure it was at first.)
Something like that would have to be done as manual edits, I don't think there's any way around that - but on the other hand, something like that should be in the core anyway.
Quote
Then you need to at least do code review.
There is an informal code review going on with commits.
Quote
So you're screwed that way too, even without the package manager needing things writable.
*nods* But it was still hitting and enveloping instances that weren't running suexec, too, because of elevated permissions. Most people do not modify their permissions back after the event, because it's convenient for them not to have to do so.
Quote
Not true.  Two plugins hooking the same hook can also cause issues
Sure they can, but it's far more common when it's file editing going on. Looking at the sorts of stuff that was emerging in SMF's ecosystem, the vast majority was additive rather than anything else, such that the order of installation for most things wouldn't be an issue at all in most cases. And usually, where order of installation is important for some reason, it's either documented by the mod author (who can also deal with support), or they deal with it in the mod itself (e.g. SlammedDime's SimpleSEF periodically makes sure it is the last hook called - though I recognise that it's possible a second mod will attempt to do the same and cause issues that way, but I gotta say that's very much an edge case there, order of execution is not that much of an issue for the *majority* of mods)
Quote
That doesn't seem wrong to me, in any case.  That said, if it's becoming necessary, that seems bad.
I don't think it's becoming necessary. But it is becoming far more common, that people seem to feel it is becoming more necessary because there is a hurdle for them to overcome. The majority of admins want it to just work and become very upset/flustered when it doesn't, especially when it goes wrong and really breaks something.
Quote
Well, unless major changes happen again, as did with SMF 2.0.  What if they separate out the core, and now all the syntax for everything has to change again?  Are these "maintenance" areas really big problems between e.g. 1.1.1 and 1.1.2, etc.?
When you have any big jump, that's going to be expected. With a big jump you expect to have to do stuff like that. But between small version jumps, you shouldn't have to do much, if anything. Yet there are a great many mods that interfere with version updates and vice versa.

SMF is really a bad case to discuss this sort of thing. SimpleDesk now has less maintenance and editing in the really key areas - and they're the key areas that are high-maintenance: actions, admin menu, permissions, plus it has less maintenance by using a hook for one of the display template functions too.

Yes, when 2.1 rolls around it will need to be modified, of course. But for the meantime I can rest easy in that mods and updates shouldn't affect those parts of SimpleDesk - at all.

If anything, it's going to be less hassle than developing alongside the RCs was, because each RC brought new things with it that weren't bug fixes (RC3, 4, 5 and final all brought style specific changes, RC4, 5 and final all brought hook related changes)
Quote
Yeah, I know it was there, initially it wiped out installed.list IIRC.  I think we moved to a database to remove the requirement of that file being writable, and may never have fully moved everything over.
That's the problem: it's all in the database, and the upgrader doesn't deal with it properly. The file is still present, though, it just contains the timestamp of the last install. Quite *why* it does that, I have no idea.
Quote
Which means, in other words, that they were betas.  And if the last RC and the final and major behavioral changes (which I gather it did), then basically a release candidate was never made.
That's pretty much the story of 2.0 from RC1 onwards. Each release brought changes that were ultimately non trivial.
Quote
This sounds like a bad idea.  I would rather just say "hey, this version says it won't work, want to try it anyway?"  I even thought it did that.... but I guess it probably doesn't.
You can't do it that way: remember we talked about multiple versions being handled in the same package? There's your reason not to do it that way. Imagine you have a mod that states it supports 1.1.13 and 2.0 RC5, and you're on 1.1.14. Which set of instructions should it use as a 'default' fallback?
Quote
This always felt like a hack to me, actually, and I never felt completely comfortable with the way board specific permissions kinda shook out.  They still confuse me, which is a bad sign.
Board permissions confuse a lot of people and 2.0's move to using profiles for boards is even more confusing. I know the entire setup needs to change but I'm not yet sure which way to go for the best.
Quote
At least we're not (or at least I hope I'm not) arguing about the color of the bikeshed.
I don't think we are, and that's not what I meant by my comment either. We agree there are issues with the current state of play, and we agree on how some of those issues may be resolved, and disagree on others - but really, our ground is not that uncommon, we're seeing the same issues with different coloured glasses. You're coming at it from your point of view, wherein maintenance and bugfixes - and practical measures that apply - are more important, while I'm coming from trying to make it as easy to use and possible for users, to minimise their hassle. Call it glass-half-full vs glass-half-empty at this point, because that's what it is, really.
Quote
Does SMF's system yet allow for multiple subtemplates to be used on the same page?  Example: "poll", "poll", "calendar", "post_list"?  I think I mentioned on SMF I have since moved to this system (and TOX-G uses it too.)
No, it doesn't. It can do template layers and a single inner-most template. Wedge does not have that limitation and we already use it in this fashion in a few places - though not nearly enough.
Quote
Actually, a reason not to have things in the core also is attack surface.
I can see that as an argument, it's entirely valid. And to your last point here in particular about file permissions... most users really do not want to have to do that. They want it to work as simply and cleanly as possible - and juggling file permissions is not part of that, IMHO.

From my perspective, the calendar as it stands is not that useful, so having it in core is not necessarily the smartest move, but if it were to be more useful, there would be more reason for it to be present.
Quote
Sure, except it can narrow the mindset.
I don't think there's any way to avoid that, though. Every time someone writes some code and releases it, it adds to the total substance of what's available - and every time that happens, there's one or more people out there who won't roll their own version of the same. From my POV, I see it as priming the pump for the most part, because I know others out there will think of ways to expand on what we come up with, and I know I won't be writing every possible permutation of mod either, so others who want it differently will invariably come up with their own spin on it.
7053
Off-topic / Re: Unknown's thoughts on Wedge
« on July 4th, 2011, 08:41 AM »
There's a lot of stuff in there for me to digest, but what live is saying is that you have to include a file every single runtime, or everywhere in the admin panel in order for it to be called. While that might not be bad if you have a few things that run every page, it's a bit excessive.

You have to load a file to add an action, for example, which defeats the nature of the action loader loading other files.
7054
Features / Re: Assign moderator to topic function
« on July 4th, 2011, 12:58 AM »
Why would it make sense?[1]

Why would you need to assign a single topic to one or more people, when presumably you already have people moderating for the board it's in?
 1. Saying that "it would make sense" implies that it's obvious to both you and me that it *should* make sense, except that it doesn't. It makes sense to you, but I'm not seeing it. Explain why it makes sense, then maybe I'll agree...
7055
Features: Forward thinking / Re: Objects
« on July 3rd, 2011, 11:01 PM »
wesql is what it is right now, that's the only claim that can be made of it. It was one of the first big things I did, and it was done the way it was done for a reason: breaking the cycle.

I never really expected it to be the final "this is how it will be done", but more than that I recognise the importance of moving. I've seen things killed by "analysis paralysis", where you spend so long staring at it, and tweaking the design, that you just end up never actually implementing it. I've even found myself hitting it more than I'd like so far and it's been the silent killer of my productivity.

So by making the change generally, it's the start of something bigger, rather than the destination in its own right...
7056
Features: Forward thinking / Re: Code clean-up
« on July 3rd, 2011, 06:06 PM »
There are far more useful things for us to worry about in terms of performance than that.
7057
Features: Forward thinking / Re: Objects
« on July 3rd, 2011, 06:06 PM »
Quote
In SMF you'd assign it to another variable
You don't know SMF very well, then. Every single one of the $smcFunc DB functions supports passing the connection identifier to it as a parameter and using the global one if not provided. My singleton works the same way so I do not need another class.
7058
Features: Posts & Topics / Re: Like/dislike
« on July 3rd, 2011, 02:11 PM »
I really, REALLY dislike karma as a concept. This, unfortunately, even more so.

With your methodology, users who have a run of being unpopular will not only be pushed out of the community forcibly, they don't even have much of a chance to redeem themselves.

Plus, it has the single worst characteristic of a meritocracy: long term members who have voice can easily and effectively shut out new people in the community by never giving them much of a say in the first place. It means their crown can never be challenged, so to speak.

The *only* way I'd ever support such a solution is if downvoting, in whatever form, cost the user some of their reputation in order to make.

I do not see us supporting this in the core, doing it as any kind of mod is likely to be frustratingly complex no matter how flexible we make the modding system.
7059
Features: Forward thinking / Re: Objects
« on July 3rd, 2011, 12:07 PM »
Quote
It is the same in the sense that it isn't object oriented. If all you're using a class for is a function wrapper, use namespaces.
We're still looking at 5.2 as the minimum acceptable version, where namespaces aren't available.
Quote
Each query and each connection should be a separate object... because they are.
No, they're not. Connection, yes, query, no.

In any case, consider the structure that both SMF and Wedge use: they create a single connection for the persistence of runtime (as far as possible) and in SMF's case it's stored in a global variable. I've just attached that to the singleton because that actually makes more sense to me than using global variables. There is no need for it to be in global scope, nor any need for anything other than the singleton to access it - so there is more at stake here than just namespacing in another form, visibility is important too.
Quote
how would you work it if you wanted to have multiple connections?
Exact same way you do in SMF, if you really need to do that. The fact is, though, the occurrences of it are so rare it's almost not worth worrying about. And while you dislike it, it solves a number of practical issues for modders, namely having to worry about $smcFunc or its analogue being in scope - it "just works". They don't have to worry about the finer points.
Quote
it is the method I followed when I shared by own code for DB hooking, although in that case I kept result in the query itself(Similar to how PDO does it).
And that's probably how we'll move towards it being. Right now there is absolutely no need for it to be separate objects all over the show with scope and visibility being far more complex than they need to be.
7060
Features / Re: New revs
« on July 3rd, 2011, 02:31 AM »
Revision: 828
Author: arantor
Date: 01:30:53, 03 July 2011
Message:
! Fixed some more oddities with the subtemplate not being called right. Also, split up AdminHome into two functions - there is no need for the admin front page to actually do everything needed for the credits as well, and vice versa. (Admin.php)
----
Modified : /trunk/Sources/Admin.php
7061
Features / Re: New revs
« on July 3rd, 2011, 02:16 AM »
Revision: 826
Author: arantor
Date: 01:14:40, 03 July 2011
Message:
! The sidebar has more dependencies than I thought it did, need to make sure the list of admins is obtained and that the JavaScript is included where necessary. (Admin.php, Admin.template.php)
----
Modified : /trunk/Sources/Admin.php
Modified : /trunk/Themes/default/Admin.template.php

Posted: July 3rd, 2011, 02:14 AM

Revision: 827
Author: arantor
Date: 01:16:14, 03 July 2011
Message:
! And oops, a missing global variable or two... (Admin.php)
----
Modified : /trunk/Sources/Admin.php
7062
Features: Theming / Re: JavaScript caching
« on July 3rd, 2011, 01:57 AM »
Oh, I remember that discussion now. It was about what JavaScriptEscape did, and why it was necessary to call it for URLs - because there were all kinds of bad URLs getting into Google (namely the one indicated with %msg_id% in it)
7063
Features / Re: New revs
« on July 3rd, 2011, 01:44 AM »
Revision: 825
Author: arantor
Date: 00:44:09, 03 July 2011
Message:
! Moved the news and version info into the sidebar (and if the menu is in sidebar, it'll be under the menu though that's not going to be an issue for long), plus fixed the styling and language strings to match (Admin.php, Admin.template.php, Admin.english.php, admin.css, index.rtl.css)
! Removed the AdminSearchOM function. Not only do we not use it (because we don't have an online manual to search), the chances are if and when we do, we won't use the same method they had anyway, meaning that we don't really want it around. (Admin.php, Admin.template.php, Admin.english.php, Admin.french.php)
----
Modified : /trunk/Sources/Admin.php
Modified : /trunk/Themes/default/Admin.template.php
Modified : /trunk/Themes/default/languages/Admin.english.php
Modified : /trunk/Themes/default/languages/Admin.french.php
Modified : /trunk/Themes/default/styles/admin.css
Modified : /trunk/Themes/default/styles/index.rtl.css
7064
Features / Re: New revs
« on July 3rd, 2011, 12:56 AM »
Revision: 824
Author: arantor
Date: 23:56:29, 02 July 2011
Message:
! Remove 'Reports Generation' from Core Features. I mean, it was enabled already and all the Core Feature option does is show/hide the area, it's not like it actually prevents any ongoing performance problems, so there really wasn't much point actually making it optional in the first place. (install.sql, Admin.php, ManageSettings.php, ManageSettings.english.php, ManageSettings.french.php)
----
Modified : /trunk/Sources/Admin.php
Modified : /trunk/Sources/ManageSettings.php
Modified : /trunk/Themes/default/languages/ManageSettings.english.php
Modified : /trunk/Themes/default/languages/ManageSettings.french.php
Modified : /trunk/other/install.sql
7065
Features: Theming / Re: JavaScript caching
« on July 2nd, 2011, 10:34 PM »
The usual rule is 30 days, so it's no surprise. Though I thought they'd be glad to see the back of me to be honest.