Pages

Saturday, 14 April 2012

Introducing the Metapass Framework

To follow on from our last post about the direction of 3Surf Software, these are indeed exciting times. Last post we introduced our Extensible Server Runtime as the future of 3Surf, however after some work of ESR we found it too restrictive and it has now too been scrapped... as has 3Surf!

Introducing the Metapass Framework

First of all whilst development on 3Surf has been scrapped (and ESR too), our anti-censorship efforts continue with the Metapass Framework (MPF). The rename is due to the changing nature of the product (a framework as opposed to an application) and the past confusion between the name of our software (3Surf) and the name of our organization (3Surf Software) particularly as we started work on different projects.

Technically, the design of 3Surf has long been a problem for us. We have found it very difficult write the plugin system in combination with the main application. Python was perhaps a little too flexible leading to a very badly defined plugin API (although that was mainly our fault...), and also had a major problems on Windows (the most importance being running as a service). But at the heart of the matter, and not just the actual language, has been the actual structure of 3Surf. The server structure with various plugins for bypasses and communication have overcomplicated matters. Combining server code with plugin code has been very difficult, and so instead we have decided to get rid of the server structure altogether, and replace it with a much more general framework. Later, when the framework is more stable, we can again create a server application (and other applications to, like command line tools and GUI's based on the actual framework).

Some of you might have seen the close connection between the Metasploit Framework and our new Metapass Framework. If so, good spot. We have been heavily influenced by Metasploit - the design and extensibility of that software is just amazing, and we see its success is mainly due to its extensibility. We want to do the same thing with Metapass - turn it into a Metasploit for bypasses and anti-censorship.

Technical Details

We are not, however, using Ruby as the core of the framework, or even Python, but instead C++. Why C++? The choice of language has been a difficult question for us. C++ is undoubtedly a slower and less efficient language to code in and has many cross-platform/cross-compileer issues, however we see the gains of its type system as outweighing these considerations since we will be using the cross platform POCO C++ library and the flexibility of Python was one reason why 3Surf descended into a horrible mess of spaghetti code. We think that the stricter approach of C++ will be beneficial to this specific project where its extensible nature means that the definitions between the core and plugins have to be strong.

C++ allows a larger set of bindings to be written for MPF. Since this is a framework, we want this to be leveraged from as many different languages as possible and will include SWIG interface files in releases of the framework. Writing the framework in Python or Ruby for example, we felt would restrict the end use of the framework.

However we only intend to write the core of  the framework in C++, and allow the framework to be extended through scripting languages - notably Python. We are attempting to design the framework to be as abstract as possible, so modules and plugins in different languages can easily be used. It is likely that nearly every module MPF uses will be written in a scripting language.


Stay tuned for more updates soon, about the structure of the actual framework.

Wednesday, 7 March 2012

Direction of 3Surf Software

These are exciting times in the lives of our developers. Our main developer, who has devoted the most time to 3Surf, has recently just started university. The change from school to university has been quite a big transition and as such, there is much less time for development.

Now onto our main product, 3Surf. To be truthful 3Surf has some serious flaws. The code is a mess of an old legacy component system with the newer plugin system. The plugin system was never defined, instead plugins were written at the same time as the framework resulting in changes often breaking other plugins. Deadlines and milestones were continuously pushed back and back. So having recognised these flaws, we have decided to write 3Surf again from scratch. And to prevent the mess with the plugin system from happening again, we are writing the plugin framework first and keeping it as generic as possible.

Introducing ESR- Extensible Server Runtime


Meet our new product, ESR. As the name suggests it is a program that is extensible with plugins at runtime. It is a server in the sense that it is designed to "talk" to clients although this doesn't have to be strictly true. It is designed for projects, like 3Surf, where the actual core application is very small and nearly all the work is done by plugins. In addition to helping any other developers who may use the software, we believe that the discipline of 3Surf being a ESR application, would prevent any of the previous problems with the plugin framework. And as further discipline, 3Surf has now ceased to be developed until the first version of ESR has been released.

There will be a post soon about the actual structure of ESR and how it works.

3Surf Software http://www.3surf.org

Tuesday, 23 August 2011

New server!

Hi everyone!

We have just moved our website to our new server: a virtual private server just for us! We have full control of this server, and in addition to hosting our website, we will use it to for other services in 3Surf.

Stay tuned!

3Surf Software

Saturday, 26 February 2011

Updated Website

Hello everyone,

As well as our continuing work on 3Surf, we have just ported our website to use the Smarty templating system. This means it is now easier to update our website, because instead of changing multiple pages only one master template must now be changed. We found the Smarty system really easy to use and recommend that you use it for your website too.

Product pages have also been updated, as has the 3Surf search engine.

3Surf has also seen dramatic strides, especially with documentation and the build system. The BypassControl object needs more restructuring, then we'll be seeing a beta release soon.

3Surf Software http://www.3surf.org

Thursday, 23 December 2010

3Surf Client - A sneak peak!

Hello everyone!

Here is a sneak peak of 3Surf Client running on Windows. However since it is built using the Qt framework, it is very portable! It replaces our older wxPython version, as Qt and C++ is much faster and more responsive giving a much more enjoyable user experience.

Merry Christmas!

3Surf Software http://www.3surf.org

Sunday, 29 August 2010

3Surf Software Wiki

Most of our development work such as bugs are conducted on Launchpad (https://launchpad.net/~3surfsoftware), official software releases are available on our website (http://www.3surf.org). So for development information and implementations we have created our new wiki at http://sites.google.com/a/3surf.org/3surf-wiki/.

Hosted at Google Sites it allows everyone who has an @3surf.org email address to login and improve it. As you are able to see introductory pages are written about Event Hooks and Plugins and more will follow soon. We hope that by having a comprehensive store of information external developers will be best able to leverage the power of our software.

Please check out our new wiki at http://sites.google.com/a/3surf.org/3surf-wiki/

3Surf Software http://www.3surf.org

Introducing Virtual Trader

 3Surf Software are currently developing our new software product, Virtual Trader. As you may have guessed Virtual Trader simulates the real market, but the difference is that it can be extended using plugins. Plugins are available investments, for example Stocks and Shares, and Forex. Anyone can write plugins for new investments, such as gold or oil or even complex derivatives.

The software is designed to run either as a web application or a desktop application. 3Surf Software will run a hosted version on Google App Engine but thanks to its Server - Client architecture, desktop versions or versions that run on other web frameworks can be created.

Follow the development on Launchpad (https://launchpad.net/virtualtrader).

3Surf Software http://www.3surf.org