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.
7081
Off-topic / Re: Unknown's thoughts on Wedge
« on June 30th, 2011, 04:09 PM »
Before I answer the rest, as I only just got home, I want to answer one point.
I pretty much came into really writing SMF mods around RC1 emerging, and had to contend with changes of code between each of the RCs. Each upgrade of SMF therein was a full upload-of-files-on-top-of-the-old, with the exceptions of 2.0 RC1-1, 2.0 RC1.2 (security patches on top of RC1, mirrored in 1.1.9 and 1.1.10) and a patch for 2.0 RC4.
And this has been the case for 2 years. Yet adoption of 2.0 still occurred, in spite of the fact that users had to reinstall - but upgrading was held back. There are plenty of users still on RC3 because the mods weren't fixed thereafter - a number of mods did play nicely and targeted comments in the source, as opposed to code that might change, and then the dev team tidied up the comments by fixing typos and so on.
I pretty much came into really writing SMF mods around RC1 emerging, and had to contend with changes of code between each of the RCs. Each upgrade of SMF therein was a full upload-of-files-on-top-of-the-old, with the exceptions of 2.0 RC1-1, 2.0 RC1.2 (security patches on top of RC1, mirrored in 1.1.9 and 1.1.10) and a patch for 2.0 RC4.
And this has been the case for 2 years. Yet adoption of 2.0 still occurred, in spite of the fact that users had to reinstall - but upgrading was held back. There are plenty of users still on RC3 because the mods weren't fixed thereafter - a number of mods did play nicely and targeted comments in the source, as opposed to code that might change, and then the dev team tidied up the comments by fixing typos and so on.
7082
The Pub / Re: Wedge on lighttpd or nginx
« on June 30th, 2011, 03:53 PM »
lighttpd, yes, seeing how it is intended to be 100% compatible with Apache. Have they fixed the ridiculously crippling memory leaks yet?
nginx is a different story altogether, and it's possible the pretty URLs code will need tweaking to work on it.
nginx is a different story altogether, and it's possible the pretty URLs code will need tweaking to work on it.
7083
Off-topic / Re: Unknown's thoughts on Wedge
« on June 29th, 2011, 01:06 PM »
Oh, of course they could be updated, because I've learned a great deal in the last decade. But here's the thing: won't someone PLEASE think of the users? :P
Innovative is nice, but so is building something that doesn't make me feel like it's a ball and chain tying me down. I do not want to find myself in a year's time feeling burned out from having to deal with the support requests that SMF has to deal with.
Innovative is nice, but so is building something that doesn't make me feel like it's a ball and chain tying me down. I do not want to find myself in a year's time feeling burned out from having to deal with the support requests that SMF has to deal with.
7084
Off-topic / Re: Unknown's thoughts on Wedge
« on June 29th, 2011, 10:49 AM »
See, here's what people don't realise about me.
Before I came to PHP, I did ASP.Classic, and before that, Visual Basic itself. Except I was doing stuff using the Windows API itself because VB's own set.
And the stuff I wrote 10 years ago... with one exception, it all still works on Windows 7. That particular exception is because of an API that was deprecated back in 2000, and naturally doesn't exist now. If you can do this on an operating system, why can't we apply the same basic techniques to programming in a higher level environment?
As far as what I want Wedge to be, I want to take SMF and fix what I see as the problems in it, mostly for users but solving some of those that I saw for modders too. I want to be able to write extensions for it that don't require me to babysit them as versions change unless something dramatic happens.
SimpleDesk was mentioned earlier on; I want to be able to create a counterpart for Wedge that doesn't require version specific hacks. I want to be able to create something that big and scary that runs on multiple versions and doesn't require me to patch it, or update its listing, just because a new version of Wedge came out.
I want to be able to port my mods to Wedge. I want to be able to write some of the other mods I've thought about over the last 2 years, except the frustration involved in writing most of them in a way that won't cause me to do support is why I didn't.
Before I came to PHP, I did ASP.Classic, and before that, Visual Basic itself. Except I was doing stuff using the Windows API itself because VB's own set.
And the stuff I wrote 10 years ago... with one exception, it all still works on Windows 7. That particular exception is because of an API that was deprecated back in 2000, and naturally doesn't exist now. If you can do this on an operating system, why can't we apply the same basic techniques to programming in a higher level environment?
As far as what I want Wedge to be, I want to take SMF and fix what I see as the problems in it, mostly for users but solving some of those that I saw for modders too. I want to be able to write extensions for it that don't require me to babysit them as versions change unless something dramatic happens.
SimpleDesk was mentioned earlier on; I want to be able to create a counterpart for Wedge that doesn't require version specific hacks. I want to be able to create something that big and scary that runs on multiple versions and doesn't require me to patch it, or update its listing, just because a new version of Wedge came out.
I want to be able to port my mods to Wedge. I want to be able to write some of the other mods I've thought about over the last 2 years, except the frustration involved in writing most of them in a way that won't cause me to do support is why I didn't.
7085
Off-topic / Re: Unknown's thoughts on Wedge
« on June 29th, 2011, 10:12 AM »Arantor, at some point you are going to need to rely on versions or you will never move forward. You can loosely couple but if you overdo that, you wind up with Limp instead of Wedge ;)
7086
Off-topic / Re: Unknown's thoughts on Wedge
« on June 28th, 2011, 11:28 PM »
That's the thing: it could be a good kick up the arse to do it right the first time, or a middle-finger because so many modders wouldn't sit and maintain mods for different SMF RCs, which is virtually the same thing on a technical level, if not a semantic one.
Plenty of examples and docs should help though.
Plenty of examples and docs should help though.
7087
Off-topic / Re: Unknown's thoughts on Wedge
« on June 28th, 2011, 10:55 PM »
OK, so I've had time to settle, digest and figure out what I want from this, and why, including what I want as a regular admin/user as well as a mod developer.
I want mods that do not have to rely on version checking. I want to avoid all the explicit checks that SMF has to make.
I want it so mods will *most likely* work between different versions. There are so many threads and questions about mods that only state a given version or versions, and whether they'll work on a later version. Even with SMF's policy of pushing out patches, people still ask whether a given mod will work or not because most people don't know or want to have to get involved.
Going primarily hook based means this sort of thing can be minimised because you have a setup whereby you can tell what mods are "most likely compatible" automatically, by whether a given mod requires what hooks and whether those hooks are present or not.
Having direct edits threatens this on a variety of levels, because you can't really determine *reliably* if it'll work. All you can do is validate whether the same code still exists or not which from bitter experience, isn't that reliable.
Retaining file edits does encourage version dependent coding. It also doesn't discourage abandonment - mod authors, generally, want to do as little as possible to maintain their mods. Making them do any more work will discourage them from writing mods. There are a great many mods on sm.org that are perfectly functional on current versions, but due to version checking brittleness, aren't used (and breed questions as above)
That said, there is a place for file edits. If they were used, the version checking would have to be used - that alone should be fair motivation for them to avoid doing file edits where possible.
As a user, I just want them to work. I don't want to have to fudge version checks with version-emulate, no matter how convenient it is to override it. I want it to work and not have to inconvenience the mod author any more than necessary. (And if I can encourage them to do it a better way by making it less work for them, awesome.)
I also know from bitter experience that mods editing files can be a pain. Incidentally, the problem is confined to specific classes rather than general. Most of my mods never had many problems because I was careful to avoid making more edits than necessary, and I would go to ridiculous lengths to avoid template edits except in the admin templates (e.g. SD 2.0 edits the IP tracking area of the profile, the manage attachments template and the packages template, and that's it, despite interacting with the board index and the main index templates)
What tends to happen is that mods which hit up the same place tend to collide, for the obvious reason, not only code collision but mods conflict with each other subtly; there's a mod, for example, that converts the board index layout to have a separate posts and topics column rather than a unified column - but any mod that then tweaks the layout (or has a different layout entirely) is going to conflict. (As it happens, I did most of this for SD in one of the output buffers, so it wasn't an issue)
Thing is, that's not going to go away, even with hooks. But it will be a lot easier if done with hooks and made easier to manipulate.
The consequence is that manual intervention is deemed the norm, even expected. It's hassle for the mod author and hassle for the user, and separating it structurally will make it easier. But it won't fix everything, so hooks will possibly make it more complex, but could often solve most of the problems if done properly.
So, let's assume for the present that we do preserve file edits, and that we make it discouraged (big warnings, etc.), we still have to contend with file permissions. I have seen far too many cases where file permissions are a headache, even with WordPress upgrade installs, and I dislike the problems it causes:
1. It makes people have higher permissions than they actually need.
2. It is a major cause of people hitting mod_security errors where they throw 777 permissions at everything.
3. It is very likely also a contributor towards installations being compromised and hacked. That was partly why the krisbarteo hack in 2009 was so successful, so many setups had permissions they shouldn't, meaning a dangerous attachment was able to trigger and infect any SMF files it could find. In some cases it was even observed to be the entrance for an entire server to be compromised.
While it can be 'made more reliable', I have lost count of the number of support issues that emerge every single day with SMF because of file permissions. Admins don't want to be bothered by it, they just want to install things without having to run a gauntlet. They just want to, at worst, set it up once and then it's done.
Add to that, people are naive. I have also lost count of the number of people who deleted a package and expected it to be removed. More than that, if a single file edit is going to fail, most people will assume there is a problem with the mod, plus most mod authors end up being expected to field problems with installation even if it's an SMF issue.
I could go on, I can find you more and more reasons to discourage file edits, and I hope this is enough to discourage mod authors where possible.
I mentioned before about specific classes of mod having issues. It's funny how the classes of mod that have trouble are that already mentioned, and the big mods. I remember in the early days having to spend time juggling SD's code to avoid tripping up on the portals, and even then people still have to uninstall things in the right order. This is something that, as far as I'm concerned, should just not be necessary for typical users to have to contend with.
It also implies a mod registry in the database being maintained, and having seen how many times there have been problems with this, it's even more a cause for concern (any mod that's manually installed will not appear in any of the registries unless the install was still performed and failed edits done afterwards)
What I propose, then, is that hooks are strongly encouraged (and, let's be honest, I expect to write most of the 'most wanted' mods myself) but that we do keep file edits. But, not only do we have warnings, we make the user have to manually enable it first, to understand all the consequences. Plus, we can manage it through the repository to advise the user that manual edits will be required.
In other words: I'm prepared to accept mods doing file edits if we make it a not unreasonable hurdle, and to use hooks for most things, because while file edits are convenient for the modder, they're not beneficial for the user, and it actively makes it harder to work on in the long run.
I still think it will cause friction because modders are still going to do that because they're used to it. I also think it will breed all the bad habits that SMF has - and I would rather breed a better experience for users than the developer experience, but I can see the benefits to keeping file edits.
I would retain the warnings etc even for Wedge patches because I don't see it being any better. Our intention for updates is for proper upgrade packages like SMF's rather than patches, which is better when using hooks because you don't have to wait for modders to update and in most cases you can update and just carry on using mods as you were before.
Mods that require direct edits will naturally require version bindings, but everything else can be function detection based. I'll be sure to write mods that don't require file edits, and since that will settle a decent proportion of the 'most wanted', I suspect it'll encourage good habits.
But I think any more than that will be a case of putting out the tools and hoping developers make use of them - we can encourage, we can demonstrate but we can't make them do it... and if we did *make* them, we'd be no better than the environment we left behind, and to me it would compromise the very freedom that Wedge was founded on.
I want mods that do not have to rely on version checking. I want to avoid all the explicit checks that SMF has to make.
I want it so mods will *most likely* work between different versions. There are so many threads and questions about mods that only state a given version or versions, and whether they'll work on a later version. Even with SMF's policy of pushing out patches, people still ask whether a given mod will work or not because most people don't know or want to have to get involved.
Going primarily hook based means this sort of thing can be minimised because you have a setup whereby you can tell what mods are "most likely compatible" automatically, by whether a given mod requires what hooks and whether those hooks are present or not.
Having direct edits threatens this on a variety of levels, because you can't really determine *reliably* if it'll work. All you can do is validate whether the same code still exists or not which from bitter experience, isn't that reliable.
Retaining file edits does encourage version dependent coding. It also doesn't discourage abandonment - mod authors, generally, want to do as little as possible to maintain their mods. Making them do any more work will discourage them from writing mods. There are a great many mods on sm.org that are perfectly functional on current versions, but due to version checking brittleness, aren't used (and breed questions as above)
That said, there is a place for file edits. If they were used, the version checking would have to be used - that alone should be fair motivation for them to avoid doing file edits where possible.
As a user, I just want them to work. I don't want to have to fudge version checks with version-emulate, no matter how convenient it is to override it. I want it to work and not have to inconvenience the mod author any more than necessary. (And if I can encourage them to do it a better way by making it less work for them, awesome.)
I also know from bitter experience that mods editing files can be a pain. Incidentally, the problem is confined to specific classes rather than general. Most of my mods never had many problems because I was careful to avoid making more edits than necessary, and I would go to ridiculous lengths to avoid template edits except in the admin templates (e.g. SD 2.0 edits the IP tracking area of the profile, the manage attachments template and the packages template, and that's it, despite interacting with the board index and the main index templates)
What tends to happen is that mods which hit up the same place tend to collide, for the obvious reason, not only code collision but mods conflict with each other subtly; there's a mod, for example, that converts the board index layout to have a separate posts and topics column rather than a unified column - but any mod that then tweaks the layout (or has a different layout entirely) is going to conflict. (As it happens, I did most of this for SD in one of the output buffers, so it wasn't an issue)
Thing is, that's not going to go away, even with hooks. But it will be a lot easier if done with hooks and made easier to manipulate.
The consequence is that manual intervention is deemed the norm, even expected. It's hassle for the mod author and hassle for the user, and separating it structurally will make it easier. But it won't fix everything, so hooks will possibly make it more complex, but could often solve most of the problems if done properly.
So, let's assume for the present that we do preserve file edits, and that we make it discouraged (big warnings, etc.), we still have to contend with file permissions. I have seen far too many cases where file permissions are a headache, even with WordPress upgrade installs, and I dislike the problems it causes:
1. It makes people have higher permissions than they actually need.
2. It is a major cause of people hitting mod_security errors where they throw 777 permissions at everything.
3. It is very likely also a contributor towards installations being compromised and hacked. That was partly why the krisbarteo hack in 2009 was so successful, so many setups had permissions they shouldn't, meaning a dangerous attachment was able to trigger and infect any SMF files it could find. In some cases it was even observed to be the entrance for an entire server to be compromised.
While it can be 'made more reliable', I have lost count of the number of support issues that emerge every single day with SMF because of file permissions. Admins don't want to be bothered by it, they just want to install things without having to run a gauntlet. They just want to, at worst, set it up once and then it's done.
Add to that, people are naive. I have also lost count of the number of people who deleted a package and expected it to be removed. More than that, if a single file edit is going to fail, most people will assume there is a problem with the mod, plus most mod authors end up being expected to field problems with installation even if it's an SMF issue.
I could go on, I can find you more and more reasons to discourage file edits, and I hope this is enough to discourage mod authors where possible.
I mentioned before about specific classes of mod having issues. It's funny how the classes of mod that have trouble are that already mentioned, and the big mods. I remember in the early days having to spend time juggling SD's code to avoid tripping up on the portals, and even then people still have to uninstall things in the right order. This is something that, as far as I'm concerned, should just not be necessary for typical users to have to contend with.
It also implies a mod registry in the database being maintained, and having seen how many times there have been problems with this, it's even more a cause for concern (any mod that's manually installed will not appear in any of the registries unless the install was still performed and failed edits done afterwards)
What I propose, then, is that hooks are strongly encouraged (and, let's be honest, I expect to write most of the 'most wanted' mods myself) but that we do keep file edits. But, not only do we have warnings, we make the user have to manually enable it first, to understand all the consequences. Plus, we can manage it through the repository to advise the user that manual edits will be required.
In other words: I'm prepared to accept mods doing file edits if we make it a not unreasonable hurdle, and to use hooks for most things, because while file edits are convenient for the modder, they're not beneficial for the user, and it actively makes it harder to work on in the long run.
I still think it will cause friction because modders are still going to do that because they're used to it. I also think it will breed all the bad habits that SMF has - and I would rather breed a better experience for users than the developer experience, but I can see the benefits to keeping file edits.
I would retain the warnings etc even for Wedge patches because I don't see it being any better. Our intention for updates is for proper upgrade packages like SMF's rather than patches, which is better when using hooks because you don't have to wait for modders to update and in most cases you can update and just carry on using mods as you were before.
Mods that require direct edits will naturally require version bindings, but everything else can be function detection based. I'll be sure to write mods that don't require file edits, and since that will settle a decent proportion of the 'most wanted', I suspect it'll encourage good habits.
But I think any more than that will be a case of putting out the tools and hoping developers make use of them - we can encourage, we can demonstrate but we can't make them do it... and if we did *make* them, we'd be no better than the environment we left behind, and to me it would compromise the very freedom that Wedge was founded on.
7088
Off-topic / Re: Unknown's thoughts on Wedge
« on June 28th, 2011, 01:18 AM »If he has managed to do Simple Desk 2.0 (a really big mod) using only hooks he may have some ideas that could help you out there.
But since it's become increasingly clear that I'm barking up another wrong tree, I might as well revert what I've done and go with my first plan of enhancing what's there and praying to $deity that my fears are baseless, except I know full well I'm right there.
Anyway. I have more alcohol to drink right now, a hangover for the morning, followed by a 200 mile road trip, just so I can go to a family funeral tomorrow, I'm looking forward to setting out in... a little over 5 hours yay. Have fun discussing it in my absence, but FWIW I already reverted the changes I made, so whatever I do when I come back will be fresh rather than deluding myself that I could fix all the problems I found with SMF, bring on all the worst problems SMF has without much of the solutions I'd hoped and believed could have been solved.
(See, Unknown's someone I look up to and when he says in not so many words that he thinks I'm working off broken logic, I tend to agree with him. Then I remember that he's younger than me and still managed to achieve so much more than I have so far, and I quietly begin to question myself. I hear my beer calling.)
7089
Off-topic / Re: Unknown's thoughts on Wedge
« on June 27th, 2011, 05:22 PM »
We can frown upon it all we like, the fact is if it's available in the core, it will be used because so many people are used to doing it that way. It will encourage people to port from SMF, including all their bad habits, and it will encourage them to do that rather than use all the better methods that we could devise.
In which case, we might as well say fuck it and leave it how it is because that's obviously so much better.
In which case, we might as well say fuck it and leave it how it is because that's obviously so much better.
7090
Features: Posts & Topics / Re: Auto-embedding
« on June 27th, 2011, 10:32 AM »
Well, here's the thing, while you could build an interface, the content for it is very complicated with regular expressions, and if you can cope with regexps, you can add code...
7091
Features: Posts & Topics / Re: Auto-embedding
« on June 27th, 2011, 09:19 AM »
Considering there already is in Aeva...
7092
Off-topic / Re: Unknown's thoughts on Wedge
« on June 26th, 2011, 11:59 PM »
Unfortunately right this moment I don't have time to reply to everything but the stuff I see as really important I'll deal with right now and tackle everything else shortly.Quote And that's because they still depend on version checking. My proposed method explicitly does NOT check for Wedge version.Quote That's one of my points: I don't see people being careful. I see it as enabling the shortest route to a problem, which leads to all the things I mentioned before.Quote Following on from that: I'm not against file edits per se, for all the reasons you've mentioned. I just don't want to leave them in because people will continue using practices they learned in SMF rather than learning new habits, like using hooks where there are hooks available for things.Quote It probably does, I haven't spent any time in their ecosystems. But given the mods submitted, the relative skill level of the coders and so on, the majority are certainly not contributed by veteran coders.
Yes, they do. Look at extensions for Firefox, which don't do any "core edits." Chrome has this problem less, but also the extensions can do a lot less. And, for example, the latest "Page Speed" extension is broken in Chrome, and the latest Closure Inspector is broken in Firefox. Both of these use plugin models.
It's good to warn people not to do things they probably don't want to do. I still think there is an established use case for it, just as long as people are careful.
I'm not saying it will, I'm just saying people will go to manual file edits. I personally think (and have heard from many people) that SMF's managing these for you is still a good idea.
Why does this not affect other software? Are you proposing a different (more selfish) audience uses SMF than other forums?
7093
Off-topic / Re: Unknown's thoughts on Wedge
« on June 26th, 2011, 11:24 PM »
Yes, there are mods that modify the moderation centre, or at least affect it in some way. It's not really a good example though.
Thing is, you mention about mods doing the same as existing... Yet why are there only two gallery mods for SMF? The argument is the same, really.
Thing is, you mention about mods doing the same as existing... Yet why are there only two gallery mods for SMF? The argument is the same, really.
7094
Off-topic / Re: Unknown's thoughts on Wedge
« on June 26th, 2011, 04:01 PM »
No worries about derailing the topic. I think it's important we have this conversation, really! :) This is going to be a long reply, sorry!Quote I'm not opposed to bugfix mods, per se. The fact that someone bothers to find a bug and post a fix is, on the whole, a good thing. I brought it up before, because it's one of the many infuriating things, that they can't seem to agree on a policy and actually stick to it.
In the SMF climate in particular, and in similar other climates, it indicates a few less desirable characteristics:
1. If your community is producing bug fix packages, we have to ask the question why aren't being made part of the core product?
Is it because your release schedule is far too long and people need the bugs fixed before you can/will get a new version out? Or is it because for some other reason, you're actually not going to incorporate that patch into the core?
In the case of the IE8 jumping text bug, having a mod submitted by one of the core dev team, rather than actually fixing it in trunk (considering that, in the timeframe of a matter of days, a patch to 1.1.x was actually released) - I cannot see any justification for *not* patching it.
2. It discourages people from upgrading. To me, an upgrade shouldn't just be about fixing problems, it should be an overall iteration on what was there before, so improvements (not necessarily new features, but improving existing ones) as well as fixing bugs.
I was amazed how many people weren't upgrading to RC5 because of a bug in RC3/4 and that they thought it was sufficient to use the small patch rather than actually doing the upgrade. Some of those people won't upgrade to final even though it has security-related changes.
I don't exactly want to encourage bugfix mods, which won't be possible with just hooks anyway, if nothing else it means that something else is wrong in the development process.Quote Oh, I'm not accepting the poison. Having spoken to as many people as I can on it, the one factor that seems to be causing it predominantly is mods, and that with having to 'dumb down' what they do because of kow-towing to mods, I went the other way. By making it so mods aren't able to touch templates, or at the very least, if they do (through TOX-G), they can do so non-invasively, that hurdle virtually ceases to be a hurdle.
I accept there are uses for direct file edits, but the more I think about it, the harder I find it to justify having direct file editing as a base feature.
The biggest problem with it is that it promotes a certain level of being lazy. For instance, there was a mod that set up a default avatar. The quickest route for most authors to implement that would be a template edit - with all the problems that brings, and far too few authors would have implemented it in loadMemberContext - though it did happen eventually.
Most of the mod authors are not strong programmers, and invariably look for the easiest route to implement something, which means template edits in the first line of attack, source edits in the second, and almost never taking advantage of the resources actually in SMF to pull some of it off.
It's only since RC4 and RC5 that we're starting to see authors actually take the time and effort to figure out smarter ways of implementing mods, i.e. using the expanded hooks now in SMF. (It's still broken, structurally, but it's a lot better than it was.)Quote Not to me, it's not. The comparative statement would be "ah, PHP 4 classes suck, so no one uses them. Why does no-one use them?" IOW, start by figuring out why no-one uses them, what is it they're after, what is it about the current behaviour that's broken?
When I asked myself the same question about the package manager, about what was broken, about what I wanted to see it capable of, I came up with the following:
* File permissions, and making files writable to PHP, is one of the single most asked questions on the support boards -> can we make mods that don't need to make the core files writable?
* Mods only working on certain versions, people asking whether mods will be updated -> does a mod expressly have to ask for a version, or can it attempt to determine if all the features it needs are available?
* Mods searching for code and not finding it, because the original code has been modified (either by a later version, wherein even the comments get modified sometimes, or by another mod) -> can we make mods that either don't need to modify the files, or can better manage to sort themselves out without having to trip over each other?
* Mods that need to modify templates -> why do they need to modify templates? Does it always have to be a template edit, or is it about the data the templates output? Can content be injected into a template in some other fashion?
The first one screams hooks. The second works better if hooks are available because you can even do detection then based on an add-on requiring certain hooks in order to work, and if they're not available, it won't work. The third just generally pushes away from editing files in general, and the last implies something like TOX-G.
It wasn't entirely a knee-jerk reaction as Nao could probably confirm; originally I planned to make the package manager be able to handle more, like registering hooks and so on from the get-go without having to dive into making an installer script, but the more we talked about it, the more I felt comfortable abandoning file edits in the base.Quote It does come up regularly enough. I'm not sure what you couldn't do with strategic insertion of hooks, it doesn't need to be insane.Quote Or, as I tend to find, you're solving the wrong problem: the solution applied is right for a different problem to the one you thought you had. I don't honestly think the approach I'm pushing for is wrong. It has pros and it has cons, like everything else, and I believe that overall, the pros outweigh the cons more than in the current scenario.Quote It's not that hard to figure out. But premium sites can't use it because by definition everything in a package server has to be accessible by a simple GET and as far as I can tell, without any authentication handling.Quote To me that's a consequence of everything else: all the stuff we've talked about here, seems to me to discourage creators from creating new big stuff, and to a lesser degree, new little stuff too. I would note that all the big projects (the portals, Aeva, SimpleDesk) almost without exception go back 2+ years - SimpleDesk is the only really sizeable mod that turned up in 2010 from what I remember, though there are a handful of modestly sized mods (such as the WP user integration or SimpleSEF) from the same sort of timeframe. What I'm getting at is that the big stuff goes back and the smaller stuff is what's emerging - no doubt 2.0's slow dev cycle was a major factor in that too, with no-one really willing to contribute anything until 2.0 final came in, with all the retesting and updates required for each RC.
The thing most people seem to forget is that the bulk of mod authors aren't people just writing stuff to give away - they tend to write it for themselves and their site, then share.
Going back to the list of mods in particular:Quote It's a tweak, changing the existing behaviour. It's not really a 'new feature', is it?Quote This is a particularly weird case. It is actually a core feature, just one that has no admin interface and is undocumented. All the mod package does is provide that interface in the admin panel. (It's been a core feature for years, too.)Quote See above. If you have to accept bugfix mods, there needs to be a reason why they're not in the core, especially when they affect a lot of users.Quote The Google +1 button is in between being a 'tweak' and being a new feature of sorts. And any such change, where it is per post, seems to me like it's tweaking the layout and presentation - and an ideal candidate for something like TOX-G, rather than having to modify any code.Quote Yes. It's even implemented actually using hooks, too.Quote jQuery is a core feature in Wedge and is slated to be in SMF 2.1 too. But it's slightly awkward that there's no facility to figure out what JS is being included and whether you need to include it yourself. (This is possible with Wedge.)Quote Or better IMO, make the editor buttons configurable to the admin, so if they want to add them, they can. But yes, this could be achieved with hooks (even in SMF) and I don't think it is.Quote Well, I'd personally debate that it should be a core feature rather than a mod.
I get the feeling that we're never going to entirely agree on this, but where we're coming from, I think we both feel justified in the stance we take - and are prepared to defend that if necessary. I don't feel uncomfortable with kicking out file edits off the bat, because if they're actually needed, the mod author who needs to use them can document them and deal with it.
The other thing is, a number of the popular SMF mods, I'm going to be writing equivalent (not necessarily replacement) versions of, and making them available, so I'm also making sure the system is capable of the things that I want it to be able to do; I'm not just designing this in some hypothetical vacuum of what it should or should not be able to do, I'm actively building it for my own use as much as anything else.Quote I'm not sure it does, to be honest. I think it's more systemic than that. The mods that are big and scary (SP, TP, Aeva, SimpleDesk etc.) all have one common thing: the actual code editing SMF is relatively small, and everything else is in their own files. Meanwhile the mods that are small are just pure code edits (except for the few that are now hook-only).
You mention phpBB and vBulletin... I thought phpBB mods were still, basically, find/replace instructions. (A cursory examination of the phpBB site seems to bear this out but it is strictly a glance rather than a proper study)
As for vB, I have no idea, never used it as an admin, never particularly wanted to.
But I've seen even large-scale phpBB mods done, well, as lists of file editing, which says to me either there aren't hooks, or they're not really in use much.
I'm not sure why SMF doesn't have much in the mid-range, but I'm fairly sure it's not the review process. Small mods are fine with the find/replace approach, but larger mods invariably tend to need more changes and after a point it becomes too much of a pain to maintain with all the changes, and/or they start outgrowing the confines of doing it like that and start needing their own files.
That all said, I'm willing to bet that part of the problem is simply that most mods are contributed by people in their spare time, without any interest or desire in writing big and complex mods - they wrote things for their own site(s) and leave it at that. They don't need or want big and complex mods, so they don't write them. Which also comes back to the lack of premium contributions - what I've seen tends to be that paid mods come into a market first then free competition springs up in response, but SMF didn't really go over that tipping point.Quote I agree, to a point. The thing is, apart from the fact that it doesn't seem to have hurt MyBB or WordPress (and especially WordPress), I'm not convinced it will restrict to large or tiny mods. As I've proved before now, all kinds of curious things can be done with some ingenuity even in the current SMF environment (like, for instance, adding multiple helpdesk departments as boards to the board index, but using a custom icon, custom description and link and so on - without a single template edit, even if it is woefully ugly because the structure just doesn't support it normally)
There is one overriding factor here. SMF and some hooks and a hook manager won't be enough. It won't solve the problem at all to do that.
For example, permissions. It's easy enough to add new permissions provided all you want to do is add new permissions for per-board profiles or to a group generally, but anything else, you have to implement it yourself from scratch. Aeva, SimpleDesk, Project Tools and others have had to do this, because the existing system only lets you expand it in one dimension when it needs to be able to provide for two - even if it only barely uses the second dimension itself.
Or, the board index as I mentioned above - there's no reason why there couldn't be an expansion of the board index, not only to be able to understand the board structure and hierarchy but also to have some awareness of the *type* of board, so that new things can make use of it if they want.
That's really what we have to do: just expanding hooks on its own won't be enough. We have to make everything else be more open to extension too, and upon doing that, almost anything should be possible.
Bugfix mods make sense IMHO. Easy to remove and then install the official update later. Hard for hooks to do this.
In the SMF climate in particular, and in similar other climates, it indicates a few less desirable characteristics:
1. If your community is producing bug fix packages, we have to ask the question why aren't being made part of the core product?
Is it because your release schedule is far too long and people need the bugs fixed before you can/will get a new version out? Or is it because for some other reason, you're actually not going to incorporate that patch into the core?
In the case of the IE8 jumping text bug, having a mod submitted by one of the core dev team, rather than actually fixing it in trunk (considering that, in the timeframe of a matter of days, a patch to 1.1.x was actually released) - I cannot see any justification for *not* patching it.
2. It discourages people from upgrading. To me, an upgrade shouldn't just be about fixing problems, it should be an overall iteration on what was there before, so improvements (not necessarily new features, but improving existing ones) as well as fixing bugs.
I was amazed how many people weren't upgrading to RC5 because of a bug in RC3/4 and that they thought it was sufficient to use the small patch rather than actually doing the upgrade. Some of those people won't upgrade to final even though it has security-related changes.
I don't exactly want to encourage bugfix mods, which won't be possible with just hooks anyway, if nothing else it means that something else is wrong in the development process.
Definitely. And this is a large problem. However, fixing it by accepting the poison (of no one doing anything interesting) seems like a bad solution to me.
I accept there are uses for direct file edits, but the more I think about it, the harder I find it to justify having direct file editing as a base feature.
The biggest problem with it is that it promotes a certain level of being lazy. For instance, there was a mod that set up a default avatar. The quickest route for most authors to implement that would be a template edit - with all the problems that brings, and far too few authors would have implemented it in loadMemberContext - though it did happen eventually.
Most of the mod authors are not strong programmers, and invariably look for the easiest route to implement something, which means template edits in the first line of attack, source edits in the second, and almost never taking advantage of the resources actually in SMF to pull some of it off.
It's only since RC4 and RC5 that we're starting to see authors actually take the time and effort to figure out smarter ways of implementing mods, i.e. using the expanded hooks now in SMF. (It's still broken, structurally, but it's a lot better than it was.)
It's kinda like if PHP had say, "ah, PHP 4 classes suck, so no one uses them. Got it - let's just remove them in PHP 5."
When I asked myself the same question about the package manager, about what was broken, about what I wanted to see it capable of, I came up with the following:
* File permissions, and making files writable to PHP, is one of the single most asked questions on the support boards -> can we make mods that don't need to make the core files writable?
* Mods only working on certain versions, people asking whether mods will be updated -> does a mod expressly have to ask for a version, or can it attempt to determine if all the features it needs are available?
* Mods searching for code and not finding it, because the original code has been modified (either by a later version, wherein even the comments get modified sometimes, or by another mod) -> can we make mods that either don't need to modify the files, or can better manage to sort themselves out without having to trip over each other?
* Mods that need to modify templates -> why do they need to modify templates? Does it always have to be a template edit, or is it about the data the templates output? Can content be injected into a template in some other fashion?
The first one screams hooks. The second works better if hooks are available because you can even do detection then based on an add-on requiring certain hooks in order to work, and if they're not available, it won't work. The third just generally pushes away from editing files in general, and the last implies something like TOX-G.
It wasn't entirely a knee-jerk reaction as Nao could probably confirm; originally I planned to make the package manager be able to handle more, like registering hooks and so on from the get-go without having to dive into making an installer script, but the more we talked about it, the more I felt comfortable abandoning file edits in the base.
However, something like an "RPG/Shop" mod (a constant request, or at least used to be) is somewhat more specialized and can't always be done via hooks.
Fixing that is a separate issue, though. Overreacting to a problem by fixing it too many ways is a bad fallacy.
Sure. In part, this is probably because building package servers is just plain not documented.
I dunno, having looked around a bit on occasion to help people, I found it very fragmented. I agree that SMF doesn't have an effective set of themes or mods.
The thing most people seem to forget is that the bulk of mod authors aren't people just writing stuff to give away - they tend to write it for themselves and their site, then share.
Going back to the list of mods in particular:
1. I don't see why this shouldn't be a "mod", if you will, just one that applies equally to all themes (if the theme has a facility for showing that type of user information.) This is the sort of problem I tried to fix with TOX-G.
2. This seems like a good candidate for a core feature. Ideally, it should be built to that standard (I'd always wanted to see features "baked" as mods before going into the core, not sure if that ever happened.)
3. Bugfix mods make sense IMHO. Easy to remove and then install the official update later. Hard for hooks to do this.
4. See #1.
5. This definitely seems like hook territory. I assume it's got its own area and doesn't touch other sections.
6. This is a harder problem, but if it uses jQuery.noConflict it shouldn't cause issues even if there's a separate version of jQuery on the page. That said, a consistent js framework is a good idea.
7. Sounds like hook territory.
8. Sounds like a fairly basic mod that has no theme problems.
I get the feeling that we're never going to entirely agree on this, but where we're coming from, I think we both feel justified in the stance we take - and are prepared to defend that if necessary. I don't feel uncomfortable with kicking out file edits off the bat, because if they're actually needed, the mod author who needs to use them can document them and deal with it.
The other thing is, a number of the popular SMF mods, I'm going to be writing equivalent (not necessarily replacement) versions of, and making them available, so I'm also making sure the system is capable of the things that I want it to be able to do; I'm not just designing this in some hypothetical vacuum of what it should or should not be able to do, I'm actively building it for my own use as much as anything else.
I think the reason for small tweaks being the most common kind of mod is that the whole review thing scares away mid-sized mods
You mention phpBB and vBulletin... I thought phpBB mods were still, basically, find/replace instructions. (A cursory examination of the phpBB site seems to bear this out but it is strictly a glance rather than a proper study)
As for vB, I have no idea, never used it as an admin, never particularly wanted to.
But I've seen even large-scale phpBB mods done, well, as lists of file editing, which says to me either there aren't hooks, or they're not really in use much.
I'm not sure why SMF doesn't have much in the mid-range, but I'm fairly sure it's not the review process. Small mods are fine with the find/replace approach, but larger mods invariably tend to need more changes and after a point it becomes too much of a pain to maintain with all the changes, and/or they start outgrowing the confines of doing it like that and start needing their own files.
That all said, I'm willing to bet that part of the problem is simply that most mods are contributed by people in their spare time, without any interest or desire in writing big and complex mods - they wrote things for their own site(s) and leave it at that. They don't need or want big and complex mods, so they don't write them. Which also comes back to the lack of premium contributions - what I've seen tends to be that paid mods come into a market first then free competition springs up in response, but SMF didn't really go over that tipping point.
Hooks cannot possibly solve every thing a mod ought to be able to do, and if they are really enforced, you're only relegating to always being in the situation of large only-just-touching mods and tiny tweak mods.
There is one overriding factor here. SMF and some hooks and a hook manager won't be enough. It won't solve the problem at all to do that.
For example, permissions. It's easy enough to add new permissions provided all you want to do is add new permissions for per-board profiles or to a group generally, but anything else, you have to implement it yourself from scratch. Aeva, SimpleDesk, Project Tools and others have had to do this, because the existing system only lets you expand it in one dimension when it needs to be able to provide for two - even if it only barely uses the second dimension itself.
Or, the board index as I mentioned above - there's no reason why there couldn't be an expansion of the board index, not only to be able to understand the board structure and hierarchy but also to have some awareness of the *type* of board, so that new things can make use of it if they want.
That's really what we have to do: just expanding hooks on its own won't be enough. We have to make everything else be more open to extension too, and upon doing that, almost anything should be possible.
7095
Features / Re: Possible Features For Integration
« on June 26th, 2011, 12:34 PM »Aeva can be used as a download system btw.
Overall go read the feature list boards ;)