In the spirit of the upcoming Hallo’ween, today is my unofficial #deadmouseday. I am challenging myself to go without using my computer mouse all day – which has already been a considerable challenge in WordPress when creating this post.
If it hasn’t been said enough times already, let it be said once more: Emacs and org-mode are quite probably the best way ever to organise your personal life.
Emacs, for starters
Emacs as a text editor is rock solid. If you have a computer where you type in text and which:
is web based (e.g. a chromebook)
has any kind of touch interface (a tablet, phone)
is running a heavy GUI (graphical user interface)
.. then you are certain to observe a certain lag on input. It might be very slight, but it will likely be there. I know this to be the case for many devices out there, even those which purport to be “high-end”.
With Emacs, there seems to be a much more direct connection to the keyboard: you type, text appears. You type faster, text appears faster. In fact, text is capable of appearing much more quickly than you can possibly type. This makes blogging quick and painless.
org-mode, for main course
Life in Emacs simply came to be, through org-mode. Emacs itself is amazing; org-mode made organising data even better. A quick refresher:
org-mode creates everything in plain text, for maximum portability between systems
it is known as an “outline mode” enhancement for Emacs, meaning it helps to display semi-structured text effectively
it allows for the creation of lists – of projects, tasks, notes, links … you name it, anything that can be represented in text
it is portable, allowing for synchronisation with mobile devices
using Emacs, it is powerful – allowing org-mode notes to interact with other aspects of Emacs
Org-mode also supports all sorts of fancy formatting and customisation, meaning text can look good and be easy to follow.
org2blog, for desert
What would all this power be for, unless blogging! 🙂
Actually, blogging is just one activity which benefits greatly from the power of org-mode, as org’s powerful and easy formatting options are seamlessly translated into HTML and published to a blog.
In my case, I’m using a WordPress site. I create a new post using the commands
I then type in my post and save it to a local file, using
and then post it to WordPress for subsequent tweaking, with
I can then add some final polish and check the format in WordPress before final publishing.
As a demo and an indication of speed, this blog post took only 5 minutes to write, post, edit and publish.
I am the first to admit that I am a product of the old guard. What do I mean by this? Well, when I started running a business in 2001, when the internet provided unbridled commercial opportunities and there was a scarcity of talent to develop for them, there was a certain modus operandi: keep your cards close to your chest. Shedding this behavioural axiom feels like the equivalent of standing up naked, in front of a live TV audience, promising them you really are still going to the gym and it’s all a work in progress. You can expect mixed reactions.
But in the last thirteen years, a lot has changed. We have seen the meteoric rise of internet-enabled devices and the framework, especially via social networking, for people to express themselves more freely. In fact, not just “more” freely, but FREELY, period. With this certain stream-of-consciousness we have also seen how businesses, once the “big blue”s of this world – hidden behind glass and steel, dictating the new world order – have become much more bottom-up, and even grassroots in appearance, if not in total nature.
I would argue that smaller teams in larger businesses will become more fashionable, because they tend to get things done more efficiently. The challenge has become less about the big wins, and more about how the small, inter-connected wins can be made to work well together. This, after all, was the original spirit of Web 2.0 (remember that?!). What Web 2.0 represented was the idea that instead of developing a monolithic web site or business platform which covered all functionality, you could actually interact with other sites and use them too. And they could use you and your services/data.
This is very much the case today. How many web sites do you visit where you can log in using credentials from another service/site? This flexibility and openness is not necessarily less secure, though some might argue against global logins – and there are good reasons to be cautious of this.
But, authentication is one of many possible services available on the web, and exploring this loosely-coupled architecture is becomming faster and easier than ever. Through a much greater spirit of discovery, we are bearing witness to an age of more open experimentation, more open discussion, and more open engagement amongst interested parties. Clients, friends, rivals, competitors. Finally, we can also celebrate the “failures” too. The increasingly scientific nature of modern thinking allows egos to be left at the door, and the excitement and joy of new adventures in technology to be more fully appreciated.
Many of us are into technology because of this excitement and enlightenment, myself included. It’s childlike and, IMHO, a desirable quality in a person. When you accept you are but one person, you accept a universal truth shared by everyone – and in so doing, acknowledge that while your time is precious, sharing whatever you can from it is a great investment.
On that basis, I am intending to up my blogging rate ten-fold, to try to document the events of my days and weeks and the challenges I face in them. My experiment will be to see if in doing this – i.e. openly blogging much more of what’s going on in my microbusiness, there is a positive effect on people around, the interest in my business services and, ultimately I suppose, a positive effect on me.
But arguments aside about what rights one should have with the digital media they purchase, the reality is that the technology actually introduces more complexity and less convenience than promised.
The situation is made worse with how HDMI can be implemented. You can have end points – a source and a display device, for instance – and you can also have mid-point, passthrough devices. But when it comes to HDCP, pass-through devices have no say or influence over content encryption or negotiation – they just shunt the data onwards down the chain. HDMI splitters and strippers were introduced as another way of getting around implementation restrictions – including removing DRM, with varying results (HDCP, HDMI splitters/strippers and Chromecasts have been discussed on redditmore than once, not to mention XDA developers and other sites…). [ Incidentally, a highly regarded device, the HD Fury, won’t give you much change from £150-odd, but it is reputedly very good as totally stripping HDCP. ]
Dancing in the streams
DRM is an issue that will not go away, because we get back to the basic fact that controlling users through draconian methods of control only punishes innocent consumers, while not providing any tangible security benefit for the media plublishers.
So we arrive back at my Chromecast. Through a number of unplugging and re-plugging efforts, I stumbled upon a strange solution. I acquired the ViewHD HDMI splitter, with the intention to split out audio from HDMI and feed an TOSLink optical cable into the A/V amp, but even using this required the TV to be switched on.
But… what if the Chromecast thinks it is sorted with its display device? Strangely, this seems achievable by plugging the Chromecast into the HDMI splitter’s HDMI input, and then plugging the HDMI splitter’s output into the A/V amp’s output. Yep, let me repeat: connecting the HDMI splitter’s output to the amp’s output connector (which would normally go to a monitor) strangely seemed to fool the Chromecast into happily sending forth its content to the HDMI splitter, from which the optical feed supplies PCM audio at 48khz straight into the amp.
Selecting music, using Google Play Music on the Nexus 7 Android tablet, is now a joy that is almost completely reliable. Occasionally it reports that a track cannot be played, which requires disconnection of tablet from Chromecast and re-connection while playing the song. But send the Chromecast an album or playlist, and all’s good.
The downside of this strange result is that I can only use the Chromecast for one thing: streaming audio. Luckily, this is the only reason I go it, and the devices are so cheap (£30) as to effectively justify buying a second for the same TV, using another spare HDMI input.
Why the Chromecast and ViewHD behave quite like this, I cannot say. It suggests there could be other interesting workarounds with HDMI and various signal splitting devices .. but this is probably where I should end.
My philosophy behind this review is not just to compare the phone directly with other Android or iOS handsets, but also to focus on what it offers, independently of those other platforms.
In other words, for what this phone and OS provide, how well do they do it..?
Unboxing & initial impressions
I ordered through ZTE’s UK-based ebay site. The phone was dispatched via the 48hr Royal Mail delivery service, which is where £5 of my £38.99 spend was allocated. This was pleasing and does confer a certain progressive philosophy of ZTE. It also means the handset + accessories cost only £33.99 including UK VAT (sales tax), which I find astonishing.
The packaging was robust and served its purpose. After removing the colourful box from its mail bag, and opening it up, there I was greeted with the phone in somewhat cheapish-looking celophane. Nevertheless, unwrapping indeed exposed the Open C as expected – not bright orange or blue, but dark and moody black – the way I like my phones!
Although I was expecting the handset to feel cheap, I was actually pleasantly surprised. For its price, it feels very reasonable. The materials – including the screen – naturally are plastic, but given the feel of the plastic one expects from a stock Samsung Galaxy S4 (that is, not premium!), the Open C had a feel to it more like that of a pebble, with its soft-touch almost rubberised plastic rear cover.
Attractive design features include the recessed ear speaker, which sits snuggly atop of the screen, and the subtle, angular curvature towards the base of the phone, which meets the centred microUSB socket smoothly and seamlessly. An iPhone 4 user I handed the device to commented on how nice in the hand it felt, and I must agree – it’s very comfortable to hold.
The compact charger and USB cable are standard fare, but the included earphones/headset are distinctly “cheap”. In this case, you get what you pay for, but this is a minor thing.
Start-up and set-up
Taking the rear cover off the phone revealed the battery compartment, SIM slot and microSD slot. The battery was a very snug fit and the SIM slipped into the slot just fine. The microSD card slot wasn’t quite as reassuring, and I felt the need to double-check I’d inserted the card far enough. There are no spring-clip card slots on this phone; a clear cost-saver. But cover back on, this was no issue, and the cover feels integral to the phone once back in place.
The software set-up feature of the phone has been well covered elsewhere, so I won’t go into that here. One annoyance was that the phone couldn’t pick up my local time from any network I connected to, which I found unusual and slightly inconvenient. The UI to change date and time was slightly unintuitive but the task was soon accomplished.
Boot-up and running through this “wizard” was relatively quick and the phone was ready to use within a few minutes.
Getting contacts into the phone
The ThunderSync Add-On for Thunderbird can export your addressbook as VCard files. Although on first attempt these files were not recognised to import into the phonebook, trying again – once the phone’s set-up process had completed – yielded success. 241 VCard contacts imported perfectly.
The Import from SIM card function worked perfectly, as did the Import from Facebook feature. I didn’t try the Import from GMail feature, as I don’t store contacts there.
Considering these features are what the phone offers, I would say that it manages these tasks reasonably well, although the out-of-the-box experience was not quite as smooth as possible. It is a shame that CardDAV support wasn’t baked in too, but at least this is work in progress.
A feature recognised by some Android users, and as a further plus, the Link Contacts feature allows you link an imported phonebook contact with a social media contact. In addition, the Find duplicate contacts feature allows you to easily scour the phonebook and delete or merge any identified duplicate contact records, as desired.
In fairly quick time, I was up and running with all my contacts in the address book.
Phone in wrap
Contoured base of phone
Top of phone
Back cover removed
Getting music, videos and photos on to the device is painless, thanks to its straightforward USB Mass Storage support. As an Android and Linux user, I was appalled when this transfer protocol was eschewed in favour of MTP on my Galaxy S4 – a “feature” of Jellybean+.
But back to the Open C. Controlling whether the phone’s memory or the storage card is exposed to the USB host (i.e. the connected computer) was achieved through the settings on the phone. Once connected, media transfers were effortless.
After disconnecting, simply opening up the Music player, Video player or Gallery displayed my media more or less as expected, although a 1080p mp4 video shot on the aforementioned S4 and transferred over, failed to materialise in the Video player’s file list.
Somewhat annoyingly, album art from transferred music also appears in the gallery, which seems a bit strange. To make matters worse, this same album art was not visible in the Music player for the albums to which it corresponded. Instead, I was greeted with placeholder patterns. I’m not sure how this problem is avoided, but it’s far from perfect.
In use: the User Interface & Experience
In software development, an oft-accepted maxim is that your version 1 release is basically a proof of concept. Version 2 is where you throw in lots of features, but version 3 is where it all starts knitting together well.
Given that this handset runs version 1.3, the FirefoxOS experience is acceptable. It won’t set the world on fire (no pun intended), but the key features are here – some better than others.
Notes app settings
Calendar app, showing CalDAV and Google calendars
Album Art – appearing in Gallery!
Coming from a Galaxy S4, I was pleased with how responsive the Open C is. On the Samsung, Touchwiz (the user interface layer on top of Android) does a wonderful job of slowing things down and adding a “treacle factor”, generally incurring an extra second or so for each major application switch.
Surprisingly, the Open C felt more nimble and less weighed-down than the S4 once I had opened 8-10 different apps on each. Granted, the apps on the S4 are more feature-rich, running on a more feature-rich operating system – and I do have quite a number of them. But it’s more powerful hardware, you always pay by way of a performance penalty for complexity in software.
On the Open C, swiping across from one home screen to another was fluid and unencumbered, and opening apps was reassuringly nippy too. Nothing felt laggy and the biggest challenge was getting used to not having a back button.
General OS Features
There have been many comparisons with Android here and elsewhere, but I would argue that this is a testament to the capability of FirefoxOS. The Settings area provides a reasonable number of options, from power-saving, to connectivity, SIM management and security.
Unlike Android, I didn’t feel as though options we so nested to the nth degree that I couldn’t find what I needed, quickly. This was refreshing and gave me pause for thought over just how large and burdened Android is now by its own capability. This is, after all, a phone and Mozilla have fundamentally recognised this.
Sadly, one omission is Firefox Sync. I was surprised that, being a FirefoxOS device, it doesn’t support Sync with Mozilla’s servers out-of-the-box. What a shame – this will be inconvenient to some, and argues in favour of using Firefox (the browser) on Android, instead.
Another lamentable omission is a file browser. I couldn’t see any way to browse the local file system. Hopefully this will arrive in version 2 or beyond.
Where it does pick up the bat somewhat is with the Notes app, which seemingly offers Evernote syncing. Although I’m not an Evernote fan, I know that many people are, and this may sway some opinions. Along with CalDAV calendar sync, it goes some way towards being “cloud-friendly”, which is a nice touch for a browser-based OS… 😉
The screen is where I have seen some criticism being levelled. Let’s clear this up: having become accustomed one of the highest-resolution (441dpi), most saturated colour displays (AMOLED) on the market, I am not offended at all by the Open C’s screen. In fact, quite the opposite. I was surprised how well text seemed to render on it and colour saturation seems average, which in my book is actually a good thing (not too saturated or too pale). At a claimed 233dpi, the resolution was workable, and the viewing angles from sides and from underneath were ok too. Viewing the screen from the phone’s top, downwards, was where it all went to hell though – everything neg’d out quite quickly.
An often-overlooked area of smartphones is sound quality, via the headphone jack. Having transferred a random selection of OGG music files, I selected John Williams’ Jurassic Park theme. During listening I was very surprised that the Open C managed to dig up elements of a double bass (string instrument) in the performance. By comparison, the S4 couldn’t dredge up this particular detail.
Unfortunately, the rest of the musical quality was middling at best – brass sounded honky, strings somewhat electric and the combination of these plus percussion was a bit brash and ringing. When listening to the same track on the S4, I was greeted with a much purer, deeper soundstage with individual instruments identifiable and well placed. Timbre on the S4 was markedly improved over the Open C and generally the listening experience was superior. But still, it didn’t give me that low bass…
Whether the Firefox OS’s codec is sufficiently different to Android or whether this is hardware is, unfortunately, guess work. For general listening, say on the train for an hour, the Open C will be plenty good enough. It’s just not the last word in subtlety.
The SIM I use for testing doesn’t have a data allowance, so I have switched off mobile data. This will have had a positive effect on battery life, but a negative effect on a fair test.
Still, despite not using the phone as heavily as normal in that regard, during testing and initial set up the screen has been on a fair bit, with WiFi connected at all times. I have seen nearly two days’ usage before needing its first re-charge, so that is encouraging. I was surprised, too, that after a night on flight-mode, the battery charge level had not shifted a dime, from 66%.
One minor issue though, is that at 10% battery remaining, the phone suddenly died and got stuck in a reboot cycle. This suggests the battery life/remaining isn’t possibly quite as accurate as it could be, although it could be argued that on its first charge, FirefoxOS hadn’t accumulated enough battery metrics to accurately predict exhaustion.
This is a tricky area to judge. This is a £34 phone. It’s difficult to buy a decent point-and-shoot camera for that price, so how does one judge this fairly?
The 3.2MP sensor is mounted on the back of the phone near the top, in the customary location. There is no flash or manual/autofocus, and video recording is a rather old-school 352×288@15fps (according to GSMArena). My testing seemed to concur with that. Photos are stored as JPEGs, unless edited (in which case, for some reason they are then stored as PNGs), and videos as 3GP files.
In low-light settings, you can only expect average quality at best. Still, to the naked eye, colour accuracy could have been a lot worse.
Original of me
The image editor
The included software does allow some recolouring to help adjust pictures, and the Aviary app is easy to download and install, for more comprehensive off-line photo editing.
Finally, the buttons themselves. In general use they don’t feel flimsy and give sufficient feedback. But I do question the positioning of the volume rocker and wonder if it is on the wrong side? I tend to be ambidextrous when using my phone – it goes to either ear indiscriminately. I suppose the volume rocker has to be on one side – the right hand side it is!
Considering this is a £34 phone…
Build and general quality is better than expected
Setting up is straightforward – although a couple of caveats:
Importing VCard contacts from microSD card failed on first attempt, but then worked
Plugging microUSB cable into phone didn’t have that reassuring “click”, but connection seems secure enough. (NOTE: this may have been the cable I was using; another cable did seem more secure)
Size and thickness is very reasonable – and better than I was led to believe on some blogs/vlogs. Phone is not too bulky and has a reassuring thickness when in the hand.
As a media device it’s fairly average, but as a phone which you won’t care about scratching up and little and using to the full, it’s great. At the price, you can forget about protective cases – just chuck it in a bag or your pocket and get on with life!
Comparing to flagship smartphones is unwarranted. It is not a flagship but an entry-level phone – so comparisons should be with Android phones at same price!
I was pleasantly surprised by the Open C. The phone hardware, at this price, is exceptionally good value. No, unless you’re incredibly limber it will not allow you to post selfies to Facebook (with no front-facing camera present), but is this a major thing?
Likewise, it’s a fairly “lightweight” experience all round: apps are less functional than their Android or iOS brethren, and the OS is less “tweakable”. But as a result, it’s swift and responsive in use, and the vast majority of software included is stable and acceptable.
As an entry-level smartphone, for £34 + £5 p&p, I find it hard to fault. If it weren’t for the stellar camera on my S4, I might consider switching to it.
I recently upgraded my laptop hard drive and decided to move all the virtual disk files of my virtual machines to my home directory.
However, when trying to run the VM, an error notification appeared:
Error starting domain: internal error process exited while connecting to monitor: Warning: option deprecated, use lost_tick_policy property of kvm-pit instead.
kvm: -drive file=/home/sd/libvirt/images/WinXPsp3IE8-d3.qcow2,if=none,id=drive-ide0-0-0,format=raw,cache=writeback: could not open disk image /home/sd/libvirt/images/WinXPsp3IE8-d3.qcow2: Permission denied
The Details section of that dialog showed me where the error was occurring:
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 66, in tmpcb
File "/usr/share/virt-manager/virtManager/domain.py", line 1114, in startup
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 620, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error process exited while connecting to monitor: Warning: option deprecated, use lost_tick_policy property of kvm-pit instead.
kvm: -drive file=/home/sd/libvirt/images/WinXPsp3IE8-d3.qcow2,if=none,id=drive-ide0-0-0,format=raw,cache=writeback: could not open disk image /home/sd/libvirt/images/WinXPsp3IE8-d3.qcow2: Permission denied
… or, at least, that’s what I hoped. Except it didn’t.
For a long time, I played around with permissions on the virtual disk image itself, the directory containing it, and further back/up until reaching ~. None of it helped.
The reason I have www-data with read and execute permissions is that I do web development and testing, and I also keep all my web-dev files in ~ too. This just makes my system more “portable”, safer to upgrade and/or easier to migrate to a different Linux.
To set the required permission for libvirt / qemu, you just issue this one liner:
# setfacl -m u:libvirt-qemu:r-x sd
.. substituting sd for your own ~ directory name.
setfacl (set file access control) takes three main arguments:
the action – in this case, -m means “modify” the ACL;
the data to apply, colon-separated: here we specify it’s a user (u) who is libvirt-qemu, and the permissions we want to allow are read and execute (r-x).
finally, we specify which files or folders ACL should be modified – in this case, my home (sd).
After this, my virtual machine runs up perfectly.
This is relevant for Crunchbang and other Debian-related distros. For Fedora/CentOS, I believe the user should be qemu.
You probably got here because you Googled. I did 😉
As an eclipse user, occasionally you get greeted with error messages which are tricky to resolve. The error, “Resource ‘X’ is out of sync with file system” made me scratch my head for a little while – as far as I could tell, it wasn’t!
There can be a few causes of this:
If you edit any workspace file from outside of eclipse, which is part of your project, this can throw the error.
The same is true of directories – have you renamed/moved/deleted anything?
The cause which threw my error was symbolic links. Because I had changed the name of a target directory, this was enough to trigger this error dialog, even though the file name of the symlink itself was unchanged!
To prevent this dialog appearing, as far as possible, visit Window > Preferences > General > Workspace and select:
Refresh using native hooks or polling
Refresh on access
The combination of ensuring tight controls on renaming files and directories, together with automating detection of this as much as possible, will lead to a smoother experience with this great integrated development environment.
When installing Debian, or a derivative OS such as crunchbang, you may have opted to separate out your partitions/logical volumes to manage your disk space more finely.
I opted to do this. My partitions were set up thus:
$ sudo lvs
LV VG Attr LSize
home t420 -wi-ao-- 438.10g
root t420 -wi-ao-- 332.00m
swap_1 t420 -wi-ao-- 15.50g <-- way too big!
tmp t420 -wi-ao-- 369.00m <-- way too small!
usr t420 -wi-ao-- 8.38g
var t420 -wi-ao-- 2.79g
This was not working for me. Doing backups using the easy backintime was proving difficult, as backintime relied on more /tmp space than I had.
As I rarely touched swap space, I figured that 15.5G was probably a bit large for my needs. Thankfully, nabbing swap space and reusing it for the filesystem is easy as pie – and all achieved with no downtime.
Here’s the sequence I typed into a terminal. First, turn off swap:
$ sudo swapoff -a
Then resize the swap volume:
$ sudo lvresize -L 8GB /dev/t420/swap_1
Now re-format the swap partition before using it again:
$ sudo mkswap /dev/t420/swap_1
Then turn swap availability back on:
$ sudo swapon -a
And finally, resize the /tmp partition on-the-fly:
$ sudo lvextend -L +1G -r -v /dev/t420/tmp
Because the LVM tools have semi-awareness with respect to filesystems, the resizing of /tmp (using the -r switch) was achieved on-line – no need to log out, reboot or anything else. The verbose (-v) switch allowed me to see everything that was happening.
It all starts with that strange sound… In my machine’s case, a whining noise. As a sysadmin and/or experienced geek, you know something’s wrong. I suspect the head assembly has become detached and is scraping along the disk surface at 7200rpm…
Naturally, the usual recovery tools don’t work… and the drive sounds shot.
# pvmove /dev/sdd1 /dev/sdg1
/dev/sdd1: Moved: 0.0%
/dev/sdd1: Moved: 0.0%
/dev/sdd1: read failed after 0 of 2048 at 0: Input/output error
No physical volume label read from /dev/sdd1
Physical volume /dev/sdd1 not found
ABORTING: Can’t reread PV /dev/sdd1
ABORTING: Can’t reread VG for /dev/sdd1
# dd if=/dev/sdd1 of=dev/sdg1 bs=4096
dd: reading `/dev/sdd1′: Input/output error
2+0 records in
2+0 records out
8192 bytes (8.2 kB) copied, 0.0992418 s, 82.5 kB/s
# dd if=/dev/sdd of=dev/sdg bs=4096
dd: reading `/dev/sdd’: Input/output error
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.0205753 s, 199 kB/s
This is the third 1TB Seagate ES.2 drive I’ve had develop bad sectors. Although they have a 5 year warranty, they seem to start expiring after 3.