How to VNC into a running Plasma session

The easy answer is “have the user run krfb inside the session first”. But what if you are the user, and you're already remote from the host by the time you remember you needed to do that?

You need to have configured krfb with a remote control password and any other relevant settings, first. See below, but typically you've already done this at some point, so you can move straight to the important part:

ssh you@yourserver
DISPLAY=:0.0 krfb --nodialog

Then try to connect using krdc, or your VNC viewer of choice.

What if you don't have the password, etc., configured? Then:

ssh -X you@yourserver
krfb

This will display the window locally. Configure and close. This mode of operation doesn't work for actually showing the remote session, evidently because the X session forwarded though SSH is somehow a new/separate session. The key to showing the remote …

Read this post

Published in EPJ Quantum Technology: Repeated radiation damage and thermal annealing of avalanche photodiodes

A big difficulty preventing single-photon communications to a satellite is the detector noise caused by radiation in orbit. In a previous study, we showed that with a combination of sufficient cooling during operation and thermal annealing during maintenance, it should possible to keep this noise low enough to do quantum key distribution. What we could not capture at that time, though, was whether the cycling of cold and hot over the lifetime of a satellite would have any effect, and in particular how the choice of when to anneal would impact this.

In this study, we address this question by applying multiple rounds of radiation to a flight-like apparatus, and quantifying its performance between each round, over a two-year-equivalent accelerated irradiation campaign. We used two devices, one of which was annealed at regular intervals, the other conditional on the noise counts exceeding a predefined threshold. In the end we found …

Read this post

Published in Advanced Optical Technologies—A double feature

Two of my papers were published in Advanced Optical Technologies, recently, as part of a topical issue on applied quantum technologies.

The first paper deals with encoding the polarization of light signals for quantum key distribution (QKD). In principle, light is very good at maintaining its polarization, but in practice things like thermal effects in optical fibers and physical orientations causes polarizations to get rotated in sometimes unpredictable ways. There are various techniques to control and correct for these effects. This paper proposes an approach based on sampling the QKD signals themselves, and analyzes the performance in terms of how much light needs to be sampled. It turns out you can do very well to preserve the polarization with a relatively few signals.

The second paper looks at whether ‘adaptive optics’ techniques can be used to help transmit QKD signals from ground to an orbiting satellite. Adaptive optics uses fast …

Read this post

Introducing UWU, the Uncomplicated Web Uploader

On occasion it's been useful to transfer files to/from colleagues at different organizations. But when they want to send me something, doing so securely (i.e., not via email) can be a bit of a chore. I've found solutions tend to require too much technical setup for the sender (e.g., key-based SFTP), need too much on-going management at the server (e.g., user-based SFTP), or are part of a much heavier integrated solution (e.g., a fully-fledged personal cloud suite). I just wanted a minimal CGI script that I can run on something as basic as my Raspberry PI. So I made UWU.

UWU, the Uncomplicated Web Uploader, is a simple portal for uploading files to a server through a web browser. It's loosely inspired by woof, and while that tool does have an upload mode, it can't be set up to run on an HTTPS-secured server. UWU …

Read this post

Preserving merge trees when using git-svn

If you're like me, you might be using git-svn to connect to centralized SVN repositories (e.g., at the workplace) while keeping many of the powerful features of git. Sometimes you might be working in a local feature branch that is linked to a remote branch, and do a git svn rebase to grab updates from the SVN server. This command only fetches from the corresponding server branch. But, if an SVN merge, say from trunk, had happened on that branch at the server, then git-svn needs the corresponding local master branch to be up-to-date to notice that it was the parent of that merge. If you hadn't fetched from master recently, you lose the merge tree. Oops.

Before the rebase it would've been better to use git svn fetch --all (or it ought to have been, assuming git-svn fetches revisions in order once for all branches). But you might …

Read this post

Upcasting through covariant interfaces in a constrained generic C# method

Here's a subtle one. Assume you have the appropriate “using System.Collections.Generic;” clause included somewhere up above. Can you spot what's wrong with this code?

interface ITestInterface
{
}

class TestClass<T>
    where T : ITestInterface
{
    public void TestMethod()
    {
        IReadOnlyList<T> x = null;
        IReadOnlyList<ITestInterface> y = x;
    }
}

Seems reasonable, right? An IReadOnlyList is covariant in its stored type, so given that T is constrained to be an ITestInterface, assigning such a list of T to a list of ITestInterface should be fine. And yet, compiling this code will fail at “y = x”, being unable to implicitly convert the types.

After some hair-pulling, I eventually worked out that the solution is to add “class” to the constraints on T. It would seem that, otherwise, the compiler will assume that the generic type T will not have any kind of inheritance for which covariance will be relevant. So it doesn't consider that, and the …

Read this post


Page 1 of 8 | Next →