@grahamdearsley
Forum Replies Created
-
AuthorPosts
-
Are you using BenQ monitors by any chance ?
I have found that Intel graphics has a problem with the IntelieSense feature on BenQ monitors, even when its meant to be disabled, until you install the correct monitor profile from the BenQ driver disc.
There was one thing I was surprised about.
I used the quick guide to workout that if I wanted a speaker to work down to 20 Hz without resonance then it should be 12 or 13 inches in diameter and with quite a large infinite baffle cabinet.
I was expecting large amounts of bass from this speaker, because of its size, but what I got was really really neutral.
In my experience, if you buy a pro key to upgrade from the home version and use the ” Anytime upgrade” option then it will say that your key is invalid at the end of the upgrade process but you will find that it actually DID do the upgrade and all is well 🤔
I have the above book and I used it to design and build several speakers in the mid eighties.
All the equations for building Horn, Reflex and Infinite baffle loaded speakers are in there but it also has some useful ready reconers that will get you pretty close without doing the measurements or the maths 😁
I never did like the X86 architecture, in my opinion the 8086 was just two 8085’s bolted together so Intel could say they had a 16 bit processor. The segmented memory addressing seemed to be the result of just paging in 64K blocks like the 8085 could address. There was no memory protection and the CPU its self had no notion of an interrupt priority level. It was not even in the same LEAGUE as something like the Motorola 68000.
Over the years though, all the above shortcomings were fixed and the AMD 64 bit extensions finally introduced a CPU operating mode that ditches most of the historical baggage.
Intel themselves tried to replace X86 with the all new Itanium but the huge base of existing X86 software made it a non starter.
I wouldn’t hold my breath for the death of X86 just yet if I were you 😁
https://en.m.wikipedia.org/wiki/Aircraft_Nuclear_Propulsion
As a solution to CO2 in the upper atmosphere caused by jet engines, how about the above ?
Not only would it eliminate the CO2 emissions it would also greatly reduce demand by eliminating the passengers too 😆
Speaking of CO2, as a greenhouse gas its a bit rubbish.
Not up there with Methane or Water vapour in effectiveness and not really “up there” much at all because it is heavier than air and tends to stick around ground level where it CAN’T produce a greenhouse effect.
The amount of CO2 at ground level has increased greatly since the start of the industrial revolution and is now running at a massive 0.04 %.
Total, utter, unachievable, bo**ocks.
If the Government intends to press ahead with its zero carbon electricity generation targets then we won’t have enough power to keep the lights on, let alone charge millions of cars.
Pie in the sky ecomentallist pleasing nonsense.
IMHO of course 🤣
The same goes for outsourcing your IT provision in the first place of course 😃
There is something to be said for retaining an incumbent maintainer, if you have been happy with their services, even if you end up paying a small premium. You ARE going to end up being more reliant on them than you probably should be but you are going to end up relying on SOMEONE and the grass is almost NEVER greener elsewhere in the case of complicated legacy systems. As the saying goes, you often don’t know what you’ve got till its gone 😁
There may still be a few new Pascal programmers in the pipeline.
A bloke I used to work with decided to take up a night school class in computer programming at his local collage a couple of years ago. His lecturer said they were lucky because they were going to be learning the most popular language used in industry. Err Pascal, in 2018 ?
I like green
Just trying bbcodes 😁
So then, smart pointers.
The concept is simple but their application becomes very complex very fast, like all things in C++ it would seem 🤨
The smart pointer class, provided in the std library, creates smart pointers to dynamically assigned objects and it keeps a reference count of all other smart pointers that point to the same object. The smart pointer class has a destructor so when the reference count to a dynamic object reaches zero it can delete the object as well as the last pointer to it.
If you create a smart pointer to a dynamic object from within a function, using the New operator, then the object will be deleted when the function ends because its pointer will have gone out of scope. If you want to keep the object then the function needs to return a smart pointer to it.
So far so simple but the smart pointer class only has destructors for built in types so if you use your own types, like a class, then you have to provide your own destructor that overrides the default one. On top of that you can have standard pointers that point to smart pointers and they do not add to the reference count for an object so a smart pointer can still delete a dynamic object and leave a standard pointer dangling.
It gets worse but i’ve had enough for now 🙄
Having skipped associative containers I now get to dynamic memory allocation.
We start with pointers to objects that are dynamically allocated on the system heap using the “new” operator. Dynamic objects do not have a name so they must be referred to by a pointer that is created at the same time as the object. Dynamic objects are never destroyed automatically so their memory must be released using the “delete” operator which takes a pointer as its argument.
There are two potential problems with this setup, one is bad and the other is worse 😁.
A program may forget to delete a dynamic object when it is finished with it so the object will continue to occupy memory until the program terminates.
The worse problem comes if you create a pointer to a dynamic object within a function but forget to delete it before the function ends, In this case the pointer will be destroyed when it goes out of focus but the object it points to will not.
C++ does not know how many built in pointers may point to a dynamic object so it cannot delete them automatically but if the last pointer that points to a dynamic object is deleted then there is NO WAY to refer to the unnamed object so it cannot be deleted !
I am now going to read about Smart pointers which apparently get around this problem 😃
So now we move on from sequential containers to associative containers. Map’s, Set’s, Key/Value pairs and hash functions.
Except I think “I” don’t 😁
I think I am just going to skim that chapter again and come back to it when/if I find a need for such things.
I know what he means about the meds. Apparently morphine doesn’t mix well with the residual effects of a general anesthetic and tramadol. Had me seeing people and things that weren’t there, large as life.
I just read about what container type iterators are most useful for.
Container type classes contain very few or zero functions that work on their contents, things like sort or find are not defined in the class. Instead, C++ provides the <algorithm> std library that provides a set of generic functions that work with all types.
In order to make the functions generic they take the iterators supplied by container classes as their arguments.
So now its clear as mud, I am going to have to read that section again 😁
https://docs.microsoft.com/en-us/cpp/cpp/char-wchar-t-char16-t-char32-t?view=msvc-160
The above link gives the current take on what Unicode types Visual C++ supports but, regardless of that, Windows its self and its API’s still only support UTF-16LE which is the same as C++ wchar_t.
My book doesn’t really cover Unicode except to say that C++ supports the wchar_t type which is a 2 byte Unicode character and that C++ 11 also supports char16_t and char32_t (doesn’t say what they may be). The link below gives some idea of why a primer book may not cover Unicode much.
I meant to say it is possible to supply a subscript that goes off the ends of a container.
-
AuthorPosts
