Re: Offence
>> using singed where unsinged should be used
> Always use a poaching pan, that way you can cook your numbers without any risk of singing.
... or harming monkeys...
84 publicly visible posts • joined 6 Aug 2018
I'm afraid that these days, when I'm in the Campus shop and someone uses a self-service checkout to the message, "Please follow the instructions on the PIN-head!", I cannot help but think of Trump and a "prediction" made in the back pages of New Scientist in the mid-80s that, "The world will soon be run by a pinhead no bigger than a silicon chip!"
> That is something that could be done automatically by a compiler. However while it might "waste" a bit of RAM it would have a negligible effect on performance.
It can't, it *MUSTN'T*! Otherwise libraries written on disparate systems would not be able to intercommunicate.
My awareness of this goes back to the days of the Atari ST. People complained that hand-crafted assembler code crashed when accessing a particular C struct. It turned out that the particular struct was defined as something like (simplified)
{byte, b,int i ;}
The 68000 processor could not access odd-numbered memory. The C compiler correctly added a byte padding between *b and *i, but naive assembler implementations tried to access i as (*b)+1.
>I feel old in that I have spent a lot of time getting C++ code to run faster - execution profilers, custom heap management, that sort of stuff. These days even assembler is a high-level language - the processor is performing all sorts of shenanigans with register renaming, out-of-order execution, speculative execution, contributing to the climate breakdown that may kill us all ...
Have you ever looked at your memory map? I find many people don't recognise that a C++ object is basically just a C struct with added subroutines (methods). This means that the memory layout is *forcibly* constrained by the order of member declarations. The compiler *must* add padding between members of different sizes where needed to maintain "natural" memory alignment. So, e.g. on a modern computer, if you first declare a _char_ object followed by a _double_ the compiler must add 7 bytes of unused padding so that the double is naturally aligned.
Unfortunately, at least in the software I've had the pleasure/pain to investigate, developers tend to declare object members in order of perceived functionality rather than memory size. I recall one instance where I went through a fairly complex object, re-ordering declarations so that all methods (presumed to be 64 bit pointers) came first, then all doubles. then all ints/floats, and finally byte-sized members (manually adding dummy members where necessary to maintain element alignment). I was staggered at the performance improvement that one change had on the overall performance of a fairly complex programme. It was in the tens of percents!
I'm not aware if such refactoring is available in modern toolchains. I hope it is, because the compiler itself is handicapped to follow what is laid out in the object definition.
> You might be better off looking at MS-DOS emulator like DOSBox
Ah, thanks for the hint. Once installed DOSbox looked familiar, I must have used it in the past. Still two niggles, to do with the 500's keyboard:
o no keypad, which I'd programmed to use as well as the classic QWE/A D/ZXC direction commands
o on my example at least, the spacebar needs a hefty hit to register, far more than I've become used to, just tapping the key with whichever thumb is most convenient at the time
I'm asking for a friend, of course...
Trying to install and activate Wine on Rpi pulls up version 8.0, where the installation fails with a segfault. :-(
Programme website just says:
Download and Install Wine 10
Wine 10.0 source code is available at: WineHQ Download. Binary packages for various Linux distributions and macOS will be available soon on official repositories.
I've yet to find it on such a repository!
I have a very-much hacked version of the old DECUS game EMPIRE that I ported to MS-DOS in the mid-to-late 1980s. Unfortunately the only sources I have yet found in my archives/backups date to that era, full of MSFortran and MSASM files/idioms. Backporting to a Linux codebase is fraught with difficulties...
I can run it in a VirtualBox MSDOS VM, but it'd be nice to have an alternative.
> What's being discussed is promoting incompetent employees to a position where they can't break anything.
Had a similar thing at a research institute in Canada. An "engineer" was appointed (inter alia) to be in charge of a VAX I had some control over. When he discovered my authority, he disabled my login "for security reasons", and sent me an email -- to the account he'd just disabled! Luckily he didn't know that I also had the system password....
Cue several months of inactivity/failure to achieve anything he'd been appointed for. Unhappily, Canadian employment rules meant he couldn't be arbitrarily fired. However, there was an out, as a quasi-government organisation. He was promoted, and became a "Board Appointed Employee" -- which meant that normal employment rules no longer applied. I don't recall exactly how long it was between his promotion and his dismissal, but it wasn't much longer than a New York nanosecond[1].
[1] The time between a traffic light turning green, and the Yellow Cab behind you leaning on his horn.
We had the first -- probably only! -- Commodore PET in Australia. Our engineer was such a stickler that he had a transformer custom-made to account for the differences in input voltage AND frequency over the US original. It was unreliable, to the extent that one saved one's work after each change in the BASIC code, despite the cassette recorder being abysmally slow.
So I set it up in the lab, CRO and logic probe connected, waiting for the inevitable crash. Which duly happened. I forget exactly what happened next, but I was about to rip out the motherboard and replace the CPU chip, when the actual owner of the machine shone a torch under the chip -- which revealed a shadow where one should not have been.
Cue a bit of poking around with a small piece of plastic tubing, and out came the clipped-off end of a voltage-regulator chip's lead..
It had ended up in exactly the wrong place (see https://en.wikipedia.org/wiki/DTACK_Grounded) to halt the processor, whenever it was nudged enough by vibrations to make the contact.
> No, welding and brazing/soldering are two completely different processes.
> "due to its tendency to take a Germanic word and its equivalent French word and give them subtly different meanings."
> This isn't actually a thing. People doing folk-semantics invent subtly different meanings for words that mean the same thing, assuming there must be some difference. 'Flammable' and 'inflammable' is a good example in this context, because they aren't even from two different roots.
Throw in the French "ininflammable" for added confusion.
> According to IBM research, nanosheet transistors (the type being employed by TSMC for N2 and Intel for 20A/18A, though each have their own marketing names) which will appear on the server market in 2026 or so double their performance level if you cool them to LN2 level temperatures.
> Since cooling to that level is relatively cheap it is an easy decision to make for doubling performance. I don't know how much additional input power the chip requires, but safe to say it will require higher power levels. So datacenters are going to become even more power dense by the end of the decade!
I've not followed this for several years so I don't know what the current state-of-the-art is, but at CERN we've been experimenting with/using carbon-dioxide evaporative cooling for years Here's an early article which was my first DDG search result. More papers are out there if you use the right keywords.
https://iopscience.iop.org/article/10.1088/1748-0221/6/01/C01091
I once had the opposite problem: to obtain my superannuation/pension entitlements from Switzerland, I had to prove I had never married. Simple in CH, but a problem in UK/AUS.
Fortunately I was sharing an office with a UK Justice of the Peace, so I typed up a document, "I declare that I have never been married", and had him notarise it. I got my payout.
> Perhaps slide a small pole underneath and push whatever it was out the other side?
Reminds me of what was, probably, the first Personal Electronic Transactor 2000 in Australia. Despite our electronics engineer having a custom-made transformer produced to cope with the different voltage and frequency from the (United) State(s) of origin, it was never reliable. It was programmed in some dialect of BASIC, with an audio cassette for programme storage, but we soon reconciled to saving our code after pretty much every LOC change.
Came the chance to prop it open on a lab bench, with several digital probes and a couple of channels of CRO monitoring as well, it steadfastly refused to die. However, after a couple of days it finally stopped. And the cause? A signal on the 68000 microprocessor was grounded, halting the chip (one is reminded of the "DTACK Grounded" hacks on the same chip). Being a little bit young and green, I was all for desoldering the chip to look for the fault. However, a wiser technician decided to probe under the chip with a piece of plastic fibre.
Lo and behold, what emerged was a clipped off end of a pin from a transistor or voltage-regulator (we never established which) which had flown under the soldered-in CPU and came to rest just where, vibrations permitting, it was allowed it to ground the signal and halt the processor. The machine was much more reliable after that (apart from the fact that its IEE488 interface could not cope with delayed responses of more than a second, due to its clock counter overflowing...).
Even their self-serve checkouts do it. As I'm developing a sort of tunnel vision I often don't notice the pop-up offering me some extra as I start paying for the Weekend Guardian. Luckily an employee was nearby last Saturday and cleared the notice for me as I stood there wondering why my coins were just rolling through the machine and into the output tray.
> Also had the overheated server room thing.
Me too. AC tripped after a power glitch, and the little optics lab where our server rack is located heated up to somewhere north of 40 C. There is a passageway past the end of the room with people coming and going. The wall between the lab and the passageway heated up, as did the air in the passageway. When I discovered the problem, several people mentioned, "Oh, yes, I noticed it was warm when I went past." But did anyone check why it was warm? Of course not! So there's now a sign on the wall, "This is not a radiator! If the wall is warm call xxxx.".
> There's equipment on the market which'll monitor the temperature, and will send an SMS/email/alert as soon as the temperature exceed a certain pre-set level.
I got a USB thermometer stick off Amazon, found software on the Web and compiled it, with a cron job to log the temperature every five minutes into a file on /var/log and to send me an email if the temperature goes over 25 C. I also use "ssh -Yf <me>@<server> xterm -e tail -f /var/log/tempmon.dat" in a small window in my cygwin-X install on my desktop PC.
> They made a huge mistake when defining everything in terms of metric measurements by not making the inch 2.56mm rather than 2.54. You could go down to 1/256 of an inch without needing any more decimal places. The would have made things much easier, and easier to convert measurements means easier to convert people.
OTOH, if they'd defined the inch as 2.5454...repeating, then the furlong/fortnight would be a metric measurement -- 1 cm/minute.
> Some of us prefer 7.7mm, as used in the Very Best Battle Rifle Ever Made, the Short Magazine Lee Enfield III*! And in the Finest Light Machine Gun Of All Time, the Bren!
> Why, yes, I did carry those items around when I was in the Cadets, why do you ask?
You and me both, mate. Despite my love-affair with motorcycles, I still consider the Bren as my favourite internal-combustion engine! (And my Lee-Enfield .303 was actually Boer-War vintage...)
> But from Nature Electronics:- "Your institute does not have access to this article"
You too, huh?
> https://www.theregister.com/2022/08/25/science_research_release/
Obvious riposte: EPFL is not a US institution, but a CH one (as the F implies). However, there is a definite trend to Open Access. CERN publishes everything in OA, but then it's international, not CH. Research UK is moving strongly towards OA as well.
I had an Australian wasp cause me some grief once in Canberra. My trail bike would start and tick over, but die when the throttle was opened. Much scratching of the head, until I decided to remove the drain screw in the high-level exhaust chamber in case there was a build-up of oil residue, etc. Bike started and revved fairly cleanly, with a jet of blue smoke streaming out of the drain hole.
Hmm, yep, a wasp had built its nest in the baffle, blocking the exhaust. The reason I'd missed it on first cursory glance was that I still hadn't washed the mud off the bike after my last off-road adventure...
> I always hated CBASIC.
Me too, but it was all I had to work with[*]. Particularly galling was its "random" number generator, which churned out 15-digit double-precision results -- with a cycle length of 999!
I used to switch out the ROM for RAM and load the ROM images from disk. I had to use FFTs in CBASIC (Microsoft BASIC was only single-precision) to estimate the position and width of spectral lines in our spectrometer (hence the cassette interface). For the 256-point FFTs it turned out to be marginally quicker to have precomputed sin/cos tables read in from floppy than to re-compute them for each analysis.
[*] 32 kB Exidy Sorcerer, S100 extension box, 32 kB expansion RAM board, using 24 kB but with a switch to disable the ROM cartridges [Microsoft BASIC, word-processor, or assembler] and use all the RAM, Dual Micropolis floppy drive (315 kB/disk IIRC) and a hand-wrapped S100 extension board with digital I/O (8255), DAC, ADC, counters (8253) and a digital cassette recorder interface (and a kludge to drive a Teletype via a 10 mA current loop).
>> Most countries have such a thing as a Wedding Certificate but in France, there is also an official Certificate of Unmarriedness, and it is a right old bugger to find someone to draw one up when you’re not French.
> I had the same in Belgium... Trying to prove i wasn't already married involved applying for a marriage licence where i had previously lived in the UK, waiting 3 weeks for anyone to object, going back to get the certificate, getting the certificate countersigned by the UK consulate, getting it translated by an official translator, and getting that signed by a judge...
Similarly when I was cashing in my Swiss pension and superannuation after moving to the UK, I had to prove I had never been married(!). Fortunately I was sharing an office with a Justice of the Peace at the time, so I made up a declaration that I had never been married, signed it before the JP as a witness, he notarised it, and within a short time I had enough money to buy a house here.
> Separating?
Yes, it's a very common spelling mistake. My old teacher, back in the late '50s, when my brother and I used to get a cut of the cane for each word we got wrong in the weekly spelling test[1][2], came up with a good mnemonic :"there is A RAT in the separator". Since we were working a dairy farm at the time, and most of our income came from the cream sent to the local Norco buttery, a (milk/cream) separator (basically a centrifuge) was an important part of our dairy and had to be kept scrupulously clean.
[1] We were both learning at a level above our physical ages, so more was expected of us
[2] A one-teacher primary school literally in "the bush"
Re missing parts after an eruption... Working at a medium-energy particle physics facility in CH (so not that one...), we were filling a superconducting solenoid with liquid helium, using a newly-built transfer line.
Such lines consist of a small stainless-steel capillary enclosed in a larger casing, which is evacuated of all air so that the capillary won't be heated by gaseous convection -- a vacuum (or Dewar) flask in essence. This particular transfer line, custom made for the unique relationship between the LHe container and the location of the magnet, had a right-angle bend, where the outer section was made of two intersecting tubes, and the larger tube (the horizontal one) was sealed off by a disk (everything was stainless. I forget if the disk was welded or brazed into position).
Midway through the fill process, there was a sudden ear-splitting noise and it quickly became evident that the supposedly sealed disk had gone AWOL. Reconstruction via thought experiment was that there was a leak somewhere in the LHe capillary and the supposed vacuum started to fill with liquid. Which inevitably turned to gas. Which considerably increased the pressure inside the transfer line. Which inevitably led to a failure of the endcap disk. Where it ended up, I never knew, just a small fresh gouge in the concrete radiation shield block opposite.
By the grace of $DEITY, even though we moved around the area whilst filling, both my colleague and I were on opposite sides of the trajectory when the disk went feral. Bit of a hard one to write up in an incident report...
> Or the plug that appears to be connected and switched on but in fact, is not fully located into the socket. And leads have two ends......
...or the USB-A plug that fits quite comfortably into an Ethernet port but accomplishes nothing useful. Usually when you have limited visual access to the back of your machine.
...in most cases the software used will be Excel (probably an old unsupported version) that's running lots of macros that were programmed by someone who no longer works for the institution, and no one there has any clue how it works, so they will leave it to do its "magic" until the day it dies*.
* which will be 2 weeks before it needs to be used for something super-critical whose deadline can't be moved.
Hmm, looking at the latest version of our software:
$ ls -R $BASE_DIR > foo
$ find $BASE_DIR -type f | wc
87781 87781 11047154
$ grep xls foo
No data
$ grep '[.]cc$' foo | wc
15382 15382 356232
$ grep '[.]h$' foo|wc
13890 13890 284324
grep '[.]cpp$' foo | wc
785 785 16326
$ grep '[.]hpp$' foo | wc
5 5 104
$ grep '[.]py$' foo | wc
17493 17493 471904
$ grep '[.]sh$' foo | wc
831 831 15764
$ grep '[.]xml$' foo | wc
5599 5599 95946
I think I can confidently say there's not much Excel in our analyses. ROOT, of course, is another matter.
"we could type up and print our own letters, then we had to send them to the typing pool who retyped them on (IIRC) IBM Selectric typewriters and returned them to us for signing."
> ????
> The middle part of that process seems entirely redundant!
Yes, but ... unions. At least that was the explanation at the AAEC in the 80s. The secretaries couldn't allow us to give them a draft paper in electronic form. We had to give them our hard-copy so that they could type it into the system themselves.
I once had to modify and re-run Monte Carlo simulation code from an contemporary PhD student in gaseous electronics, as he'd mixed up the difference (IIRC) between collision cross-section and momentum-transfer cross-section. In the code he was keeping track of an average, but he apparently forgot about the FORTRAN standard at the time (at the time before it became Fortran...). Which led to my favourite variable definition ever:
REAL MEAN
:-0!
Yes, they use antimatter, or positive, muons. The normal (negative) muon decays into an electron and two neutrinos, the positive kind decay into a positron and two neutrinos (https://en.wikipedia.org/wiki/Muon#Muon_decay). I worked in muon physics/chemistry for nearly two decades, and it's common to use just muon for either flavour, and often electron for positron, the actual charge being inferred by the context. Note that the muon actually originates from a (positive) pion produced in the original proton collision (normally with a light material such as carbon or beryllium) which then decays in flight with lifetime of 25 ns. By carefully selecting the momentum of the pion with a dipole magnet, and then selecting the momentum of the muon with another dipole after the decay section, you can arrive at a beam of highly-polarised muons with their spin either in the forward direction or the backward direction.
Positive muons are usually preferred for these kinds of experiments because the negative muons and pions behave as heavy electrons, and can be captured into atomic orbits by material.
> Well, I hope he kept those emails. Because in a jurisdiction as obsessed with fairness, the rights of the
> individual, and restricting state over-reach as the EU is (yeah, I'm studiously trying to keep a straight
> face here) I'd say he has them bang to rights and can now sue them to Hell and back through the
> famously fair-minded and impartial ECJ.
Problem is, Norway is not a member of the EU, so any mention of Hell is invalid in this context.
And yes, I have been to Hell (and back) and have a photo of myself near the rail station with a sign in the background, "Gods Spedition"!
> No chance of syphoning off the pipe going in to Stockley Park?
A bit far away, but we do have at least 40 Gbps into campus. Unfortunately I was _literally_ locked out of my office for six months after lockdown. Tried to download an episode of University Challenge at one point, gave up with 20% received after an hour; logged in to one of my work servers with a 1 Gbps pipe and got the whole thing in 49 seconds! Still took a lifetime to to transfer it back to my flat.
Re: My favourite: "(I think they used tiny amounts of tritium to trigger the ionisation)"
No, it's the photoelectric effect -- first proposed by Einstein IIRC! The ionisation that produces a neon discharge needs an electron to initiate the avalanche. As the electrodes degrade over time the voltage needed to spontaneously emit an electron increases until none are forthcoming. Shine a light on the electrodes and it stimulates electron emission, the neon springs to life, and self-emits enough photons to keep the light continuing.