Development reference: Difference between revisions
No edit summary  | 
				No edit summary  | 
				||
| (24 intermediate revisions by the same user not shown) | |||
| Line 24: | Line 24: | ||
|}  | |}  | ||
{| class="mw-collapsible mw-collapsed wikitable"  | {| class="mw-collapsible mw-collapsed wikitable"  | ||
!   | ! nosql enhances, not replaces, SQL  | ||
|-  | |-  | ||
|    | | Not all data should be denormalized, and not all data should be normalized.  The optimal mix considers the extent of the data.    | ||
*   | |||
*   | * Precise schemas are good when not overdone  | ||
*   | * When a container has an array with a large number of elements, it should be normalized  | ||
* Sparse data and heterogeneous data are the best candidates for denormalization  | |||
Postgres with JSON allows an elegant combination of nosql and SQL.  | |||
|}  | |}  | ||
{| class="mw-collapsible mw-collapsed wikitable"  | {| class="mw-collapsible mw-collapsed wikitable"  | ||
| Line 574: | Line 576: | ||
|-  | |-  | ||
|  | |  | ||
{| class="mw-collapsible mw-collapsed wikitable"  | |||
! String escape formatting across different languages and systems  | |||
|-  | |||
|   | |||
* c++ to JSON: always use nlohmann::json j.dump() to encode, to ensure strings are properly escaped  | |||
* JSON to c++: always use nlohmann::json j.parse() "  | |||
* c++ to Javascript: use raw_to_Javascript() to properly escape  | |||
* c++ to sqlite: use SqliteLocalModel::safestr(), which uses double_doublequotes(str)  | |||
|}  | |||
[[Postgres]]  | |||
[[Simple-Web-Server]]  | [[Simple-Web-Server]]  | ||
[[Robot Operating System]]  | |||
[[C++ https libraries]]  | [[C++ https libraries]]  | ||
| Line 634: | Line 649: | ||
  CC=gcc-4.9  |   CC=gcc-4.9  | ||
|}  | |}  | ||
|}  | |||
<!--   | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[git]]  | |||
|}  | |}  | ||
<!--    | <!--    | ||
| Line 643: | Line 668: | ||
-->  | -->  | ||
{| class="mw-collapsible mw-collapsed wikitable"  | {| class="mw-collapsible mw-collapsed wikitable"  | ||
!   | ! Debugging  | ||
|-  | |-  | ||
|  | |  | ||
{| class="mw-collapsible mw-collapsed wikitable"  | |||
! Chrome capture large JSON variable  | |||
|-   | |||
| This is just pointlessly bizarre:  | |||
* hit a breakpoint in the chrome debugger  | |||
* right-click a variable and say "copy to global variable" (console will show name, typically "temp1")  | |||
* push the variable to the clipboard by typing this in the console:  | |||
 copy(temp1)  | |||
|}  | |||
{| class="mw-collapsible mw-collapsed wikitable"  | |||
! Visual Studio Code capture large string variable  | |||
|-   | |||
| While debugging, you can use the Debug Console to print memory, including the content of strings that are clipped by default in the variables and watch windows.  | |||
 View > Open View > Debug Console  | |||
From there, send gdb a command to print memory – 300 characters of a string in this example:  | |||
 -exec x/300sb Query.c_str()  | |||
|}  | |||
{| class="mw-collapsible mw-collapsed wikitable"  | {| class="mw-collapsible mw-collapsed wikitable"  | ||
! Qt Creator conditional breakpoint  | ! Qt Creator conditional breakpoint  | ||
| Line 771: | Line 813: | ||
-->  | -->  | ||
{| class="  | {| class="wikitable"  | ||
!   | ! [[Node.js]]  | ||
|-  | |}<!--   | ||
{| class="  | |||
!   | ===========================================================================================================================================================================================================================================================================================  | ||
|-  | |||
-->  | |||
{| class="wikitable"  | |||
! [[React]]  | |||
|}<!--    | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[Vite]]  | |||
|}  | |}  | ||
<!--   | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[JSON]]  | |||
|}  | |}  | ||
<!--    | <!--    | ||
| Line 790: | Line 851: | ||
-->  | -->  | ||
{| class="  | {| class="wikitable"  | ||
!   | ! [[HTML]]  | ||
|-  | |}  | ||
<!--    | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[CSS]]  | |||
|}  | |}  | ||
<!--    | <!--    | ||
| Line 818: | Line 876: | ||
|  | |  | ||
{| class="mw-collapsible mw-collapsed wikitable"  | {| class="mw-collapsible mw-collapsed wikitable"  | ||
!   | ! Count records within a range  | ||
|-  | |-  | ||
|    | | This groups records into ranges, sorts by them, and gives a count, sweet:  | ||
    select count(*), id/1000000 as groupid from AccountHistory group by groupid;  | |||
|}  | |||
[[postgres]] - [[sqlite]] - [[mysql]] - [[SQL Server]] - [[Robo 3T]] - [[DBeaver]] - [[pgadmin4]]  | |||
|}  | |||
<!--   | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[Meteor]]  | |||
|}  | |||
<!--   | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[Android]]  | |||
|}  | |}  | ||
{| class="  | <!--   | ||
!   | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[Arduino]]  | |||
|}  | |}  | ||
<!--    | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[Raspberry Pi]]  | |||
|}  | |}  | ||
<!--   | |||
===========================================================================================================================================================================================================================================================================================  | |||
-->  | |||
{| class="wikitable"  | |||
! [[iOS]]  | |||
|}  | |}  | ||
<!--    | <!--    | ||
| Line 853: | Line 939: | ||
-->  | -->  | ||
{| class="wikitable"  | {| class="wikitable"  | ||
! [[  | ! [[.NET Core]]  | ||
|}  | |}  | ||
<!--    | <!--    | ||
| Line 938: | Line 1,024: | ||
  /etc/init.d/apache restart  |   /etc/init.d/apache restart  | ||
|}  | |}  | ||
|}  | |}  | ||
<!--    | <!--    | ||
Latest revision as of 23:15, 25 November 2023
Design, programming and version control.
| Patterns | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
 
 
 
 
 
 
 
 
 
  | 
| C++ | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
 
 
 
 
 
  | 
| c++11 | |||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
 
 
 
 
 
 
 
 
 
 
 
  | 
| boost | ||||||
|---|---|---|---|---|---|---|
 
 
  | 
| C++ libraries | ||
|---|---|---|
  | 
| C/C++ building/linking | ||||
|---|---|---|---|---|
 
  | 
| git | 
|---|
| Debugging | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
 
 
 
 
 
  | 
| C | ||||
|---|---|---|---|---|
 
  | 
| Javascript | 
|---|
| Node.js | 
|---|
| React | 
|---|
| Vite | 
|---|
| JSON | 
|---|
| HTML | 
|---|
| CSS | 
|---|
| SQL | ||
|---|---|---|
 postgres - sqlite - mysql - SQL Server - Robo 3T - DBeaver - pgadmin4  | 
| Meteor | 
|---|
| Android | 
|---|
| Arduino | 
|---|
| Raspberry Pi | 
|---|
| iOS | 
|---|
| .NET Core | 
|---|
| Java | 
|---|
| Kotlin | 
|---|
| Maven | 
|---|
| Scala | 
|---|
| Python | 
|---|
| Go | 
|---|
| PHP | |||
|---|---|---|---|
  | 
| Bash basics but please prefer node or python :-) | 
|---|
| misc | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
 
 
 
 
 
  |