Is Xojo Web "Flakey"?

Robert B @ the Xojo forums said that Xojo Web is "a little flakey".

I wrote back: 

Flakey is probably not how I would describe it.

I have to be in the TOP 5 if not the at the top regarding number of Xojo web apps deployed in any configuration. Literally a thousand times - I've seen it all.

There are some community best practices here that are actually kinda bad:

Example 1: Open a database connection for each session. This sounds cool except you discover that the framework builds a session for any web request to the root with a suitable browser user-agent. This means your app is HIGHLY susceptible to denial of service attacks. Take a HTTP testing tool and fire off 1000 connections to your Xojo app and watch it fall apart as it tries to open 1000 database connections...

Solution: If your database server plugin of choice provides asynchronous queries (MBS and possibly some Xojo standard ones) then you should use a pool of open connections as opposed to a connection per session.

The framework also does not protect you from very painful lessons:

Example 2: There are VERY VERY limited use cases for the Open() event in web controls and pages. Even in Session it's dangerous if you are trying to manipulate which page is showing or content on a page/control. The Open() event while representing the instantiation of the control/object on the backend does NOT represent the same thing it represents in the desktop framework. On the desktop framework Open() is both instantiated AND shown. On the web Open() occurs when created but you shouldn't really do ANYTHING in it and use Shown() instead. Someone will find a use case for it but you could just as easily put that stuff in a constructor method and avoid Open() all together.

Solution: Xojo should have made the Shown() event the Open() event and never provided access to Open() or called it "PreRender()" so it was obvious nothing was (potentially) drawn yet.

The framework is the opposite of responsive:

Example 3: While RubberViewsWE or some hard work can mimic responsive design this is not what the tool was designed for. I appreciate the pixel perfect renditions of my app but more views for different screen sizes paralleling "xs, s, m, l, xl, etc" from bootstrap would be appreciated. Think how on Xojo iOS you can switch between iPad and iPhone views. Xojo Web needs the same.

Lastly and only a problem in the largest deployments:

Example 4: No ability to centralize or share Session data forcing you to use sticky sessions and in general can't scale out horizontally as nicely as one would like. If your load balancer gets restarted or an individual instance crashes you lose a lot of valuable sessions in the process.

-----

Summary: Xojo Web is a product of its times and been neglected. Is it still a good product? If you know a little Javascript, understand HTTP, etc. then you appreciate the Javascript framework it provides. More work needs to be done to modernize it and protect the RAD developer from simple mistakes that they do not discover until deployment time.

I hope that's valuable food for thought for those on the fence. If nothing else Xojo Web is a great prototyping tool and you'll find you get 90% there. A little elbow grease and a little learning and you can build something that rivals any other tool.

What do you think? Is Xojo Web "flakey"?

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.