Since I’m in a C mood today: Free book: [WayBack] Writing Bug-Free C Code, A Programming Style That Automatically Detects Bugs in C Codeby Jerry Jongerius / January 1995.
Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general? C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well for what it is, and what it is is a relatively simple layer of indirection atop assembly. Alas, the popularity of C has led to a number of programming languages’ taking significant cues from its design, and parts of its design are… slightly questionable. I’ve gone through some common features that probably should’ve stayed in C and my justification for saying so. The features are listed in rough order from (I hope) least to most controversial. The idea is that C fans will give up when I call it “weakly typed” and not even get to the part where I rag on braces. Wait, crap, I gave it away.
Oh nice. Feel free to QP. Fails at least in Delphi XE8.
program E2003WithConstsInDescendingClassesConsoleProject;
{$APPTYPE CONSOLE}
uses
ParentUnit in 'ParentUnit.pas',
ChildUnit in 'ChildUnit.pas';
begin
end.
unit ParentUnit;
interface
type
TParent = class
// section can be strict protected, protected, public, published or nothing
const
InitialBooleanValue = False;
InitialIntegerValue = -1;
end;
implementation
end.
unit ChildUnit;
interface
uses
ParentUnit;
type
TChild = class(TParent)
// section can be strict protected, protected, public, published or nothing
const
// Initial and final values need to be different to test the behaviour
FinalBooleanValue = not InitialBooleanValue;
FinalIntegerValue = InitialIntegerValue + 1;
//[dcc32 Error] ChildUnit.pas(13): E2003 Undeclared identifier: 'InitialBooleanValue'
//[dcc32 Error] ChildUnit.pas(14): E2003 Undeclared identifier: 'InitialIntegerValue'
//[dcc32 Error] ChildUnit.pas(14): E2026 Constant expression expected
end;
implementation
end.
You need glue records for your domains if the nameserver is in the same TLD as your domain is (more explanation in the above links).
Your domain registrar allows you to change both your DNS servers and the glue at the TLD servers.
Glue records have a TTL at the TLD of 48 hours so changing them takes some waiting.
This is how you query the glue records so you can verify what’s setup at your DNS servers matches the ones at the TLD servers (in the below examples, replace google.com by your domain name).
First example is to eliminate outliers in the below graph.
He also has a really cool (German) Playlist on data analysis with Python called Datenanalyse in Python and has a great site with examples at franz.media.