HN user

henrikeh

803 karma

Contact: heh@optoceutics.com

Posts3
Comments263
View on HN

I don’t know about this cable specifically, but it can be done by transferring more power to the optical signal.

Erbium-doped fiber amplifiers work by utilizing a nonlinear optical effect where energy is transferred from a pump laser to the signal. This is in principle possible in any optical (glass) fiber, but by doping with exotic elements, the amplification characteristics can be optimized. Erbium is suitable for the conventional communication wavelengths.

For reference I have a PhD in information theory and signal processing for fiber channels.

I used to work at a hedge fund known for its diagnosis process, a logical process of clearly defining the suboptimal outcome that occurred, agreeing on how it should have gone and what had happened, and if it's indeed wrong to have gone this way, what to do about it.

Do you know of some publicly available material on this? I’d love to hear about their approach.

We used constellation shaping and a rate adaptive code to tailor tailor the bitrate of each channel. It varied between something along 64-QAM and 256-QAM depending on the SNR in the channel.

Post processing times were not too bad. It ran on a standard desktop computer and gave an estimate of the data rate in about a minute (can’t remember exactly). Of course, compared to actual transmission that is terrible slow, but that was only due to the implementation and need of this experiment.

I must confess that I have never been concerned along those lines.

I have thought a lot more about the environmental impact of transmission technology. It is a massively energy consuming industry and the expectation is to provide more capacity, while the expectations on efficiency do not add up to an actually reduced energy use.

For what it is worth, I work on Alzheimer’s research today: https://optoceutics.com

I should clarify that we did measure every channel (polarization, wavelength and fiber core) individually. It would not be fair if we just measured one and multiplied ;)

(And yes, that took forever. A shout out to A. A. Jørgensen and D. Kong for their endurance in that.)

I can’t answer for the chip aspect (which is the truly novel part of this research), but many of the signal processing and coding techniques are being deployed in new optical transmission systems. Constellation shaping and rate adaptive coding were two techniques we used in this paper to ensure that individual channels were as ideally utilized as possible.

The two other comments gave very good general answers, but I happen to have worked on this specific project, so I can give some very specific details (as far as my memory goes.)

Lab testing of this scale of transmission involves a bit of “educated simplification”. We had some hundreds of wavelength channels, 37 fiber cores and two polarizations to fill with data. That is not realistic to actually do within our budget, so instead e split the system into components where there is no interference. For example, if there is different data on all neighboring cores compared to the core-under-test, then we dare to assume that the interference is random, without considering neighbors’ neighbor etc.

This reduces our perspective to a single channel under test with known data and then at least one other channel which is just there as “noise” for the other channels. The goal is to make the channel-under-test have a realistic “background noise” from neighboring interference. This secondary signal is sometimes a time-delayed version, sometimes a completely independent (but real) data signal.

This left us with a single signal of 32 GBd (giga symbols / s). This is doable on high-performance signal generators and samplers.

Cell phone cells are (ideally) shaped to account for the expected pattern of how handover will occur. Along roads and train lines, the cells are (at least in GSM) supposed to be tailored to allow for easy routing and handover as the devices travels in the direction of the way.

While I have never read anything concretely analyzing the handover pattern of devices on airplanes, I would expect that since a very large number of cells are almost equally visible/equal signal strength, the network would have to frequently handover the device from one cell to another.

The handover process is, for voice traffic, very resource intense. (in GSM) it involves duplication of traffic to the neighboring cell and a lot of coordination.

I think that could be the reason for why mobile operators find airplane-borne devices annoying.

The article gives a few examples where a pseudo-class fits better with how CSS normally works. For example, the selector matches the last item in the selector. With ‘<‘ it would match ‘parent’ in your case.

You can also match descendants of something with the :has() selector. It really is more than a “parent selector”

I have been reading it and implementing the interpreter in Ada to learn about both interpreters and Ada better. It is a wonderful way to learn, since I constantly have to go beyond the surface level. What is the purpose of this and that in the interpreter? How do I model/implement this well in Ada?

If you are curious about languages, I can only recommend trying to learn a new one while following this book.

https://gitlab.com/henrikenggaard/ada-lox

In Denmark, so not the same as who you reply to.

Yes, if you pay too much in tax and their calculations reveal that, then, yes, you get money back on your bank account.

They don’t calculate commute deductibles for you, but mortgages, pension is something which is calculated for you based upon reports from the respective institutes.

Well, since you ask. `git add -i` has different "escape"/"exit" semantics for different actions.

If I want to quit/escape adding a patch in the interactive mode I type `q` and then enter.

If I want to quit/escape the interactive add subcommand I type `q` and then enter.

But if I want to quit the `update`, `untracked` etc. I have to enter nothing and then press enter. It would be such a wonderful thing if it also accepted `q` so my muscle "memory" is correct.

I looked into changing this once, but it is written in shell and Perl, which I don't know enough about to figure out.

Verilog is weakly typed and VHDL is strong. That is already a pretty big deal when dealing with vector signals, where Verilog happily assigns a 32-bit signal to a 16-bit signal.

VHDL also supports defining record types, such that a collection of signals can be assigned together.

Moiré No More 5 years ago

Discrete Fourier Transform is probably the most accurate way to describe the mathematical transformation which is being applied. Albeit it is very popular to say FFT when what is meant is Fourier transform or DFT, it is a bit like talking about sorting but calling it Quicksort despite it being a specific algorithm.

Ada doesn't use the "dot syntax"; instead the enumeration literal is written as is without a dot. If I write:

    type Number_System is (Bin, Dec, Oct);
    type Month is (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);

    procedure Foo (A: Number_System; B: Month);
Then this is a valid call:
    Foo( Dec, Dec )
https://godbolt.org/z/eP5qMj3K1

When the type is explicit, the Ada standard calls this a "Qualified expression". But I would just say that it is a kind of type inference for enumerations.

https://www.adaic.com/resources/add_content/standards/05aarm...

Haskell and Ada have very different goals. Ada is designed, in part, to work on embedded and real-time systems.

It isn’t really an “attempt” either. The language exists and is used and has developed as experience was gained. Why bother with it? Because you could maybe learn something new despite it being old.