ScrewTurn Wiki 4 Releases and News

Volunteers Recruiting

July 22nd, 2012 by Dario Solera | 39 Comments | Filed in Community

Since our last discontinuation announcement many of you contacted us and offered to take over or help future development of ScrewTurn Wiki.

Given that keeping track of each request is not trivial, I have prepared a Google Docs form for the purpose. If you are interested in helping out, please fill in your details.

The idea is to form a workgroup of a few people who can continue development of the application, initially under my coordination, but that can later continue on its own. The only condition is that the original authors and contributors must still be mentioned and credited for their work.

We will have to reach a critical mass with appropriate competencies – 5+ developers and at least a couple of brave souls to babysit the forum – otherwise it won’t work.

I hope this can be a new start for STW.

Update Aug 10th: we received 20+ submissions so far, which is great! We will start organizing forces in September, but in the meantime, keep submissions coming!

Goodbye, World

June 5th, 2012 by Dario Solera | 66 Comments | Filed in Community

Many of you have been wondering what is happening at STW, and asking about version 4. Well, I’m very sad to announce that as Threeplicate we are abandoning the project.

It would not only be unfair, but irresponsible to keep pretending that everything is fine and we’re still working on the project. There haven’t been any changes for the past 6 months, and now it’s time to face the reality.

Why?

The reasons behind this decision are several, and here are the most relevant (in no particular order):

  • the codebase has grown too intricate to be salvageable
  • the Visual Editor is totally broken, and there’s no obvious way to make it work while still playing nicely with WikiMarkup
  • we have failed to find a viable business model that allowed us to invest in the project
  • there is an ever growing need for less vertical, more integrate solutions
  • the community around STW is desolate at best (and this is at least partially our fault)
  • the forum is plagued by spam (as many as 20 messages per day).

The net result is that we can’t afford – from both an economic and humane point of view – to keep the project going.

What Will Happen?

Fear not, you can keep using STW for as long as you wish, the application is not disappearing. So, this is what will happen:

  • we (the original authors) will retain ownership of the entire project, which will be available in source code form on Bitbucket (the same place where it is now) under GPLv2
  • we’ll shut down the website, forum and blog, but we’ll make sure all the documentation will still be available (either in the repository or on Bitbucket – we’d appreciate help to migrate the documentation)
  • we won’t provide support or bugfixes anymore
  • we won’t provide compiled packages anymore
  • we’ll remove STW from the Web Application Gallery (WAG).

Note: the website, blog and forum will remain online for at least 4 weeks. The @ScrewTurnWiki Twitter handle will be kept active indefinitely, as it’s a quick way to get in touch with us.

What About Commercial Licenses?

Obviously, we won’t provide commercial licenses anymore. Existing customers will continue to get priority email support until the natural expiration of their contracts. Commercial licenses are lifetime and thus will continue to be valid.

Is That It?

Yes, but we’re open to suggestions. If there’s someone who’d like to take over (or purchase) the project, just drop us a line so we can discuss.

Summing It Up

We’ve counted more than 200k downloads from our website, plus 134,000 from the WAG. Traffic is pretty much constant and it exceeds 15k unique visitors per month, 82k page views and 1.8k unique downloads.

Thank Y’all

I want to thank every one of you who has used ScrewTurn Wiki during the past 7 years, has provided feedback or reported bugs, or has developed a plugin. Thank you, I really mean it. Also, I want to send a special appreciation to Jeff Atwood, who in 2008 donated $5k to the project out of his own pockets. The money itself hasn’t been particularly useful for the project except for buying some of my time to work on it, but it has helped in building my entrepreneurial spirit. So, thank you very much Jeff.

Hosted ScrewTurn Wiki Survey

December 7th, 2011 by Dario Solera | 15 Comments | Filed in Community

No, we don’t offer a hosted version of ScrewTurn Wiki, but we might in the future. If you could help us understand if and how that would work for both you and us, it would be very nice of you. How? Simply answer this very short survey: http://goo.gl/4yt2d.

Obviously, any comment, suggestion or critique is more than welcome.

ScrewTurn Wiki 4 Alpha Refresh

October 20th, 2011 by Dario Solera | 2 Comments | Filed in Development

Today we’re refreshing the Alpha release of ScrewTurn Wiki 4. Here are the notable changes and additions:

  • JSON-based data import and export is fully implemented; export has also been back-ported to v3 to easily upgrade to v4.
  • The plugin system now allows plugins to register request handlers, so it’s easy to provide interactive functionality and respond to HTTP requests from plugins without kludges; to get an idea about how this works, have a look at the revamped Rating Manager Plugin.
  • The wiki now supports extension-less URLs for wiki pages; the feature is enabled automatically when the wiki runs in an Integrated Pipeline Application Pool (obviously, all existing URLs ending with .ashx will continue to work), so you’ll need at least IIS7 to see the new URL goodness.

So, this release marks an important point: no major architectural changes are planned for the new version. This means that what we have to day, unless it’s absolutely necessary, won’t be changed significantly and thus the data you create and save with this release will be upgradable to the next v4 releases.

How To Deploy ScrewTurn Wiki 4.0 on Windows Azure

September 7th, 2011 by Matteo Tomasini | No Comments | Filed in Development

In this short post we’re going to learn how to deploy STW 4.0 (still in pre-release at the time of this writing) to Windows Azure.

Hosted Service and Storage Account Setup

Navigate to the Windows Azure Development Portal (windows.azure.com) and sign in with your Live ID. From the home page select Create a New Storage Account.

New Storage Account Button

In the Create a New Storage Account form fill in the domain name; this domain name, which is always in the acme.cloudapp.net form, is global so you may need to fiddle with it a bit to get a name that is not already in use by another service.

Create New Storage Account Form

It’s a good idea to create an affinity group to ensure that storage and hosted services that use it are located in the same datacenter, reducing bandwidth usage and increasing performance. Affinity groups can also specify a preference for a geographical region so that service and storage are as close to your users as possible to minimize network latency.

Click OK and you’ll see a summary page for your new storage account.

After downloading the Windows Azure Table/Blob Storage package, you have to tell ScrewTurn Wiki to use your new storage account. To do that open the ServiceConfiguration.csfg file with your favourite text editor and modify the ConnectionString setting:

  • choose your preferred Endpoint Protocol between http or https (the former is faster, while the latter is to be preferred for inter-datacenter communication)
  • replace the Account Name with the one you created in the Create a New Storage Account form
  • from the Storage Account summary page select View Access Keys for your newly created storage account, copy the Primary Access Key and paste it replacing the Account Key value in the connection string.

View Access Keys Button

Now you have to create a new Hosted Service.

New Hosted Service Button

From the Hosted Services summary page select New Hosted Service.

Create New Hosted Service Form

In the Create a New Hosted Service form fill in a friendly name for your service and the domain name. Choose a geographical region or, if you have created it, select the affinity group.
You can then select the Deploy to Production Environment option and after creating a name for your deployment upload the Azure.cspkg and ServiceConfiguration.cscfg files.
Click Ok to start the deployment.

An alert pop-up will appear warning you that your deployment has one role with only one instance. You can just click Yes and continue the deployment or modify the ServiceConfiguration.cscfg file changing the value of the Instances setting from “1” to “2” or more:

<Role name="WebApplication">
    <Instances count="1" />
    <ConfigurationSettings>
    ...

Deployment for Multiple Wikis

ScrewTurn Wiki 4 natively supports multiple independent wikis within one application instances. Each wiki must be bound to an dedicated host address, for example:

  • support.acme.com for a public customer support wiki
  • hr.intranet.acme.com for a HR private portal
  • dev.intranet.acme.com for company developers.

The fun here is that the wikis, while being completely independent, all live in the same application instance, saving server resource and significantly reducing the burden of keeping STW up-to-date.

If you want to deploy ScrewTurn Wiki on Windows Azure with support to multiple wikis you have to edit the Wikis setting in the ServiceConfiguration.cscfg file before publishing it.

The names of wikis must separated by a pipe and for each wiki you can specify one or more hosts separated by semicolon:

<Setting name="Wikis"
    value="root=|support=support.acme.com|hr-intranet=hr.intranet.acme.com|dev-intranet=dev.intranet.acme.com" />

The “root” wiki, which is mandatory, also acts as fallback for all unknown hosts.

There is a caveat: on Windows Azure, you can only specify one host for each service. In order to access your multiple wikis, you’ll have to create multiple CNAME DNS records, all of them pointing to host of your Azure service (e.g. acme.cloudapp.net), quite easy, but that is required if you want multiple wikis.

ScrewTurn Wiki 4.0 Alpha

September 6th, 2011 by Dario Solera | 6 Comments | Filed in Development

Today we’re releasing the first Alpha version of ScrewTurn Wiki 4.0.

The main change in this release is the brand-new search engine, completely based on Lucene.NET.

The new search engine is available on all storage engines:

  • Local, a.k.a. SQL Server CE
  • SQL Server
  • Windows Azure Table/Blog.

This is an important improvement as the new search back-end is faster, more accurate and it finally supports wildcards, so you can search for “local*” or even “locali?ation”. Way cool.

Tomorrow we’ll also publish a guide on how to deploy ScrewTurn Wiki 4 on Windows Azure. Stay tuned!

ScrewTurn Wiki 4.0 CTP 1

August 18th, 2011 by Dario Solera | 6 Comments | Filed in Development

Today we’re releasing a CTP refresh for our brand-new 4.0 line. This new version completely replaces the old flat file-based default storage engine with a new one, built with SQL Server CE 4.0. From the outside, everything will work the same.

The rationale behind this decision is very simple: it became too cumbersome for us to maintain two main data storage providers. Using SQL Server CE allows us to use almost the same code for both SQL Server CE and the larger editions of SQL Server. This became particularly important if you consider that we now also have a storage provider for Azure.

You can download the compiled application as well as the source code right from our v4 CTP page. If you’re a dev, don’t forget we have a Mercurial repository at BitBucket.

To build the source code you’ll need to have SQL Server CE installed on your machine (we can’t redistribute the binaries with the source code), but to run the application, you will not need it as it’s set to CopyLocal.

Next up: new search engine based on Lucene.NET.

Version 3.0.5.600

July 12th, 2011 by Dario Solera | No Comments | Filed in Development

After almost 10 months since the last 3.0 release, today we’re releasing version 3.0.5.600. It’s basically a bugfix release and here is the changelog:

  • Improved support for proxy- and load-balancer-based scenarios
  • Added support for absolute paths for PublicDirectory config setting
  • Added possibility to specify list/page size in config
  • Added Korean translation
  • Added Brazilian Portuguese translation
  • Added Vietnamese translation
  • Fixed editor caret position bug in IE
  • Fixed issue in page deletion (page links not updated correctly)
  • Fixed issues in page redirection
  • Fixed usernames in RSS feed
  • Fixed issues in formatter
  • Updated some translations
  • Converted solution to Visual Studio 2010.

As you can see in the last item, we finally abandoned Visual Studio 2008 in favor of 2010. The solution still targets .NET 3.5 (STW 4.0 will target .NET 4).

For those of you having problems with sorting in the wiki index (AllPages.aspx), given that a fix requires architectural changes that will be implemented only in version 4, we added a workaround, which is the possibility to specify the number of items to display in long list. By setting a large number, paging is disabled altogether, thus mitigating sorting problems.

ScrewTurn Wiki 4.0 CTP

June 15th, 2011 by Dario Solera | 4 Comments | Filed in Development

We’ve been working like crazy since last February to build a first version of ScrewTurn Wiki that runs natively on Windows Azure.

We’re all very happy to announce that the first Community Technology Preview of ScrewTurn Wiki 4.0 is now available. We have a dedicated page on our main website where you can download the compiled packages as well as the source code, plus get access to our public Mercurial repository.

Here is a list of the changes made to it (not only for Azure!):

  • support for multiple wikis: with one application instance, you can run multiple wikis, each one on its dedicated hostname (multi-tenancy)
  • native support for Azure storage (Blob, Table), much cheaper than SQL Azure and ready for unlimited horizontal scalability
  • JSON-based data import/export (will be added to v3 too for importing v3 data into v4)
  • support for dynamically uploading themes as ZIP archives
  • revised administration UI
  • data providers are now installed and configured in web.config (plugins, aka Formatter Providers, are still installed dynamically in the admin panel)
  • ASP.NET 4.0.

It’s important to note that:

  • this release is not production-ready nor feature-complete
  • performance is not optimal
  • we’re going to make other big changes to the codebase
  • all our plugins have been updated to work with the new version
  • all 3rd-party plugins are not compatible (but they’re easily fixable).

Known issues:

  • concurrent page editing warning is not displayed, meaning that nothing prevents two users to edit the same page at the same time (leading to funny errors)
  • uploading ZIP theme packages when using SQL Server actually stores themes on the file-system for now, so this feature cannot be used in web farms
  • JSON data import/export is not yet completely implemented.

As said, this is not a final release and here are some of the things we want to implement:

  • simplified data architecture, especially in terms of PageInfo/PageContent
  • search engine improvements (with Lucene.NET, probably)
  • more power to plugins
  • improved editor (with the possibility to swap it)

What would you like to see? It’s time to come up with ideas!

P.S.: Big thanks to Microsoft and especially to Dirk Primbs for the support they’re giving us in this effort!

New Visual Editor Backend [Beta]

April 21st, 2011 by Dario Solera | 3 Comments | Filed in Community, Development

We’ve rebuilt the Visual Editor backend from scratch, and it’s now available in beta in our development builds. You are now able to switch to WikiMarkup and back faster, but above all with less errors and glitches. Of course, feedback would be highly appreciated.

Regarding actual editor features, they remain unchanged at this moment, but now that we have a more robust HTML-to-WikiMarkup processor, we can start working on new features and improvements to existing ones.

On a side note, we moved our public Mercurial repository to Bitbucket and we improved those formerly known as nightly builds. We now call them development builds because they’re not built daily, but rather every time changes are pushed to the repository (actually, they come right out from our integration server). This is a huge improvement because, if we fix a bug, you’re able to download an updated compiled package of ScrewTurn Wiki in less than 5 minutes, instead of waiting 24 hours. Cool!

Side Projects

  • RESX Synchronizer allows to synchronize multi-language .resx files (used for the development of ScrewTurn Wiki).
  • Pixel Picker enables to pick the color of pixels on your screen — very handy for day-to-day graphics-related activities.

About