Tag Archives: software

SpiderOak Launches 5.0 Beta

Today we are proud to release the SpiderOak 5.0 Beta. It comes as the result of a lot of hard work and planning and we are excited to get it into the hands of our users. The most significant addition is SpiderOak Hive which makes syncing data between your various devices simple and easy. You can find a detailed list below of what will be included from new features to feature enhancements to bug fixes as well as some FAQs about SpiderOak Hive. Please click here to download the 5.0 Beta. (Click here for the 64-bit Windows build)


  • SpiderOak Hive: We adopted a simple approach to syncing data across all devices by creating the SpiderOak Hive folder. Simply drag and drop files or folders into this folder and they will automatically sync to your other devices.
  • OS Integration for Windows (Mac and Linux soon to follow): Granting right-click access functions via Explorer now allows you to backup, share, and view historical versions.


  • ShareRoom Enhancement: Users can now add passwords to their ShareRooms which adds an additional layer of security when sharing important files.
  • Remote Diagnostics: We added a capability for remote diagnostics to help when troubleshooting problems with customer support.  This option is disabled by default. You must explicitly enabled it.  Diagnostic reports consist of metadata such as program and OS version information, file system types, program log files, folder and file names. Reports do not include backup data, passwords, or encryption information.
  • Password Enhancement: As a new user, you must now change your password upon setting up your first device when JavaScript was disabled during signup and a temporary password was automatically generated.
  • ShareRoom Enhancement: We added clarification to the ShareRoom creation wizard


  • LAN sync: Fixed a bug with LAN sync, allowing the client to recover from certain error conditions
  • UI / View Tab: Fixed a bug that sometimes caused the UI to erroneously disable the View tab in the client after displaying the “out of space” popup window.
  • AppIndicator framework: Switch system tray icon to use AppIndicator framework on Ubuntu.
  • Backup: Fixed a bug which prevents category size indicator on basic backup tab from updating without restarting the client
  • Downloads: Fixed a bug that prevented downloads from resuming after a network failure.
  • Uninstalling SpiderOak: Fixed a bug on Windows which reports publisher info as ‘unknown’ when uninstalling SpiderOak.
  • Sync: Fixed a bug that sometimes prevented sync from detecting a moved folder properly, instead considering it a deletion
  • Backup: Fixed a bug causing backup to fail under a very rare edge case


Here are five questions and answers we anticipate users having.

1.  What is SpiderOak Hive? How does it work?

SpiderOak Hive creates a simple way to sync data between your various devices. All you have to do is place files and/or folders inside your SpiderOak Hive and the data will automatically appear on any other device running SpiderOak. Easy.

2.  Where do I find the SpiderOak Hive folder?

A shortcut to SpiderOak Hive will appear automatically on your desktop. Depending on the operating system, SpiderOak Hive will also appear in the file system browser as follows: Windows Explorer –> Documents folder;  Mac Finder –> “/Users/<username>/SpiderOak Hive/”; Linux –> Home folder.

3.  Can I still backup my files from their original locations using the SpiderOak application?  Do I have to use SpiderOak Hive?

SpiderOak Hive was designed to run on top of the existing SpiderOak application; as such, you can still select specific files and/or folders for backup using the ‘Backup’ tab inside the application. We view this ability to create a unique and structured backup set as a core function of SpiderOak and have no plans to get rid of this functionality.

4.  How do I get SpiderOak Hive?

Currently – SpiderOak Hive is in Beta and available by clicking on the following link: https://spideroak.com/getbuild?beta=yes. (or 64-bit Windows) As soon as you install the new version, SpiderOak Hive will appear automatically on your desktop.

5.  If I would prefer to use SpiderOak Hive as opposed to selecting data to back up and sync inside the SpiderOak application, how do I make this transition?

This is simple!  All you have to do is drag and drop all the items in your current backup set over to the SpiderOak Hive folder. This action will cause SpiderOak to effectively move this data over to Hive which will take a few moments to process. Upon completion, you will be done and fully ready to use your SpiderOak Hive folder. Please remember that future files must be saved into your SpiderOak Hive folder to ensure they are being backed up and synced.

Update: The beta download links may have delivered a 32-bit build to Windows users with 64-bit computers, rendering the OS Integration feature inoperative. If you have a 64-bit version of Windows, please re-download using the updated links, or by clicking here: 64-bit Windows build. Sorry for the inconvenience!

My Mother’s Journal

I’m gathered with the nuclear family for Thanksgiving. My eighty-three year old mother pulls her journal out of her capacious purse. This is a yearly record of the places my parents have gone and the people and things they’ve seen. The contents are pictures, pasted in, wiht annotations in pen. We all gather around to look at the book and get the story of the parental travels. My ten year old niece Claire borrows my pen to add the name of her dog to the description of a picture.

What’s particularly cool to me is that Mom uses Photoshop to prepare the pictures before printing them, cutting them out wiht a scissors, and pasting them in the book. She resizes, crops, cuts glare, blurs background etc. to get the picture right for her journal. She says she doesn’t really understand layers yet, but she’s working on it.

I love this: just enough use of digital technology to suit the purpose. Mom could use a SpiderOak share (the parental units have an account), but that wouldn’t suit her purposes. She doesn’t send people links, she meets them face to face. I’m sure this Thanksgiving gathering is going into the journal and will get reported to the folks back in Oklahoma. It works.

The lesson I get from this (aside from “don’t have your finger up your nose when Mom pulls out the camera”) is that software (and everthing else) should be designed so the user can take just enough to suit their needs. And that their needs are not usually what the devloper had in mind.

I’m afraid that a lot of times my approach to software development is ‘my way or the highway’. There’s one explicitly planned way to use this software and if you use it any other way, you suck. So I’m going to try to loosen up and make the software I work on more available for ‘just enough’.

Challenges in compatibility

Recently in the SpiderOak application, we fixed a bug relating to
cross-platform compatibility. As some observers have mentioned, we implement
most of our system in Python.

In the Python world, there is an amazing amount of support libraries and
software available, with differing degrees of maturity. Much software is still
only tested in a limited degree of situations. Even in those whom approach
software testing with a comprehensive mindset may not be able to engineer or
have the resources to test the wide variations in which their software may be
deployed. That’s not necessarily their job though. Most Open Source licenses
come with an explicit disclaimer of warranty, after all.

In our case, we ran into a suprise using Python Crypto Toolkit (PCT). PCT
is a lightweight implementation of common crypto primitives in python,
provided as a mixed python/C library. For public key operations, PCT uses an
internal RSA object behind a generic public-key interface. Problem is, it
actually uses 2 different such objects. If there is a C bignum library
available, it uses that (usually GMP), as it provides math operations on large
numbers that are significantly faster than what standard math implementations
usually provide.

There’s just one little problem…

You think this kind of behavior would be handled at run-time since both
variants of the object handle the same internal data, right? Oops. PCT has 2
different object-types, which one is created depends on whether or not a given
install of PCT has the previously mentioned math module available. However,
when you serialize that object (i.e. save it to disk), that entry is saved,
tagged with the classname of the object. Unless you ensure your serializer
knows this, files saved this way (say, crypto keys), will fail to load again
on a platform installed with a non-fastmath version of this library if the
objects were created by the fastmath variant. To do this in PCT, you have to
patch the module after loading it so fastmath objects don’t get created
and tell the serializer that RSAobj and RSAobj_c (the fastmath one) are
really the same. Thankfully, the PCT developer(s) ensured that these objects
serialize the state the same way. Even when you’re thinking ahead, you can
still get suprised.

Long story short, test and audit EVERYTHING, and have someone else look
too! You WILL be suprised.

Software Testing and the Nature of Reality

It ain’t so much the things we don’t know that get us into
It’s the things we know that just ain’t so. ~~Artemus
Ward (also attributed to Will Rogers and Josh Billings)

Ideally, software development expands the consciousness of the developer,
and ultimately of the user. Good software enables you to encompass aspects of
reality that were hitherto unavailable. (Bad software forces you into the
perceptual space of a hideous insect).

So testing software comes down to exploring the new facets of reality which
the software exposes. This is a path that every serious developer must follow
diligently. It’s not not enough to simply ‘throw it over the wall’ to QA.

This becomes a process of abandoning preconceptions. You must actually use
the software and accept the results, particularly when they are unexpected. So
you are testing himself as much as the software.

Test Driven Development is good, but not sufficient, because your
assumptions are built into the tests.