ServerWarp

Xojo Web Framework 2.0?

I am stoked about XDC and many of the presentations that are on the agenda. I’ll write about that more later but there is one that stands out to me:

Web Framework 2.0 | Greg O’Lone, Xojo Inc.

The Web Edition of Xojo (then REAL Studio) was released in Fall 2010. Since that time very little has changed. I cannot think of any additional widgets from the original feature set but perhaps there is a handful.

It was in some ways ahead of its time and in others behind it.

For example, there still is not really a competing product or environment that can produce web applications as quickly as Xojo Web. Single page applications were not very common in 2010 and certainly there were very few frameworks for building them. Angular released around the same time in October 2010. Both React from Facebook and Vue were released in early 2014. Even with those frameworks the time to develop in them is significantly longer than using Xojo Web.

This has a great deal to do with the way Xojo Web mimicks desktop applications. This makes the underlying business logic portable while still maintaining some of the same user interface elements. If you need to build a small utility or application you would be hard pressed to beat the speed of development of Xojo Web. I can have an application running in my browser that performs some action all via client side javascript in a single page application in approximately 2 minutes. Its takes longer than that to download, update, and start a React project. Never mind connect a web backend via JSON calls, return a response, present response, etc.

The product has aged gracefully and even kept pace with modern environments despite being relatively untouched over its seven-year lifecycle. There have been slight improvements here and there but it is largely the same product as when it was released.

Identifying the top weaknesses for Xojo Web currently:

  1. No responsive design capabilities which makes building for different devices painful.
  2. Outdated and not very secure embedded web server:

    The built-in web server is HTTP 1.0 compliant only and has some considerable security and performance implications. For example, it is very easy to perform a denial of service attack on standalone Xojo web apps.

    Most of these issues are mitigated by sitting behind a load balancer or running in CGI mode like we do at ServerWarp. Xojo Cloud operates their apps in CGI mode so you are good there as well. However, those of you running standalone on your own servers need to be mindful in this area.
  3. Lack of new and updated widgets for modern web usage.
  4. Overly complex and difficult to import javascript widgets from other frameworks or toolsets.
  5. Building web services to interface with other desktop and iOS applications built in Xojo is way more work than it should be for a RAD platform. See my product Rapid Services for a way to improve this and build web services as fast as you can web applications with Xojo Web.
  6. Web styles leave a lot to desire in terms of skinning and maximizing web application aesthetics.

I have a vested interest in the Xojo Web product as we operate the largest Xojo web hosting platform not owned by Xojo, Inc. I have launched and operated hundreds of these applications in standalone, CGI, and load balanced modes. I have seen and worked with many of these customers to help them get the most out of their applications.

My biggest fear with Xojo Web 2.0 is that the desire to “build something new” could hurt the product. If Xojo completely switches to a responsive design then it will be nearly impossible to support the existing web applications which are based on fixed locations on the HTML page.

It would be cruel and difficult for customers if you said starting next release you can no longer work on your existing Xojo Web project as the new web framework is fundamentally incompatible. You could support Xojo Web v1 projects but then you end up with essentially another target. How much support and updates do they provide to Xojo Web v1 or is it considered legacy and only maintained such as the classic vs new framework debate.

The term responsive design was not coined until May 2010 and while the idea existed via other terms like fluid, elastic, etc. it was not widely deployed. I do not fault Xojo for not supporting the paradigm. According to Wikipedia; Mashable labeled 2013 the year of responsive design. It has been pervasive ever since.

Consider for a moment how responsive design would actually work in the context of the IDE. The fact that you design your web application in a similar manner to desktop apps is a nuanced, sometimes awkward, but surprisingly consistent experience. I cannot fathom a responsive design framework that would work reliably in the IDE.

When you are “drawing” your web application in the IDE you are not manipulating HTML/javascript in real time. You are just laying out controls in the manner in which you want them to appear in the browser. This is really what gives Xojo Web its strength as a truly rapid web application development tool. You do not interface with HTML or Javascript at all unless needed and rarely at that.

A responsive design using CSS/javascript can fundamentally alter your web view based on screen size and orientation. I struggle with how the IDE can present widgets that are presented entirely differently depending on the size of the screen. How would you ever map that correctly to the controls from the library.

I am also concerned we may get some version of the auto layout tools used for iOS. Those are terribly unintuitive and challenging to produce the correct results without much reading, manipulation, trial and error. I personally would find that extremely frustrating if used on the Web.

Between the IDE challenges, project backwards compatibility concerns, and general risks involved with a new target or framework I take pause with a “brand new framework”. I think Xojo should be focused more on finishing the new frameworks they have already started. I understand for purposes of marketing that having fancy new features and targets is advantageous. I would just like to see a new control for every supported platform each release. If that cadence had been maintained Xojo Web would not need a new framework today.

Let us assume that Xojo was not working on a new web architecture. I have a list of things I would like to see improved in what we have today. If done correctly I think Xojo Web would be future proof in the short term and allow them to focus on iOS, Android, Windows flicker, etc.

  1. Instead of breaking your current paradigm of fixed location widgets in favor of responsive design; How about presenting three views similar to how you do it with iOS.

    A smart phone view, tablet view, and desktop view. You would drag widgets to each applicable view depending on whether they should appear and how they would appear. They would share a name across all views so your backend code is not concerned with the size.

    When necessary you could still use the Session.Platform identifier to handle specific circumstances. The infrastructure is already there we just need some design time IDE enhancements to optimize for the varied screen sizes.
  2. Update the embedded web server to support HTTP 1.1 and 2.0. Let’s also add in request timers, content length verifications, and pre-request body header analysis to prevent and stop various attacks or bad requests.
  3. Add some user controls. Date picker would be a good start. I have never seen a RAD tool sold without a date picker before.
  4. The Web SDK via WebControlWrapper is not actually that bad but the learning curve is pretty high. I would like to see some work on making that easier or supporting some of the larger toolkits out of the box.
  5. See Rapid Services for a better way to implement web services creation and consuming.
  6. Styling and theming Xojo Web apps needs a major overhaul. I have built an entire theming library for Xojo Web for some of our applications and I plan to release soon. GraffitiWeb and others are great but for widgets but making your application look good is still too hard.

I am curious how many of you share my priority list and concerns regarding a new Xojo Web? What are you looking for in the next version or to be improved upon in the current?

Double the RAM on ServerWarp

Three years after starting our fully managed hosting service for Linux virtual servers optimized for Xojo Web and we are still beating the competition. Today we announced DOUBLE the RAM on all of our servers.

We do our best to never raise prices on our customers and thus far we never have. The hosting industry is widely a race to the bottom because almost every host is peddling some variation of the same hypervisor and control panel package.

The problem lies in the fact that these panels were designed for an era of shared hosting. They make assumptions like DNS/Mail/Spamfiltering/Databases all being hosted on the same server. This reduces your performance by running unnecessary services, restricts your available libraries in order to support every possible function, and not in tune with the latest development trends. Today's developers want to deploy quickly and run their services in containers for isolation and security. They want to be able to manage a fleet of servers via REST API endpoints and they want to minimize the surface area of attack on their server.

The ServerWarp hosting platform provides that. We combine a modern Linux kernel, container technology powered by Docker, secure network and application level firewalls, and our own custom easy to use control panel powered by a REST API to make it happen. On top of what your server provides out of the box we can support any third party Docker container for maximum flexibility. 

In addition to a fully managed server which requires no system administration knowledge we provide the features you expect in a web host. Features like global AnyCast DNS for all of your domains to speed up your sites and applications. Unlimited email accounts and forwarders through our dedicated email hosting server powered by SmarterMail for full Apple Mail and Microsoft Outlook interoperability. We also provide access to the most commonly requested database servers like PostgreSQL and MySQL or an unlimited connections license to cubeSQL at absolutely no charge.

Speaking of prices we blow the doors off the competition. Go to any VPS provider and ask how much their managed services cost. They either do not provide it, will cost several hundred dollars a month, or will simply enable automatic updates for you and call it "managed". Managed means more than updates; It means knowledge. Knowledge on how to make your apps and services a success and how to scale them up when they are doing better than you expected. 

For Xojo customers and Xojo Web users we have the best hosting platform around. Xojo Cloud at $49/month offers you 1 GB of RAM, no email, no DNS, support for 1 domain, and 30 GB SSD storage. For $50/month at ServerWarp you get 2x the vCPU cores, 4x the RAM, 2x the SSD storage, unlimited domains, unlimited emails, AnyCast DNS, and the ability to load balance your Xojo Web apps.

Check us out at https://www.serverwarp.com and let us know how we can help you Xojo.

The ServerWarp Control Panel

My friends I am ecstatic to share with you the next chapter for ServerWarp Xojo Web hosting. Its been a long time coming but at last it is here: the control panel.

WarpPanel is an always-on always-available management system for your Linux server. Whether it be a virtual machine or dedicated server we designed WarpPanel to be easy to use, accessible, modern, and secure. 

The web interface runs on a special port and requires SSL to connect. Upon logging in with your server user account you will be greeted with the dashboard overview:

Every 30 seconds the server will refresh the doughnut pie charts giving you near realtime information about the health and performance of your server. Using the containers page you can start, stop, and restart any active service, application, or web server running on your server:

The web interface is the easiest way to modify your system configuration or add new capabilities to your server. 

Your server is always kept up to date as new features are rolled out however the fastest way to try out new capabilities is to use our new desktop application:

The desktop application allows our customers who have several machines with us to stay connected to them all at the same time. In general new features and capabilities will be delivered in the desktop application before arriving on the web.

An example is the ability to view the console output logs for any of the applications or services running on your server.

Most importantly however is the foundation behind WarpPanel that sets it apart. Unlike traditional hosting control panels that are centrally managed ours runs directly on your machine.

The linux host operating system has been completely optimized for secure delivery of web and database applications by running everything inside of unprivileged Docker containers. WarpPanel helps you manage these containers while maintaining strict controls on who and what has access to those resources. 

The foundation is built directly on top of a REST API that powers all clients whether it be the web based interface, the desktop app, or the coming iOS mobile app. The desktop app even provides you with the cURL commands for every action so that you can learn to build and automate your server with your own tools. It will also soon provide Xojo and PHP code as well.

The ServerWarp control panel is available immediately for all new customer servers. Existing customers will be notified about scheduling an upgrade and/or migration to our new server platform to take advantage of these new features. 

A follow up post is forthcoming regarding the technical specifications of our new platform. You can check out a demo of WarpPanel by entering your information on our new homepage at https://www.serverwarp.com

As always thank you for your business and happy coding.

Phillip Zedalis
Chief Warp Engineer
ServerWarp, Inc.
Managing Developer
1701 Software, Inc.