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 - Nao
3091
Features: Theming / Re: WESS!?
« on May 2nd, 2013, 09:48 AM »
WeCSS is the old name... John being the only one who prefers it, and there are more things to worry about that this... :P

Anyway, if you'd read the feature list, it has its own topic....
3092
Features: Theming / Re: CSS caching
« on May 2nd, 2013, 07:22 AM »
Meanwhile... everyone's been very busy discussing SMF licensing changes and other things that were already discussed last month... and the month before... etc. I don't get why everyone is wasting their time repeating themselves continually. I get it that people don't give a damn about Wess, I'd just appreciate if they posted to say it here, because that would help me prioritize my own share of work on it...
3093
Features: Theming / Re: CSS caching
« on May 2nd, 2013, 01:35 AM »
Nobody...?
3094
Features: Theming / Re: CSS caching
« on May 1st, 2013, 11:40 PM »
tl:dr; if someone's interested in Wess and caching and everything, please just err... read this post, and give your opinions... I can't really force anyone to get into something this complicated, so I'll guess it'll stay that way, but hopefully I'll sleep over it..? :-/

So... I've sold part of the problem, by removing support for b1/c1 entirely.
I've replaced it with b1/c1 classes that are added next to the dynamic ID that already gives the ability to style the current action... (e.g. <div class="content"><div class="frame b3 c1" id="topic"> means you're in the main content div of a topic page located in board #3, which is part of category #1.)
I don't know yet if it's worth showing the category ID, though...
All in all, I don't even know if everything's really useful, because if your goal is to offer a different layout for a specific board, you can just as well create a new sub-skin, and then assign it to your board, and that's it, you're done... Of course, users are then free to change it... (Are they? I don't remember if we have an option to force a skin no matter what...?)

Still, I need to fix the rest... It's really much, much more complicated than I first expected.

For instance, let's say I'm member #1 and I'm running a skin that has an index.m1.css override. It'll see that keyword, add it to the list of special suffixes, and subsequently to my CSS filename. "member-m1-12345.css.gz" it is. Good.
Now, if by chance I've also added an "@if m1" test within the main index.css file, everything will work just the same. Good.
And that's when you decide to remove the index.m1.css file and move everything to the index.css file itself, ah...
So, Wess will first gather a list of existing file suffixes. Not a single 'm1' among them, so it doesn't test against 'm1' either, and thus doesn't add m1 to the suffix list. So, we're getting a filename that just says, "member". Now, we're accessing the cache that we stored relative to this 'member' key, which will return the complete filename *after* all internal @if tests were done and all positive keywords were added to the filename in the first place... So, that cache entry will return, for instance, 'member', same as the original, because no extra tests were triggered in index.css... Except that yes, we should have returned 'member-m1' instead, because there's a test for m1 in it, right..? Wrong. The cache key 'member' was generated during a page load for member #3854, and member #3854 failed the m1 test, and thus the returned cache key didn't have 'm1' in it... Very obviously.

It can get worse... For instance, if you're changing your language to a RTL one, how exactly do we tell Wess that you are now requiring it to return a positive on all "@if rtl" tests..?

I guess we'd need to either store a list of all tests per skin, and then do quick tests on these on each page load, or instead store the 'final filename' for each user, in their member data. But that DOES mean going through the caching process every time they do something, like a skin/language/sex/mod-status change. NOT FUN.

Another possibility, as mentioned before, would be to store all keywords that would return TRUE in your situation, i.e. at worst every one of your CSS files would start with the filename "member-m1-admin-webkit526.1-win6.1"... Uh. Then again, if ALL files use that filename, the HTML should compress well, but you're also generating a frigging single file per OS/browser/member-status combination. (And that's not even taking m1 into account; unless I use some extra caching, I'll have to get rid of m1 testing as well... Which I'd rather not do, since I've found good use for it even on this site..???)

Anyway... It just means I'm stumped. I can't figure out what the cleanest solution is. Every time I think of something, it feels like a regression to me. "Oh, okay, let's just get rid of board and categories... Oh, and member IDs too... And let's generate 3 times more files than I used to..."

Bugger.

:edit: Yay, this topic triggered the 'new'-indicator-on-quick-edit bug for me... And as always, it's always on the first one and not subsequent ones.
Posted: May 1st, 2013, 11:24 PM

Perhaps I should also ask this simple one:

Which keywords are most likely to be used by a themer, or plugin author, or admin, in crafting their CSS...?

browser (ie6, firefox[17-], whatver...)
os (android, ios[-5], whatever...)
member
guest
rtl
admin
mod
member ID (m1, m2...)
board ID (b1...)
category ID (c1...)

Anything else..?
3095
Other software / Re: My review of customer service on SMF
« on May 1st, 2013, 11:34 PM »
So, IIUC, it's just a waste of my precious time......? :whistle:
3096
Off-topic / Re: WEDGEHAMMER 40,000
« on May 1st, 2013, 11:33 PM »
Quote from Kindred on May 1st, 2013, 07:42 PM
1999 - according to wikiperdia, was indeed IE4...

However, IIRC, it was just IE at the time. and was actually not an inherent part of the operating system until IE5 with Win98 (I don't think IE was integral to Win95, was it?)
No, Win98 was released in 1998, so it couldn't have had IE5 if IE4 was out in 1999... ;)

From what I can remember:
- IE1 was in MS Plus Pack for Win95, a stupid add-on.
- IE2 was a free download; it was great.
- IE3 added support for frames (which were primordial at the time), and had a better looking interface, but wasn't as fast as IE2.
- IE4 was released along with Win98, and this is the version that was 'tightly integrated', had support for dynamic desktops (news feed push), and crap like that; it was much slower than IE4 and more resource-intensive. I hated it, with all my heart.
- IE5 was released a year or two after that one. It was much better. That's when Netscape started to become a thing of the past, as it was becoming horribly bloated (Netscape Communicator...! Who remembers that one!)
- IE6 was even better. At the time, there was just no valid competition. Standards were an anachronism. The real standard was IE6... It hurts me to say that, but at the time, it seemed like an okay browser, and I used it for many years until I had my revelation with Opera 8. Lol.
3097
Other software / Re: My review of customer service on SMF
« on May 1st, 2013, 11:28 PM »
Maybe someone could post the topic URL, so we know what everything's talking about..?
(Not that I care, but...)
3098
Other software / Re: My review of customer service on SMF
« on May 1st, 2013, 08:55 PM »
Quote from Arantor on May 1st, 2013, 07:36 PM
I read the post, I still have no suggestions :(
I think I'll just remove b1 and c1. I can instead add them as classes in the body... ;)
3099
Other software / Re: My review of customer service on SMF
« on May 1st, 2013, 07:32 PM »
+1, watching a Xenoblade speedrun here... :lol:

(Well, really that's because I can't work on caching if I don't know what to do... So, actually my productivity is technically at its lowest right now... :-/)
3100
Off-topic / Re: WEDGEHAMMER 40,000
« on May 1st, 2013, 06:59 PM »
Jelly Bean is also 4.2, so uh... :^^;:

And back in 1999, IE6 didn't exist, heck I'm not even sure IE5 existed at that point... Maybe IE4!
3101
Other software / Re: My review of customer service on SMF
« on May 1st, 2013, 06:58 PM »
......Or you do it my way, and remember that forum topics aren't going to change anyone's life, and most of them are trolls anyway, so there's no point in wasting time "making your point known"... Nobody cares, I'm afraid!
3102
Features: Theming / Re: New theme
« on May 1st, 2013, 06:00 PM »
- web 2.0 is just a marketing word, yes. However, its original definition was that web 1.0 gave power to authors, while web 2.0 added power to the community, i.e. the development of comments in websites and blogs. It is largely accepted that web 2.0 was simply 'inspired' by what Amazon has been doing for a very, very long time (user reviews). From a designer's point of view, the 'web 2.0' definition relates to the trend that took off a few years ago, where websites started using bright, contrasted primitive colors on a white background. Typography is also a large parge of it.

- Wireless is pretty much the same as Weaving, with the exception of a few differences on the homepage, and topic pages showing the userbox on top of messages, rather than to their left... I don't see the reason for comparing the two..? They're the same really, but Wireless is optimized for narrow widths, that's all there is to say..?
3103
Features: Theming / Re: CSS caching
« on May 1st, 2013, 05:56 PM »
I'm having a pretty annoying problem with regards to caching...

So, up until now, I've been naively doing things and just storing these variables in the CSS filename: browser ID and version, OS ID and version, whether you're a member or not, whether you're an admin, or in RTL mode, and whether you're in a certain board or category. If any of these was not used in the suffix list of all CSS files concatenated into one, then the keyword wouldn't be stored. E.g., if you don't have an index.rtl.css file in the file list to be concatenated, *or* your language isn't in RTL mode, you wouldn't see the rtl keyword in the cached filename.

Okay, right...
It all works, until you come to an addition I made to Wess a few months ago: @if keywords... These are used INSIDE the CSS file, and apply to the same things as the file suffixes, i.e. browser, OS, membership details, board ID, etc.
I didn't really use the feature for anything else than is_member and browser testing, and it makes sense.
Then it struck me yesterday, that these really didn't get cached at all... So, I rewrote the cache to take the file contents into account, and add its @if successful tests to the suffix list in the cached filename. Right.

And then all hell broke lose...

@if b1
   color: red
@endif

This doesn't work.
This doesn't work.
This doesn't work.

It only works if you're generating the file when INSIDE board #1. Then it gets properly added to a new file, with 'b1' in its filename.

But if you first generate a file from within another page, it caches the suffix list of successes, and b1 isn't a success, because we're not there... So, if visiting b1 after that, it simply retrieves the default filename, which doesn't have b1 in it.

Possible solutions:

- Never cache files, always rebuild them. Preposterous...

- Do not allow the use of some keywords inside files: b1, c1, m1, things like that... Only allow them inside suffixes of satellite CSS files (index.b1,b2.css). I did my rewrite precisely because I wanted more flexibility for file suffixes, but this update would instead give less flexibility to integrated @if tests...

- Never cache suffix tests (except maybe for 'm' followed by member ID, because we don't want one file per member..?!), always build a different file for each situation; i.e., if I'm the admin and running board 1 in RTL mode, create a new file called member-admin-rtl-b1-12345.css.gz, even if there are no admin or RTL tests within the CSS files themselves...

- Cache the *entire* list of integrated @if tests that FAILED, and then when loading a CSS file, check whether one of these failed tests are actually valid in our current situation; if yes, then re-cache our file with the new situation. Otherwise, just use the currently cached version. This makes handling much more complex than it already is; and is potentially slower, as these tests would all be done on every page load, even if a file is already cached...... :-/

Maybe there's another solution, but I can't think of it...?
I'm quite upset. I should have thought about that yesterday, or something... :-/
3104
Features: Theming / Re: New theme
« on May 1st, 2013, 10:25 AM »
Wedge is super-fast, mostly because its HTML is very tidy and all JavaScript is loaded at the end of the page (except if it's already cached and running fast, then it's loaded at the beginning, because I'm very much a mad optimizer.)
That's one of its points... I've always found SMF to be slower than some competitors like Fluxbb, which to be fair doesn't have the same amount of features or JavaScript. I wanted it to be on par... And still retain the same speed.

Also, most images are loaded through CSS embedding, so it's all a single server hit, meaning you don't get that delay in loading the later icons.

Web 2.0, far from it... I have a WIP skin around, but it's not ready for primetime. It's supposed to be more 2.0ish than the other skins.
3105
Archived fixes / Re: 'Like' Disappears When Clicked
« on April 30th, 2013, 05:59 PM »
Solved in last commit BTW.