Player0
06-07-2006, 02:48 PM
First off, thank you everyone for your continued support of DCSigs and for all the feedback I have received over the months. DCS version 4 has been a definite learning experience for me in avenues of security, programming, and design of a high-traffic website. And it seems to continue to be successful.
But mistakes were made. And now that I see the error of my ways, there is a MOUNTAIN of work to get through. I've probably mentioned them before, but here is a current list of issues with DCS4.0:
1.) It's insecure. Although there's nothing there to particularly steel, and the chances of a casual hacker doing any real damage are slim, it's certainly possible. Primarily, the problem stems from people using DCSig as free image hosting. Ive put many bandaids on these problems, but ultimately, I had to rethink all of this. Now I need a code a secure site with better checks in place.
2.) Processing takes too long. The more popular DCS gets, the longer processing the F@H data takes. I have extremely limited server resources. The good news is, I have a better way of processing AND, it's 90% coded at this point. However, all the databases needed to be reworked, and there for, ALL the code needs to be reworked.
3.) The code was just ancient. DCS is many years old now, and much of the code I wrote when I was beginning with PHP. I've grown a lot since then, but the code responsible for DCS is quite large and complicated, and I've been cleaning it up, organizing, improving speed and reliability.
4.) It's not future proofed. Adding new features just wasnt possible cause the code base wasn't flexible enough. Some of the core design has been around since the begining, since the skins database structure. While this has allowed me to import skins from earlier versions like version 3, it prevented me from doing cool new features like multi-accounts per skin (a much requested feature).
5.) The current DCS Site layout is bad bad bad. It just doesnt make sense, and thats what happens when you start coding before knowing what the heck you're going to end up with. I guess it's a lot better than Version 3 heh.
What does this all mean for you, the loyal DCS user? Delays. The next version of DCS, version 4.1, was supposed to be a minor update, bug fixes, performance increases, and a couple of additional features. However, I've made the decision to ditch the 4.1 plan, and focus on the 4.5 version. This is a much more complicated release, and will require more time to get up and running. So everyone will have to suffer with DCS 4.0 a little longer.
I hate to use the words 'complete rewrite', but thats exactly what it is. Every other line of code is changing. Every database table structure is changing.
The bad news is, all current accounts and skins will not be compatible with version 4.5. This is part of the reason for skipping the 4.1 launch, as 4.1 would have required me to write database conversion scripts. By ditching the old data, I can spend more time focused on making the next version that much better. Please, let me know what you think about this idea.
The good news is, the skin editor will be MUCH easier to use, and have a lot more options available. Including the multiple service accounts per skin feature. I think that if users can make better looking skins easier, it's not worth keeping the older models around anyway.
I hope to have a couple other features available for the new version as well, to make switching much easier. However, version 4.5 will primarily be a security/performance/bugfix release rather than a new feature release.
Skin caching will be made much easier to understand, and it will be continued for version 4.5. Although at first there were many many concerns about the skin caching functionality, it's been adapted to fairly well. Skin caching will be made slightly more automatic and easier to understand.
The new skinning system will focus on a more 'wrapper' based approach, although I hope to impliment a 'field creation tool' to help make better uses of these sorts of functions. Label fields ARE GOING AWAY! DCS4's use of the %s tag when making skins lead me to a much better way of doing things.
Future fields will look something like Wikipedia/BB code:
UserName [username] - [team_id]
or
[dropshadow::#333333]Ranking[/outline] [user_rank] of [team_member_count]
So you can specify multiple fields per skin row. Special effects like outline should be easier to understand this way.
Also, each row on a skin will have a service_id attached to it. A 'service' will be any particular DC team id/user id combination. So, I may have a F@H service on my account for team 11899 and user Player0. I may also have a SETI service for team liquidninjas user Player. I can have as many services attached to my account as i'd like, even if they arent my user names.
The skin editor will allow you to specify per skin row, WHERE the service data is coming from (say your F@H account, or a buddies F@H account).
Say I wanted to keep track of the rankings for a couple people who may overtake me.
Row 1: Service: F@H - 11899 - Player0
~~~~~~~~~~~~~~~~~~~~~~~~
Player0 Avg: [user_score_average_1d/7d] pts/day
Row 2: Service: F@H - 11899 - Synthohol
~~~~~~~~~~~~~~~~~~~~~~~~
Synthohol Avg: [user_score_average_1d/7d] pts/day
So on my skin, you would see:
Player0: 100 pts/day
Synthohol: 80 pts/day
And combinations like that.
Combinations will be available! So if I add services to my account for Synthohol, Wackycomputer, and Player0, I can create a group named: 'The Admins'.
Then I can use this on a skin and have it display like:
The Admins: 280 pts/day
This is useful for teams with subgroups.
of course, with all the new work (done I should add) on the stats engine, Ill of course have new stats ;)
Team averages, wu averages AND score averages. Active user rankings, etc.
Anyway, theres more but Ive rambled enough. Any comments, suggestions? Make them now before I finish the next design!
But mistakes were made. And now that I see the error of my ways, there is a MOUNTAIN of work to get through. I've probably mentioned them before, but here is a current list of issues with DCS4.0:
1.) It's insecure. Although there's nothing there to particularly steel, and the chances of a casual hacker doing any real damage are slim, it's certainly possible. Primarily, the problem stems from people using DCSig as free image hosting. Ive put many bandaids on these problems, but ultimately, I had to rethink all of this. Now I need a code a secure site with better checks in place.
2.) Processing takes too long. The more popular DCS gets, the longer processing the F@H data takes. I have extremely limited server resources. The good news is, I have a better way of processing AND, it's 90% coded at this point. However, all the databases needed to be reworked, and there for, ALL the code needs to be reworked.
3.) The code was just ancient. DCS is many years old now, and much of the code I wrote when I was beginning with PHP. I've grown a lot since then, but the code responsible for DCS is quite large and complicated, and I've been cleaning it up, organizing, improving speed and reliability.
4.) It's not future proofed. Adding new features just wasnt possible cause the code base wasn't flexible enough. Some of the core design has been around since the begining, since the skins database structure. While this has allowed me to import skins from earlier versions like version 3, it prevented me from doing cool new features like multi-accounts per skin (a much requested feature).
5.) The current DCS Site layout is bad bad bad. It just doesnt make sense, and thats what happens when you start coding before knowing what the heck you're going to end up with. I guess it's a lot better than Version 3 heh.
What does this all mean for you, the loyal DCS user? Delays. The next version of DCS, version 4.1, was supposed to be a minor update, bug fixes, performance increases, and a couple of additional features. However, I've made the decision to ditch the 4.1 plan, and focus on the 4.5 version. This is a much more complicated release, and will require more time to get up and running. So everyone will have to suffer with DCS 4.0 a little longer.
I hate to use the words 'complete rewrite', but thats exactly what it is. Every other line of code is changing. Every database table structure is changing.
The bad news is, all current accounts and skins will not be compatible with version 4.5. This is part of the reason for skipping the 4.1 launch, as 4.1 would have required me to write database conversion scripts. By ditching the old data, I can spend more time focused on making the next version that much better. Please, let me know what you think about this idea.
The good news is, the skin editor will be MUCH easier to use, and have a lot more options available. Including the multiple service accounts per skin feature. I think that if users can make better looking skins easier, it's not worth keeping the older models around anyway.
I hope to have a couple other features available for the new version as well, to make switching much easier. However, version 4.5 will primarily be a security/performance/bugfix release rather than a new feature release.
Skin caching will be made much easier to understand, and it will be continued for version 4.5. Although at first there were many many concerns about the skin caching functionality, it's been adapted to fairly well. Skin caching will be made slightly more automatic and easier to understand.
The new skinning system will focus on a more 'wrapper' based approach, although I hope to impliment a 'field creation tool' to help make better uses of these sorts of functions. Label fields ARE GOING AWAY! DCS4's use of the %s tag when making skins lead me to a much better way of doing things.
Future fields will look something like Wikipedia/BB code:
UserName [username] - [team_id]
or
[dropshadow::#333333]Ranking[/outline] [user_rank] of [team_member_count]
So you can specify multiple fields per skin row. Special effects like outline should be easier to understand this way.
Also, each row on a skin will have a service_id attached to it. A 'service' will be any particular DC team id/user id combination. So, I may have a F@H service on my account for team 11899 and user Player0. I may also have a SETI service for team liquidninjas user Player. I can have as many services attached to my account as i'd like, even if they arent my user names.
The skin editor will allow you to specify per skin row, WHERE the service data is coming from (say your F@H account, or a buddies F@H account).
Say I wanted to keep track of the rankings for a couple people who may overtake me.
Row 1: Service: F@H - 11899 - Player0
~~~~~~~~~~~~~~~~~~~~~~~~
Player0 Avg: [user_score_average_1d/7d] pts/day
Row 2: Service: F@H - 11899 - Synthohol
~~~~~~~~~~~~~~~~~~~~~~~~
Synthohol Avg: [user_score_average_1d/7d] pts/day
So on my skin, you would see:
Player0: 100 pts/day
Synthohol: 80 pts/day
And combinations like that.
Combinations will be available! So if I add services to my account for Synthohol, Wackycomputer, and Player0, I can create a group named: 'The Admins'.
Then I can use this on a skin and have it display like:
The Admins: 280 pts/day
This is useful for teams with subgroups.
of course, with all the new work (done I should add) on the stats engine, Ill of course have new stats ;)
Team averages, wu averages AND score averages. Active user rankings, etc.
Anyway, theres more but Ive rambled enough. Any comments, suggestions? Make them now before I finish the next design!