My experiences with the HubiC backup service

1. juli 2015

This review sums up my two first months of using the cloud service HubiC, which is a very reasonable priced backup and file sharing service backed by the French company OVH. I started using this instead of the Norwegian JottaCloud backup service as they never managed to create a linux client, and I was tired of waiting.

TL;DR for those who cannot wait, here are my main points:

  • Great pricing
  • Data is hosted in France.
  • A nice web page in many languages, along with a nice localized web app for your account.
  • Good Linux client, if you manage to set it up
  • Poor documentation
  • Poor support.
  • Payment is problematic.
  • All info by email is in French.
  • Not so great uptime/stability of the web servers

Pricing

5€/month for 10TB. This is great, and compares favorably with most other services.

Technical quality

The web site is nice, although I had a really hard time getting my phone number to validate and ended up having to examine the javascript code to find out what was wrong … Still unsure whether they actually did anything about this … But once you have managed to sign up everything is good. The client programs for Mac and Linux are also good, but you will struggle to set up the linux client as there is NO documentation (per May 2015).

Hosting

Data is hosted in France, not the US. So goodbye NSA, and hello BRGE. This is great. The uptime has not been so great. My logs from May and June contains lots of server errors. At one time nothing was uploaded for a couple of days. But this is for the private market, so this is tolerable. Especially at that price 😀

Poor documentation

Customers have implicitly documented stuff on the forums, but that does not count. You need to read the man page after installing the linux client, google for tips on setup (possibly using my init script), and basically wander around in the dark until you get it working. And it’s very hard to debug the init scripts on Ubuntu as it is, so some help pages would have been sorely needed, as hubic does not report to the system logs.

Poor support

No phone, no email, no case tracking. You need to post messages in the forum page, and request personal help by sending private messages to the team there. Support takes forever to answer you.

HubiC is French, so of course they have some problems communicating with the outside world due to severe problems understanding Anglo-Saxon humor, and this really shows in the forums and in the support replies 🙂 But they are generally nice people it seems. Due to the slow response and awkward communication, I have a feeling that the programmers themselves are involved in the support requests … At least that could explain some things, as I am sure they have tons of bugs and features to implement and these annoying customers are keeping them from doing so 😉

No feature request or open issue tracker

I have so far found several bugs, documented and reported them. What happens later on I don’t know. An issue tracker would be nice.

Lots of unlocalized bits

Most emails are in French, which is especially problematic if you have payment problems, as you will only find out once stuff stops working.

Conclusion

I really like hubiC, actually. They seem to build a very solid platform at a very competitive price, and although there are some kinks here and there, it generally works very well. They do have problems communicating this to the outside world, but the French have never been known to take a lot of room on the global entrepreneurial field, so I guess this just comes down to lack of experience. Still, human communication is where they need to improve the most! At the moment, hubiC reminds me of communicating with a government bureau by mail. No personality is shown anywhere. What about having a little blog, like labs.hubic.com? Just a sneak peek into the everyday life, and what is going on? This is great for building a community. Hoping for the best, hubiC!


grunt-codekit now supports js concatenation

9. juni 2014

A final missing piece was added to the plugin for Grunt I made a few months ago: javascript concatenation using CodeKit’s prepend and append directives. Now you might think that this is a useless feature, as we have had the grunt-contrib-concat plugin for ages, but to use that you would have to change your existing project for it to work. Adding support for handling inline build comments like these

// @codekit-prepend "some-file.js"
// @codekit-append "some-other-file.js"

makes it possible to keep using CodeKit&tm; and Grunt at the same time. That means non-Mac developers can still contribute to you project, you don’t have to change any code, and you can keep the nitty-gritty of various builds in Grunt, and just use CodeKit like you normally do. Which was kinda the point for me, since CodeKit < 2 sucked at sharing config between team members (build file changed all the time). Les resten av dette innlegget »


Non-interactive remote distribution upgrades of Ubuntu

6. juni 2013

This is mostly a note to myself on how to remotely upgrade a ubuntu server using ssh. Also available on AskUbuntu.
Les resten av dette innlegget »


Absolute file path function for Bash shell scripts

19. juni 2012

An often wanted function when writing shell scripts is one that when given a file or directory, returns the absolute file path of the file. Googling for this will return many results, but few that are cross platform compatible. For instance will a search often bring up use of readlink, but this is not useful on BSD systems (such as Mac) and will thus only (?) work on Linux.

One solution that was both elegant, uncomplicated and works on all bash systems, was found on LinuxQuestions. This will probably only work in Bourne style shells, but is easy to read and reuse:

function abspath {
	if [[ -d "$1" ]]
	then
		pushd "$1" >/dev/null
		pwd
		popd >/dev/null
	elif [[ -e $1 ]]
	then
		pushd $(dirname $1) >/dev/null
		echo $(pwd)/$(basename $1)
		popd >/dev/null
	else
		echo $1 does not exist! >&2
		return 127
	fi
}

I have included it in my shell function library on GitHub.


Clean SOAP output with tcpdump

14. desember 2011

I often have to resort to tcpdump to debug the input and output to production services consuming SOAP messages. The problem with tcpdump is that the ASCII output is littered with binary garbage at the start, and this makes it a rather laborious thing to clean up. The following article is a description of some scripts, along with the source code, that cleans up the output. Les resten av dette innlegget »


Counting occurrences of a word matching a regex

14. desember 2011

This is a brief code snippet showing how to use command line tools to count the occurences of words matching a regex. In the following example, I am trying to list all the unique hits on the urls from the apache access log matching «/chart». Les resten av dette innlegget »


Matching Java method signatures with sed

10. november 2011

In the process of removing PMD warnings from our main product at work I was trying to automate some parts of this process by using sed (Stream EDitor), a command line program common on all Unices (such as OS X and Linux). I had already been using a regex in Vim to do remove final modifiers from methods on a file by file basis, but thought it might be quicker to do this using «find» and «sed» in stead. Boy was I wrong 🙂 But mainly just because of the different regex dialect of sed that took me a long time to figure out.

The problem was mainly due to trying to match square brackets, such as in «final public int[] myMethod(int[] args)». Les resten av dette innlegget »


Getting the IP of a SaMBa server or Windows machine

6. september 2011

At times my server gets a new ip from my router, thus rendering my hosts file invalid and generally making life less pleasant. So in order to get contact with the server again, I need to get the IP. This is where nmblookup comes in.

Simply type
nmblookup name-of-the-machine
(where name-of-the-machine obviously is the samba configured name) will pop out a result like this
querying name-of-the-machine on 192.168.10.0
192.168.10.114


Current programming projects

27. august 2008

mp3fs: adding id3 read support for flac

I use MP3FS a lot for transparently transcoding flac files to mp3s when for instance adding songs to my iPod. This has mostly worked fine. Mp3fs transcodes my flac files and uses the comment section in them to make the id3 tags in the mp3 files. The problem is that I have a lot of flac files that are tagged using id3 tags themselves – not the usual vorbis comment.This causes these files to be transcoded without tags at all. Les resten av dette innlegget »


Rhythmbox + MP3FS + iPod= 2/3 of each song?

27. juni 2008

EDIT: SOLVED!! See below!

To explain this cryptic headline, I have to clear some terms with you first:

  • Rhythmbox – the default music player on Ubuntu. Can be used to transfer mp3s to my iPod
  • MP3FS – a user-space file system that allows you mount a directory containing flac onto some other mount point, and then lets other programs looking into this directory see the flac files as mp3s. /myMusicDir/elvis.flac then becomes /myMp3s/elvis.mp3.
  • iPod – mp3 player that can be used under Linux

Actually there is a fourth component to the mix I use to listen to my music; sshfs, which is a program that allows me to access remote directories over Secure Shell (ssh) as if they were local. But I don’t think this part is too vital in my problem. Which I finally come to now:

When transferring songs from my Rhythmbox library to my iPod player only 2/3 of each song gets transferred! I first noticed this with a Dolly Parton album where each some only played until approximately one minute remained. Never exactly one minute, so I didn’t really see the logic.

Not until I noticed this on lots of other files as well, where up to three minutes of each song was lost! I then checked on my iPod the number of seconds left, and calculated the percentage of the total. In every case it turned out to be more or less 33.3%. Why is this so?

I will try to look into this a bit further. Right now, the number of potential error sources are too high (sshfs, mp3fs, rhythmbox).

Will be back with more info. edit: Case solved!

Solution to the mystery

After conducting some very stringent tests, where I basically wiped the whole Rhythmbox library, and tried out various scenarios, I was not able to reproduce the bug! That was strange, I thought, and tried using the old library again. Yes, the bug reappeared! Then by coincidence I glimpsed a part of the details tab that I had ignored so far. Bitrate.

For this track, it clearly says it has a bitrate of 128k, but I knew that on my server I had chosen to up the bitrate to 192 k. As it happens to be, 128 is exactly two-thirds of 192. The solution was at hand. I remounted the mp3fs directory (server-side), and tried uploading the songs to the iPod again. It worked! They played the full length.

The answer was that at the time Rhythmbox searches through the file system, adding songs to the library as it goes, it also records a lot of data about each song (the following is not a complete entry):

<entry type="song">
    <title>Headless Cross - 06 - Call Of The Wild</title>
    <genre>Heavy Metal</genre>
    <artist>Black Sabbath</artist>
    <album>Headless Cross</album>
    <duration>319</duration>
    <location>file:///mnt/timbuktu_mp3/black_sabbath06.mp3</location>
    <bitrate>320</bitrate>
    ...
</entry type="song">

This information is then used when updating the iPod database. The iPod does get the whole file, but it does not use the metainfo contained in the file, but rather the information in its database. Which in my case was not valid, since I had changed the bitrate since adding the song …
So to transfer my mp3s now, I just choose the «old» 128kbps setting on the server, but in a while I hope I will be able to write a little program to update the information, so that I can use higher quality setting without needing to add all the songs again (which is a lengthy process).