1,605 reputation
718
bio website None
location California, USA
age 54
visits member for 4 years, 3 months
seen 22 hours ago
Long-time Informix user and developer, experienced in C and Unix (many variants). Email: jonathan.leffler@gmail.com

Dec
23
comment A very simple database system with JSON
Commercial-grade DBMS (not all of which are commercial — some are open source) go to great lengths to minimize the risk of damage. Ultimately, most of them can end up with corrupted on-disk data if you shoot the wrong process with kill -9 or something similar, but they also usually detect and recover because they have logging systems (write-ahead logging, etc) which allow them to spot the problem and recover the status quo ante. That protection is not trivial to implement. Remember, at a big enough scale (enough CPUs, memory, disk), things break — and break at the most inconvenient times.
Dec
23
comment Why is *declaration* of data and functions necessary in C language, when the definition is written at the end of the source code?
Remember that C was originally written on the PDP-11, and that was a 16-bit minicomputer that came with a limit of 64 KiB for the code and another 64 KiB for the data (on the bigger versions with split code and data spaces; for the smaller versions, it was 64 KiB code plus data) and didn't reach 1 Mips. This limited what was possible in ways which people used to multiple GiB of memory have difficulty understanding.
Dec
23
comment A very simple database system with JSON
This is only suitable for a toy system with a single user running a single thread that does anything with the DBMS. Database corruption is inevitable if the program crashes during a write. I'd be reluctant to scale this beyond (say) 1MiB, but I worked on commercial RDBMS for a quarter century, so my views are biassed.
Dec
23
comment Why is *declaration* of data and functions necessary in C language, when the definition is written at the end of the source code?
Note that the first sample code has not been valid, standard-conforming code for the last fifteen years; C99 made the absence of a return type in the function definitions and the implicit declaration of Func_i invalid. There never was a rule to implicitly declare undefined variables, so the second fragment was always malformed. (Yes, compilers do accept the first sample still because it was valid, if sloppy, under C89/C90.)
Sep
25
awarded  Yearling
Sep
15
awarded  Nice Answer
Sep
25
awarded  Yearling
Feb
25
awarded  Constituent
Feb
18
awarded  Caucus
Feb
3
awarded  Analytical
Feb
3
awarded  Informed
Nov
20
comment Command line options style - POSIX or what?
@mizipzor: See update for current location of the information. See also Short/long options with option argument — is this some sort of convention?
Nov
20
revised Command line options style - POSIX or what?
Insert comment about transferred answer from (now closed) SO 367309 to SO 2160165.
Sep
25
awarded  Yearling
Aug
19
awarded  Nice Answer
Jul
1
comment Can I provide a GPL app, with different licenced logo?
@ColeJohnson: that is not an accurate characterization of the GPL. There are lots of things that you as the distributor of someone else's GPL licenced software cannot do legitimately. You're right that if you've licenced the software under the GPL, then you cannot readily take back that permission. However, the FSF and SFLC enforce the GPL on people who are doing whatever the hell they want that is not permitted by the GPL.
Jun
8
awarded  Caucus
Apr
22
awarded  Nice Answer
Sep
26
awarded  Yearling
Aug
13
awarded  Good Answer