Forum upgraded

Posts   
1  /  2
 
    
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 11-Nov-2006 19:08:55   

As you must have seen by now, the forum system has been upgraded to TinyForum v2.0, which has been rebranded to HnD (Help and Discuss, or in short HandD or HnD wink ).

It has a lot of new features, like email notification (switch that on in your profile and then per thread you're posting in), attachments, secure forums so only the topicstarter and people with a given action right can see / access the thread, print-specific view of a thread, search in subject, etc. etc.

It's now running on .NET 2.0, 100% llblgen pro code and we'll release the full sourcecode in a week or so.

The coming week (starting today, 11-nov) we'll closely monitor the forum system to see if there are any glitches or bugs we've to fix.

Please post any glitches, errors etc. in the general chat forum in this thread: http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=8100

We're currently aware of a couple of issues, one of them the search which is slow, though that can be sped up because the query is sometimes not that clever.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 12-Nov-2006 17:45:42   

There was some confusion, the top image had the v2 yellow button and some people thought this forum was just for v2 users. That's not the case, the forums are for everyone using llblgen pro, so I've updated the image a bit. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Posts: 94
Joined: 26-Feb-2006
# Posted on: 13-Nov-2006 11:36:56   

Hey Frans,

what kind of HW are you using to host the forum? Are you using caching extensively?

I am kind of impressed of the performance...

regards

Adrian

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 13-Nov-2006 11:44:12   

adrianporger wrote:

Hey Frans,

what kind of HW are you using to host the forum? Are you using caching extensively?

Single Xeon 2.8Ghz with 1GB ram and scsi raid 1 hdd's. A basic dell pizza box simple_smile . No not extensive caching, just here and there an entity or small set of entities is cached because they're not changing much (section and forum entities for example) and read a lot.

Within a week or so you can see for yourself how it's done, as we're opening up the sourcecode as an example how to use LLBLGen pro in a big application simple_smile

I am kind of impressed of the performance...

Thanks! simple_smile

Well, except for the search that is I think, which is very slow at the moment. I made a mistake I think in the search query, I add several predicates which are forming an OR expression, but this is slowing things down, so I've to rework it abit.

(edit: recomputing the indexes really helped. A search on 'llbl' now takes less than 3 seconds, it was 7. Still too slow, so I've to optimize the query a bit. Note to self: after INSERT INTO .. SELECT .. always recompute indexes wink )

Frans Bouma | Lead developer LLBLGen Pro
psandler
User
Posts: 540
Joined: 22-Feb-2005
# Posted on: 13-Nov-2006 16:35:08   

Hey Frans,

Love the new look. Did you write the forum code yourself? IOW, would you consider the code to follow your idea of best practices for LLBLGen?

Phil

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 13-Nov-2006 16:59:14   

psandler wrote:

Hey Frans,

Love the new look.

Thanks simple_smile

Did you write the forum code yourself? IOW, would you consider the code to follow your idea of best practices for LLBLGen? Phil

V1.0 of tinyforum was completely written by me, we (myself with help from some of our support team members) ported the code over to asp.net 2.0, removed the few procs which were still in use and all views, added new features, and refactored code, and ported the code from hungarian coding style to MS guidelines coding style simple_smile

for webapplications like this one, I'd consider this a good way to do things: use dynamic lists for often-read often changing data with data from multiple tables and calculated aggregates, and use entities where manipulation is performed. validation is outside the entities as webapps are mostly request-response (this one is) so validation is done early-on in the call chain, not later on in the lower regions of the tier stack. We use a BL tier and selfservicing, though don't use lazy loading so you can look at the code as how to use it with adapter.

Though in your application, it might be different, that's why it's so hard to write a reference app to show you how to do it, always. A forum is a somewhat specialistic system where there are a lot of reads and not a lot of writes, which asks for different code than a system where reads and writes are balanced. The code shows however how to utilize a lot of the llblgen pro features (not all of them though) so it can serve as a big example how to utilize a given feature in a real application. simple_smile

(edit). Found the bottleneck in the search. As the search now by default searches on messagetext and also in threadsubject, the query optimizer of sqlserver 2000 makes a mistake, it chooses to table-spool the results of the message filter with contains, if searches are performed on message AND subject. (in an OR clause). When I run the same query on the same data on sqlserver 2005, it's very fast as sqlserver 2005 choses a better execution plan.

We're using sqlserver 2000, so I'll add a dropdown box which allows you to select in what element to search to make this less of a burden.

Frans Bouma | Lead developer LLBLGen Pro
tlf
User
Posts: 8
Joined: 12-Nov-2006
# Posted on: 13-Nov-2006 20:04:58   

Hello,

Is there a particular reason you choose to list topics on one page, then display topic messages on another page?

It would appear to me to be easier to navigate and read if the topics were listed on the left and when you clicked a topic, the messages appeared on the right side of the same page.

Thanks,

TFISHER

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 13-Nov-2006 20:50:29   

tlf wrote:

Hello,

Is there a particular reason you choose to list topics on one page, then display topic messages on another page?

It would appear to me to be easier to navigate and read if the topics were listed on the left and when you clicked a topic, the messages appeared on the right side of the same page. Thanks,

TFISHER

That would only work if the page width would be big. The thing is that when you want to read posts vertically, thus a whole thread, the width of the page should be approx 600px width at least. Showing thread subjects and additional info like on the thread list page, also takes a lot of space, so it's impossible to show them all in one form without sacrificing the information to show, which I wanted to avoid. All forum systems I know (except the Janus support forums, which I don't like for this, as the info isn't that accessable to me IMHO) use this multi-page system.

Frans Bouma | Lead developer LLBLGen Pro
PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 14-Nov-2006 17:23:00   

So, does the system now remember which messages threads you read? Or, does it still use the last date visited cookie?

The new look is nice, but the header is a bit big (height wise).

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 14-Nov-2006 17:26:21   

PilotBob wrote:

So, does the system not remember which messages you read? Or, does it still use the last date visited cookie?

It stores your last visit date on the server. That's the date used to track which posts you might have read.

The first time you now visit the forums after you've logged in might be a little off due to the migration from cookie to user based tracking. I've noticed a little oddness about this, likely caused by the migration from cookie to db based.

Frans Bouma | Lead developer LLBLGen Pro
sparmar2000 avatar
Posts: 341
Joined: 30-Nov-2003
# Posted on: 15-Nov-2006 04:32:49   

Hey Fran

Is my imagination...response time seems to be better now with this upgraded version wink

Walaa avatar
Walaa
Support Team
Posts: 14946
Joined: 21-Aug-2005
# Posted on: 15-Nov-2006 07:23:37   

Response times are far better indeed.

sparmar2000 avatar
Posts: 341
Joined: 30-Nov-2003
# Posted on: 15-Nov-2006 09:17:31   

As you must have seen by now, the forum system has been upgraded to TinyForum v2.0, which has been rebranded to HnD (Help and Discuss, or in short HandD or HnD

and you seem to have a nack for picking unique brand names... HnD wink or was it Aglaia.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-Nov-2006 10:10:35   

sparmar2000 wrote:

As you must have seen by now, the forum system has been upgraded to TinyForum v2.0, which has been rebranded to HnD (Help and Discuss, or in short HandD or HnD

and you seem to have a nack for picking unique brand names... HnD wink or was it Aglaia.

This is Aglaia's work simple_smile I cooked up TinyForum, which wasn't that great either, so it had to change. We had a long debate internally how to call it, numerous names were cooked up, HnD (Help & Discuss) was the final name. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
psandler
User
Posts: 540
Joined: 22-Feb-2005
# Posted on: 15-Nov-2006 15:30:46   

[quotenick="Otis"]

sparmar2000 wrote:

This is Aglaia's work simple_smile I cooked up TinyForum, which wasn't that great either, so it had to change. We had a long debate internally how to call it, numerous names were cooked up, HnD (Help & Discuss) was the final name. simple_smile

I never win "internal debates" with my wife either. simple_smile

PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 15-Nov-2006 16:59:04   

Otis wrote:

It stores your last visit date on the server. That's the date used to track which posts you might have read.

When does it update the date? Is it on session start or on login? Previously with the cookie it seemed that if I took ten minutes to write a post when I went back to the forum list my "last vist date" was updated. I assume you have a pretty short session timeout?

Otis wrote:

The first time you now visit the forums after you've logged in might be a little off due to the migration from cookie to user based tracking. I've noticed a little oddness about this, likely caused by the migration from cookie to db based.

Yea, new message indicator just doesn't seem to be working for me. The system also doesn't display your "last visit" date anywhere that I can see, does it?

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-Nov-2006 17:05:53   

PilotBob wrote:

Otis wrote:

It stores your last visit date on the server. That's the date used to track which posts you might have read.

When does it update the date? Is it on session start or on login? Previously with the cookie it seemed that if I took ten minutes to write a post when I went back to the forum list my "last vist date" was updated. I assume you have a pretty short session timeout?

Session timeout is 20 minutes, which is pretty standard. It updates the date when you login, i.e. when you start a session.

Do you auto-login or do you login every time you access the forums, so you also logout every time you leave the forums?

Otis wrote:

The first time you now visit the forums after you've logged in might be a little off due to the migration from cookie to user based tracking. I've noticed a little oddness about this, likely caused by the migration from cookie to db based.

Yea, new message indicator just doesn't seem to be working for me. The system also doesn't display your "last visit" date anywhere that I can see, does it?

It does, at the frontpage. However, it doesn't if you first access the forums without being logged in, then login, as the session was then already started as Anonymous, so the startdate isn't determined by the current code as the session is already started.

Frans Bouma | Lead developer LLBLGen Pro
PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 15-Nov-2006 17:07:45   

Yes, new message indicators definatly not working. when I log in no new messages are indicated, but I can tell by the date that there are new messages. However, when I post a new message within the session it then indicates a new message. That indicator doesn't go away. But, if I leave and come back it no longer shows as a new message.

Also, did you know there is still a LastVisitDate cookie. It "appears" to be holding the Date/Time of my current session, not my previous one?

Thanks, BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-Nov-2006 17:11:57   

PilotBob wrote:

Yes, new message indicators definatly not working. when I log in no new messages are indicated, but I can tell by the date that there are new messages. However, when I post a new message within the session it then indicates a new message. That indicator doesn't go away. But, if I leave and come back it no longer shows as a new message.

Also, did you know there is still a LastVisitDate cookie. It "appears" to be holding the Date/Time of my current session, not my previous one?

Thanks, BOb

Please confirm: do you login manually always, or did you check the automatic logic checkbox? As that's important here. Currently the code which tracks you in the db is in the session start, and when you login manually, you won't run into that code.

I can't reproduce what you see when I login automatically, so I have the feeling you login manually always when you access the forums. If that's the case, I can use that to reproduce it to see if I have to reschedule some code so I also call it when a user logs in manually simple_smile

Frans Bouma | Lead developer LLBLGen Pro
PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 15-Nov-2006 17:33:12   

Otis wrote:

I can't reproduce what you see when I login automatically, so I have the feeling you login manually always when you access the forums. If that's the case, I can use that to reproduce it to see if I have to reschedule some code so I also call it when a user logs in manually simple_smile

Normally, I log in automatically. What's weird is that when I login automatically I don't get the cookie named:

LLBLGen.com Forums LastVisitDate

I only get that cookie when I log in manually every time.

So, it may be that the date is being updated correctly but since there is no cookie with an auto login the new message indicators aren't working?

Also, didn't the new message indicator used to go off after you read the new topic? If it lights on all message created after your last visit date then how do you keep track of what you have read in your current session?

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-Nov-2006 17:54:41   

PilotBob wrote:

Otis wrote:

I can't reproduce what you see when I login automatically, so I have the feeling you login manually always when you access the forums. If that's the case, I can use that to reproduce it to see if I have to reschedule some code so I also call it when a user logs in manually simple_smile

Normally, I log in automatically. What's weird is that when I login automatically I don't get the cookie named:

LLBLGen.com Forums LastVisitDate

correct, as the automatic login tracks the last visit date in the db, marks the 'lastvisitdate' in the session as valid and it's then used for tracking which threads are updated after your last visit. It's not tracked with a cookie anymore, only when you login manually. (That's an issue and related to this)

So when you login manually the session started under the anonymous user, you login, your user data is loaded but the lastvisitdate is still marked as invalid, as that's not updated, so no tracking is performed, i.e. no thread is compared with the last visit date as that's not available.

[qote] I only get that cookie when I log in manually every time.

So, it may be that the date is being updated correctly but since there is no cookie with an auto login the new message indicators aren't working?

They're working, the date in the session isn't updated, so in THIS particular case they're not working, they do work with auto-login,

Also, didn't the new message indicator used to go off after you read the new topic? If it lights on all message created after your last visit date then how do you keep track of what you have read in your current session?

No that's not the case. It simply highlights threads which were updated after your last visit (it should do that anyway wink ) IF that lastvisitdate is valid in the session (there are situations where this isnt' the case, I've to look into these). it doesn't track threads you visited and there's also no mark everything as read. That's simply a lot of extra data to store and read which IMHO adds little to the forum.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-Nov-2006 18:05:30   

Ok, I can reproduce what you're seeing when I follow these steps. - I'm not logged in and go to this forums - I login manually - After being logged in I visit the front page. This doesn't show a 'your last session started on '... and also no forum nor thread is marked as new since my last visit.

Even when I created a message before I logged out.

This is clearly caused by the fact that the lastvisitdate isn't updated properly after logging in manually. I'll fix that. It then should work as normal, as it tracks the lastvisitdate on the server once you've logged in. There's thus a bug in that code at the moment. When logging in automatically you don't have this, as the session starts when you're authenticated.

Frans Bouma | Lead developer LLBLGen Pro
PilotBob
User
Posts: 105
Joined: 29-Jul-2005
# Posted on: 15-Nov-2006 18:14:03   

Otis wrote:

They're working, the date in the session isn't updated, so in THIS particular case they're not working, they do work with auto-login,

Ok, I am using auto-login and it "seems" to be working now. Not sure why. It seemed to start working after I manually logged in and out, then logged in and set to automatic login.

So I think you have a latent bug in there somewhere.

Otis wrote:

it doesn't track threads you visited and there's also no mark everything as read. That's simply a lot of extra data to store and read which IMHO adds little to the forum.

Well, rather than storing this you could do it just at the session level... store Date/Time last visted for each thread as you visit the thread. If you haven't visited it yet during the session the "global" last visit date/time would be used. This way the message indicators would be more accurate real time during your session. But, this info is trashed when the session ends. Then, with a new session you start they cycle again.

This would mean there is nothing to store but you still get a nicer UX as you are reading the topics.

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-Nov-2006 19:06:53   

PilotBob wrote:

Otis wrote:

They're working, the date in the session isn't updated, so in THIS particular case they're not working, they do work with auto-login,

Ok, I am using auto-login and it "seems" to be working now. Not sure why. It seemed to start working after I manually logged in and out, then logged in and set to automatic login.

So I think you have a latent bug in there somewhere.

Yes it's a bug, see my previous post simple_smile I've logged it in the bugtracker so it's squashed soon.

Otis wrote:

it doesn't track threads you visited and there's also no mark everything as read. That's simply a lot of extra data to store and read which IMHO adds little to the forum.

Well, rather than storing this you could do it just at the session level... store Date/Time last visted for each thread as you visit the thread. If you haven't visited it yet during the session the "global" last visit date/time would be used. This way the message indicators would be more accurate real time during your session. But, this info is trashed when the session ends. Then, with a new session you start they cycle again.

This would mean there is nothing to store but you still get a nicer UX as you are reading the topics.

Ok, nice idea, I've to think about this more to see how to enable this in the current code without a lot of work as we're wrapping it all up for public release at the moment.

Frans Bouma | Lead developer LLBLGen Pro
omar avatar
omar
User
Posts: 569
Joined: 15-Oct-2004
# Posted on: 15-Nov-2006 21:41:30   

Truly awesome work. If you are going to release the source code for Hnd, does that mean that its legal for us to use it to build our own forums.

Otis wrote:

for webapplications like this one, I'd consider this a good way to do things: use dynamic lists for often-read often changing data with data from multiple tables and calculated aggregates, and use entities where manipulation is performed. validation is outside the entities as webapps are mostly request-response (this one is) so validation is done early-on in the call chain, not later on in the lower regions of the tier stack. We use a BL tier and selfservicing, though don't use lazy loading so you can look at the code as how to use it with adapter.

Why did you choose to use SelfService over Adapter? Can you please elaborate more about "validation done early-on in the call chain, not later-on in the lower regions"?

1  /  2