Vectorizing Value Assignment to an Array of Structures

Posted on Nov 7, 2015

MATLAB code:
% create an array of 100 structures
chan = struct('Index', num2cell(1:100));

% assign new numbers (larger by 3) to the Index field without using a loop

% Method 1
chan = arrayfun(@(s) setfield(s,'Index', s.Index + 3), chan);

% Method 2: This is faster than Method 1, but requires a temporary variable.
new_index = num2cell([chan.Index] + 3);
[chan.Index] = new_index{:};

% Method 3: Surprisingly using a loop is the fastest!!!
for m=1:100, chan(m).Index = chan(m).Index + 3; end

% The fastest time out of 10 runs on my desktop with R2015b
% Method 1: Elapsed time is 0.002056 seconds.
% Method 2: Elapsed time is 0.000357 seconds.
% Method 3: Elapsed time is 0.000124 seconds.

Thunderbird Command Error 12

Posted on Jul 31, 2015

From http://forums.mozillazine.org/viewtopic.php?f=39&t=2530463

Symptom:
Thunderbird shows a popup that says, “The current operation on ‘Inbox(or one of your folders)’ did not succeed. The mail server for account (your account name) responded: Command Error. 12.”, when it tries to access an IMAP account.

Cause:
The error happens with some servers that does not support “ID command”.

Solution:
Go [Option] – [Advanced], click [Config Editor] and fnd the following pref.

mail.server.default.send_client_info

It is true by default. Toggle it to false by double-clicking on it. Close the editor and restart Thunderbird.