The Critique Circle Blog

The CC Blog is written by members of our community.
Do you want to write a blog post? Send Us a blog request

Menu
  • View all blogs
  • Go to thread
Mar
13
2020

Rewriting CC [part 1] -- by Jon Bjarnason

I've known for at least a decade that CC was beyond salvation. Much like some of my scribblings, either I have to abandon it completely or rewrite it from scratch.

Some backstory

Critique Circle started as an icelandic website called rithringur.is (which has since been discontinued) which opened on Jan 1st 2003 and already by then Classic ASP, the web technology that powers the site, was being deprecated by Microsoft in favor of the new .NET framework. I had made a terrible error in judgement when picking a web stack. This was was my first attempt at writing a website and I'm afraid I didn't know any better at the time. Woops.

Most of the code here is around 17-18 years old and I'm afraid code does not age like fine wine. As time went by support for classic ASP lessened and it became harder and harder to find help, code snippets or plugins. Everyone was migrating from from ASP either to .NET or another web framework altogether.

As much as ten years ago each server upgrade was becoming a chore because newer versions of Windows and Internet Information Services stopped supporting classic ASP out of the box and needed increasing number of hacks. The last hardware upgrade was ten years ago and it was quite difficult.

CC is now running on an old Windows 2008 box which has reached its end-of-life and the provider has informed me I will be losing the box soon and we need to upgrade again. This upgrade will be uncomfortable for sure, and I think it's time I face my demons and see about moving the site into the 21st century, or at least the latter part of the 20th century. I will need to move the site to a more recent windows box and go through the song-and-dance one last time. Luckily Microsoft is very good in supporting old tech and maintaining backwards compatability so this will take some time, but hopefully I'll be able to get it done.

What exactly is CC?

The CC website is a classic ASP web application with a MS SQL Server database. The whole thing runs on one quad core Windows machine with 8GB of RAM. The machine was very powerful at the time, but it's getting a bit long in the tooth now.

The website itself is not horribly complicated as such but there is a lot of code. The backend is roughly 120.000 lines of code and we have over 200 tables in the database. The database is approximately 15 GB in size and contains something like 20 million rows. In addition we have a few thousand lines in python scripts and a few hundred in database functions called stored procedures.

There is no separation between controllers and views in the application so the html is generated inline with backend functionality. This makes any change quite cumbersome.

Here we can see how the code is split between different systems

Of course the reality is more muddled than this, but in terms of broad-strokes this gives me a reasonable indication of how much effort it will take to migrate each distinct system.

CC of the future

In order for CC to be relevant going forward I need to be able to add new features and keep up with advances in web development. This is not at all possible with the current stack and there is no migration path possible to a new web stack. Therefore the entire site will be rewritten. Obviously this is an ungodly amount of work. Why go through all that trouble, isn't CC just fine as it is, are there any features that we need?

Here are some potential features that I might implement once CC is rewritten

Mobile App

Although CC's webpage now supports mobile clients it would be very nice to have an android/ios app for CC that could send you notifications and allow you to interact with the site in a more natural manner.

Realtime chat

It might be nice to be able to chat with other CC'ers in realtime directly on CC, or even have the ability to discuss a crit while it is being written. Maybe a whole new realtime crit function would be possible.

Push notifications

Modern browsers support push notifications so that you could get notiified immediately if you receive a crit or a message.

Public API

We could have an API that allows other developers to interact with CC and even build their own applications.

Feed

We could have a newsfeed style notiification system similar to social media sites where your likes, crits, replies and mentions and whatnot could all be digested.

Revamped inline crits

By rewriting the inline crit system we could have the ability to do inline crits not online per paragraph but inside paragraphs as well, similar to what you see in word processors. I'm actually thinking of removing the different critique types and having just the inline option but you could do direct inline comments, paragraph comments, or simply a 'classic' crit. It would even be possible to do edits of the story text as the crit.

Revamped session and login system

We have a bunch of hacks in place to keep users from getting logged out during critical points because the web session isn't stable enough. This was a huge problem on the web 15 years ago but is just 'fixed' in modern frameworks. In addition, I would very much like to see 'login/signup with google/facebook' functionality. Usernames are so 2000's...

Rich editor

I would like to see a rich wysiwyg editor on CC, where we can format text like we're used to in a text editor (and on most web pages) and things just work.

The sky's the limit

There is so much that we can add to CC if we move to a modern web framework. In addition to the random list above, just normal everyday features and additions will be more frequent and will have more quality.

 

Okay, so now we know why we need to rewrite CC and the benefits are numerous. The problem is that there there are just too many features and functionality written over the course of 18 years. The work seems insurmountable and I'm just one guy. It's time to come up with a plan.

[to be continued...]

Posted by Jon Bjarnason 13 Mar at 00:18
Do you want to write for the Critique Circle Blog? Send us a message!

Responses to this blog

Andymather 13 Mar at 15:26  
Hi Jon, Thanks for letting us know. There is plenty of talent out there to help you. Some members are website builders, and many of us would be willing to donate funds above and beyond our subscriptions to hire in help. There are also groups like Taproot.com that will match volunteers with nonprofits, if that's how you're set up. Andy
Lmdewit 13 Mar at 16:06  
It's good to know since CC is now part of my life. I'm so confident on it I've left stories and crits in the site without bothering to download them since to me they're always be there for grabs. I know that this change won't happen soon but I'm grateful to know about this and start doing what I should have done before.
It'll be exciting to see a new CC.
Glitterpen 13 Mar at 16:37  
Good luck with all the changes!
Eunknown 13 Mar at 17:29  
I'm excited to see these changes are on the horizon, though I have no major issues with how the site functions currently. CC has been extremely helpful to me for improving the technical aspects of being a writer, and also connecting me with other writers.

Some of the added features would be nice—I'd enjoy Realtime Chat, Revamped Inline Crits, Rich Editor. I wonder if it'd be possible or too complex to offer a 'classic mode' of a sort for those who like the clunky charm of old systems.

I second Andymather's comment about crowd support. Though it's preferable to keep expenses down for writers (who sometimes are quite broke), I would be happy to make a one-time donation toward site maintenance/improvements if it makes a difference.


Harpalycus 13 Mar at 17:48  
I third it. Count me in.
Regards,
Harp
Radprogirl 13 Mar at 18:01  
Thanks, Jon. The features sound awesome. Good luck. We appreciate what you do.
Dougp 13 Mar at 18:02  
I used to write on .NET, but I'm afraid my brain has calcified since then. I do still know people who are in this business if you need any advice. Sounds like you already have a design plan, though. I'd be willing to kick in a few bucks if you need to hire - though I know what that's like (sometimes it's better to do it yourself). I also have experience with UX design, so if you want validation of how things should work, I'd be happy to provide user feedback on any proposed interface.
Doug
Tabris44 14 Mar at 09:09  
I would not mind having a chat feature for critiques, so that authors can input their suggestions in real-time and it would be a lot faster to update on story progress as well
Vkkerji 15 Mar at 03:10  
Hello, Jon,
I wish you success in your efforts to revamp CC. I know it's going to be a Herculean sort of task based on the code data you shared with us. You can seek members' help in whatever way possible and no doubt they are going to like the new features you are going to implement. Being a software engineer, I know how much effort it requires from your part and it's going to be a challenging task for you to rewrite CC. I wish again the very best,

Regards,

Vijay
Luvrofinfo 15 Mar at 13:46  
Hello Jon,
Thank you for the update. I hope I can find a way to be of assistance to you.
Rellrod 15 Mar at 19:47  
Jon — First, let me express my immense gratitude to you and the CC team for creating and maintaining the site. It may not be "pretty," but I've always been very impressed by all the useful functionality built in, from in-line crits to tit-for-tat tools.

I don't have any expertise in coding or system architecture, but I'd be glad to help in any way I can. As Eunknown says, I'd be willing to donate something toward the costs involved.

I'd be happy just to migrate the existing features forward to a new platform, without more. If you're looking for input on what new features people are most interested in, I'd put in for the revamped inline crits — something like MS Word's Track Changes — and perhaps the WYSIWYG editor.

Excelsior!

Rick
Nonnib (administrator) 16 Mar at 10:18  
Thank you all for your feedback and kind words. It means a lot.
Dreyfus 28 Mar at 22:38  
Hello Jon. I've always wondered about the origins of CC, so hats off to you for creating this remarkable forum. I might be swimming against the current, but here goes. CC has been very valuable to me as a writer in training. In some ways I would be disappointed by a too severe upgrade although I understand the technological need to do so. I'd tried other writers forums before discovering CC. The very thing that impressed me when I joined was it's no frills interface and unfussy but superbly functional design. I have no interest at all in the site being an organ of current social media demands. I suppose it might sound odd to some, but I found CC's lack of social media interractivity refreshing. I certainly don't want CC to be on the tedious and insidious Google/FB/Twitter user tracking treadmilI. I hope you maintain the features we enjoy on this wonderful writers' forum. In any case, I've found CC to be it's own very specific social media outlet and would love those comforting, friendly, even a bit stuffy characteristics to continue. This is not to say I won't be happy to see other aspects of the upgrade you've mentioned. Am I being too old-fashioned and grumpy? Perhaps, but written from the heart of a writer and a lover of CC. I'd be happy to donate.
Benzehabe 29 Mar at 06:20  
Hello Jon. Like Dreyfus, this is my favorite site, because of the simplicity.

Bells-and-whistles is why I'm using other social platforms less and less. To be clear, I've recommended and champion this site. I would also gladly be inconvenienced to allow you to further monetize this site. I want you to get stupid-rich, but I also want simplicity.

You've always looked out for this community. You've got my support wherever that takes you.

PS Dreyfus made me write this.

Nonnib (administrator) 29 Mar at 09:49  
Thanks guys, that's valuable feedback to have. I'm not on any social networking sites myself so I have little insight into them.
Balzac888 29 Mar at 11:18  

Hi all,

First off, I think you have a great site and I, like others, have over the years dabbled with other writing forums. However, like any service, improvements can always be made, and CC is no exception.

Here are my two cents worth. This is only my second year on cc, but I do consider it a valuable resource for writers all across the world, and of all different levels and standards.

I agree with Dreyfus: I actually like the simplicity of the site too and would like to keep the heathens at the gateóFacebook, Google, YouTube, Instagram, and all the other social networking sites. I agree to that CC is unique, and I would like to keep it that way.

I have no problem with any changes to the interface. As a premium gold member, I personally would like to have the ability, during the time a story is up for critting, to change the story or chapter en bloc, as a whole, and not paragraph by paragraph which is the current system. I say this because when I make these piecemeal changes, I donít like to have to go back to my original on my iPad, and do the same changes, piece by piece, which is both time-consuming, and there are times when I may miss a change in either of the two mediums which results in two different versions.

I recently signed up again for a new, two-year premium gold membership, but if Iím being really honest, I do not feel that the business model that is being presented is all that fair to those who pay for memberships. Thatís because they donít really get very much for their money, not very much Ďbang for their buckí compared to newbies. A case in point is why I have to wait a whole month for my current story to get to the top of the queue and yet it still costs me 9 credits? (Yes with other stories in a queue almost as long.)While new members get up the queue very fast with zero credits? Seems to me if you want to attract and retain members, this has to be much better, with a much faster turnaround. In many ways, CC is becoming a victim of its own success as the turnaround times for receiving a crit seem to be getting ever longer.

I would like to see an initial, maybe one- or two-month membership which is free, and then those new members, if they want to continue, will need to contribute financially to the cost of the site. At the moment it seems to be very little difference between those who pay and those who get it for free, and I just donít think thatís fair.

I also think as Iím already contributing financially to the upkeep of the site, this is where funding could easily come for an upgrade. I mean from members new to the fold who can now enjoy a mature site with lots of writers, many talented, but all coming from different backgrounds and walks of life and thus with lots to offer newbie members.

Anyway thatís my two bobís worth.

Feel free to tell me what you think.

Tom
Attaree 29 Mar at 13:06  
We need free memberships because not everyone can pay. I don't mind paying because I, too, can have a free membership if that's the way I need to go. There's a large turnover of active members and we need to keep the pipeline open, constantly picking up new ones. Many will drop right away, some will be with us a few months, and others will be here longer. A free membership encourages potential members to sign up and submit.

I agree with Tom the paid membership doesn't offer a lot that interests me above what is available with a free membership. That's okay with me. I don't maintain a paid status for the extra benefits.

I also don't have a problem with changing the text paragraph by paragraph. I don't click that option. I click the option to change the entire piece, delete the content, and upload new content from my Word master copy. Of course, that won't work once the submission is up and running for crit, but it works great prior to kickoff. I seldom make a change once the crits start coming in.

I pay for a membership (1) to support the site financially so that it doesn't go away and (2) it's an obligation I should honor because of the value I receive. It's reassuring that if my situation should change and I'm unable to maintain a paid membership, CC will still be here for me.

As to Facebook, Twitter, etc: No, please, no.



A_yared 29 Mar at 15:35  
I agree @Attaree.
Nonnib (administrator) 29 Mar at 16:50  
Regarding the paragraph revision that we currently have for in-review stories, the reason for that is that inline crits depend on the paragraph structure to remain the same or they get messed up because the logic is quite naive. It's possible that this is something that can be fixed after the rewrite.

Regarding paid vs free. I think it's an important feature of CC that it is free to use, but I see the point that people who are paying membership fees and contributing to the site feel they should get something more from the main features of the site. We don't really have a business model I must admit. We just have a free writing site that people love enough to support even though they don't have to.

As for social network features, I hear you.
Balzac888 30 Mar at 04:07  
Too late for the ďheathens at the gateĒóFacebook, Twitter & YouTube, I see, have been added at the top of my feed as plug-ins. Sigh.
Kittyriver 31 Mar at 21:57  
So will CC members need to save their critiques before the changes take place?
Nonnib (administrator) 31 Mar at 22:59  
Kittyriver
So will CC members need to save their critiques before the changes take place?
No, all story content should be migrated over for you.
Debbyw 16 Apr at 13:21  
I'm late coming to this, but I thought I'd add my thoughts. I LOVE CC. I don't remember how I discovered it, but it is a lifesaver. My writing skill has grown tremendously since submitting my work, and especially writing crits. I am a paid member because I benefit so much from this. There are so many wonderful members here who help each other. I can't imagine a better writing community.

Respond to this blog

Please log in or create a free Critique Circle account to respond to this blog


Member submitted content is © individual members.
Other material is ©2003-2020 critiquecircle.com
Back to top