I’m sure I’ve made this mistake before, so note to self: If after installing Apache and enabling mod_userdir for /home/*/public_html you find yourself pulling your hair out like I was over the “403 Forbidden” error you’re getting, check that your home directory (and/or every other directory on the path to your web userdir) has the executable permission set for others (chmod o+x). Other than that, your home directory can stay locked down (at 0701/drwx—–x).
VPS.net “Cloud VPS” review
Background
Over the past ten years or so, I had the displeasure of experiencing a number of poor hosting providers until I found ServInt, who blew all the others away with the quality of their services. When I moved to the UK, however, ServInt’s US-only datacentres meant I needed to find a closer host for better response times from my business web services.
VPS.net caught my attention early on with their “cloud” offering, which claimed “self-healing” and fast, easy, auto-scaling of resources. I’ve been with them for over a year now, and I’m going to gauge them against my top-notch experience with ServInt.
Stability
A server that just keeps ticking over is a server that makes me very happy. I can’t remember the last time I experienced unscheduled downtime with ServInt, and I wish I could say the same about VPS.net, with whom I have had any number of outages over the past 15 months.
To be fair, they initially advertised themselves as being in a “beta” stage, and issues have definitely decreased over time. Nonetheless, there have continued to be outages in the past few months which have lasted for many painful hours. Somewhat irksomely, until recently they also advertised “100%” uptime and magical “self-healing” abilities. Thankfully they now seem to have removed these spurious claims and, at a recent “town hall” chat, management promised upgrades and fixes which would see significant improvements to stability.
Support
This is another area in which ServInt excels and VPS.net stumbles a bit, firstly in the need to contact support at all. VPS.net has, in theory, a unique edge in that their self-service control panel means you can handle most changes to your account by yourself, while ServInt’s more “traditional” offering requires their staff to make changes by request. And yet, and yet… Despite the great potential, datacentre outages and bugs in the management software mean I’ve had to file about 20 tickets with VPS.net over the past year. Tickets filed with ServInt: 4.
When I have had to contact support, the speed and helpfulness of responses has varied. Here again, ServInt sets the bar with consistently fast, helpful responses in clear English and 24/7 availability both online and by phone. VPS.net’s response time via their online ticketing system is usually quite good, often under 15 minutes, but my feeling is that the helpfulness of the responses I receive doesn’t reach the same level. Additionally, it is clear that a lot of VPS.net support staff have not mastered English and, while this hasn’t been a major issue, there have been times where I have had to reiterate things because they were either misunderstood or ignored the first time. In contrast, my impression of ServInt’s support is that they both communicate clearly and really stick with an issue until it is resolved. VPS.net plans to launch phone support soon, so we’ll see what impact if any this has on the quality of their support.
Price
I’m happy to pay a reasonable price for a quality service and, for me, this is yet another mark that ServInt hits very well. In comparing the basic VPS offering from ServInt with the “nodes” that can be bought for the equivalent price from VPS.net, they initially seem somewhat comparable. They both offer about the same amount of RAM and, while processing power is harder to compare because they both measure it differently, I’ve been able to run similar applications on both. ServInt offers three times the storage that VPS.net does, while VPS.net’s recently updated offering gives twice the transfer allowance of ServInt’s.
When you consider the fact that ServInt includes a free cPanel or Plesk licence while VPS.net charges an extra £7.50/month, four IP addresses to VPS.net’s one (extras are £1/month), daily off-site backups (£4/month on VPS.net), and a higher quality of service, the gap really starts to open up. In addition, ServInt regularly refreshes its offering by increasing resources for all its customers once or twice a year. VPS.net recently increased the transfer allowance for its customers for the first time, but it’s too early to say whether this will be a regular occurrence nor whether they will increase other specs as well.
Communication
I’m only really interested in two basic categories of communication from any hosting provider: notifications about downtime and information about changes to my product. ServInt does this just fine, and every once in a while I get an e-mail notifying me well in advance of some brief scheduled maintenance or saying they’ve just given us more for our money — great.
While they’ve had a fairly regular newsletter, until recently VPS.net was really failing disastrously in making contact about service interruptions. Fortunately, it’s now making moves towards improving this situation and I was pleased to receive an e-mail last weekend announcing scheduled maintenance. It was still only a couple of days in advance, and information about unplanned outages remains pull via a status blog rather than push via an e-mail to affected users, but I am glad to see them coming on in this area. They also differentiate themselves a bit by making their management very accessible via Twitter, e-mail and, for the first time recently, “town hall” chats to address customer questions and share plans for the future.
Features
I’m not quite sure what to call it, but one race in which VPS.net really does pull ahead is its extra features. As I alluded to earlier, it has significantly easier provisioning and scaling via a management control panel, and this is a big part of the “cloud” draw. ServInt doesn’t have anything comparable, but VPS.net manages to be its own worst enemy here by creating something that would be wonderful if it worked consistently but instead causes extra downtime and frustration when it doesn’t. Even when it does work, it doesn’t live up to claims about the speed of scaling nor the previously-mentioned “self-healing” ability.
Nonetheless, I do really like the self-service aspect and am desperate for it to work well, so I’m hopeful about the impact of improvements promised with upcoming upgrades to their infrastructure. Their provisioning is already very solid, and it’s the work of only a few minutes to load up a new, working VPS with one of their many available system images.
In addition to these “cloud” features, VPS.net also differentiate themselves by offering a slew of associated services at competitive prices (bar the previously-mentioned control panel licenses), such as server monitoring, backup, and DNS. And who doesn’t like unlimited free SSL certificates?
Conclusion
VPS.net may have come out of this review a bit poorly, and with good reason: the stability of their product has been poor, their customer service hasn’t been exceptional, and their prices are nothing to write home about. That said, I’ll be staying with them for the time being.
It’s partly a question of effort — I’m not disturbed enough by their shortcomings at the moment to spend the time finding and transitioning to another host — but it’s mostly because of something more positive than that: the sense that they are committed to making improvements. The upgrades they have in the pipeline sound promising for addressing stability issues, I appreciate their big push to increase communications and treat their community well, and I really like what they’re trying to do with their control panel and scaling and I’m fully prepared to love it when it gets even better. Fingers crossed.
Bottom Line
If you’re moving mission-critical services tomorrow you may want to look somewhere else, but if you can wait until the new year or are looking to test the waters then VPS.net may become an excellent option as it develops further.
Pros:
- Very flexible and easy server provisioning
- Commitment to improving quality of service
- Recent efforts at communication
- Add-on features
Cons:
- Service issues
- Quality of support
- Price
Full disclosure: I was motivated to write this review as part of a giveaway by VPS.net.
Posted from Stirling, Scotland, United Kingdom.
Fixes to common Android/HTC Sense bugs
I’ve found myself working around several annoying Android (or possibly HTC Sense) bugs recently. In the hopes of saving someone else a lot of frustrating Googling, here’s a list of recent issues I’ve suffered and steps to solve them. I’ll update this post if and when I come across any more.I’m not sure how it works, but I think it might just start over from 1 and look for the first available filename, so it ends up filling in the gaps if you
I have an original HTC Desire (Bravo) with HTC’s stock Android 2.2 (Froyo).
Gmail reply is constantly “sending”
Sometimes when I send a reply in the Gmail app whilst offline, when I subsequently connect the e-mail will never get sent.
Workaround (can’t remember source):
- Connect to the Internet
- Open the conversation with the unsent replywork arouwork around themnd them
- Start a new reply to the original message and save it as a draft
- Go to your “drafts” label/folder and open the draftwork around them
- Mysteriously, your unsent reply will open for editing
- Send it
- You can delete your dummy reply after this
Calendar won’t display all remote calendars
My calendar wouldn’t load the US Holidays calendar from Google. It had worked previously but, for some reason, after a few refreshes it disappeared from my calendars list and wouldn’t reappear. I tried removing and re-adding it in the Google Calendar web interface to no avail.
Workaround (source):
- Go to Settings > Applications > Manage Applications > All > Calendar Storage
- Clear data
- Resync your calendar
Facebook birthday calendar disappears after calendar reset
After a reset of calendar data, e.g. in the previous workaround, the special calendar of Facebook friends’ birthdays will be missing from the Android calendars list. No amount of syncing/refreshing the calendar and Facebook has any effect.
Workaround (source):
- Go to Settings > Accounts & sync > Facebook for HTC Sense
- Remove account
- Re-add your Facebook for HTC Sense account
- Sync it
Camera takes a long time to save photos
Twice in the past few months, the stock camera app started being very slow to save photos. I’d press the shutter button, the autofocus square would turn green, and the picture would take, but then I wouldn’t be able to take another picture for quite a while. The display would keep working, but the focus square would not reappear, nor the GPS status, nor would the menu work. If I pressed the shutter button again whilst waiting, a picture would unexpectedly be taken later, when the camera started responding once more. Eventually, the camera would be come responsive again, however the video mode would continue to not work in the same way. A force stop of the camera could make the photo mode work again, but the next shot would cause the same problem. I’d been taking a lot of photos, sometimes several quite rapidly, sometimes quickly switching back and forth between photo and video mode, and sometimes taking a fast photo and locking the screen again straight away. It’s seemed to be in some of these instances that the problem has arisen.
Workaround:
- Go to Settings > Applications > Manage Applications > All > Media Storage
- Clear data
Note that this will reset your camera settings but will NOT delete your photos off the SD card. Initially your old photos will disappear from the gallery app, but will eventually reappear. In addition, the file numbering of the next photos you take may not follow the ones you’ve already taken, but they won’t overwrite existing photos.
Jenkins Git plugin identity
Note to self: when builds from a Git source fail with “Please tell me who you are,” go to the Jenkins configuration page and enter a name and e-mail value in the “Git plugin” section. Rather than setting some reasonable defaults, this bug was “fixed” by the introduction of these settings (see https://issues.jenkins-ci.org/browse/JENKINS-2754).
The Incredible Expanding ibdata1
So apparently MySQL has a bug, or at least annoying default option, which causes all InnoDB data to be stored in a single file (see MySQL issue 1341). This might not be so bad, except that it means when you drop an InnoDB table, the space used for it will not be reclaimed, and you’ll end up with wasted space. I recently ran into this with a 2GB database that I dropped, only to find it was still taking up disk space.
The preventative solution is to enable innodb_file_per_table=1 in your my.cnf. This does what it says on the tin and stores InnoDB table data in separate files. I’m not clear on whether this setting means that the InnoDB per-table files will be removed when tables are truncated or whether you’ll need to remove them manually but the main thing is that, one way or another, you’ll be able to reclaim the disk space.
This isn’t any use, however, if you already have InnoDB tables. You can make them start using separate files by running an ALTER on each table and resetting the engine to InnoDB. Get a list of the commands you need to run with this query:select concat('alter table ',TABLE_SCHEMA ,'.',table_name,' ENGINE=InnoDB;') FROM INFORMATION_SCHEMA.tables where table_type='BASE TABLE' and engine = 'InnoDB';
Your old ibdata1 file still won’t see any decrease. It seems the only way to accomplish this is to dump your InnoDB tables, drop or otherwise wipe them, and delete the InnoDB data files. While this is apparently the minimum, it’s fairly time-consuming to go table-by-table, so the actual easiest thing to do is dump all your databases, get rid of the MySQL data files, and reimport all your databases.
My approach is a modification of the procedure here. Note that commands and paths may vary depending upon your distribution and set-up and that these steps could cause permanent data loss.
- As root, back up your MySQL files, just in case:
cp -ar /var/lib/mysql ~/mysql-backup - Dump your DBs:
mysqldump --extended-insert --all-databases --add-drop-database --disable-keys --flush-privileges --quick --routines --triggers > databases.sql - Stop MySQL:
service mysql stop - Remove everything but the “mysql” directory from /var/lib/mysql/. The easiest way to do this is probably:
rm -rf /var/lib/mysql/*
cp -ar ~/mysql-backup/mysql /var/lib/mysql - Start MySQL and run the command-line client:
service mysql start
mysql - Import your database dump:
SET FOREIGN_KEY_CHECKS=0;
SOURCE databases.sql;
SET FOREIGN_KEY_CHECKS=1;
You should now have a much smaller ibdata1 — happy day.
References:
http://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in-mysql
http://forums.cpanel.net/f189/innodb_file_per_table-converting-per-table-data-innodb-167942.html
http://vdachev.net/2007/02/22/mysql-reducing-ibdata1/
Install Phusion Passenger / mod_rails on a cPanel host
I recently had occasion to set up Passenger/mod_rails on a cPanel server. There is some varying and dated information around the web, so I thought I would share current best practice:
First you’ll need to SSH to your server and perform all the following commands as root or via sudo:
$ su
Let cPanel set up Ruby and Rails the way it wants:
$ /scripts/installruby $ /usr/local/cpanel/bin/ror_setup
Install passenger the normal way (see Passenger docs):
$ gem install passenger $ passenger-install-apache2-module
Create /usr/local/apache/conf/passenger.conf with the lines that the Passenger install script tells you to add to your Apache configuration file, e.g.:
[apache22]
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby
[/apache22]
Include the Passenger config by editing /usr/local/apache/conf/httpd.conf and, somewhere near the beginning, adding:
[apache22 light="true"]Include "/usr/local/apache/conf/passenger.conf"[/apache22]
We want to make sure cPanel preserves our edits to httpd.conf when it does updates, so we need to run:
$ /usr/local/cpanel/bin/apache_conf_distiller --update --main
Restart Apache with
$ /scripts/restartsrv_httpd
Upload your Rails app to somewhere outside of public_html (e.g. ~/rails_apps/yourapp) or use cPanel’s “Software / Services > Ruby on Rails” functions to create a new one.
Login to your domain’s cPanel and go to “Domains > Subdomains”
Create a new subdomain whose document root is path/to/yourapp/public
Make sure it’s pointing to yourapp/public
Visit your subdomain and see your app running — easy!
Free Linux time tracking software
I was reviewing my time tracking arrangements and thought I would share the results of my search for a better solution. I had specific requirements, so this isn’t for everyone, but I hope it might be useful to some. Results are ordered by my entirely unscientific rating system.
If you know of any I missed, let me know in the comments.
Required for consideration
- Free
- Runs on Linux
- Access to data store (no proprietary web services)
- Easy start/stop of tasks (i.e. don’t have to manually enter start and end times)
Important
- Cross-platform
- Open source
- Work offline
- Manually add/edit time
- Nestable items
- Export reports of total time spent on an item with breakdowns
Desired
- Stop tracking activity when computer is idle or off
- Reminder of current activity
- Nice graphical reports
- Tagging
- Collaboration
Kimai
Pros:
- Open source
- Slick interface
- Easily manually add or edit time entries
- Tasks are assigned to projects, which are assigned to customers — this is as good as nesting, for me
- Export reports filterable by customer, project, or task to PDF, XLS, CSV, or HTML
- Same task can be tracked against multiple customers — as good as tagging, for my purposes
- Multi-user, web-based
- Freelance/consultant-specific features: rate, expenses, location, and total cost in reports
Cons:
- Can’t work offline if installed on a remote server
- No idle/off detection
- No reminder of current task
- No graphical reporting
Verdict: +8 / -4
Solidly fits my working requirements in a very nice interface, though I’ll have to consider whether I want to use it as a local installation and not enjoy its multi-user capabilities or install it on my server and not have access to it offline.
Project Hamster
Pros:
- Open source
- Easy, intuitive interface
- Manually add/edit time easily
- Nice graphical reports
- Exportable reports
- Configurable idle/off detection
- Configurable reminder of current activity
- Tagging (in repository)
Cons:
- Not very cross-platform — only partial Windows compatibility, main focus is the Gnome desktop environment
- Limited to one level of categories
- Export totals per task only, not category
- No collaborative capabilities
Verdict: +8 / -4
Does most of what I need it to do, and with a pretty good interface to boot.
Rachota
Pros:
- Open source
- Tagging, of a sort (spaces in the category field of a task cause it to be assigned to multiple categories at once)
- Configurable idle/off detection (in development build)
- Decent, filterable reporting
- Exportable reports configurable by time period and filterable by task
Cons:
- Sometimes confusing interface
- Can’t easily add/edit time (coming in next version?)
- Only one level of categories
- Idle detection doesn’t really work, off detection doesn’t work all the time
- No reminder of current task
- No collaborative capabilities
- Doesn’t exit gracefully when the computer shuts down
Verdict: +5 / -7
The interface isn’t great, but the real killer with this one is its inability to manually add or edit time. Hopefully this will improve as development progresses.
TimeSlotTracker
Pros:
- Open source
- Manually add/edit time
- Nestable tasks
- Export report of total time spent per task, filterable by date and parent task, to HTML, TXT, and CSV
- Export customizable via XSLT
Cons:
- No graphical reports
- Clutters up home directory with non-standard files
- Default export templates are unappealing
- Configurable current task reminder which sadly doesn’t seem to work
- No idle/off detection
- No tagging
- No collaborative capabilties
Verdict: +5 / -7
A simple cross-platform, open source time-tracker with limited export options and reporting; its inability to nest items and poor reporting won’t work for me.
Klok
Pros:
- Nice interface
- Great calendar view to easily add/edit/visualize time
- Pie chart reports with easy drill-down
- Nestable tasks
Cons:
- Bugs (activity is sometimes saved with zero length)
- Can’t export reports, only weekly or monthly time sheets (not overall project totals)
- Not open source? Can’t find license or source code
- No idle/off detection
- No reminder of current task
- No tagging
- No collaborative capabilities (apparently coming in next version)
Verdict: +4 / -7
Despite the pleasantly useful interface, the shortcomings (namely the occasional bug and lack of report exporting) mean it doesn’t fulfil my needs. Those who don’t need the exporting or other features may enjoy it, however.
Time-Tracking-Tool
Pros:
- Tasks can be nested
- Report on total time spent filterable by task and time period
- Save application data for reopening elsewhere
- Edit recorded time for a task
Cons:
- Not open source? Can’t find license or source code
- Reports overly simplistic, don’t handle subtasks well
- Can’t export reports
- Can’t view or edit start and end times of activity
- No tagging
- No idle/off detection
- No reminder of current task
- No collaborative capabilities
Verdict: +4 / -8
Perhaps useful for those who like simplicity, but the uncertainty around its license and its omissions make it a non-starter for me.
Baralga
Pros:
- Open source
- Save application data for reopening elsewhere
- Manually add/edit time
Cons:
- Interface clunky in places
- Can’t nest tasks/projects
- Can’t export reports, only an Excel spreadsheet or CSV file containing time spent per project per day
- Only one, limited visual report
- No idle/off detection
- No reminder of current task
- No tagging
- No collaborative capabilties
Verdict: +3 / -8
A simple cross-platform, open source time-tracker with limited export options and reporting; its inability to nest items and poor reporting won’t work for me.
Other options
These are a couple that piqued my interest but weren’t worth trying out because of a lack of cross-platform compatibility.
Windows-only:
Google Maps Navigation: sat nav/GPS for Android
Official Google Blog: Announcing Google Maps Navigation for Android 2.0
Google just announced their own sat nav/GPS software for Android phones,
based on Google Maps — how cool is that? This will probably change the
sat nav market quite a bit: no more paying for map updates, for one
thing, and sat nav developers will have to come up with new features to
get people to pay for their software rather than going for the free
Google app, which sounds pretty feature-laden itself.
I’ve been wanting one of the HTC Android phones for a while now, and this just intensifies the desire tremendously.
64-bit Lightning 1.0pre builds for Linux
Update: An official 64-bit build of of Lightning 1.0 beta1 is now available.
Ever since I switched to 64-bit Linux, I’ve been looking around for up-to-date 1.0pre builds of the Lightning calendar extension for my Thunderbird 3 mail client, as Mozilla for some reason does not provide 64-bit builds. For a time I was using a build from zaera-holo.net, but it was never updated and the site now appears to be down. Finally, from a comment on the Lightning AMO page, I found a new build from Friday, which appears to work well. Hope this helps others out as well.
If anyone finds a more regularly-updated channel, please let me know.
Adobe AIR on 64-bit Linux
Was installing AIR last night on my nice new Studio XPS 13 laptop, recoiling in horror at Adobe’s workaround installation instructions for 64-bit Linux, when I found these simple instructions:
Install Adobe AIR Linux 1.5 on 64-bit Linux distributions
So Adobe has this knowledge base article — Install Adobe AIR Linux 1.5 on 64-bit Linux distributions — to describe how to install Adobe Air on 64 bit linux systems. Do yourself a favor — just install wine from the standard repositories, and then execute the last line in the instructions:
sudo cp /usr/lib/libadobecertstore.so /usr/lib32Wine already sets up a complete 32bit compatible environment, so you
don’t have to worry about manually breaking out shared libraries.
Much easier.
Courtesy of the MC Studios blog.