Low End Box Offers Then (2009) And Now (2020)

Back in 2009 the original founder of Low End Box, “LEA” published an early version of what became the deal marketplace of Low End Box. That page has been inactive for years and years because it is not commercially relevant anymore, but is certainly interesting to check out to see just how far we have come in the past 11 years in the hosting industry.

Specifications have grown by 10x to 100x and prices have come down at the same time. Over that same period of time the traffic on Low End Box has gone from only a few hundred visitors a month to thousands a day. Add into the mix the traffic going to Low End Talk and the combined annual traffic on Low End Box and Low End Talk is 3800% higher now than in 2009.

Take a look at the deals published in September 2009 – 11 years ago!


Now fast forward 11 years to an offer review published in May 2020 to compare (a lot has changed):


Consider checking out our “Best Los Angeles VPS Providers” Overview for some awesome deals on West Coast US KVM and openVZ VPS offers.

Jon Biloh

I’m Jon Biloh and I own LowEndBox and LowEndTalk. I’ve spent my nearly 20 year career in IT building companies and now I’m excited to focus on building and enhancing the community at LowEndBox and LowEndTalk.

Have you read the Low End Box interview series?

Back in April we started publishing interviews of industry leaders on Low End Box as part of our interview style Q/A sessions. We started talking about this back in March on Low End Talk and we still invite anyone interested in being interviewed as part of this series to speak up!

Thus far we’ve published five in total:

Interview: Q&A with RackNerd CEO Dustin B. Cisneros on Leading, Learning, Help and Execution

Interview: Q&A with Nexus Bytes CEO Nahian on the Hosting Industry and a Customer First Approach

Interview: Q&A with CrossBox.io on the Software Industry, Small Business, and Making a Difference

Interview: Q&A with EstNOC CEO Ego Ennok on Web Hosting, Virtualization and Running a Small Business

Interview: Q&A with MXroute Owner Jarland Donnell on Email Delivery, the Hosting Industry and a look back

All four interviews were detailed and informative and if you haven’t read them yet, take a few minutes and do so.

If you have a suggestion for who we should interview next please leave your ideas in the comments below.

Jon Biloh

I’m Jon Biloh and I own LowEndBox and LowEndTalk. I’ve spent my nearly 20 year career in IT building companies and now I’m excited to focus on building and enhancing the community at LowEndBox and LowEndTalk.

Add a seach box to an integer column in SP online list

Stack Exchange Network

Stack Exchange network consists of 177 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange

Google Sheet Column Tick box validation

Complete newbie here, sorry if this sounds silly.

I have 3 columns and 60 rows of tick boxes, I have the tick boxes adding up at the bottom of the sheet.

Question is I do not want a user to tick more than the available ticks per column each column has a maximum amount of tick boxes available.

For example column, A max ticks allowed is 12, B max ticks allowed 7 and C Max 25.

online storage – Can I create a direct link in Box?

My workplace provides a corporate box.com account. Using this I can create links to files, but they don’t link directly to the file – they link to a box.com webpage which shows a preview of the file.

This is no use for my current need, because I want to share something that the recipient will download from a linux command line with wget, and if they do that at present they end up with a local copy of the box.com web page instead.

Is there any way to create/share a direct link using box.com as it exists in 2020? Googling reveals something called a “Direct link” in the Box help pages, but it is marked as deprecated, being from the “old Box experience”.

user behavior – Should custom month and year picker be inside a dialog box?

I’m working on an application that allows users to sort their photos.

Please note that in the mean time, we hit a technical hurdle where an actual calendar is not possible to implement for an MVP. But for now, we’d still at least like the user to be able to input custom time periods, but limited to month and year only.

In addition, we offer other preset date ranges like – Any time, Last 7 days, Last 30 days, etc. When one is selected, it applies the filter immediately. There is no confirmation button.

How should the “Custom” option behave?

(A) When “Custom” is selected, a dialog box appears right below it that allows the user to input custom month and year. When they click “Apply”, the dropdown value changes to their custom selection, and the filter is applied.

This works very similarly to Gmail filtering, just that Gmail has a full calendar date range instead of just month/year filters.

enter image description here

B. When “Custom” is selected, the month/year fields show up right next to it. User selects a month/year, clicks “Apply”, then the filter get applied.

enter image description here

Both are pretty much functionally the same except for the presence of the dialog box in (A).

My concern about (B) is that since the rest of the filters get applied immediately, “Custom” will be the only one that has a button that’s within the same hierarchy. So while it’s functionally the same as (A), the hierarchy of it all feels incorrect.

spfx – When i am trying to get data from rich text box from list and bind it to pnp Rich text box nothing is visible in control, though the data is there

import * as React from ‘react’;
import styles from ‘./RichTextTest.module.scss’;
import { IRichTextTestProps } from ‘./IRichTextTestProps’;
import { escape } from ‘@microsoft/sp-lodash-subset’;

import { sp } from “@pnp/sp”;
import { RichText } from “@pnp/spfx-controls-react/lib/RichText”;
import { autobind } from ‘office-ui-fabric-react/lib/Utilities’;
import “@pnp/sp/webs”;
import “@pnp/sp/lists”;
import “@pnp/sp/items”;

export interface ISpfxPnpRichtextState {
description: string;
SuccessMessage: string;

export default class RichTextTest extends React.Component<IRichTextTestProps, ISpfxPnpRichtextState,{}> {
constructor(props: IRichTextTestProps, state: ISpfxPnpRichtextState) {
spfxContext: this.props.context

this.state = { SuccessMessage: ”, description: ” };
public render(): React.ReactElement {
return (
< RichText isEditMode={true} value={this.state.description} />

private async _getDescription() {
const item: any = await sp.web.lists.getByTitle(“Employee Registration”).items.getById(61).get();


let dummyElement = document.createElement(“DIV”);
dummyElement.innerHTML = item.Description;
let outputText = dummyElement.innerText;

this.setState({ description: outputText });

private async _updateDescription() {
const updatedItem = await sp.web.lists.getByTitle(“Employee Registration”).items.getById(61).update(
Description: this.state.description
this.setState({ SuccessMessage: ‘Successfully saved’ });

search – X Profile field Multiselect box not selecting in mobile

I am using a x-profile fields search form on my buddypress site. I have two issues.

  1. Some of my search form fields have multiselect options. They no longer seem to work in mobile. You can’t click on the selection. When you click on it, it closes the dropdown and does not select anything.

  2. Horizontal scroll bar is not displaying in mobile. I added Interests field which has many options and I want it as multi select so people can select more than one during search. So I decided horizontal layout will be best rather than a long dropdown. It all works well in desktop but bar does not display in mobile. I tried a lot of recommended approaches I found here but nothing works.

Can anyone help.

Code for scroll bar (this works in desktop):

#form_6918 .open>.dropdown-menu {

display: inline-flex;
width: 100%;
overflow: overlay;
width: 97%!important;
padding-bottom: 10px;

Mobile view
Screenshot of mobile view

Desktop view

Screenshot of desktop view

The State of Low End Box and Low End Talk 2020 – June Update Edition

LowEndBox - Cheap VPS and Dedicated Server HostingIn February 2020 we asked our users what they wanted to see on LowEndBox and LowEndTalk. We got tons of feedback and we listened and then we got to work. Only weeks later, in March 2020, we shared an update with regards to the state of LowEndBox and LowEndTalk, after making significant changes/improvements. Hundreds of community members provided additional feedback via our LowEndTalk community, and time was spent to accommodate further enhancements to our community. 

Since March… we’ve made a lot more improvements, and would like to take the time to highlight some of the work / enhancements for you below!

New Interview Series Added

As part of our efforts to enhance the quality of content being posted on LowEndBox, we introduced a new interview series! The goal is to publish at least one Q&A Interview Session per month. Each interview consists of anywhere from 6 to 10 questions.

We first interviewed Dustin B. Cisneros of RackNerd which turned out to be a great interview.

We then interviewed Nahian Choudhury with Nexus Bytes, which turned out to be very insightful. 

Please follow the interview series by checking back often on the Interviews Category Page.

Upcoming Interviews

We’ve had the opportunity to interview the following providers — we’re excited to post these! These are scheduled for listing any time between now and the year of the year.

  • Q&A with CrossBox.Io on the Software Industry, Small Business, and Making a Difference
  • Q&A with Low End Talk Moderator Raindog308
  • Q&A with MXRoute Owner Jarland Donnell on Email Delivery, the Hosting Industry and a look back
  • Q&A with Datawagon CEO on Being a Young Entrepreneur, Learning on the Job and Becoming Successful
  • Q&A with ProlimeHost Founder and CEO Rounak Jain on 15 Years in the Hosting Industry
  • Q&A with Mailcheap Founder Pavin Joseph on Staying Ahead of the Pack, Evolving with the Market and his Career
  • Q&A with Hostworld Limited Director Andrew Storey on His Company, Insights, and What’s Next
  • Q&A with EstNOC CEO on Web Hosting, Virtualization, and Running a Small Business
  • Q&A with X4B CEO Mathew Heard on DDoS Protection and the Future of the Industry
  • Q&A with Serveria CEO Paul Estrada on the Hosting Industry, and the Right Formula for Success

If you are a hosting provider looking to participate in our interview series, please feel free to get in touch with us via our helpdesk.

New Specializations Section Added

Are you looking for any particular features in a VPS, such as a DDOS protected VPS? How about a High CPU, High RAM or High Storage VPS? NVMe VPS? Well, you can easily sort and filter according to your requirements by just going to LowEndBox.com and within the green section under the “Specializations” column in the header table.

Social Sharing Fixed on LEB

You can now share LowEndBox posts on LinkedIn, Twitter, and Facebook with a click of a button.

Community Industry News

We recently called all individuals and hosting providers alike to submit interesting news that’s worthy of being shared. So far we’ve gotten plenty of news worthy bits and we are looking for even more.  

Throughout the coming months, we’ll be publishing interesting, industry-related news (fresh and unique content) delivered to you at LowEndBox.com

Email List Feature Created

We’ve created an e-mail list where you can be notified by email when we post new offers on cheap VPS, web hosting, dedicated servers, and VPN services. You can also be notified upon postings of new tutorials, editorials, and interviews. Be sure to subscribe and tell us what you think. You can also unsubscribe at any point.

See: https://lowendbox.com/blog/subscribe-to-lowendbox-email-list-today/

LowEndTalk Updated

As of late April of this year, we announced the upgrade of the Vanilla platform that LowEndTalk was built upon. This provides further performance enhancements and minor feature upgrades. A few more long requested plugins were added at the same time which will provide HTML features for future content.

Additionally, in April we fixed the text editor issue on LowEndTalk – providing further enhancements and posting capabilities on our LowEndTalk forum.

Poll Featured Added on LowEndBox

We added a new plugin (YOP Polls) on LowEndBox, so that we can conduct polls within certain posts. For example, we recently did a poll on “What do you use your VPS for?” and the feature worked exceptionally well. We followed up our first poll with another, this time asking “What type of virtualization do you prefer on your VPS services?” and we got great responses. 

As a result, we will be publishing more fun articles and polls throughout the coming months plus we will follow up most of the polls with an article that evaluates the data gathered so we can all benefit from the knowledge our non-scientific polls provide.

Calling all providers to be featured on LEB

In our new era of LowEndBox, all offer submissions get reviewed on a one-on-one basis, and no offer ticket is ever left unanswered. If you are a hosting provider, or if you are an individual who knows of a hosting provider that would like to be featured, please follow the instructions here to be featured on LowEndBox.

Traffic Surging

Traffic has been trending up the past few months, and for the first time in LEB/LET history, we shared traffic statistics with the community. This is all due to the content enhancements, new features/improvements outlined above, and increased community engagement. And we wouldn’t be able to do it without you – so thank you for being apart of our community!

LowEndBox and LowEndTalk Traffic Rising

Jon Biloh

I’m Jon Biloh and I own LowEndBox and LowEndTalk. I’ve spent my nearly 20 year career in IT building companies and now I’m excited to focus on building and enhancing the community at LowEndBox and LowEndTalk.

opengl – How do I calculate the bounding box for an ortho matrix for Cascaded shadow mapping?

I’ve been trying to get a cascaded shadow mapping system implemented on my engine, though it appears to be that the bounding boxes for the cascades aren’t correct.

The part I’m interested in can be found here, under the function name “CalcOrthoProjs”.

I’ve been trying to understand the matrix multiplications with this answer, and the ogldev variable and function names are kind of confusing me.

This is how I modified ogldev’s function to work with my variables:

void Scene::calcOrthoProjections(Camera &camera, glm::mat4 LightView, std::vector<glm::mat4> &orthoContainer, std::vector<GLfloat> &cascadeEnd) {
GLfloat FOV, nearPlane, farPlane, ratio;
camera.getPerspectiveInfo(FOV, nearPlane, farPlane);
ratio = static_cast<GLfloat>(RE::config.height) / static_cast<GLfloat>(RE::config.width);

GLfloat tanHalfHFov = glm::tan(glm::radians(FOV / 2.0f));
GLfloat tanHalfVFov = glm::tan(glm::radians((FOV*ratio) / 2.0));

for (GLuint i = 0; i < RE::config.r_shadow_cascade_factor; i++) {
    GLfloat xn = cascadeEnd(i)     * tanHalfHFov;
    GLfloat xf = cascadeEnd(i + 1) * tanHalfHFov;
    GLfloat yn = cascadeEnd(i)     * tanHalfVFov;
    GLfloat yf = cascadeEnd(i + 1) * tanHalfVFov;

    //The frustum Corners on View(Camera) space
    glm::vec4 frustumCorners(8){
        //Near Face
        glm::vec4( xn,  yn, cascadeEnd(i), 1.0),
        glm::vec4(-xn,  yn, cascadeEnd(i), 1.0),
        glm::vec4( xn, -yn, cascadeEnd(i), 1.0),
        glm::vec4(-xn, -yn, cascadeEnd(i), 1.0),
        //Far face
        glm::vec4( xf,  yf, cascadeEnd(i + 1), 1.0),
        glm::vec4(-xf,  yf, cascadeEnd(i + 1), 1.0),
        glm::vec4( xf, -yf, cascadeEnd(i + 1), 1.0),
        glm::vec4(-xf, -yf, cascadeEnd(i + 1), 1.0),


    //The frustum Corners in LightSpace
    glm::vec4 frustumCornersL(8);

    GLfloat minX, maxX, minY, maxY, minZ, maxZ;
    minX = minY = minZ = std::numeric_limits<GLfloat>::max();
    maxX = maxY = maxZ = std::numeric_limits<GLfloat>::min();

    glm::mat4 cam = (camera.getProjection() * camera.getView());
    glm::mat4 camInverse = glm::inverse(cam);

    for (GLuint j = 0; j < 8; j++) {
        //View(Camera) space to world space
        glm::vec4 vW = camInverse * frustumCorners(j);

        //world space to light space
        frustumCornersL(j) = LightView * vW;

        minX = min(minX, frustumCornersL(j).x);
        maxX = max(maxX, frustumCornersL(j).x);
        minY = min(minY, frustumCornersL(j).y);
        maxY = max(maxY, frustumCornersL(j).y);
        minZ = min(minZ, frustumCornersL(j).z);
        maxZ = max(maxZ, frustumCornersL(j).z);
    orthoContainer(i) = glm::ortho(minX, maxX, minY, maxY, minZ, maxZ) * LightView;

LightView represents a matrix created with:

glm::LookAt(-glm::normalize(light.direction), glm::vec3(0.0), glm::vec3(0.0, 1.0, 0.0))

camera.getProjection() returns the perspective matrix of the main camera

camera.getView() returns a LookAt at the objective the camera is looking at

The orthoContainer values are then fed into the depth rendering unaltered afterwards (by anything other than the model matrix of each model)

I wrote some comments on how I think the math is done, trying to understand what’s wrong.

The result is a frustum too wide, resulting on low res shadows(even for the closest shadow map):
Low res shadows

and this is the depth map of the closest shadow map:
Depth buffer of the closest shadow map

any insight as to why this isn’t working, or any other best practice advice, is welcome. Thanks in advance!