Archive Upgrade Development
#1
Posted 15 February 2010 - 07:42 AM
[100%] MySQL Database Design
[95%] Base class for record management
[100%] Converter script from Gambit Archive
[0%] Filesystem helper class
[100%] Collection object
[60%] User Interface
[90%] Permissions/Security
[100%] Porting uploader from Gambit Archive
[90%] Widget Class
[0%] RSS
What does this mean? Great things, actually. The base class constitutes the vast majority of the work since I decided to modify my approach to archive management. It follows much more closely to the OOP paradigm, where each "record object" contains all of its own metadata plus the screenshots, reviews, tags, etc etc. Additionally, it contains all the mutators for the DBMS side of the archive, so only filesystem operations go unhandled by that base class at this point. Filesystem operations are really basic because of the way we're handling the archive data, so it will be cake to throw that together.
As I see it, the user interface is going to be the next big milestone. That's the other massive hurdle to get over. I'd like to think I've really simplified this for myself by putting much of the heavy lifting into the base class but I won't really know until I start coding the UI and figure out what challenges we have there.
The uploader needs to be ported and updated. Fortunately the plugin I've customized and been using to handle asynchronous uploading has gone stable, so rebuilding it to CURRENT isn't high on my list of concerns. Porting the underlying structure, however, will be a PITA because of the idiotic way I coded the AJAX the first time around. A little JQuery magic should speed that up, though.
There are a few features upcoming too. A few of the most demanded features are:
* Ability to add a genre classification [implemented]
* Ability for the author to add a summary to a game [implemented]
* RSS/ATOM feeds for the archive updates
Please let me know if I'm forgetting anything. Hopefully we're getting much much closer to where we need to be for the archive. I will say that we're still a bit off from the IPB3 migration, however -- we still need to finish skinning the boards and jacking the new portal into the archive.
#2
Posted 15 February 2010 - 07:46 AM
#4
Posted 15 February 2010 - 01:40 PM
#5
Posted 15 February 2010 - 04:45 PM
GameID < 500:
Old Time: 0.0613119602203s
New Time: 0.00167918205261s
All Games (~1400):
Old Time: 0.0182399749756s
New Time: 0.00564002990723s
Games with the word "Demo" in them:
Old Time: 0.0027449131012s
New Time: 0.000994205474854s
Those numbers ARE correct, and I checked the data against each other to ensure everything was being retrieved appropriately. It is. The new way of managing records is phenomenally faster than the old.
#6
Posted 17 February 2010 - 02:35 PM
<pyro1588> "welcome to australia, can i help you find what you're looking for?"
<Tox> pyro1588, I'm giving you the most reproachful of glares right now.
--------
Go show those nutty Koreans what us crazy Europeans are made of pirate.gif pirate.gif pirate.gif - Saike
<exophase> The old Commodore strategy of, "Go friggin' bankrupt!"
<wervyn> Go away! I'm writing the same engine I always do!
#7
Posted 19 February 2010 - 11:27 PM
"Potion of Confusing": Solve all the puzzles, hold second one as you hold a pencil, and save gibbering mouthers from the king's army.
#8
Posted 20 February 2010 - 02:17 AM
* Now that I've got records in the database, I need to start on the widget for table building -- this was the HARDEST F*CKING PART of the last archive, let's hope some of the pre-work I did will simplify it. I want to get this done by Sunday night.
* Filesystem helper class will be a couple hours tops and will end up completing a small piece of the uploader as well, so I think I'm aiming for this for Saturday night.
* The rest of the uploader is pretty much kosher -- I'm going to stick with our older version of the async codebase for now just for simplicity's sake and I'll bug inMotion about upgrading later. The big issue here will be modularizing uploads to allow for the central data transfer class to redirect file paths to the correct locations [screenshot vs title screen vs record uploads] -- maybe Saturday night on this one too but testing will be extreme around this item.
* Security around the archive is lacking right now but it's low on my priority list. I need to implement a few more administrative ACLs but that should be done Saturday afternoon.
* The UI is still dead as crap and it's probably going to be worked on Sunday, but I can't see it getting done unless I'm highly caffeinated. Big emphasis is going to be on widget design; styling can be done as an afterthought at this point, to avoid Parkinson's Law of Triviality.
* More testing needs to be done on the base class. I'll probably enlist some of our SQL hackers to help me out here but that won't be done until late Sunday at best.
This probably goes without saying, but IE6 will no longer be supported by the archive once we get the codebase changed. Mainstream browsers should work for the most part, with (planned for, time-wise) minor tweaks.
Right now my target for deployment on this is early March. After that I'll shift my focus to the IPB3 portal and get that situated and playing nicely with the new archive backend, and we can style it up.
My ultimate goal around DMZX is to get off the IP.Board 2.x.x/GAMBIT unified codebase before May. Whether that will actually happen or not, I'm not sure. Anyone interested in helping CSSify things, please let me know -- I'd like to start keeping around a development team so I don't feel quite so much like a one-man show
![:confused:](https://www.digitalmzx.com/forums/public/style_emoticons/default/smile.gif)
#9
Posted 20 February 2010 - 05:39 PM
The uploader is done. I'm psyched beyond belief. It also now supports more types of files -- that is, I can repurpose it for both the game uploader and the screenshot uploader. I've reduced the footprint of game addition by about half with this iteration too, thanks to the base object's synchronization abilities. I also reworked the way it reports upload progress so we can jack it into any interface without an issue.
The table builder works as well -- I can pass it 1D or 2D arrays and it throws them together. For good measure, I rolled a pseudo-templating system into it so we could customize the order and field entities for the metadata and search tables. That all works and it's just a matter of throwing the contents into the table manager.
#10
Posted 20 February 2010 - 06:53 PM
#11
Posted 20 February 2010 - 08:57 PM
It's worth noting that I was correct; the additional work on the backend really simplifies many of the things I classified as "extremely difficult" when developing gambit (persistence of security context, juggling game and user IDs, multiple sessions). Hooray for that.
After I finish the last two dialogs, all that's left to do is implement the search functionality and develop the UI. Still quite a bit to go, but I've made some (IMO) really impressive headway in the last 6 hours.
edit: Current size is 1693 lines.
#12
Posted 20 February 2010 - 10:36 PM
Still to go:
* Tag management dialog
* Almost the entire user interface
* Filesystem helper [since I keep forgetting about it]
* Implement modal dialogs
* Implement paging of the result tables
* Write different search possibilities
Of these, the UI is still the next major milestone. I've implemented almost every feature from Gambit and added a couple already, and I really can't wait for this thing to be turned on. Depending on how far I get tomorrow, I may turn it on parallel to the existing archive and just let people mess with it. The archive attached to IPB2 will be the "official" one until this is completely done, though. Once we move to the new archive, I'll run one final conversion on the old archive before shutting it down.
#13
Posted 26 February 2010 - 09:27 PM
* The sorting system in the search tables is done. Done done done! (and it even works properly on ratings, something I had figured to be reasonably difficult)
* Dialog for login has been implemented and CSSed to my liking; I'll probably reuse this CSS for all the dialogs and make life easier on myself
* Search system is done and functional. It seems to play nicely with most everything, so hooray for that.
* CSS and design for the overall UI is complete, thanks to CJA's idea for a color scheme. Things are shaping up quite nicely on that front in general.
So the question is... what do we have left!?
* The showcase page is far from done. I still have to design the entire UI for that... and it will hurt, since it's the biggest part of the project and is loaded down with tons of Javascript that I have yet to write.
* Administrative actions don't exist at the moment, so those need to be implemented soon.
* For some reason, I've been putting off tags over and over again. Those still need to be finished
* The filesystem helper which will probably be the last thing done because I keep neglecting it.
* Paging in the search results is broken for some reason. I have a sneaking suspicion that this is because I haven't really styled the tables yet, but I'm not sure (the JS associated with it is rather complex)
* Put in IPB2 support. Right now it looks like the IPB3 migration is another long way away, so I'll have to backport most of the SQL queries that point to IPB3, along with all of the URL references.
* Touch-ups. There are a lot of graphical "gotchas" that exist right now that detract from the otherwise fantastic look of the system -- I really want to go through these and pull them before it gets into mass use, but that's low on my list of priorities.
2237 lines of PHP so far...
#14
Posted 27 February 2010 - 02:36 PM
Anyways, my anticipation is that if I'm not tied down with paid [sorry guys, money comes first right now] development, my schedule for the archive this weekend is as follows:
Saturday
* Throw the rotation javascript together and implement it for the showcase page
* Get the rest of the table data and title screen put into the showcase page
* CSS the Screenshot/Review dialog boxes at minimum
* Backport SQL queries for IPB2 so we can get some better live data
* Filesystem handler
Sunday
* Finish the showcase page, link in reviews/screenshots dialogs as appropriate
* TAGS TAGS TAGS TAGS TAGS
* Start on the administrative actions
Assuming this all gets time allocated to it in the amounts I'd like, I may be able to open the new archive up for use as early as Monday.
For those of you wondering just how much time I've actually put into this over the last few weeks, I've clocked about 55 hours on this so far, plus whatever I do this weekend.
#15
Posted 27 February 2010 - 05:49 PM
<+AFK> dormando's apathy is palpable.
* AFK palpates
<dormando> stop that
<Malwyn> undressing with revvy a little over a metre away. new definition of awkward.
#16
Posted 27 February 2010 - 10:57 PM
![:confused:](https://www.digitalmzx.com/forums/public/style_emoticons/default/sad.gif)
Here's what I've got done:
* CSS consolidation -- this was a massive effort. It's now clean and readable and what I consider "production-ready". It also allows the archive to be fully skinnable.
* Screenshot display -- the slider code is done and functional, and pretty as fuck
![:pirate:](https://www.digitalmzx.com/forums/public/style_emoticons/default/biggrin.gif)
* Showcase page -- it's started, all right. Unfortunately that's about it. Some of the CSS is done but there's still a ton to go
* Filesystem handler -- hey it's finally done after only 10 days of putting off the easiest part of this whole thing...
Also for reference, the CSS for the main UI alone is almost 300 lines. It's a completely terrifying beast.
See you tomorrow!
#17
Posted 28 February 2010 - 05:11 PM
Anyways, I'm putting a few last-minute touches onto the core, and then I'll be releasing a link so everyone can hammer on it a bit and let me know what's broken.
![:confused:](https://www.digitalmzx.com/forums/public/style_emoticons/default/smile.gif)
#19
Posted 28 February 2010 - 06:26 PM
Keep in mind we're still in beta. Anything you do with that archive will be wiped when it moves to prod. TAKE CLOSE NOTE OF THE NOTES ON THE FRONT PAGE.
#20
Posted 28 February 2010 - 07:21 PM
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#21
Posted 28 February 2010 - 08:23 PM
mzxgiant, on Feb 28 2010, 01:26 PM, said:
archive front page said:
* No place to upload new games
* Categorized browsing doesn't work (i.e. Competitions, Everything, MZX Version, etc etc)
* Cannot upload title screens
* No download links
![:confused:](https://www.digitalmzx.com/forums/public/style_emoticons/default/smile.gif)
#22
Posted 28 February 2010 - 09:51 PM
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#23
Posted 28 February 2010 - 09:52 PM
![:confused:](https://www.digitalmzx.com/forums/public/style_emoticons/default/smile.gif)
#24
Posted 09 March 2010 - 04:35 PM
I've cleaned up some of the known issues and added some fun things like a "Your Games" view on the sidebar. We can now upload new records and add title screens as well.
The only thing left to add that I can think of is the remainder of the administrative functions. After that, I think we can go live. Poke and prod away, folks...
#25
Posted 09 March 2010 - 07:40 PM
Also, the whole "MZX Version is the same type of object as everything else" paradigm is getting to me. Thinking about breaking this off.
#27
Posted 13 March 2010 - 02:01 PM