The Storage Resource You’re Not Using

When was the last time you thought of a computer workstation as a storage resource?

Workstations typically ship with a minimum of 500 GB storage, yet usage information from AetherStore users proves that, until now, data was stored everywhere except on workstations. It’s not necessarily surprising, as storage trapped on individual drives provides little value; but how much storage is accumulating as a result?

We gathered data from 520 machines running AetherStore, including both workstations and servers, to see just how much office storage was underutilized:

Average % Available Space per Machine: 73%

Average GB Space Per Machine: 352 GB 

Computer w Space

Multiplied by the number of machines in your office, you can imagine how quickly this available storage adds up. In fact, on the 520 AetherStore machines in this data set, there were over 180 terabytes of unused storage space! Imagine how much 180+ terabytes of onsite storage could cost if you had to purchase it outright.

The data makes it apparent just how much storage offices already have when provided the technology to combine and manage it effectively. AetherStore customers in this data set included anywhere between 4 and 65 machines in their deployments, and reclaiming storage resources was surprisingly simple. In fact, the speediest of our users were able to get AetherStore up and running in under eight minutes, creating a multi-terabyte drive in less time than it takes to boil an egg.

Average Number Machines per Store: 9

Average Space Available per Deployment: 3.2 TB

creating store

No matter what size your office is, if you have a few minutes and some workstations you have everything you need to start rapidly increasing usable storage capacity. You’ve already paid for the hardware – now you can finally use your space!

Get in touch with AetherStore and find out how much storage is waiting for you in your own network!

Backup for Disaster Recovery

“Backup storage that just works is my primary goal for getting AetherStore into production.”

– Brant Wells, Wellston Technology

Wellston Technology will deploy AetherStore as a central part of their Backup and Disaster Recovery strategy at a client site with 350 machines, producing storage for redundant backup. Brant Wells, Owner & Lead Technologist, leads the AetherStore implementation.

Existing Pain Points:

“In the past, I have dealt with problems where the backup and storage was consistently requiring maintenance, and unreliable in general.” Often, important data was shipped offsite to remote locations, leaving Brant unsure what was actually backed up and how. His biggest pain points were:

  • Uncertainty and lack of visibility into status of backups
  • Constant maintenance required for existing backups
AetherStore Deployment:

Brant’s first AetherStore installation was a test environment across four nodes, creating a 30GB Store for smaller backup and CD/DVD images. They also have a small set of random software packages available on the Store. Going forward, Brant will expand the size of his Store across more of the 350 client machines to host a much larger backup, and add additional software packages to his Store.

  • Ease of Management: “I was able to install and manage my first Store within minutes after getting the installations done.”
  • Reliability of Storage: “It is nice not to have to worry about losing a node or disk and have it ruin your night’s backups. With AetherStore, we are able to sleep at night knowing we have a good backup storage.”

“The setup process was simple: install the storage package on any number of nodes, and install the Dashboard on one of them. Mount the drive and share it via Windows. I love that I can also push and manage the installations with apps like PDQ Deploy. No muss, no fuss. It just worked!”

Simple Setup

“With AetherStore, we are able to have a reliable storage location for our backups that makes it easy to house backup images and restore from backup when necessary. We don’t have to worry about whether or not the backup will belly-up if we lose a single (or more than one!) hard drive.”


SpiceWorld London

We just arrived back in New York after a few days at SpiceWorld London 2014 – we had a blast! If you’re not familiar with Spiceworks, it’s a network management tool for IT Pros, providing everything from network inventory and monitoring to help desk software, mobile device management, cloud detection services and more. The tool itself may be helpful for IT Pros, but the community created by its users, employees, and other tech vendors is what makes a SpiceWorld Conference worth crossing the pond for. Twice a year the Spiceworks online community gathers in-person to swap IT knowledge at breakout sessions, happy hours, and a full-fledged party.

Attendees enjoyed a Spiceworks party Tuesday night sponsored by Microsoft.

Aside from the free drinks (kidding!) the best part of SpiceWorld was getting to speak directly with the IT Pros for whom we’re designing our storage software, AetherStore. We were able to pick their brains about everything from feature requirements to preferred support methods, and can report back to our development team with some invaluable product feedback that’s come straight from the source.

As a vendor we attended breakout sessions where Spiceworks team members shared their expertise and panels of IT Pros explained what gets their attention when it comes to tech marketing. We learned that webinars and podcasts are preferred methods of content consumption, and that whitepapers, while educational, aren’t as widely read as marketers may hope. IT Pros also shared preferred contact methods (unsurprisingly, cold calls were a strong “don’t”), and explained the challenges they’re presented with on a day-to-day basis that make vendor interruptions a nuisance.

A panel of IT Pros answer marketing questions for vendors.

Some of these sales tips may seem like common sense, but hearing them directly from our target customers has sharpened the focus of our marketing plan. As we near the AetherStore launch, the knowledge gained at SpiceWorld London will have a real impact both on the development and sales sides of our product.

If you’re in the enterprise or SMB tech space, it’s hard to find a reason NOT to get involved with the Spiceworks Community. With 15 million IT Administrators as Spiceworks users spending 5.7 Billion active minutes in Spiceworks annually, there’s no other forum exchanging such an expansive collection of IT know-how. And as cheesy as it sounds, Spiceheads don’t just swap knowledge, they share laughs and anecdotes that make the Spiceworks community as enjoyable as it is educational.

A panel of IT Pros answer marketing questions for vendors.

We’re already all set to attend SpiceWorld Austin 2014! We’ll have a booth to exhibit AetherStore and are currently brainstorming some awesome giveaways for the Spiceheads there – any suggestions?


Start-up Marketing Metrics

Marketing costs money.

The expense is easy to quantify in traditional marketing investments like buying ad space – did the price per inch justify how much it brought you in sales? Newer strategies like inbound marketing can be trickier to measure. They may not require an upfront purchase but end up costing you in the form of an hourly rate on the labor required to execute them. No matter how the bill reads, evaluating a marketing strategy always comes back to its ROI: was what you paid worth the return?

“Return” in this context is synonymous with “Revenue,” which makes this traditional marketing concept difficult when applied to a pre-launch start-up. When revenue is not yet an available metric, how do you evaluate your marketing investments?

Marketing Metrics Without Revenue

We’re trying to answer this question while marketing our storage software, AetherStore, and have been using the number of AetherStore Early Release Signups in place of sales figures. Signing up for early release is as far as potential AetherStore customers can get in our marketing funnel while we’re pre-launch, so for now if a marketing expenditure compels an individual to reach that point it’s been successful.

Having an online signup form makes it easy to differentiate between marketing channels. Through Google Analytics we can pinpoint how our signups found us, for example through organic search, social media, paid AdWords, this blog, etc. To an extent, we can also track the source of leads that sign up after hearing about us offline. For example, we exhibited at NY Tech Day last week and had hundreds of conversations, during which we mentioned and passed out materials promoting an AetherStore URL we had set up specifically for TechDay. Signups that came through that specific form are easily traced back to the event, allowing us to measure the “return” on our time there by counting how many signups it produced.

“Unpaid” Advertising Gets Expensive

This isn’t a perfect metric. One element it doesn’t account for is the quality of signups. We have a small budget for Google AdWords and a number of signups have come through this channel. We don’t spend a lot of money or time (which end up being the same thing) on our paid ads and they continue to produce signups, which makes them a sound investment if we’re looking only at the numbers. Yet, I know the quality of those signups is lower because of the background information provided and the lower engagement rates we have post-signup with these leads.

On the other hand, our signups that find us through social media have been more likely to engage with follow-up contact up and seem to have stronger potential as customers. This is a result that any inbound marketer would have predicted: when someone finds us on social media it’s often because someone they follow has mentioned our brand, so their discovery of AetherStore is like a peer recommendation. It’s more “organic” than what we get from a paid ad. However, just because it’s free to set up a Twitter handle doesn’t mean these leads aren’t expensive. Cultivating the online relationships that produce inbound leads requires an immense amount of time (see: money). All told, they require more resources to generate than the signups that come through our Google Ads.

Thus the problem with using signup numbers as the sole metric in evaluating our marketing efforts: they don’t account for quality. If we invest $1000/month into both mediums and get more signups via Google Ads, ROI favors the ads over social media. In reality, we know social media is probably the better investment.

Quality Over Quantity

The fact that I have to use the word “probably” brings me to the main problem we face evaluating marketing efforts while AetherStore is pre-launch: we can’t assign a dollar amount to an AetherStore Early Release Signup. The ROI analysis depends on both sides of the equation being a monetary value, so it’s simple to see whether the return is high enough to validate the investment. Right now, we can only project how much revenue our marketing investments will bring in based on how we plan to price the software and how many signups we think will actually buy.

We’re banking on the assumption that more signups = more potential customers, but we don’t know with certainty that the number of signups produced by any of our marketing expenditures will produce enough cash to justify the investments. It’s what’s exciting, and most difficult, about marketing at a  start-up: until we can actually calculate ROI by tracking revenue, we’re working with a far more qualitative definition of what constitutes a good “Return” on investment.



NY TechDay 2014

We’re still gathering all of the business cards, free goodies, and great ideas we took away from NY TechDay yesterday, where we exhibited AetherStore and spoke with hundreds of attendees . Pier 92 was packed with tech companies showing off what they’re working on – everything from dating apps to enterprise software. With hundreds of start-ups and over 10,000 attendees, NY TechDay proved there are a lot of exciting things happening in Silicon Alley.

A special congratulations to Atmospheir, an AetherWorks portfolio company that took home the NY Tech Day award for “Best in Social Media.” They’ve built a social address book that’s available for download now!


We had a blast running the AetherStore booth, where visitors stopped by and learned how to turn unused workstation hard drive space into a valuable storage resource. We even put visitors to work, polling opinions on some AetherStore taglines and other copy to see which marketing materials they preferred. With so many start-up experts in one place, we couldn’t resist a chance to get their feedback.

We didn’t let those that stopped by the AetherStore booth leave empty-handed, though. We came armed with 300 orange donuts and had almost polished off all 25 boxes by the day’s end.


The AetherWorks team had an awesome time at TechDay 2014. We can’t wait to follow up with everyone we got to connect with there and see what’s next for New York Tech!


St Andrews Programming Competition Winners

As we recently announced on the blog, AetherStore sponsored the St Andrews Programming Competition 2014 on April 7th at the University of St Andrews. Seventy-five participants including undergraduates, postgraduates, and even staff members competed to solve a series of coding problems in three hours, using a programming language of their choosing. £200 cash prizes were up for grabs in the subhonours, honours, postgraduate, and individual student categories. Congratulations to all the winners!

Overall Champion: 

Head of School: Steve Linton

Postgraduate Champion: 

Team: SKI Instructors (Matus Tejiscak, Christopher Swaab, Adam Barwell)

Postgraduate Runner Up: 

Team: Kmp (Daniela Grijincu, Mihai Pitu, Radu Floroiu)

Honours Champion: 

Team: TwoGingersAndAnAsian (Alex Field, Luke Borwell, Ivan King)

Sub-honours Champion: 

Team: Missionary (Kestutis Vilcinskas, Austeja Elvina)

Sub-honours Runner Up: 

Team: Stack Overflow (Tom Dalton, Emily Dick, Neil Wells)

Best Individual Student: 

Nathan Blades

Here are some shots from the competition:

Congratulations to all of the participants, and thanks to the St Andrews computer science department for putting together a great competition!


Brainstorming Blog Ideas: Why you probably already have the material you need

“Start blogging.”

It’s probably the number one piece of advice given to marketers looking to up engagement online. If you put out the right content, the right people will find you. Yet companies (us included!) don’t blog as often or as effectively as we’d like because putting out the “right content” is so much easier said than done. We know first-hand it takes time and serious brainpower to identify the topics where your expertise and your audience’s interests intersect.

As a brainstorming tool, I’m breaking down three of the categories that successful blog posts seem to fall into – based on my own experience and other blogs I’ve read. You’re already familiar with the categories, but I’ve included some questions and examples that may be of help if you’re ever asking (like we often are) “What should we write about this week?”

1. The How-To:

There’s nothing like Googling “How to…” to realize that whatever your problem is, you’re probably not the first person to look for an answer to it. Tutorial posts are a no-brainer when it comes to creating content that’s valuable to your audience. We’re a software R&D firm, so some of our most successful posts have been written by our developers detailing solutions they’ve found to particularly challenging or interesting programming problems.

Tutorials don’t need to be advanced. I recently needed to make some changes to our AetherStore brochure in Adobe Illustrator, a few of which required Illustrator skills that weren’t in my wheelhouse. I posed my “How-to” questions to the web and found tutorials that gave me the exact tidbits of advice I was looking for. In this case, I didn’t need an expert’s overview of the software, I needed specific instructions that were actionable for someone of any skill level.

2. Reviews & Comparisons

If a blog’s purpose is to unite your insight with your reader’s interest, a knowledgeable review is a great way to get there. From which software to buy to which conferences to attend, peer opinion carries a lot of weight, specifically when your organization doesn’t stand to benefit from the review. There are few decisions made today that aren’t pre-researched online.

Blog reviews can be even more helpful when they compare two things directly. At various moments we’ve found ourselves deciding between Jira and YouTrack for task tracking, Optimizely and Unbounce for A/B Testing, even Paychex vs. ADP to handle our payroll. We almost always consult blogs that compare and contrast as part of the research we do make an informed decision – as does the majority of the web. If you’re experienced with a product or service or well-versed in how two different ones stack up – someone may be searching for your opinion.

3. New Ideas

One of our most popular posts was written by one of our engineers, called “The Waiting Game: Fast-Food Queuing Theory.” This post applied our specific skillset, computer science, to a very common problem, long lunch lines. Programmers could study the code, and everyone could appreciate the proposed solution.

If you’ve been musing on a solution to an everyday problem or have ideas on a new way of doing something, why not propose your theories to your blog audience? Whether or not your solution holds up, it could be a great conversation starter.

Per those categories, here’s a list of questions to use as a jumping-off point when trying to brainstorm blog ideas:

  • What problems have you solved recently?
  • Have you learned a new skill, shortcut or technique? (Think beyond tech, too. Did you restructure a meeting format to make it more productive? Send a thank-you email that received a great response? Come up with some great interview questions?)
  • Did you read another tutorial that didn’t answer your question or find one on which you could expand?
  • Have you started using any new software or hardware recently?
  • Have you attended any conferences or events that you could review?
  • Have you switched products or services recently?
  • What daily annoyance drives you crazy? How would you propose to fix it?

We’re always striving to improve the quality of the AetherWorks Blog and reach new audiences. Not every post resonates, but it’s worth keeping a frequently-updated blog to help hone in on what does interest readers. If you put out the right content the right people will find you. And if you put out enough content, you have a better chance of putting out the right content.

Gus at Comp

St Andrews Programming Competition

We’re excited to have AetherStore sponsor the upcoming St Andrews Programming Competition 2014! The AetherWorks team has plenty of St Andrews graduates. Our six alumni have a collective ten computer science degrees, nine of which came from St Andrews, so they’ve logged a lot of hours in the department and look forward to being part of the event.

The programming competition is open to students of all levels and with any amount of programming experience. Teams of three will have three hours to solve a set of programming problems and win £200 worth of prizes. Here’s what the St Andrews School of Computer Science Blog had to say about the competition:

“Generally, programming competitions are aimed at the best programmers, this is a first-of-its-kind competition where students from all levels with any amount of programming experience stand a chance to win a prize. Another unique aspect of this competition is that it has also open to members of staff from the School of Computer Science, making this a fun experience and a bonding opportunity for staff and students.”

The competition will be held Monday, April 7th from 2pm-5pm GMT, and AetherStore will also be providing refreshments. Click here for more details and registration information. Best of luck to all of the participants!

st a compsci
A photo from back in the day: Angus and Greg in the computer science lab in 2010

Meet the IT

It’d be difficult to develop software that makes life easier for IT Pros without understanding what they’re dealing with, so we appreciate every insight we can get into what a day at the office looks like for an IT Administrator (as it turns out, no two days at the office really look the same). Throughout AetherStore‘s development we’ve had the opportunity to speak with some awesome IT Pros, and one of our Spiceworks beta testers agreed to let us publish some info on what makes him tick so everyone can share his insight.

Meet Shuey, a passionate IT Pro with a unique talent!

Name: John Schuepbach (“Shuey”)

Role: Network/Systems Administrator

John Schuepbach

Can you briefly describe your role as a Network/Systems Administrator?

“I support a staff of approximately 250 users, and my IT team consisting of 6 people. Pretty much anything that has to do with IT (hardware, software, networking, printers, servers, etc), I support it. Heck, some staff even think that ‘IT’ also means ‘building maintenance’, ‘janitor’ and ‘free home IT support’ LOL.”

What’s the breakdown of a typical day for you, in terms of tasks or areas of focus?

“What’s really cool about my job is that no day is ‘typical’. On my ‘best’ days, I may only get one phone call during the entire 8 hours I’m on the clock. And those are the days that I dig into projects and keep charging forward to get as much done as I can, because… On my ‘worst’ days, I’m so busy putting out fires that I’ll have one person on-hold, one person I’m talking to, and another person calling in! And it’s next to impossible to dive into anything on days like that.”

What’s your biggest pain point, what makes your job most difficult?

“Politics!! Whether it’s users who think that THEIR problem is the ONLY thing I have on my plate, or finding a way to help upper management understand what’s REALLY going on in the IT department, or conveying the importance of the need to spend money in order to maintain and effectively grow IT infrastructure, it always seems like political red tape is the biggest hurdle.”

What’s the most helpful tool in your IT arsenal?

“Having a strong ability to remotely troubleshoot and fix problems. This might seem like a simple answer, but I can’t tell you the number of times I’ve seen IT staff who either 1. Don’t have a strong enough foundation to know how to remotely support staff, or 2. Don’t think to use it. When a user has a problem, and their success depends on how quickly you can troubleshoot and fix the problem, leaving your ‘battle station’ to physically deal with the issue often takes extra time that ends up turning into wasted time. Plus, it never seems to fail that when you leave your desk to go take care of something, that’s when another user calls in and needs help; but now you don’t have access to all your ‘IT Tools’ because you’ve left your battle station!”

What’s your favorite part of your role?

“Things I really enjoy working on are big projects that take several hours over the course of a few days, to as many as hundreds of hours over the course of a couple of months. Especially things that involve revamping something to make it a lot better, or building something from the ground up (cleaning up an existing group policy implementation, setting up a WSUS server, creating scripts to simplify tasks, and documenting procedures and policies; to name a few).”

Hidden Talent:

Shuey is world-famous for his Tetris creations (check them out here)! His videos have been featured on TV shows in Japan, Australia and the UK, as well as on popular websites like, and Here’s an interview he did for HardDrop.

He has also been a self-proclaimed Hardcore Video Gamer since the age of five, and before selling off a large portion amassed an impressive game collection during his 36-year run.

Shuey’s “How-tos” and More:

The New Jersey (version 2). That's. The. Joke.

Creating a Java REST API with Jersey (Including Code Example)

In our latest development cycle we’ve been working on creating an official API to manage and control AetherStore. As part of this process I’ve been experimenting with Jersey 2, the Java reference implementation for JAX-RS, the Java API for RESTful Web Services.

This post discusses an example API using Jersey. The example is itself fairly well commented, explaining why certain pieces of code are needed, and how they relate to the project. This post covers the structure of the project and discusses some of its more interesting features.

The example is of an API representing a set, which allows:

  • Strings to be added as part of a GET request parameter
  • Strings to be added as part of a PUT request body.
  • The set of all strings stored to be returned.

If you’re using Jersey, it’s important to note that a lot of examples online use Jersey v1, which causes problems because this version of Jersey uses an entirely different namespace — v1 uses com.sun.jersey, whereas v2 uses org.glassfish.jersey, and a number of classes are either named differently, or are in different sub-packages.

The code on GitHub should work straight out of the box if you’re using Eclipse for Java EE.

Areas Covered

The code is useful if you’re interested in one of the following features in relation to jersey:

  • Running in eclipse.
  • Setting up appropriate Jersey Maven dependencies.
  • Setting up your web.xml to work with Jersey.
  • Creating a basic API.
  • Using JSON to wrap requests and responses.
  • Using an exception mapper for more readable error handling.
  • Injecting dependencies into resource classes (the API classes).
  • Unit testing Jersey.
  • Mocking calls used by our Jersey API.
  • Unmarshalling responses from a Jersey API.

Reading the Code

This section describes how the code is structured at a high level. There are some comments on specific lines of code, but I’d recommend looking at the comments in the code for a closer look at individual features.


At the core of a Jersey application is the pom.xml file, which specifies all of the dependencies in the code — including Jersey itself — and the versions being used. If you’re using another example, it’s important to note the version of Jersey you’re using. Here we are using Jersey 2.6:

The web.xml file specifies how your servlet is named, and where the main Jersey Application class is. This Application class is used to start your Jersey servlet.

In this example our application class is called SetApplication. It registers bindings for a few classes, which we’ll discuss later. At this point the most relevant call to our application is:

This tells the servlet container where to look for the resource classes that form the API. In this case our resource class is called SetResource.

SetResource (API) Class

To recap, this project implements an API which supports two calls to add a string to a set (/set/add/<value> and /set/add), and a single call to get all entries in the set (/set/get). The class definition for this class annotated (shown below), to set the base path of the API call to be /set:

Then the methods in this class are further annotated to describe the API calls under this path. For example, the following code is executed when a /set/add/{value} request is made.

The full call to this method will be /set/add/{value}, where value is a variable that is mapped to the value parameter of the method as a result of the @PathParam annotation. We want the call to consume and produce a JSON response, so we specify this in the @Produces annotation. The marshalling to JSON is handled automatically, but we have to specify the marshaller dependency in the pom.xml file, as follows:

There are two methods which include the /add path, but they accept different numbers of inputs so there is no conflict. The class also contains an @Inject annotation, which tells the container to inject a dependency into the callHandler field. If we look back at the SetApplication class, we can see that this value is injected by registering it with the application through the register() call:

Unit Tests

I’ve written two unit test classes. One, SetApiTests provides what are essentially end-to-end integration tests, which call the API and check that its operations perform as expected. The second, MockedSetApiTests provides an example of using mocking to test just the API calls themselves. Both test classes extend JerseyTest, which handles the heavy lifting of setting up a servlet container and providing the API. To run correctly, JerseyTest requires a test framework provider, which is the servlet container used to run the test. In this example I’ve used the jetty container, where the dependency is specified in the pom.xml class with the following code:

In the MockedSetApiTests class, the SetCallHandler, which manages the logic behind the API call (and is injected), is mocked out:

The configure call is required by JerseyTest to properly configure the application, which in this case requires us to pass the mocked dependency so that it can be injected into the SetResource. In the tests themselves, the call to the API is relatively simple:

This makes the API call and returns the result (whether it is a success or failure to the responseWrapper). This can then be queried to establish whether the call was successful (by getting the HTTP response code):

If successful, we can then obtain the returned value:

The test addMultipleSingleCall shows an example of an API request with a message body (in this case a set of Strings), also showing how to package up this request parameter in the test:

The examples in this post don’t include any parameters that are non-standard Java types, but doing so is relatively simple. By default only the public fields in the class are serialized, and a default constructor is required, but the class doesn’t have to implement serializable.

How To Run

To run this example in Eclipse for Java EE:

  1. Download / clone the code from GitHub.
  2. In Eclispe, go to File -> New -> Java Project
  3. Untick ‘Use default location‘ and navigate to the path of the jersey2-example repository.
  4. Re-tick the ‘Use default location‘ option, which sets up the project name as jersey2-example.
  5. Click finish to create the project.
  6. To run, either run the unit tests in JUnit, or right-click on the project and select Run as -> Run on Server.

If you want to create your own eclipse project, you can follow this example, but note that this is for Jersey v1, so you need to adjust the options used in steps 3 and 5 (i’d compare them to the example in my GitHub repo).

To run standalone (the previous steps are required):

  1. Right-click on the project, Export -> WAR File.
  2. Set the location to store the WAR file, and change the specified server runtime if necessary.
  3. Run the WAR in your favorite application server, or standalone with Jetty Runner.

Additional Resources

The following links are resources I found useful in writing this example. Where the examples refer to v1 of Jersey I’ve said so — examples are included because some part of them is useful, but be careful to note places where v1 specific code is used. This includes anywhere where a com.sun.jersey namespace is used.