News aggregator

Linux Microsoft Skype for Business / Lync 2013 Client

Planet SurreyLUG - Wed, 02/09/2015 - 09:14

I was surprised to learn that Ubuntu 14.04 can talk to Skype for Business AKA Lync 2013 using the Pidgin Instant Messaging client. The general steps were:
# apt-get install pidgin pidgin-sipe

And then restart Pidgin and add a new Account. The Office Communicator is the relevant plugin, with the following parameters:

  • Protocol: Office Communicator
  • Username: Your Office 365 or Skype for Business username – probably your email address
  • Password: Your password is obviously required – and will be stored unencrypted in the config file, so you may wish to leave this blank and enter at each login
  • Server[:Port]: Leave empty if your set-up has autodiscovery
  • Connection type: Auto
  • User Agent: UCCAPI/15.0.4420.1017 OC/15.0.4420.1017
  • Authentication scheme: TLS-DSK

I am unclear why the user agent is required, and whether that will need to change from time to time or not. So far it has worked fine here.

Unfortunately a few days ago the above set-up stopped working, with “Failed to authenticate with server”. It seems that you must now use version 1.20 of the Sipe plugin, which fixes “Office365 rejects RC4 in TLS-DSK”. As this version was only completed three days ago, it is not yet available in any of the Ubuntu repositories that I have been able to find, you will probably have to compile yourself.

Broadly speaking I followed these key stages:

  1. Install build tools if you don’t already have them (apt-get install build-essential).
  2. Install checkinstall if you don’t already have it (apt-get install checkinstall).
  3. Download source files.
  4. Extract source.
  5. Change into source directory.
  6. Read carefully the README file in the source directory.
  7. Installed dependencies listed in the README:

# apt-get install libpurple-dev libtool intltool pkg-config libglib2.0-dev \
libxml2-dev libnss3-dev libssl-dev libkrb5-dev libnice-dev libgstreamer0.10-dev

These dependencies may change over time, and your particular requirements may be different from mine, so please read the README and that information should take precedence.

Lastly, as an ordinary user, you should now be able to compile. If it fails at any stage, simply read the error and install the missed dependancy.

$ ./configure --prefix=/usr
$ make
$ sudo checkinstall

I found checkinstall was pre-populated with sensible settings, and I was able to continue without making any changes. Once complete a Debian package will have been created in the current directory, but it will have already been installed for you.

For some reason I found that at this stage Pidgin would no longer run, as it was now named /usr/bin/pidgin.orig instead of /usr/bin/pidgin, I tried removing and reinstalling pidgin but to no avail. In the end I created a symlink (ln -s /usr/bin/pidgin.orig /usr/bin/pidgin), but you should not do this unless you experience the same issue. If you know the reason for this I would be delighted to receive your feedback, as this isn’t a problem that I have come across before.

Restarting Pidgin and the Office Communicator sprung into life once more. Sadly I would imagine that this won’t be the last time this plugin will break, such are the vagaries of connecting to closed proprietary networks.

Categories: LUG Community Blogs

Debian Bits: New Debian Developers and Maintainers (July and August 2015)

Planet HantsLUG - Tue, 01/09/2015 - 11:45

The following contributors got their Debian Developer accounts in the last two months:

  • Gianfranco Costamagna (locutusofborg)
  • Graham Inggs (ginggs)
  • Ximin Luo (infinity0)
  • Christian Kastner (ckk)
  • Tianon Gravi (tianon)
  • Iain R. Learmonth (irl)
  • Laura Arjona Reina (larjona)

The following contributors were added as Debian Maintainers in the last two months:

  • Senthil Kumaran
  • Riley Baird
  • Robie Basak
  • Alex Muntada
  • Johan Van de Wauw
  • Benjamin Barenblat
  • Paul Novotny
  • Jose Luis Rivero
  • Chris Knadle
  • Lennart Weller


Categories: LUG Community Blogs

Bring-A-Box 12th September 2015, Red Hat

Surrey LUG - Mon, 31/08/2015 - 19:12
Start: 2015-09-12 11:00 End: 2015-09-12 17:00

We have regular sessions each month. Bring a 'box', bring a notebook, bring anything that might run Linux, or just bring yourself and enjoy socialising/learning/teaching or simply chilling out!

Back to the excellent Red Hat offices in Farnborough, Hampshire on Saturday 12th September - thanks to Dominic Cleal for hosting us..

Categories: LUG Community Blogs

Jonathan McDowell: Random post-DebConf 15 thoughts

Planet ALUG - Mon, 24/08/2015 - 15:18

There are a bunch of things I mean to blog about, but as I have just got fully home from Heidelberg and DebConf15 this afternoon that seems most appropriate to start with. It’s a bit of a set of disjoint thoughts, but I figure I should write them down while they’re in my head.

DebConf is an interesting conference. It’s the best opportunity the Debian project has every year to come together and actually spend a decent amount of time with each other. As a result it’s a fairly full on experience, with lots of planned talks as a basis and a wide range of technical discussions and general social interaction filling in whatever gaps are available. I always find it a thoroughly enjoyable experience, but equally I’m glad to be home and doing delightfully dull things like washing my clothes and buying fresh milk.

I have always been of the opinion that the key aspect of DebConf is the face time. It was thus great to see so many people there - we were told several times that this was the largest DebConf so far (~ 570 people IIRC). That’s good in the sense that it meant I got to speak to a lot of people (both old friends and new), but does mean that there are various people I know I didn’t spend enough, or in some cases any, time with. My apologies, but I think many of us were in the same situation. I don’t feel it made the conference any less productive for me - I managed to get a bunch of hacking done, discuss a number of open questions in person with various people and get pulled into various interesting discussions I hadn’t expected. In short, a typical DebConf.

Also I’d like to say that the venue worked out really well. I’ll admit I was dubious when I heard it was in a hostel, but it was well located (about a 30 minute walk into town, and a reasonable bus service available from just outside the door), self-contained with decent facilities (I’m a big believer in having DebConf talks + accommodation be as close as possible to each other) and the room was much better than expected (well, aside from the snoring but I can’t blame the DebConf organisers for that).

One of the surprising and interesting things for me that was different from previous DebConfs was the opportunity to have more conversations with a legal leaning. I expect to go to DebConf and do OpenPGP/general crypto related bits. I wasn’t expecting affirmation about the things I have learnt on my course over the past year, in terms of feeling that I could use that knowledge in the process of helping Debian. It provided me with some hope that I’ll be able to tie my technology and law skills together in a way that I will find suitably entertaining (as did various conversations where people expressed significant interest in the crossover).

Next year is in Cape Town, South Africa. It’s a long way (though I suppose no worse than Portland and I get to stay in the same time zone), and a quick look at flights indicates they’re quite expensive at the moment. The bid presentation did look pretty good though so as soon as the dates are confirmed (I believe this will happen as soon as there are signed contracts in place) I’ll take another look at flights.

In short, excellent DebConf, thanks to the organisers, lovely to see everyone I managed to speak to, apologies to those of you I didn’t manage to speak to. Hopefully see you in Cape Town next year.

Categories: LUG Community Blogs

Andy Smith: Scrobbling to from D-Bus

Planet HantsLUG - Sun, 23/08/2015 - 11:50

Yesterday afternoon I noticed that my music player, Banshee, had not been scrobbling to my for a few weeks. seem to be in the middle of reorganising their site but that shouldn’t affect their API (at least not for scrobbling). However, it seems that it has upset Banshee so no more scrobbling for me.

Banshee has a number of deficiencies but there’s a few things about it that I really do like, so I wasn’t relishing changing to a different player. It’s also written in Mono which doesn’t look like something I could learn very quickly.

I then noticed that Banshee has some sort of D-Bus interface where it writes things about what it it doing, such as the metadata for the currently-playing track… and so a hackish idea was formed.

Here’s a thing that listens to what Banshee is saying over D-Bus and submits the relevant “now playing” and scrobble to The first time you run it it asks you to authorise it and then it remembers that forever.

I’ve never looked at D-Bus before so I’m probably doing it all very wrong, but it appears to work. Look, I have scrobbles again! And after all it would not be Linux on the desktop if it didn’t require some sort of lash-up that would make Heath Robinson cry his way to the nearest Apple store to beg a Genius to install iTunes, right?

Anyway it turns out that there is a standard for this remote control and introspection of media players, called MPRIS, and quite a few of them support it. Even Spotify, apparently. So it probably wouldn’t be hard to adapt this script to scrobble from loads of different things even if they don’t have scrobbling extensions themselves.

Categories: LUG Community Blogs

Mick Morgan: update to domain privacy

Planet ALUG - Thu, 20/08/2015 - 18:55

At the end of last month I noted that I had been receiving multiple emails to each of the proxy addresses listed for my newly registered “private” domains. Intriguingly, whilst I was receiving at least three or four such emails a week before I wrote about it, I have had precisely zero since.

Probably coincidence, but a conspiracy theorist would have field day with that.

Categories: LUG Community Blogs

Mick Morgan: why privacy matters

Planet ALUG - Wed, 19/08/2015 - 17:53

Last month my wife and I shared a holiday with a couple of old friends. We have known this couple since before we got married, indeed, they attended our wedding. We consider them close friends and enjoy their company. One evening in a pub in Yorkshire, we got to discussing privacy, the Snowden revelations, and the implications of a global surveillance mechanism such as is used by both the UK and its Five Eyes partners (the US NSA in particular). To my complete surprise, Al expressed the view that he was fairly relaxed about the possibility that GCHQ should be capable of almost complete surveillance of his on-line activity since, in his view, “nothing I do can be of any interest to them, so why should I worry.”

I have met this view before, but oddly I had never heard Al express himself in quite this way in all the time I have known him. It bothers me that someone I love and trust, someone whose opinions I value, someone I consider to be intelligent and articulate and caring, should be so relaxed about so pernicious an activity as dragnet surveillance. It is not only the fact that Al himself is so relaxed that bothers me so much as the fact that if he does not care, then many, possibly most, people like him will not care either. That attitude plays into the hands of those, like Eric Schmidt, who purport to believe that “If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.”

Back in October last year, Glenn Greenwald gave a TED talk on the topic, “Why privacy matters”. I recommended it to Al and I commend it to anyone who thinks, as he does, that dragnet surveillance doesn’t impact on them because they “are not doing anything wrong”.

Categories: LUG Community Blogs

Welcome to the Wolves LUG!

Wolverhampton LUG News - Mon, 17/08/2015 - 16:42

Welcome to our website. The Wolves LUG is a group of Linux users from the Wolverhampton area who meet every two weeks to discuss Linux, drink lots, eat lots and generally hang out and be social. A very friendly and open atmosphere is encouraged at LUG meetings and on the online LUG resources.

Many people who have come to the Wolves LUG have commented on how we are different to many LUGs that prefer a more formal setting for their meetings. We are a lively, social group that prefer informal meetings that are rich in debate, jokes, sarcasm and just generally fun. Although the group discusses a wide variety of technical and political subjects, don't expect every meeting to be full of dry technical conversation.

Who can join the LUG?

Anyone and everyone is welcome to the Wolves LUG. We encourage new Linux users and experienced users alike. We also encourage those who are considering Linux and would like to pop along to find out more first. Everyone is welcome and there are no pre-requisites for joining and attending meetings. There is also no age limit for joining the LUG and meetings. All ages are welcome. :)

What does it cost

Nothing. As with the software that we promote, there is no charge to join the group and no subscription. Just join in.

OK, you have convinced me. How do I join up?

The first thing you should do is join our mailing list. This is an email discussion list that all members are subscribed to. Joining the list is free and can be done by visiting this page - When you have joined the list you can introduce yourself and get to know the LUG members.

Where do you have meetings and how often?

Meetings take place every two weeks and you can check the latest details on this site. We meet on every other Wednesday and the meeting generally kicks off at 7.30pm, although a few of us get there a little earlier. In general meetings end around 11.00pm, but many members leave earlier and some stay later.

I would like to contribute to the website, what do I need to do?

If you are a member of the mailing list (if not, why not?) or are known to the site administrators, please signup for an account here - All account requests are subject to administrator approval which normally occurs within 24 hours.

Categories: LUG Community Blogs

Debian Bits: Debian turns 22!

Planet HantsLUG - Sun, 16/08/2015 - 21:59

Sorry for posting so late, we're very busy at DebConf15!

Happy 22nd birthday Debian!

Categories: LUG Community Blogs

24th August monthly meeting

West Yorkshire LUG News - Fri, 14/08/2015 - 11:49

Since the last Monday of the month is a bank holiday, we decided at the last meeting, to hold the next monthly meeeting on the Monday before the last of the month.

Therefore, The monthly meeting wil be on Monday the 24th of August at 7pm in the Lord Darcy on Harrogate Road.

If you have any subjects for discussion at the meeting, please post them on the mailling list first, so we can prepare for them in advance. If you feel like helping jazz up the web site, bring a laptop/tablet to the meeting and I will supply usenames/passwords and away we go.

Adam Trickett: Bog Roll: Weight Plateau

Planet HantsLUG - Thu, 13/08/2015 - 21:09

After nearly 22 weeks of continuous and even weight loss I've hit my weigh plateau and not changed my weight for over three weeks now.

There are three basic reasons for this:

  1. My energy intake now equals my energy use. As you lose weight your total metabolic demand falls, so the deliberate energy deficit gradually shrinks to nothing. This is normal.
  2. Calorie creep, over time it's easy to add a little extra to your diet, which means the energy deficit isn't as big as it should be. This is common.
  3. Laziness creep, over time it's easy to slow down and not stick to the exercise plan. This is also common.

The closer you are to your target weight the more likely, and the easier it is to give and stay put. In my case all three are probably happening, my BMR has probably fallen by 168 kcal / 702 kj, which is 400 g of milk or 30 g of almonds - which isn't much but if you eat a few extra nuts or an extra glass of milk, it adds up...

To correct this, I've made sure I don't eat too many nuts (they are good for me in moderation) and I've cut down on the milk in my porridge, substituting water. I've also trimmed my bread, as good though it is, wheat has ~ 360 kcal per 100 g. I'll also try to push harder on the bike and walk faster...

I'm currently stuck under 74 kg, with about 8 kg to go...

Categories: LUG Community Blogs

Steve Kemp: Making an old android phone useful again

Planet HantsLUG - Thu, 13/08/2015 - 14:44

I've got an HTC Desire, running Android 2.2. It is old enough that installing applications such as thsoe from my bank, etc, fails.

The process of upgrading the stock ROM/firmware seems to be:

  • Download an unsigned zip file, from a shady website/forum.
  • Boot the phone in recovery mode.
  • Wipe the phone / reset to default state.
  • Install the update, and hope it works.
  • Assume you're not running trojaned binaries.
  • Hope the thing still works.
  • Reboot into the new O/S.

All in all .. not ideal .. in any sense.

I wish there were a more "official" way to go. For the moment I guess I'll ignore the problem for another year. My nokia phone does look pretty good ..

Categories: LUG Community Blogs

Jonathan McDowell: Programming the FST-01 (gnuk) with a Bus Pirate + OpenOCD

Planet ALUG - Tue, 11/08/2015 - 14:29

Last year at DebConf14 Lucas authorized the purchase of a handful of gnuk devices, one of which I obtained. At the time it only supported 2048 bit RSA keys. I took a look at what might be involved in adding 4096 bit support during DebConf and managed to brick my device several times in doing so. Thankfully gniibe was on hand with his STLinkV2 to help me recover. However subsequently I was loathe to experiment further at home until I had a suitable programmer.

As it is this year has been busy and the 1.1.x release train is supposed to have 4K RSA (as well as ECC) support. DebConf15 is coming up and I felt I should finally sort out playing with the device properly. I still didn’t have a suitable programmer. Or did I? Could my trusty Bus Pirate help?

The FST-01 has an STM32F103TB on it. There is an exposed SWD port. I found a few projects that claimed to do SWD with a Bus Pirate - Will Donnelly has a much cloned Python project, the MC HCK project have a programmer in Ruby and there’s LibSWD though that’s targeted to smarter programmers. None of them worked for me; I could get the Python bits as far as correctly doing the ID of the device, but not reading the option bytes or successfully flashing (though I did manage an erase).

Enter the old favourite, OpenOCD. This already has SWD support and there’s an outstanding commit request to add Bus Pirate support. NodoNogard has a post on using the ST-Link/V2 with OpenOCD and the FST-01 which provided some useful pointers. I grabbed the patch from Gerrit, applied it to OpenOCD git and built an openocd.cfg that contained:

source [find interface/buspirate.cfg] buspirate_port /dev/ttyUSB0 buspirate_vreg 1 buspirate_mode normal transport select swd source [find target/stm32f1x.cfg]

My BP has the Seeed Studio probe cable, so my hookups look like this:

That’s BP MOSI (grey) to SWD IO, BP CLK (purple) to SWD CLK, BP 3.3V (red) to FST-01 PWR and BP GND (brown) to FST-01 GND. Once that was done I fired up OpenOCD in one terminal and did the following in another:

$ telnet localhost 4444 Trying ::1... Trying Connected to localhost. Escape character is '^]'. Open On-Chip Debugger > reset halt target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc Info : device id = 0x20036410 Info : SWD IDCODE 0x1ba01477 Error: Failed to read memory at 0x1ffff7e2 Warn : STM32 flash size failed, probe inaccurate - assuming 128k flash Info : flash size = 128kbytes > stm32f1x unlock 0 Device Security Bit Set stm32x unlocked. INFO: a reset or power cycle is required for the new settings to take effect. > reset halt target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc > flash write_image erase /home/noodles/checkouts/gnuk/src/build/gnuk.elf auto erase enabled wrote 109568 bytes from file /home/noodles/checkouts/gnuk/src/build/gnuk.elf in 95.055603s (1.126 KiB/s) > stm32f1x lock 0 stm32x locked > reset halt target state: halted target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x08000280 msp: 0x20005000

Then it was a matter of disconnecting the gnuk from the BP, plugging it into my USB port and seeing it come up successfully:

usb 1-2: new full-speed USB device number 11 using xhci_hcd usb 1-2: New USB device found, idVendor=234b, idProduct=0000 usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-2: Product: Gnuk Token usb 1-2: Manufacturer: Free Software Initiative of Japan usb 1-2: SerialNumber: FSIJ-1.1.7-87063020 usb 1-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes

More once I actually have a 4K key loaded on it.

Categories: LUG Community Blogs

Steve Kemp: A brief look at the weed file store

Planet HantsLUG - Mon, 10/08/2015 - 13:29

Now that I've got a citizen-ID, a pair of Finnish bank accounts, and have enrolled in a Finnish language-course (due to start next month) I guess I can go back to looking at object stores, and replicated filesystems.

To recap my current favourite, despite the lack of documentation, is the Camlistore project which is written in Go.

Looking around there are lots of interesting projects being written in Go, and so is my next one the seaweedfs, which despite its name is not a filesystem at all, but a store which is accessed via HTTP.

Installation is simple, if you have a working go-lang environment:

go get

Once that completes you'll find you have the executable bin/weed placed beneath your $GOPATH. This single binary is used for everything though it is worth noting that there are distinct roles:

  • A key concept in weed is "volumes". Volumes are areas to which files are written. Volumes may be replicated, and this replication is decided on a per-volume basis, rather than a per-upload one.
  • Clients talk to a master. The master notices when volumes spring into existance, or go away. For high-availability you can run multiple masters, and they elect the real master (via RAFT).

In our demo we'll have three hosts one, the master, two and three which are storage nodes. First of all we start the master:

root@one:~# mkdir / root@one:~# weed master -mdir / -defaultReplication=001

Then on the storage nodes we start them up:

root@two:~# mkdir /data; root@two:~# weed volume -dir=/data -max=1 -mserver=one.our.domain:9333

Then the second storage-node:

root@three:~# mkdir /data; root@three:~# weed volume -dir=/data -max=1 -mserver=one.our.domain:9333

At this point we have a master to which we'll talk (on port :9333), and a pair of storage-nodes which will accept commands over :8080. We've configured replication such that all uploads will go to both volumes. (The -max=1 configuration ensures that each volume-store will only create one volume each. This is in the interest of simplicity.)

Uploading content works in two phases:

  • First tell the master you wish to upload something, to gain an ID in response.
  • Then using the upload-ID actually upload the object.

We'll do that like so:

laptop ~ $ curl -X POST http://one.our.domain:9333/dir/assign {"fid":"1,06c3add5c3","url":"","publicUrl":"","count":1} client ~ $ curl -X PUT -F file=@/etc/passwd,06c3add5c3 {"name":"passwd","size":2137}

In the first command we call /dir/assign, and receive a JSON response which contains the IPs/ports of the storage-nodes, along with a "file ID", or fid. In the second command we pick one of the hosts at random (which are the IPs of our storage nodes) and make the upload using the given ID.

If the upload succeeds it will be written to both volumes, which we can see directly by running strings on the files beneath /data on the two nodes.

The next part is retrieving a file by ID, and we can do that by asking the master server where that ID lives:

client ~ $ curl http://one.our.domain:9333/dir/lookup?volumeId=1,06c3add5c3 {"volumeId":"1","locations":[ {"url":"","publicUrl":""}, {"url":"","publicUrl":""} ]}

Or, if we prefer we could just fetch via the master - it will issue a redirect to one of the volumes that contains the file:

client ~$ curl http://one.our.domain:9333/1,06c3add5c3 <a href=",06c3add5c3">Moved Permanently</a>

If you follow redirections then it'll download, as you'd expect:

client ~ $ curl -L http://one.our.domain:9333/1,06c3add5c3 root:x:0:0:root:/root:/bin/bash ..

That's about all you need to know to decide if this is for you - in short uploads require two requests, one to claim an identifier, and one to use it. Downloads require that your storage-volumes be publicly accessible, and will probably require a proxy of some kind to make them visible on :80, or :443.

A single "weed volume .." process, which runs as a volume-server can support multiple volumes, which are created on-demand, but I've explicitly preferred to limit them here. I'm not 100% sure yet whether it's a good idea to allow creation of multiple volumes or not. There are space implications, and you need to read about replication before you go too far down the rabbit-hole. There is the notion of "data centres", and "racks", such that you can pretend different IPs are different locations and ensure that data is replicated across them, or only within-them, but these choices will depend on your needs.

Writing a thin middleware/shim to allow uploads to be atomic seems simple enough, and there are options to allow exporting the data from the volumes as .tar files, so I have no undue worries about data-storage.

This system seems reliable, and it seems well designed, but people keep saying "I'm not using it in production because .. nobody else is" which is an unfortunate problem to have.

Anyway, I like it. The biggest omission is really authentication. All files are public if you know their IDs, but at least they're not sequential ..

Categories: LUG Community Blogs

Andy Smith: SSDs and Linux Native Command Queuing

Planet HantsLUG - Sun, 09/08/2015 - 07:10
Native Command Queueing

Native Command Queuing (NCQ) is an extension of the Serial ATA protocol that allows multiple requests to be sent to a drive, allowing the drive to order them in a way it considers optimal.

This is very handy for rotational media like conventional hard drives, because they have to move the head all over to do random IO, so in theory if they are allowed to optimise ordering then they may be able to do a better job of it. If the drive supports NCQ then it will advertise this fact to the operating system and Linux by default will enable it.

Queue depth

The maximum depth of the queue in SATA is 31 for practical purposes, and so if the drive supports NCQ then Linux will usually set the depth to 31. You can change the depth by writing a number between 1 and 31 to /sys/block/<device>/device/queue_depth. Writing 1 to the file effectively disables NCQ for that device.

NCQ and SSDs

So what about SSDs? They aren’t rotational media; any access is in theory the same as any other access, so no need to optimally order the commands, right?

The sad fact is, many SSDs even today have incompatibilities with SATA drivers and chipsets such that NCQ does not reliably work. There’s advice all over the place that NCQ can be disabled with no ill effect, because supposedly SSDs do not benefit from it. Some posts even go as far as to suggest that NCQ might be detrimental to performance with SSDs.

Well, let’s see what fio has to say about that.

The setup
  • Two Intel DC s3610 1.6TB SSDs in an MD RAID-10 on Debian 8.1.
  • noop IO scheduler.
  • fio operating on a 4GiB test file that is on an ext4 filesystem backed by LVM.
  • fio set to do a 70/30% mix of read vs write operations with 128 simultaneous IO operations in flight.

The goal of this is to simulate a busy highly parallel server load, such as you might see with a database.

The fio command line looks like this:

fio --randrepeat=1 \ --ioengine=libaio \ --direct=1 \ --gtod_reduce=1 \ --name=ncq \ --filename=test \ --bs=4k \ --iodepth=128 \ --size=4G \ --readwrite=randrw \ --rwmixread=70

Expected output will be something like this:

ncq: (g=0): rw=randrw, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=128 fio-2.1.11 Starting 1 process Jobs: 1 (f=1): [m(1)] [100.0% done] [50805KB/21546KB/0KB /s] [12.8K/5386/0 iops] [eta 00m:00s] ncq1: (groupid=0, jobs=1): err= 0: pid=11272: Sun Aug 9 06:29:33 2015 read : io=2867.6MB, bw=44949KB/s, iops=11237, runt= 65327msec write: io=1228.5MB, bw=19256KB/s, iops=4813, runt= 65327msec cpu : usr=4.39%, sys=25.20%, ctx=732814, majf=0, minf=6 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued : total=r=734099/w=314477/d=0, short=r=0/w=0/d=0 latency : target=0, window=0, percentile=100.00%, depth=128   Run status group 0 (all jobs): READ: io=2867.6MB, aggrb=44949KB/s, minb=44949KB/s, maxb=44949KB/s, mint=65327msec, maxt=65327msec WRITE: io=1228.5MB, aggrb=19255KB/s, minb=19255KB/s, maxb=19255KB/s, mint=65327msec, maxt=65327msec   Disk stats (read/write): dm-0: ios=732755/313937, merge=0/0, ticks=4865644/3457248, in_queue=8323636, util=99.97%, aggrios=734101/314673, aggrmerge=0/0, aggrticks=0/0, aggrin_queue=0, aggrutil=0.00% md4: ios=734101/314673, merge=0/0, ticks=0/0, in_queue=0, util=0.00%, aggrios=364562/313849, aggrmerge=2519/1670, aggrticks=2422422/2049132, aggrin_queue=4471730, aggrutil=94.37% sda: ios=364664/313901, merge=2526/1618, ticks=2627716/2223944, in_queue=4852092, util=94.37% sdb: ios=364461/313797, merge=2513/1722, ticks=2217128/1874320, in_queue=4091368, util=91.68%

The figures we’re interested in are the iops= ones, in this case 11237 and 4813 for read and write respectively.


Here’s how different NCQ queue depths affected things. Click the graph image for the full size version.


On this setup anything below a queue depth of about 8 is disastrous to performance. The aberration at a queue depth of 19 is interesting. This is actually repeatable. I have no explanation for it.

Don’t believe anyone who tells you that NCQ is unimportant for SSDs unless you’ve benchmarked that and proven it to yourself. Disabling NCQ on an Intel DC s3610 appears to reduce its performance to around 25% of what it would be with even a queue depth of 8. Modern SSDs, especially enterprise ones, have a parallel architecture that allows them to get multiple things done at once. They expect NCQ to be enabled.

It’s easy to guess why 8 might be the magic number for the DC s3610:

The top of the PCB has eight NAND emplacements and Intel’s proprietary eight-channel PC29AS21CB0 controller.

The newer NVMe devices are even more aggressive with this; while the SATA spec stops at one queue with a depth of 32, NVMe specifies up to 65k queues with a depth of up to 65k each! Modern SSDs are designed with this in mind.

Categories: LUG Community Blogs

David Goodwin: Automated twitter compilation up to 16 June 2014

Planet WolvesLUG - Mon, 16/06/2014 - 15:22

Arbitrary tweets made by TheGingerDog up to 16 June 2014


  • RT Proud my 8yo girl failed this worksheet. Wish she had failed it even “worse.” #GenderBias
  • 2012/11/03

  • RT #PHP devs. Please satisfy my curiosity and let me know about the frameworks you’ve used recently. Ta. (plz RT) 2014/06/15
  • RT Best banner at the World Cup so far
  • 2014/06/14

  • RT RT if you believe in freedom & democracy. #Falklands #LiberationDay
  • 2014/06/14

  • RT WordFriday: crosspathy
  • Attempt to pass homeopathy off as credible by combining it with empirically valid medicine.

  • And back home. Zzzz. Bromsgrove 2014/06/12
  • And now. Time to catch a plane. #snackTime Cyprus 2014/06/11
  • Thankfully I don’t use tweetdeck. Cyprus 2014/06/11
  • RT “US invasion and occupation cost Washington close to a trillion dollars ” – enough to address climate change… #iraq 2014/06/11
  • RT #Iraq army capitulates to Isis militants in four cities – what a disaster…well done, Bush and Blair… 2014/06/11
  • RT Twitter worms are so 2011. 2014/06/11
  • RT Tweetdeck XSS flaw leaves users vulnerable to account hijacking 2014/06/11
  • RT If one searches for CityLink on Google right now, you get this rather marvellously off message cartoon.
  • 2014/06/10

  • This morning we saw some Roman ruins and a Byzantine castle (mosaics etc)
  • Cyprus 2014/06/10

  • Oh Jesus. It’s raining men ! Cyprus 2014/06/08
  • It’s fun to stay at the YMCA …. You can get yourself clean. You can have a good meal …. Cyprus 2014/06/08
  • Wedding time.
  • Cyprus 2014/06/08

  • RT
  • 2014/06/07

  • The sun lounger things have already been stolen.
  • Cyprus 2014/06/08

  • It is dark early here. #landed Cyprus 2014/06/07
  • Our trusty steed for the next few hours.
  • Solihull 2014/06/07

  • RT Did… Did MongoDB just kill itself because it couldn’t rotate its log file? It did! It fucking did! 2014/06/07
  • Trying to scan this qr code causes my phone to reboot. #nexus4 #android #bug
  • Solihull 2014/06/07

  • Great weather this morning.
  • We woke to continual thunder.

    I think it is time to leave the country.

    Solihull 2014/06/07

  • Airport grammar fall. #bhx
  • Solihull 2014/06/07

  • RT HTTP/1.1 just got a major update. – Evert Pot 2014/06/07
  • RT I love cycling, but it does really piss me off when cyclists cruise through red lights with an arrogance & nonchalance that boils the blood! 2014/06/06
  • RT – Help build a resource for the IT community to combat burnout: 2014/06/06
  • It has arrived ! (@TheMikeBennett‘s awesome book).
  • Bromsgrove 2014/06/06

  • RT But for the sacrifice of many, we may not have been born free. Think of that today if nothing else. #DDay70 #DDay #LestWeForget East, United Kingdom 2014/06/06
  • RT At turned midnight 6/6/2014 my biggest worry is getting home tomorrow. 70 yrs ago many didn’t, I doubt my day will be as life changing #DDay East, United Kingdom 2014/06/06
  • Categories: LUG Community Blogs

    Jono Bacon: FirefoxOS and Developing Markets

    Planet WolvesLUG - Thu, 12/06/2014 - 23:40

    It seems Mozilla is targeting emerging markets and developing nations with $25 cell phones. This is tremendous news, and an admirable focus for Mozilla, but it is not without risk.

    Bringing simple, accessible technology to these markets can have a profound impact. As an example, in 2001, 134 million Nigerians shared 500,000 land-lines (as covered by Jack Ewing in Businessweek back in 2007). That year the government started encouraging wireless market competition and by 2007 Nigeria had 30 million cellular subscribers.

    This generated market competition and better products, but more importantly, we have seen time and time again that access to technology such as cell phones improves education, provides opportunities for people to start small businesses, and in many cases is a contributing factor for bringing people out of poverty.

    So, cell phones are having a profound impact in these nations, but the question is, will it work with FirefoxOS?

    I am not sure.

    In Mozilla’s defence, they have done an admirable job with FirefoxOS. They have built a powerful platform, based on open web technology, and they lined up a raft of carriers to launch with. They have a strong brand, an active and passionate community, and like so many other success stories, they already have a popular existing product (their browser) to get them into meetings and headlines.

    Success though is judged by many different factors, and having a raft of carriers and products on the market is not enough. If they ship in volume but get high return rates, it could kill them, as is common for many new product launches.

    What I don’t know is whether this volume/return-rate balance plays such a critical role in developing markets. I would imagine that return rates could be higher (such as someone who has never used a cell phone before taking it back because it is just too alien to them). On the other hand, I wonder if those consumers there are willing to put up with more quirks just to get access to the cell network and potentially the Internet.

    What seems clear to me is that success here has little to do with the elegance or design of FirefoxOS (or any other product for that matter). It is instead about delivering incredibly dependable hardware. In developing nations people have less access to energy (for charging devices) and have to work harder to obtain it, and have lower access to support resources for how to use new technology. As such, it really needs to just work. This factor, I imagine, is going to be more outside of Mozilla’s hands.

    So, in a nutshell, if the $25 phones fail to meet expectations, it may not be Mozilla’s fault. Likewise, if they are successful, it may not be to their credit.

    Categories: LUG Community Blogs

    Jono Bacon: Community Management Training at OSCON, LinuxCon North America, and LinuxCon Europe

    Planet WolvesLUG - Wed, 11/06/2014 - 17:55

    I am a firm believer in building strong and empowered communities. We are in an age of a community management renaissance in which we are defining repeatable best practice that can be applied many different types of communities, whether internal to companies, external to volunteers, or a mix of both.

    I have been working to further this growth in community management via my books, The Art of Community and Dealing With Disrespect, the Community Leadership Summit, the Community Leadership Forum, and delivering training to our next generation of community managers and leaders.

    Last year I ran my first community management training course, and it was very positively received. I am delighted to announce that I will be running an updated training course at three events over the coming months.


    On Sunday 20th July 2014 I will be presenting the course at the OSCON conference in Portland, Oregon. This is a tutorial, so you will need to purchase a tutorial ticket to attend. Attendance is limited, so be sure to get to the class early on the day to reserve a seat!

    Find Out More

    LinuxCon North America and Europe

    I am delighted to bring my training to the excellent LinuxCon events in both North America and Europe.

    Firstly, on Fri 22nd August 2014 I will be presenting the course at LinuxCon North America in Chicago, Illinois and then on Thurs Oct 16th 2014 I will deliver the training at LinuxCon Europe in Düsseldorf, Germany.

    Tickets are $300 for the day’s training. This is a steal; I usually charge $2500+/day when delivering the training as part of a consultancy arrangement. Thanks to the Linux Foundation for making this available at an affordable rate.

    Space is limited, so go and register ASAP:

    What Is Covered

    So what is in the training course?

    My goal with each training day is to discuss how to build and grow a community, including building collaborative workflows, defining a governance structure, planning, marketing, and evaluating effectiveness. The day is packed with Q&A, discussion, and I encourage my students to raise questions, challenge me, and explore ways of optimizing their communities. This is not a sit-down-and-listen-to-a-teacher-drone on kind of session; it is interactive and designed to spark discussion.

    The day is mapped out like this:

    • 9.00am – Welcome and introductions
    • 9.30am – The core mechanics of community
    • 10.00am – Planning your community
    • 10.30am – Building a strategic plan
    • 11.00am – Building collaborative workflow
    • 12.00pm – Governance: Part I
    • 12.30pm – Lunch
    • 1.30pm – Governance: Part II
    • 2.00pm – Marketing, advocacy, promotion, and social
    • 3.00pm – Measuring your community
    • 3.30pm – Tracking, measuring community management
    • 4.30pm – Burnout and conflict resolution
    • 5.00pm – Finish

    I will warn you; it is an exhausting day, but ultimately rewarding. It covers a lot of ground in a short period of time, and then you can follow with further discussion of these and other topics on our Community Leadership discussion forum.

    I hope to see you there!

    Categories: LUG Community Blogs

    Dick Turpin: Old Tom

    Planet WolvesLUG - Thu, 05/06/2014 - 11:58
    So most of you will have heard my complaints about the difficulty in simply being able to order fish and chips from the chip shop? Well it would seem there are many other opportunities out there to eat up your lunch hour when trying to buy something.

    A well known UK car accessory outlet.

    Me: "Hi there can I have a Tom Tom Start 25 UK & ROF @ £99.99 please?"
    Assistant: "Do you want the maps for life?"
    Me: "Oh Christ, here we go! No thank you."
    Assistant: "Do you want the European maps?"
    Me: [Sobbing gently] "Could I just have the Tom Tom I asked for please?"
    Assistant: "OK I'll go and fetch one."
    Categories: LUG Community Blogs

    David Goodwin: Automated twitter compilation up to 04 June 2014

    Planet WolvesLUG - Wed, 04/06/2014 - 11:41

    Arbitrary tweets made by TheGingerDog up to 04 June 2014

    Categories: LUG Community Blogs
    Syndicate content