├── .gitignore ├── LICENSE ├── README.md ├── _layouts └── default.html ├── ai └── gen-ai │ ├── app-developer-landscape.puml │ └── langchain.puml ├── build.js ├── cloud └── Azure │ ├── analytics │ └── synapse-analytics.puml │ ├── compute │ ├── functions.puml │ └── vm.puml │ ├── databases │ └── azure-sql.puml │ ├── microsoft-identity-platform-oauth.puml │ ├── networking │ ├── azure-dns.puml │ └── vnet.puml │ └── storage │ ├── recovery-services-vault.puml │ └── storage-account.puml ├── debugging ├── before-debugging-others-problem.puml ├── readme.md └── windows-network-debugging.puml ├── deployment ├── IaC-tools.puml ├── kubernetes │ └── k8s.puml ├── readme.md ├── the-phoenix-project.puml └── the-unicorn-project.puml ├── index.md ├── mgmt-productivity └── project-management.puml ├── package-lock.json ├── package.json ├── programming ├── database │ ├── readme.md │ └── sql-server │ │ ├── always-on-availability-groups.puml │ │ ├── readme.md │ │ └── sql-server-performance.puml ├── dot-net │ ├── dotnet-console-nugets.puml │ ├── dotnet-web-performance.puml │ ├── readme.md │ └── system-reactive.puml ├── humane-code-review.puml ├── microsoft-365 │ └── sharepoint │ │ ├── api-dotnet-sdk.puml │ │ └── throttling-flow.puml ├── readme.md └── web-front-end │ ├── readme.md │ ├── static-site-generators │ ├── hugo.puml │ └── readme.md │ └── tools-tech.puml ├── software-tools ├── personal-tools.puml └── software-engineering-tools.puml ├── templates └── mindmap.puml └── test-diagram.puml /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio. 3 | ################################################################################ 4 | 5 | /node_modules 6 | /out 7 | /.vs -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Software Mind maps 2 | Mind maps related to software engineering. [Browse the diagrams](https://mind-maps.github.io/software/). 3 | 4 | # PlantUML format 5 | The diagrams are not prepared in image format such as svg, JPEG or as visio or any other tool's format. It uses text based coded diagramming format called PlantUML. 6 | The previews can be generated using VS Code editor with PlantUML extension. It also require Java & GraphViz to work. 7 | 8 | # Setting up environment to edit using Visual Studio Code 9 | [![Setting up PlantUML for coding C4 architecture diagrams in Visual Studio Code](http://img.youtube.com/vi/Zt3Bj1HMJ8g/0.jpg)](https://www.youtube.com/watch?v=Zt3Bj1HMJ8g "Setting up PlantUML for coding C4 architecture diagrams in Visual Studio Code") 10 | 11 | 12 | # Building images 13 | It needs NodeJS and NPM 14 | 15 | Prerequisites 16 | - Java 17 | - GRaphViz 18 | 19 | Preview 20 | - VSCode 21 | - PlantUML extension into VSCode 22 | - Alt+D to view preview 23 | 24 | Please watch the [video](https://www.youtube.com/watch?v=Zt3Bj1HMJ8g) for environment setup. 25 | 26 | Generate image 27 | - NPM Install 28 | - NPM run build 29 | 30 | # Browse images 31 | 32 | ![sample image](http://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/debugging/before-debugging-others-problem.puml) 33 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | The title 7 | 8 | 9 | 10 | 11 |
12 |

Mind maps

13 |
14 | {{ content }} 15 |
16 |
17 |
18 | © 2022 www.JoymonOnline.In 19 |
20 |
21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /ai/gen-ai/app-developer-landscape.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Mind map on Gen AI for developers 4 | endheader 5 | title GenAI Landscape for AI app developers 6 | *: <&flag> GenAI 7 | App Dev; 8 | left side 9 | ** Platform 10 | *** Onpremise 11 | ****_ [[https://ollama.com/ Ollama]] 12 | *** Cloud 13 | ****_ Azure OpenAI 14 | ****_ AWS Bedrock 15 | ****_ GCP Vertex AI 16 | ** Orchestration 17 | ***_ LangChain 18 | ***_ [[https://learn.microsoft.com/en-us/semantic-kernel/overview/ SemanticKernel]] 19 | ***_ Haystack 20 | ***_ LlamaIndex 21 | ***_ PromptFlow 22 | ** Apps 23 | *** Text 24 | ****_ ChatGPT 25 | ****_ Gemini 26 | ****_ Claude 27 | *** Images 28 | ****_ MidJourney 29 | ****_ DALL-E 30 | *** Audio 31 | ****_ Suno AI 32 | *** Coding 33 | ****_ GH CoPilot 34 | ****_ AWS CodeWhisper 35 | *** Automation 36 | ****_ AutoGPT 37 | ****_ AutoChain 38 | ****_ WorkGPT 39 | 40 | right side 41 | ** Infra/hardware 42 | ***_ nVidea 43 | ***_ CoreWeave 44 | *** Cloud IaaS 45 | ** Models 46 | *** Hubs 47 | ****_ HuggingFace 48 | ****_ [[https://replicate.com/ Replicate]] 49 | ****_ [[https://openwebui.com/ Ollama Hub]] 50 | *** Foundational Model Types 51 | **** <:pen:>Text 52 | *****_:GPT by OpenAI 53 | 3.5 Turbo, 4 turbo, 4o, 4o mini; 54 | *****_: Claude by Anthropic 55 | 3 Sonnet/Haiku/Opus, 56 | 3.5 Sonnet; 57 | *****_: <:book:> Llama by Meta 58 | 3.1 405B, 70B, 8B ; 59 | *****_: Phi by Microsoft 60 | 3-mini,3-vision 3.5-mini, 3.5-vision 61 | ; 62 | *****_: PaLM2 by Google 63 | ; 64 | **** <:camera:>Images 65 | *****_ DALL-E by OpenAI 66 | **** <:musical_note:>Audio 67 | *****_ MusicLM by Google 68 | *****_ MusicGen by Meta 69 | **** <:movie_camera:>Video 70 | *****_ Veo by Google 71 | *****_ Sora by OpenAI 72 | **** Multimodal 73 | *****_: Gemini by Google 74 | 1.0 Nano, Flash,1.5 Pro, 1.0 Ultra; 75 | *****_ LLaVa 76 | *****_:Phi by Microsoft 77 | 3.5-MoE 78 | ; 79 | ** Patterns 80 | *** Fine-tuning 81 | *** RAG 82 | **** External data sources 83 | *****_ Vector indexes 84 | 85 | legend right 86 | # <:cloud:> - Cloud hosted 87 | # <:book:> - Opensource 88 | # Platform - runs the Models. 89 | # Apps are listed for understanding, not all. 90 | # [[https://www.stork.ai/ Stork Tools list]] 91 | # [[https://platform.openai.com/docs/models/models-overview Full OpenAI Models]] 92 | endlegend 93 | 94 | caption GenAI - AI App Developer mind map © Joy George Kunjikkuru 95 | 96 | @endmindmap -------------------------------------------------------------------------------- /ai/gen-ai/langchain.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Header is thin and at top center 4 | endheader 5 | title LangChain mind map 6 | * <&flag> LangChain 7 | left side 8 | ** Prompts 9 | **[#Orange] Chains 10 | right side 11 | ** Indexes 12 | ***_ DocumentLoader 13 | ***_ VectorDB 14 | ***_ TextSplitting 15 | **: LLMs 16 | ; 17 | ** Memory 18 | ** Agents 19 | 20 | legend right 21 | # mm does not support notes 22 | 23 | endlegend 24 | 25 | caption this is caption at the bottom 26 | 27 | @endmindmap -------------------------------------------------------------------------------- /build.js: -------------------------------------------------------------------------------- 1 | process.env.PLANTUML_HOME = "node_modules/node-plantuml/vendor/plantuml_new.jar"; 2 | var plantuml = require('node-plantuml'); 3 | var fs = require('fs'); 4 | if (fs.existsSync(process.env.PLANTUML_HOME)) console.log("Path exists"); 5 | else console.log("Path doesn't exists. Using the jar in vendor folder.") 6 | var gen = plantuml.generate("programming/dot-net/dotnet-web-performance.puml"); 7 | gen.out.pipe(fs.createWriteStream("out/output-file.png")); -------------------------------------------------------------------------------- /cloud/Azure/analytics/synapse-analytics.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure Synapse Analytics 4 | endheader 5 | title Azure - Azure Synapse Analytics PaaS 6 | 7 | * <&flag> Azure Synapse Analytics 8 | ** Ingestion 9 | ** Analytics 10 | ** Warehousing 11 | left side 12 | ** Partitioning 13 | *** Clustered Column Store 14 | *** Clustered Index 15 | *** Heap 16 | ** Distribution 17 | *** 60 distributions 18 | *** Types 19 | **** Replication 20 | **** Hash 21 | **** Round Robin (Default) 22 | caption Azure Synapse Analytics - Mind Map - Updated on 2021-02-04 23 | center footer JoymonOnline 24 | 25 | legend right 26 | Left Side - Specs, features & theories 27 | Right Side - Use cases 28 | 29 | endlegend 30 | 31 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/compute/functions.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure Functions 4 | endheader 5 | title Azure - Functions 6 | 7 | * <&flag> Functions 8 | caption Azure Functions - Mind Map - Updated on 2020-05-01 9 | center footer JoymonOnline 10 | 11 | legend right 12 | Left Side - Specs, features & theories 13 | Right Side - Use cases 14 | 15 | endlegend 16 | 17 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/compute/vm.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure Virtual Machines 4 | endheader 5 | title Azure - Virtual Machines 6 | 7 | * <&flag> VirtualMachines 8 | ** naming 9 | *** 1-64,char & numbers 10 | ** Use cases 11 | *** Migration 12 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/migrate-tutorial-on-premises-azure Site recovery]] (legacy) 13 | ***** [[https://docs.microsoft.com/en-us/azure/site-recovery/vmware-physical-azure-support-matrix Support matrix]] 14 | **** [[https://docs.microsoft.com/en-us/azure/migrate/tutorial-migrate-vmware Azure Migrate]] 15 | ***** [[https://docs.microsoft.com/en-us/azure/migrate/server-migrate-overview#compare-migration-methods Agent v/s Agentless]] 16 | *** VMSS Auto scaling 17 | *** Post installation 18 | **** Extensions 19 | *** Diagnostics 20 | **** [[https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/performance-diagnostics Performance Diag]] 21 | *** Move VMs 22 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/azure-to-azure-tutorial-migrate Another region]] 23 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/move-azure-vms-avset-azone Availability zone]] 24 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/region-move-cross-geos public to govt]] 25 | ** Operations 26 | *** Auto shut down 27 | *** [[https://docs.microsoft.com/en-in/azure/backup/backup-azure-vms-first-look-arm Backup]] 28 | **** Back up to Recovery Services vault 29 | *** [[https://docs.microsoft.com/en-us/azure/automation/automation-update-management Update Management]] 30 | **** Needs Azure automation & log analytics 31 | *** [[https://docs.microsoft.com/en-us/azure/site-recovery/azure-to-azure-quickstart DR & Geo Replication]] 32 | **** Needs Azure automation & Recovery services vault 33 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/hyper-v-azure-support-matrix On-prem Hyper-V Support matrix]] 34 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/azure-to-azure-architecture Azure to Azure ]] & [[https://docs.microsoft.com/en-us/azure/site-recovery/azure-to-azure-architecture support matrix]] 35 | left 36 | ** [[https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes Size]] 37 | *** Generation 38 | **** Current 39 | **** Previous 40 | **** Older 41 | *** Family 42 | ****_ General Purpose (A,B, D & DS Series) 43 | ****_ Memory optimized( D, DS, E, G, GS & M Series) 44 | ****_ Compute optimized( F Series) 45 | ****_ GPU (NV,NC Series) 46 | ****_ Storage optimized (L Series) 47 | ****_ High Performance(A, H,HC & HB Series) 48 | ****_ Confidential compute (DC Series) 49 | ** Networking / NIC 50 | *** [[https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-overview Load balancing]] 51 | *** Accelerated n/w 52 | *** NSG 53 | *** IP Configurations 54 | **** Public IP 55 | **** Private IP 56 | **** Subnet 57 | ***** Part of vNet 58 | ***** NAT Gateway 59 | ***** NSG 60 | ***** Route table 61 | **** IP Forwarding 62 | *** DNS 63 | ** Disks 64 | *** SSD(Std,Premium) 65 | *** HDD(Std) 66 | *** Ultra disk 67 | 68 | ** HA/DR 69 | *** [[https://azure.microsoft.com/en-us/support/legal/sla/virtual-machines/ SLA]] 70 | **** 99.99% (Down time 52.60 Mins/year, 4.38 Mins/month) \n2+VMs across 2+AZone, same region 71 | **** 99.95% (Down time 4.38 Hrs/year,21.92 Mins/month)\n2+VMs same ASet or Dedicated Host Group 72 | **** 99.90% (Down time [[https://en.wikipedia.org/wiki/High_availability#Percentage_calculation 8.77 Hrs/year,43.83 Mins/month]])\n 1 VM, Premium SSD or Ultra for all OS & Data 73 | *** Availability 74 | **** Set 75 | ***** [[https://docs.microsoft.com/en-us/azure/virtual-machines/windows/manage-availability#configure-multiple-virtual-machines-in-an-availability-set-for-redundancy Fault & update domains]] 76 | **** zone 77 | *** [[https://azure.microsoft.com/en-us/features/resiliency/ Resiliency]] 78 | 79 | ** Security 80 | *** Auth 81 | **** Windows (user/pass) 82 | **** Linux (user/pass & SSH) 83 | *** Encryption 84 | **** MSFT Keys 85 | **** Customer Keys 86 | caption Azure Virtual Machines - Mind Map - Updated on 2020-04-27 87 | center footer JoymonOnline 88 | 89 | legend right 90 | Left Side - Specs, features & theories 91 | Right Side - Use cases 92 | 93 | endlegend 94 | 95 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/databases/azure-sql.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure SQL 4 | endheader 5 | title Azure - Azure SQL Database(SQL DB) PaaS 6 | 7 | * <&flag> Azure SQL 8 | ** Elastic pools 9 | *** Moving databases 10 | *** Distributed transactions 11 | **** [[https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-transactions-overview Elastic database transactions]]\nNo MSDTC 12 | ***** .Net 4.6.1 onwards 13 | ***** Client library not TSQL 14 | ***** Cannot work with WCF transactions 15 | left 16 | ** Tiers 17 | ** Limits 18 | ** Feature parity 19 | ** HA/DR 20 | caption Azure SQL - Mind Map - Updated on 2020-04-14 21 | center footer JoymonOnline 22 | 23 | legend right 24 | Left Side - Specs, features & theories 25 | Right Side - Use cases 26 | 27 | endlegend 28 | 29 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/microsoft-identity-platform-oauth.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | caption Microsoft Identity Platform - OAuth Mind Map - Updated on 2019-10-22 3 | title Microsoft Identity Platform - OAuth 4 | center header 5 | Microsoft Identity Platform aka AADv2 6 | endheader 7 | 8 | * <&flag>[[https://docs.microsoft.com/en-us/azure/active-directory/develop/ Microsoft Identity Platform]] 9 | ** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/about-microsoft-identity-platform Evolution from AAD Dev Platform]] 10 | ** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols Protocols]] & \n[[https://docs.microsoft.com/en-us/azure/active-directory/develop/authentication-scenarios Grant Types]] 11 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow Authorization Code Flow]] 12 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow Implicit Grant Flow]] 13 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc#get-access-tokens Hybrid OIDC Flow]] 14 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#refresh-the-access-token Refresh token redemption]] 15 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow On-Behalf-Of Flow]] 16 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code Device code flow]] 17 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow Client Credentials Flow]] 18 | ** SDKs 19 | *** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-v2-libraries MSAL]] 20 | **** [[https://github.com/AzureAD/microsoft-authentication-library-for-dotnet MSAL.Net]] 21 | **** Browser 22 | ***** [[https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser MSAL 2.0 Browser]] 23 | ***** [[https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular MSAL 2.0 Angular-Beta]] 24 | ** Supported Identity Providers 25 | *** AAD 26 | *** Facebook 27 | *** Google 28 | *** LinkedIn 29 | ** [[https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison#limitations Limitations]] 30 | left side 31 | ** OAuth 2.0 Specs 32 | *** Grant Types 33 | **** [[https://tools.ietf.org/html/rfc6749#page-24 Authorization Code Grant]] 34 | **** [[https://tools.ietf.org/html/rfc6749#page-31 Implicit Grant]] 35 | **** [[https://tools.ietf.org/html/rfc6749#page-37 Resource owner Password Credentials]] 36 | **** [[https://tools.ietf.org/html/rfc6749#page-40 Client Credentials Grant]] 37 | ** [[https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-whatis What is Azure AD]] 38 | center footer JoymonOnline 39 | 40 | legend right 41 | Left Side - OAuth 2.0 specs & theories 42 | Right Side - Azure implemenation 43 | [[https://medium.com/@darutk/diagrams-and-movies-of-all-the-oauth-2-0-flows-194f3c3ade85 Movie of OAuth]] 44 | 45 | endlegend 46 | 47 | @endmindmap 48 | -------------------------------------------------------------------------------- /cloud/Azure/networking/azure-dns.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure DNS 4 | endheader 5 | title Azure - DNS 6 | 7 | + <&flag> Azuer DNS 8 | caption Azure DNS - Mind Map - Updated on 2020-05-08 9 | center footer JoymonOnline 10 | -- Public 11 | --- Domain 12 | --- DNS Zone 13 | ---- Name Servers 14 | -- Private 15 | --- Inside vNet 16 | --- Types 17 | ---- Azure provided 18 | ---- Custom 19 | legend right 20 | Left Side - Specs, features & theories 21 | Right Side - Use cases 22 | 23 | endlegend 24 | 25 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/networking/vnet.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure Virtual Network 4 | endheader 5 | title Azure - Virtual Network & Subnets 6 | 7 | + <&flag> VNet 8 | ++ Connect to onprem 9 | +++ P2S VPN 10 | +++ S2S VPN 11 | ++++_ [[https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-highlyavailable HA]] 12 | +++ Express Route 13 | -- Address space 14 | -- Subnets 15 | --- Route table 16 | -- DDos 17 | ---_ Basic 18 | ---_ Standard 19 | -- DNS 20 | -- Peering 21 | caption Azure Virtual Network - Mind Map - Updated on 2020-04-30 22 | center footer JoymonOnline 23 | 24 | legend right 25 | Left Side - Specs, features & theories 26 | Right Side - Use cases 27 | 28 | endlegend 29 | 30 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/storage/recovery-services-vault.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure Recovery Services vault 4 | endheader 5 | title Azure - Recovery Services vault 6 | 7 | * <&flag> Recovery Services Vault 8 | ** Backup 9 | *** Features 10 | **** [[https://docs.microsoft.com/en-us/azure/backup/backup-azure-vms-introduction Store in Recovery Services vault]] 11 | **** [[https://docs.microsoft.com/en-us/azure/backup/backup-overview#whats-the-difference-between-azure-backup-and-azure-site-recovery What it can backup]] 12 | ***** on prem 13 | ****** MARS agent 14 | ******* (file, folder system state) 15 | ****** MABS agent 16 | ******* VMs(Hyper-V& VMWare) 17 | ***** Azure 18 | ****** VMs,File Shares, SQL Server on VM,SAP HANA on VM 19 | **** [[https://docs.microsoft.com/en-us/azure/backup/backup-support-matrix Support matrix]] 20 | *** Use cases 21 | **** [[https://docs.microsoft.com/en-us/azure/backup/backup-azure-vms-first-look-arm Backup from portal]] 22 | ** [[https://docs.microsoft.com/en-us/azure/site-recovery/site-recovery-overview Site Recovery(DR)]] 23 | *** OnPrem 24 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/hyper-v-prepare-on-premises-tutorial OnPrem VM Prep]] 25 | **** [[https://docs.microsoft.com/en-us/azure/site-recovery/vmware-physical-azure-support-matrix Support matrix of VMWare & Physical servers]] 26 | **** [[https://social.technet.microsoft.com/wiki/contents/articles/52212.azure-site-recovery-migrate-hyper-v-virtual-machine-to-azure.aspx Hyper-V]] 27 | caption Azure Recovery Services vault - Mind Map - Updated on 2020-07-14 28 | center footer JoymonOnline 29 | 30 | legend right 31 | Left Side - Specs, features & theories 32 | Right Side - Use cases 33 | 34 | endlegend 35 | 36 | @endmindmap -------------------------------------------------------------------------------- /cloud/Azure/storage/storage-account.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Azure mind maps - Azure Storage Account 4 | endheader 5 | title Azure - Storage Account 6 | 7 | * <&flag> Storage Account 8 | ** naming 9 | *** 3-25,char &numbers, lowercase 10 | *** Unique 11 | ** Use cases 12 | *** Blob 13 | **** Types 14 | ***** BlockBlob 15 | ***** Append 16 | ***** Page 17 | **** Soft delete 18 | *** Queue 19 | *** Table 20 | *** File 21 | **** Quota 22 | *** Disk 23 | *** Datalake Gen2 24 | **** Hierarchical namespace 25 | ** Data Transfer 26 | *** ReST 27 | *** AzCopy 28 | *** Client libraries 29 | *** Storage Explorer 30 | *** Azure Import Export 31 | *** [[https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-deployment-guide?tabs=azure-portal Azure File Sync]] 32 | ** Life cycle management rules 33 | *** [[https://docs.microsoft.com/en-us/azure/storage/blobs/storage-lifecycle-management-concepts?tabs=azure-portal#storage-account-support GPv2,Blob storage & Premium Block Blob]] 34 | left 35 | ** [[https://docs.microsoft.com/en-us/azure/storage/common/storage-account-overview#types-of-storage-accounts Account Kind]] 36 | *** Standard 37 | **** Blob storage 38 | *** Premium 39 | **** FileStorage 40 | **** BlockBlob 41 | *** GP v1 42 | *** GP v2 43 | **** Date lake Gen2 44 | ** Access tiers 45 | *** Hot, Cool, Archive 46 | 47 | ** HA/DR 48 | *** Replication 49 | **** Types 50 | ***** LRS 51 | ***** ZRS 52 | ***** GRS 53 | ***** RA-GRS 54 | ***** GZRS 55 | ***** RA-GZRS 56 | **** [[https://docs.microsoft.com/en-us/azure/storage/common/redundancy-migration?tabs=portal#switch-between-types-of-replication Switching]] 57 | ** [[https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#storage-limits Limits]] 58 | ** [[https://docs.microsoft.com/en-us/azure/storage/common/storage-account-overview#storage-account-billing Billing]] 59 | ** Perf Tiers (Std,Premium) 60 | ** Networking 61 | *** vNet Integration 62 | *** [[https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoint-policies-overview vNet service endpoint]] 63 | *** Custom domain 64 | *** CDN 65 | *** SSL 66 | ** Security 67 | *** Auth 68 | **** AAD 69 | **** Keys 70 | **** SAS 71 | *** CORS 72 | *** Encryption 73 | **** MSFT Keys 74 | **** Customer Keys 75 | caption Azure Storage Account - Mind Map - Updated on 2020-04-15 76 | center footer JoymonOnline 77 | 78 | legend right 79 | Left Side - Specs, features & theories 80 | Right Side - Use cases 81 | 82 | endlegend 83 | 84 | @endmindmap -------------------------------------------------------------------------------- /debugging/before-debugging-others-problem.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | caption figure 1 3 | title Before debugging other's problem 4 | * <&flag>Problem 5 | ** Reproducing 6 | *** Consistently reproducing 7 | **** In dev env 8 | ***** Sample application 9 | ***** Test cases 10 | ****** Debug 11 | ******* Fix 12 | *** Sometimes 13 | **** Make it consistent 14 | *** Only in Production 15 | **** First deployment 16 | ***** environment 17 | ****** Settings 18 | ****** Permisissions 19 | **** After new version 20 | ***** Check the deployment 21 | ***** Review changeset 22 | **** Sample application 23 | **** Reproduce in dev 24 | **** Workaround / hack 25 | ** Not reproducing 26 | *** Reproduce 27 | **** Sample application 28 | **** Timing 29 | **** User specific 30 | **** Environment 31 | **** Race conditions 32 | **** Scientific approach 33 | *** Access to servers 34 | **** Logs to repro 35 | **** Stack traces 36 | **** Error codes 37 | ***** Google 38 | **** Debugging tools 39 | *** Error at client app 40 | 41 | left side 42 | ** Defect description 43 | ** Rubber duck 44 | ** Priority 45 | *** Development 46 | *** Production 47 | ** Architecture / design available 48 | @endmindmap -------------------------------------------------------------------------------- /debugging/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to debugging software 2 | -------------------------------------------------------------------------------- /debugging/windows-network-debugging.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption Mind map of Windows Networking tools & commands for Developers 4 | title Windows Networking tools & commands for Developers 5 | center header 6 | Windows Networking tools & commands for Developers 7 | endheader 8 | * <&flag>Debug \n Networking 9 | ** machine configuration 10 | *** hostname 11 | *** whoami 12 | *** getmac 13 | *** ipconfig 14 | *** IIS 15 | **** appcmd 16 | 17 | ** Authentication 18 | *** <&command>[[https://www.windows-commandline.com/get-sid-of-user/ SiD Utils]] 19 | *** SetSPN 20 | *** Kerberos 21 | **** [[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/klist klist]] 22 | **** [[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass ktpass]] 23 | 24 | ** Connectivity 25 | *** ping 26 | *** tracert 27 | *** pathping 28 | *** nslookup 29 | *** route 30 | *** <&command>telnet 31 | ** <&command>Active 32 | *** arp 33 | 34 | *** [[https://docs.microsoft.com/en-us/windows-server/networking/technologies/network-subsystem/net-sub-performance-counters Perfmon]] 35 | *** netstat 36 | *** nbtstat 37 | *** <&file>[[https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview TCPView]] 38 | *** <&command>TCPDump 39 | *** <&command>[[https://blogs.technet.microsoft.com/netmon/2009/05/13/event-tracing-for-windows-and-network-monitor/ logman]] 40 | *** <&command>netsh 41 | 42 | left 43 | ** <&file>Logging 44 | *** IIS 45 | **** Logs 46 | **** Extended IIS Logs 47 | **** FREB 48 | *** .Net 49 | **** WCF 50 | ***** SVC Logs 51 | *** EventViewer 52 | *** http.sys 53 | *** External 54 | **** ApplicationInsights 55 | 56 | ** <&monitor>UI Tools 57 | *** Browser F12 58 | *** Fiddler 59 | *** Wireshark 60 | *** Resource monitor 61 | *** ActiveDirectory 62 | **** Ad Users and Computers 63 | **** AD Domains & trust 64 | **** [[https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer{Examine the AD} AD Explorer]] 65 | center footer JoymonOnline 66 | 67 | legend right 68 | Left Side - UI Tools 69 | Right Side - Commands and logs 70 | <&command>Commands 71 | endlegend 72 | 73 | @endmindmap 74 | -------------------------------------------------------------------------------- /deployment/IaC-tools.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption IaC - Tools 4 | title Infrastructure as Code (IaC) - Tools 5 | center header 6 | IaC How to choose tools 7 | endheader 8 | * <&flag>[[https://en.wikipedia.org/wiki/Infrastructure_as_code IaC]] 9 | ** Multi-cloud 10 | *** Terraform\n(Dec/Plan/State) 11 | *** [[https://www.pulumi.com/product/ Pulumi]]\n(Imp/State) 12 | *** Chef\n(Dec/AppDeploy) 13 | *** Puppet\n(Dec/AppDeploy) 14 | *** Ansible 15 | ** Native 16 | *** ARM 17 | *** Cloudformation 18 | *** Google cloud deployment manager 19 | *** [[https://wiki.openstack.org/wiki/Heat OpenStack Heat]] 20 | left 21 | ** How to choose 22 | *** Native v/s Multi-cloud? 23 | **** Multi-cloud 24 | ***** Feature gap 25 | *** Vendor lock in 26 | *** Extensibility 27 | *** Imperative v/s Declarative 28 | *** One definition / environment\nor parameterize 29 | *** Support for change plan 30 | *** Support for maintaining state 31 | ** Pros 32 | *** Fast & repeatable 33 | *** Less error prone 34 | ** Cons 35 | *** High blast radius 36 | center footer JoymonOnline 37 | 38 | legend right 39 | Legend 40 | Left Side - Resources to choose 41 | Right Side - Tools 42 | Other links [[https://github.com/airavata-courses/spring17-devops/wiki/Comparing-Infrastructure-as-code-Tools 1]] 43 | endlegend 44 | 45 | @endmindmap 46 | -------------------------------------------------------------------------------- /deployment/kubernetes/k8s.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | title Kubernetes - Mindmap from the birds eys view 3 | center header 4 | Kubernetes 5 | endheader 6 | 7 | * [[https://kubernetes.io/ Kubernetes]] 8 | ** Implementation using K8s objects 9 | *** Workloads 10 | **** Pod 11 | **** Deployment 12 | ***** Replica 13 | **** StatefulSet 14 | **** DaemonSet 15 | 16 | **** Jobs & CronJob 17 | **** [[https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ Labels and selectors]] 18 | **** [[https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ Annotations]] 19 | *** Services and networking 20 | **** Service 21 | **** [[https://kubernetes.io/docs/concepts/services-networking/ingress/ Ingress]] 22 | **** [[https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/ Ingress controllers]] 23 | **** [[https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/ Endpoint Slices]] 24 | **** [[https://kubernetes.io/docs/concepts/services-networking/network-policies/ Network policies]] 25 | *** Storage 26 | **** Volumes 27 | **** Persistent Volumes 28 | *** configuration 29 | **** ConfigMap 30 | **** Secrets 31 | *** [[https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ namespaces]] 32 | left side 33 | ** Features 34 | *** workload 35 | **** Self healing 36 | **** bin packing 37 | **** Roll backs 38 | *** Networking 39 | **** Load balancing 40 | **** [[https://kubernetes.io/docs/concepts/services-networking/dual-stack/ IPv4/IPv6 dual-stack ]] 41 | *** Extensible 42 | *** Onprem and cloud 43 | **** Cloud 44 | *****_ Azure - [[https://azure.microsoft.com/en-us/services/kubernetes-service/ AKS]] 45 | *****_ Google - [[https://cloud.google.com/kubernetes-engine GKE]] 46 | *****_ AWS - [[https://aws.amazon.com/eks EKS]] 47 | ** Use cases 48 | *** Host any application 49 | ** Cluster Infra 50 | *** Nodes 51 | **** Control (Linux only) 52 | ***** Control plane 53 | ****** [[https://kubernetes.io/docs/concepts/overview/kubernetes-api/ api server]] 54 | ****** etcd 55 | ****** scheduler 56 | ****** kube-controller-manager 57 | ****** cloud-controller-manager 58 | 59 | **** Worker (Linux,Windows) 60 | ***** Node Components 61 | ****** container-runtime 62 | *******_ Docker 63 | *******_ containerd 64 | *******_ CRI-O 65 | 66 | ****** Kubelet 67 | ****** kube-proxy 68 | 69 | *** addons 70 | **** DNS 71 | **** Web UI Dashboard 72 | **** Container resource monitoring 73 | **** Cluster level logging 74 | 75 | caption Kubernetes - Updated on 2021-08-06 76 | center footer JoymonOnline 77 | 78 | legend right 79 | Left Side - K8s features, use cases 80 | Right Side - Infrastructure and implemenation 81 | 82 | Includes only stable features. 83 | 84 | endlegend 85 | 86 | @endmindmap 87 | -------------------------------------------------------------------------------- /deployment/readme.md: -------------------------------------------------------------------------------- 1 | # What is inside 2 | Mind maps related to deployment, CI & CD, DevOps, infrastructure as code (IaS) etc... 3 | -------------------------------------------------------------------------------- /deployment/the-phoenix-project.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | caption The Phoenix Project - Updated on 2019-10-23 3 | title The Phoenix Project - Mind map 4 | center header 5 | The Phoenix Project 6 | endheader 7 | 8 | * <&book>The Phoenix Project 9 | left side 10 | ** Authors 11 | ***_ Gene Kim 12 | ***_ Kevin Behr 13 | ***_ George Spafford 14 | ** Characters 15 | *** Bob Strauss Chairman 16 | **** Steve Masters\n(CEO Ex Army) 17 | ***** Bill Palmer & Page\n(new VP IT Ops\nEx Army) 18 | ****** Ellen\nSecretary 19 | ****** Wes Davis\n(Dir Distributed Tech Ops) 20 | *******_ Brent 21 | ******_ Paddy McKee(Dir IT Support) 22 | *****_ Stacy (Secretary) 23 | *****_ Nancy (Chief Auditor) 24 | *****_ Sarah Moulton (SVP Retail Ops) 25 | *****_ Dick Landry (CFO) 26 | *****_ John Pesche (CISO) 27 | *****_ Luke & Daimon (CIO Fired) 28 | *****_ Chris Allers (VP App Dev) 29 | ******_ Max (Payroll time change dev) 30 | *****_ Laura (HR) 31 | ****_ Erik Reid\n(Board Member) 32 | 33 | *** Chapters 34 | ****_ 1. New VP\nHourly workers payroll outage 35 | ****_ 2. Meeting team for outage 36 | ####_ 3. Root cause PII(SSN). Not tested, ended up news 37 | ####_ 4. Sarah Escalation, machine crash, broken change management 38 | ####_ 5. IT Audit Issues 39 | ####_ 6. First change mgmt with cards and need 6 resources 40 | ####_ 7. Encounter with Reid 41 | ####_ 8 42 | ####_ 9 People started following cards, sequenced work 43 | ####_ 10 Seeing & streamlining Brent 44 | ####_ 11 Issue after Brent restricted 45 | ####_ 12 1st dep of Phoenix, adhoc changes, no QA. 46 | ####_ 13 Failed Dep, CCV data, bad perf & user experience 47 | ####_ 14 Plan of outsource, dev concerns and tie up. Dev Party 48 | ####_ 15 Day with Page, 49 | ####_ 16 Figured type of work, new issue from payments, resign 50 | ####_ 17 Resigned and company join back 51 | ####_ 18 Bill joined back & Steve Apology 52 | ####_ 19 Team building by personal stories, project freeze 53 | ####_ 20 Better, what after freeze 54 | ####_ 21 Audit meeting, John advised not to slow down 55 | ####_ 22 John missing, Standardizing like production, Kanban.\nEffect appered when laptop came 2 days early 56 | ####_ 23 57 | ####_ 24 John is back and trying to understand better 58 | ####_ 25 59 | ####_ 26 time to market. Should assign dedicated IT persons? 60 | ####_ 27 No clarity of Requirement/business process. Sec gettign easy with John 61 | ####_ 28 62 | ####_ 29 Separate SWAT team came in 63 | ####_ 30 10 Deploys a day? 64 | ####_ 31 Unicorn project started 65 | ####_ 32 Unicorn thriving 66 | ####_ 33 Cloud 4 burst load, targetted promotion, Maggie volunteer 67 | ####_ 34 Holiday shopping, more ask from marketting 68 | ####_ 35 Bill get recognition from leadership 69 | right side 70 | ** Process 71 | *** ITIL 72 | ** Types of work 73 | *** Business 74 | *** Internal 75 | *** Changes 76 | *** Unplanned 77 | ** Work center 78 | *** Man 79 | *** Machine 80 | *** Material 81 | *** Measure 82 | ** [[https://en.wikipedia.org/wiki/Theory_of_constraints Theory of constraints]] 83 | *** Fix the bottle neck 84 | center footer JoymonOnline 85 | 86 | legend right 87 | Left Side TBD 88 | Right Side - Terms & definitions 89 | 90 | endlegend 91 | 92 | @endmindmap 93 | -------------------------------------------------------------------------------- /deployment/the-unicorn-project.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | caption The Unicorn Project - Updated on 2020-03-28 3 | title The Unicorn Project - Mind map 4 | center header 5 | The Unicorn Project 6 | endheader 7 | 8 | * <&flag>The Unicorn Project 9 | ** View of Maxine about development 10 | *** Functional programming 11 | *** Write Unit test before refactor 12 | *** Immutable 13 | *** Depoly single change set to production (multi threading fix) 14 | *** Dev job completes when customer use feature 15 | *** Environment parity 16 | *** 2 Pizza teams 17 | *** You build it you run it 18 | *** No ARB/TOGAF 19 | *** Pay techdebt 20 | *** Data is the king 21 | **** Hard coding 22 | **** Manual prep of env 23 | **** Architecture 24 | *** CI/CD 25 | *** White space deployment 26 | *** Everything in version control 27 | *** Automated testing 28 | *** QA and business colocated with dev 29 | *** Immutable deployment using container 30 | *** independent release of apps 31 | *** Versioned Microservices 32 | *** Dev productivity over features 33 | *** Blameless post mortem 34 | **** Release 35 | **** Outages 36 | *** Taxonomy 37 | *** Code merge 38 | **** Alteast once a day 39 | **** Without war room 40 | **** Single source repo 41 | **** No extra steps to push from branch to branch(Jared) 42 | *** Chaos engineering 43 | *** Real product experience 44 | *** Feedback loop and experiment with customers 45 | *** Fail fast 46 | ** Reorg 47 | *** QA is part of feature teams 48 | *** Ops is internal service to enable developers 49 | *** Move devs from context to core projects 50 | ** Technologies 51 | *** Kubernetes 52 | *** Clojure 53 | ** Names 54 | *** Unicorn - Recommendation system 55 | *** Norva 56 | **** New DB(NoSQL) and API gateway, 57 | **** Auth, PII anonymization 58 | *** Unikitty - CI/CD System 59 | *** ORCA - Analytics and data science 60 | *** Panther - Modern data warehouse with Spark & event streaming 61 | ** [[https://www.linkedin.com/pulse/unicorn-project-five-ideals-michal-florys/ Ideals]] 62 | *** Locality & Simplicity 63 | *** Focus, Flow & Joy 64 | *** Improvement of daily work 65 | *** Psychological safety 66 | **** Project oxygen Google 67 | *** Customer focus 68 | ** [[https://medium.com/corporate-ventures/book-review-zone-to-win-by-geoffrey-a-moore-4004f5c7d1da Horizons]] 69 | *** 1 - Core business - Cash cow 70 | *** 2 - Small business - Future cash cow 71 | *** 3 - Innovations - Risky adventures 72 | ** Type of teams 73 | *** Core 74 | **** Anything directly bringing revenue from customer eg: Code 75 | *** Context 76 | **** Supporting systems, people. eg: HR, home grown CI/CD system, Email server etc... 77 | left side 78 | ** RedShirts 79 | *** Maxine Chambers, Developer Lead, Architect 80 | *** Kurt Reznick, QA Manager 81 | *** “Cranky Dave” Brinkley, Developer Lead 82 | *** Shannon Corman, Security Engineer 83 | *** Adam Flynn, QA Engineer 84 | *** Dwayne Cox, Lead Infrastructure Engineer 85 | *** Purna Sathyaraj, QA and Release Manager 86 | *** ➢Brent Geller, Ops Lead 87 | ** JUNIOR OFFICERS 88 | *** Randy Keyes, Dev Manager 89 | *** Rick Willis, QA Manager 90 | *** ➢William Mason, Director of QA 91 | *** ➢Wes Davis, Director of Distributed Technology Operations 92 | *** ➢Patty McKee, Director of IT Service Support 93 | ** BRIDGE CREW 94 | *** ➢Steve Masters, CEO, Acting CIO 95 | *** ➢Dick Landry, CFO 96 | *** ➢Sarah Moulton, SVP of Retail Operations 97 | *** ➢Chris Allers, VP of Application Development 98 | *** ➢Kirsten Fingle, Director of Project Management 99 | *** ➢Maggie Lee, Senior Director of Retail Program Management 100 | *** ➢Bill Palmer, VP of IT Operations 101 | *** ➢John Pesche, Chief Information Security Officer (CISO) 102 | ** STARFLEET COMMAND 103 | *** Alan Perez, New Board Director, Operating Partner, Wayne-Yokohama 104 | *** Equity Partners 105 | *** ➢Bob Strauss, Lead Director, Former Chairman, Former CEO 106 | *** ➢Erik Reid, Prospective Board Director 107 | center footer JoymonOnline 108 | 109 | legend right 110 | Left Side - Characters 111 | Right Side - Ideam from the book 112 | Other links 113 | - [[https://danlebrero.com/2020/02/05/the-unicorn-project-summary/ DanLebrero]] 114 | - [[https://www.infoq.com/articles/unicorn-project/ InfoQ]] 115 | endlegend 116 | 117 | @endmindmap 118 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | # Minds maps related to software 2 | - Software 3 | - [Tools I am using for personal purpose](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/software-tools/personal-tools.puml){:target="_blank"} 4 | - [Software Engineering Tools I am using](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/software-tools/software-engineering-tools.puml){:target="_blank"} 5 | - Debugging 6 | - [Before debugging other's problem](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/debugging/before-debugging-others-problem.puml){:target="_blank"} 7 | - [Windows network Debugging tools and commands for developers](http://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/debugging/windows-network-debugging.puml){:target="_blank"} 8 | - AI 9 | - Gen AI 10 | - [Gen AI Landscape for App Developers](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/ai/gen-ai/app-developer-landscape.puml){:target="_blank"} 11 | - Programming 12 | - DotNet 13 | - [DotNet Performance](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/programming/dot-net/dotnet-web-performance.puml){:target="_blank"} 14 | - Database 15 | - SQL Server 16 | - [SQL Server Performance](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/programming/database/sql-server/sql-server-performance.puml){:target="_blank"} 17 | - [SQL Server Always On Availability Group](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/programming/database/sql-server/always-on-availability-groups.puml){:target="_blank"} 18 | - Microsoft 365 19 | - SharePoint Online 20 | - [APIs and .Net SDK model](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/programming/microsoft-365/sharepoint/api-dotnet-sdk.puml){:target="_blank"} 21 | - [Throttling](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/programming/microsoft-365/sharepoint/throttling-flow.puml){:target="_blank"} 22 | 23 | - Web front end 24 | - [Web front end](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/programming/web-front-end/tools-tech.puml){:target="_blank"} 25 | 26 | - Cloud 27 | - Azure 28 | - Compute 29 | - [Virtual Machines](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/cloud/Azure/compute/vm.puml) 30 | - Networking 31 | - [Virtual Network and Subnets](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/cloud/Azure/networking/vnet.puml) 32 | - Security 33 | - [Microsoft Identity Platform OAuth](https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/software/master/cloud/Azure/microsoft-identity-platform-oauth.puml) 34 | -------------------------------------------------------------------------------- /mgmt-productivity/project-management.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Project management mind maps 4 | endheader 5 | title Project Management - Mind map 6 | 7 | * <&flag> Project Management 8 | ** MVP 9 | *** [[https://dzone.com/articles/how-to-build-an-mvp-the-best-feature-prioritizatio Feature prioritization]] 10 | *** Cases 11 | **** [[https://blog.crisp.se/wp-content/uploads/2013/01/HowSpotifyBuildsProducts.pdf Spotify]] 12 | ** Reporting 13 | *** [[https://dzone.com/articles/two-data-points-the-vp-of-engineering-should-show-1 To CxO]] 14 | **** Cycle time 15 | **** Investiment profile 16 | ** Estimation 17 | left 18 | ** Methodologies 19 | ** Tools 20 | 21 | caption Project Management - Mind map - Updated on 2020-04-15 22 | center footer JoymonOnline 23 | 24 | legend right 25 | Left Side - Specs, features & theories 26 | Right Side - Use cases 27 | 28 | endlegend 29 | 30 | @endmindmap -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mind-maps", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "commander": { 8 | "version": "2.20.0", 9 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", 10 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", 11 | "dev": true 12 | }, 13 | "node-nailgun-client": { 14 | "version": "0.1.2", 15 | "resolved": "https://registry.npmjs.org/node-nailgun-client/-/node-nailgun-client-0.1.2.tgz", 16 | "integrity": "sha512-OC611lR0fsDUSptwnhBf8d3sj4DZ5fiRKfS2QaGPe0kR3Dt9YoZr1MY7utK0scFPTbXuQdSBBbeoKYVbME1q5g==", 17 | "dev": true, 18 | "requires": { 19 | "commander": "^2.8.1" 20 | } 21 | }, 22 | "node-nailgun-server": { 23 | "version": "0.1.4", 24 | "resolved": "https://registry.npmjs.org/node-nailgun-server/-/node-nailgun-server-0.1.4.tgz", 25 | "integrity": "sha512-e0Hbh6XPb/7GqATJ45BePaUEO5AwR7InRW/pGeMKHH1cqPMBFCeqdBNfvi+bkVLnsbYOOQE+pAek9nmNoD8sYw==", 26 | "dev": true, 27 | "requires": { 28 | "commander": "^2.8.1" 29 | } 30 | }, 31 | "node-plantuml": { 32 | "version": "0.8.1", 33 | "resolved": "https://registry.npmjs.org/node-plantuml/-/node-plantuml-0.8.1.tgz", 34 | "integrity": "sha512-sEI9j61MLunxkV0QTUyycanLhk9qP23iEkv4IBT+bcndR8qJ1hm9TCD21I0cK5XyBCXNQ3gywXKujHWDojwcQg==", 35 | "dev": true, 36 | "requires": { 37 | "commander": "^2.8.1", 38 | "node-nailgun-client": "^0.1.0", 39 | "node-nailgun-server": "^0.1.4", 40 | "plantuml-encoder": "^1.2.5" 41 | } 42 | }, 43 | "pako": { 44 | "version": "1.0.3", 45 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.3.tgz", 46 | "integrity": "sha1-X1FbDGci4ZgpIK6ABerLC3ynPM8=", 47 | "dev": true 48 | }, 49 | "plantuml-encoder": { 50 | "version": "1.2.5", 51 | "resolved": "https://registry.npmjs.org/plantuml-encoder/-/plantuml-encoder-1.2.5.tgz", 52 | "integrity": "sha512-viV7Sz+BJNX/sC3iyebh2VfLyAZKuu3+JuBs2ISms8+zoTGwPqwk3/WEDw/zROmGAJ/xD4sNd8zsBw/YmTo7ng==", 53 | "dev": true, 54 | "requires": { 55 | "pako": "1.0.3", 56 | "utf8-bytes": "0.0.1" 57 | } 58 | }, 59 | "utf8-bytes": { 60 | "version": "0.0.1", 61 | "resolved": "https://registry.npmjs.org/utf8-bytes/-/utf8-bytes-0.0.1.tgz", 62 | "integrity": "sha1-EWsCVEjJtQAIHN+/H01sbDfYg30=", 63 | "dev": true 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mind-maps", 3 | "version": "1.0.0", 4 | "description": "Mind maps based on PlantUML language", 5 | "main": "index.js", 6 | "scripts": { 7 | "build":"node ./build.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [ 11 | "mind-maps", 12 | "plantuml", 13 | ".net", 14 | "performance", 15 | "web" 16 | ], 17 | "author": "Joy George K", 18 | "license": "ISC", 19 | "devDependencies": { 20 | "node-plantuml": "^0.8.1" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /programming/database/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to database technologies 2 | -------------------------------------------------------------------------------- /programming/database/sql-server/always-on-availability-groups.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption Mind map of SQL Server Always On Availability Groups. 4 | title Mind map on SQL Server Always On Availability Groups 5 | center header 6 | SQL Server Always On Availability Groups. 7 | endheader 8 | 9 | center footer JoymonOnline 10 | * <&flag>SQL Always On Availability Groups 11 | ** Restrictions 12 | ** Concepts 13 | *** Basics 14 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-2017 Overview]] 15 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/prereqs-restrictions-recommendations-always-on-availability?view=sql-server-2017#PrerequisitesForAGs Restrictions]] 16 | *** AG mode 17 | **** [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-modes-always-on-availability-groups?view=sql-server-2017#SyncCommitAvMode sync]] 18 | ***** [[https://www.brentozar.com/archive/2015/09/synchronous-alwayson-availability-groups-is-not-zero-data-loss/ Dataloss in sync]] 19 | ***** Performane hit [[https://blogs.msdn.microsoft.com/sambetts/2014/08/21/alwayson-asynchronous-vs-synchronous-commit-performance-for-sharepoint/ 1]] 20 | **** [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-modes-always-on-availability-groups?view=sql-server-2017#AsyncCommitAvMode Async]] 21 | *** Failover mode 22 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/failover-and-failover-modes-always-on-availability-groups?view=sql-server-ver16 Automatic & Manual]] 23 | *** Prerequisites 24 | **** [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/failover-clustering-and-always-on-availability-groups-sql-server?view=sql-server-2017 WSFC]] 25 | ****_ [[https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-overview?view=azuresql-vm Considerations in Azure VM]] 26 | *** [[https://www.sqlshack.com/data-synchronization-in-sql-server-always-on-availability-groups/ Replication]] 27 | ****_ [[https://severalnines.com/database-blog/when-and-how-to-use-asynchronous-commit-mode-ms-sql-server-always Async]] 28 | ****_ [[https://severalnines.com/database-blog/exploring-synchronous-commit-mode-for-sql-server-always-on Sync]] 29 | *** Auto seeding 30 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/automatically-initialize-always-on-availability-group?view=sql-server-2017#when-not-to-use-automatic-seeding Auto seeding]] 31 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/automatic-seeding-secondary-replicas?view=sql-server-2017 Link2]] 32 | ** Use cases 33 | ** Client connectivity 34 | ***_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/about-client-connection-access-to-availability-replicas-sql-server?view=sql-server-2017 Connection to replicas]] 35 | ***_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/always-on-client-connectivity-sql-server?view=sql-server-ver15 .Net ADO, OLEDB & ODBC]] 36 | ** FAQ 37 | ***_ [[https://sqlha.com/allans-alwayson-availability-groups-faq/ SQLHA]] 38 | left side 39 | 40 | ** Setup 41 | *** Environment 42 | ****_ [[https://blog.kloud.com.au/2016/08/11/setting-up-always-on-availability-groups-for-sql-server-in-azure/ Azure VM]] 43 | ****_ [[https://ramprasadtech.com/ms-sql-alwayson-availability-groups-implementation-step-by-step-process/ On-Prem]] 44 | *** Database Management 45 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-group-add-a-database?view=sql-server-2017 Add DB]] 46 | ****_ [[https://mlichtenberg.wordpress.com/2016/02/02/how-to-restore-a-database-in-a-sql-server-alwayson-availability-group/ Restore]] 47 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/remove-a-primary-database-from-an-availability-group-sql-server?view=sql-server-2017 Remove DB via scripts]] 48 | ****_ [[https://www.mssqltips.com/sqlservertip/4819/remove-database-from-sql-server-alwayson-availability-group-secondary-replica/ Remove DB via UI]] 49 | ** Capacity 50 | *** Max Databases 51 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/prereqs-restrictions-recommendations-always-on-availability?redirectedfrom=MSDN&view=sql-server-ver16#RestrictionsAG 10AGs & 100 DBs tested by MSFT]] 52 | ****_ [[https://www.red-gate.com/simple-talk/databases/sql-server/database-administration-sql-server/alwayson-availability-groups-what-not-to-do-when-adding-databases/ Calculations]] 53 | *** Max Replicas 54 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/prereqs-restrictions-recommendations-always-on-availability?redirectedfrom=MSDN&view=sql-server-ver16#RestrictionsAG 1 Primary + 8 async secondary ]] 55 | ***_ [[https://www.sqlshack.com/max-worker-threads-for-sql-server-always-on-availability-group-databases/ Max Worker Threads]] 56 | ** Troubleshooting 57 | *** Where to look 58 | **** Always on AG Dashboard 59 | **** DMVs 60 | *****_ [[https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-availability-replicas-transact-sql?view=sql-server-2017 sys.availability_replicas]] 61 | *****_ [[https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-hadr-database-replica-states-transact-sql?view=sql-server-2017 sys.dm_hadr_database_replica_states]] 62 | ****_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/sql-server-error-log-always-on-availability-groups?view=sql-server-ver16 SQL Error logs]] 63 | ***_ [[https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/troubleshoot-always-on-availability-groups-configuration-sql-server?view=sql-server-2017 Configuration]] 64 | *** Network 65 | ****_ [[https://techcommunity.microsoft.com/t5/datacat/alwayson-availability-groups-listener-named-instances-port/ba-p/305210 Ports]] 66 | **** Bandwidth 67 | *** [[https://www.sqlshack.com/measuring-availability-group-synchronization-lag/ Measure sync lag]] 68 | 69 | legend right 70 | Left Side - Environment setup, Troubleshooting 71 | Right Side - Concepts and things to know before using 72 | 73 | endlegend 74 | @endmindmap 75 | @enduml -------------------------------------------------------------------------------- /programming/database/sql-server/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to Microsoft SQL Server technology 2 | -------------------------------------------------------------------------------- /programming/database/sql-server/sql-server-performance.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption Mind map of SQL Server performance considerations 4 | title Mind map on SQL Server Web Performance 5 | center header 6 | SQL Server Web Performance 7 | endheader 8 | 9 | center footer JoymonOnline 10 | * <&flag>SQL-Performance 11 | ** Client app 12 | *** Cache 13 | **** Metadata to reduce calls 14 | **** Data for short time 15 | *** Background jobs 16 | ** <&globe>TSQL 17 | *** DDL 18 | **** Triggers 19 | **** Indexes 20 | **** In-memory table 21 | *** DML 22 | **** Select * 23 | **** Filter rows 24 | **** udf calls 25 | **** like %% 26 | **** Dynamic objects 27 | *** Cursor 28 | *** re-compile 29 | ** Waits 30 | *** [[https://www.sqlskills.com/wp-content/uploads/2014/04/sql-server-performance-tuning-using-wait-statistics-whitepaper.pdf Tune wait stats]] 31 | ** Memory 32 | *** Page lift expectancy 33 | left side 34 | 35 | ** <&globe>Setup & Infra 36 | *** Connectivity 37 | **** Bandwidth with clients 38 | **** Protocol 39 | *** Storage 40 | **** Temp db file location 41 | **** Partitioning 42 | **** File growth 43 | *** [[https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-2017 Flags]] 44 | *** HA & DR 45 | **** Always On HighAvailability 46 | ***** Connectivity <-> replica 47 | **** SQL FCI + LogShipping 48 | *** Index maintenance 49 | *** Azure SQL VM Considerations 50 | ** Tools & monitoring 51 | *** SQL 52 | **** Log data points 53 | ***** [[https://docs.microsoft.com/en-us/archive/blogs/psssql/sql-server-correlating-timestamps-from-various-data-points Correlating timestamps]] 54 | **** SQL Profiler 55 | **** Extended Events 56 | **** [[https://www.sqlshack.com/sql-server-query-store-overview/ Query Store]] 57 | **** Reports 58 | **** PSSDiag 59 | *** OS 60 | **** Perfmon 61 | **** Resource monitor 62 | legend right 63 | Left Side - SQL Server setup, maintenance 64 | Right Side - Databases and applications 65 | 66 | endlegend 67 | @endmindmap 68 | @enduml -------------------------------------------------------------------------------- /programming/dot-net/dotnet-console-nugets.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | center header 4 | .Net Console App Development 5 | endheader 6 | 7 | title Mind map of useful nuget packages for console application development 8 | 9 | * <&flag>Console App 10 | ** <&globe>CommandLine 11 | *** Simple - [[https://github.com/bilal-fazlani/CommandDotNet CommandDotNet]] 12 | *** Sophisticated [[https://github.com/commandlineparser/commandline CommandLineParser]] 13 | ** Menu driven 14 | *** [[https://github.com/damianh/EasyConsoleStd EasyConsoleStd]] 15 | ** REPL 16 | left side 17 | ** User Interface 18 | *** Tables 19 | *** Markdown 20 | ****_ [[https://github.com/spectreconsole/spectre.console Spectre.Console]] 21 | *** Dialogs 22 | ****_ [[https://github.com/migueldeicaza/gui.cs Gui.cs]] 23 | 24 | legend right 25 | Other lists 26 | - [[https://github.com/quozd/awesome-dotnet#cli Awesome curated list]] 27 | More 28 | - Some nugets are applicable for other type of applications such as desktop, web etc.. 29 | 30 | endlegend 31 | caption Mind map of .Net performance considerations 32 | center footer JoymonOnline 33 | @endmindmap 34 | @enduml 35 | -------------------------------------------------------------------------------- /programming/dot-net/dotnet-web-performance.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption Mind map of .Net performance considerations 4 | title Mind map on .Net Web Performance 5 | center header 6 | .Net Web Performance 7 | endheader 8 | 9 | * <&flag>Performance 10 | ** <&globe>Server 11 | *** IIS 12 | **** AppPool config 13 | ***** Recycle 14 | ***** Idle timeoue 15 | ***** Always on 16 | ***** Timeouts > 30 s 17 | *** .Net Code 18 | **** ADO.Net 19 | ***** [[https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-connection-pooling Connection pooling]] 20 | ***** Connection leak 21 | ***** Timeouts 22 | ****** CommandTimeout 23 | ****** ConnectionTimeout 24 | **** ThreadPool Size 25 | **** Caching 26 | ***** Metadata Caching 27 | ***** Transaction data caching\nless time 28 | **** Poor Logic 29 | **** Multiple hops to serve request 30 | *** Database 31 | **** SQL Server 32 | *** I/O 33 | **** File 34 | **** Outbound network 35 | **** Logging overhead 36 | ** <&graph>Network 37 | *** [[https://docs.microsoft.com/en-us/windows/client-management/troubleshoot-tcpip-port-exhaust Port exhaustion]] 38 | *** Application / Security Gateway delay 39 | *** Load balancer 40 | **** LB Algorithm 41 | **** Sticky session 42 | *** latency 43 | **** Multiple hops 44 | **** Devices and bandwidth 45 | ** <&pulse>Authentication 46 | *** Windows 47 | **** Kerberos missing? 48 | **** Latency to AD 49 | 50 | left side 51 | 52 | ** <&globe>Browser 53 | *** static contents 54 | **** Bundling / Modules 55 | **** Minification 56 | **** Lazy loading 57 | *** Caching 58 | **** JavaScript Caching 59 | ***** Angular cache object 60 | **** HttpCaching 61 | ***** Expires header 62 | ***** cache-control 63 | **** ETag 64 | **** IndexedDB 65 | **** Cache API 66 | *** Requests 67 | **** Compression 68 | ***** gzip 69 | **** High payload > 70KB 70 | **** Unwanted 71 | **** Duplicate 72 | **** AJAX 73 | ***** No of retries 74 | ***** JSON 75 | ****** [[https://www.newtonsoft.com/json/help/html/ReducingSerializedJSONSize.htm Attribute size]] 76 | ****** Empty values 77 | **** File upload 78 | ***** Chunked 79 | ***** File Input 80 | **** static 81 | ***** Bundling 82 | ***** Minification 83 | ***** sprite images 84 | *** WebSockets 85 | ** <&people>Protocols 86 | *** http 1.1 => <&star>Http/2 87 | 88 | center footer JoymonOnline 89 | 90 | legend right 91 | Left Side - Browser 92 | Right Side - Network, infrastructure & servers 93 | What is not covered 94 | Desktop & mobile apps connecting to web services 95 | endlegend 96 | @endmindmap 97 | @enduml -------------------------------------------------------------------------------- /programming/dot-net/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to .Net Framework 2 | -------------------------------------------------------------------------------- /programming/dot-net/system-reactive.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption Mind map of front end browser tools and tech 4 | title Mind map of front end browser application development 5 | center header 6 | Mind map of front end development 7 | endheader 8 | * <&flag>Reactive extensions\nSystem.Reactive nuget 9 | ** Observable -Creation 10 | ** Scheduler 11 | ** Async 12 | ** Exception handling 13 | ** Custom observable 14 | left site 15 | ** Concepts 16 | ** Resources 17 | *** reactivex.io 18 | *** introtorx.com 19 | *** rxmarbles.com 20 | *** github.com/ReactiveX 21 | *** reactiveui.net 22 | *** https://github.com/TheEightBot/Reactive-Examples 23 | *** Videos 24 | **** [[https://www.youtube.com/watch?v=OAUHDwwGGM0 Tamir Dresher — Reactive Extensions (Rx) 101]] 25 | **** [[youtube.com/watch?v=NcoNYo3MYbo Rx.NET, from the inside out by Stas Rivkin]] 26 | center footer JoymonOnline 27 | legend right 28 | Left Side - Standards, platform and editors 29 | Right Side - Frameworks, tools and libaries 30 | Server side - Omitted to focus on browser side. 31 | endlegend 32 | @endmindmap 33 | @enduml -------------------------------------------------------------------------------- /programming/humane-code-review.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Code review - Checklist and how to do it humane way 4 | endheader 5 | title Code review 6 | * <&flag> Code review 7 | ** Why we code review? 8 | *** Functionality 9 | *** Regulatory Requirements 10 | ****_ PII 11 | ****_ Protocols 12 | *** Design flaws 13 | **** Race conditions 14 | **** Edge 15 | **** Here or libary 16 | *** Clarity 17 | *** Coherence 18 | **** DI 19 | **** SOLID 20 | *** Necessity 21 | **** YAGNI 22 | **** Unused, dead code 23 | **** Removed feature 24 | 25 | ** What not to do 26 | *** Personal 27 | ****_ Not to show reviewer is techie 28 | ****_ Review code not coder 29 | ****_ Code review > 1 hour 30 | ****_ Code review at end 31 | *** Assumptions 32 | *** Sarcasam 33 | *** Subjective comments 34 | ****_ totalUsers to countOfTotalUsers 35 | ****_ This is wrong 36 | *** Negative tone 37 | *** Process loop hole 38 | ****_ Bias on superhero code 39 | ****_ Bypass senior code 40 | ****_ Bypass release day commits 41 | ****_ Skip copy pasted code 42 | ****_ Skip library validation 43 | ****_ Comments in mail instead of source control 44 | ***_ Manual review of indentation, naming etc... 45 | 46 | left side 47 | ** Bitter reality 48 | *** There is no perfect code 49 | ****_ Look at your 1 year old code 50 | *** No silverbullet 51 | ****_ There is no always or never. All case by case. 52 | 53 | ** What to do 54 | *** Setup team working agreement 55 | **** Conventions 56 | **** Process 57 | *****_ Time for code review fixes 58 | 59 | *** Automated tools 60 | **** Test coverage 61 | **** Indentation, linting 62 | **** Cyclomatic complexity 63 | **** Scan 64 | *****_ Security 65 | *****_ Third party libraries 66 | **** Min 2 mandatory review for PR 67 | **** No direct check-in to main branch 68 | *** Personal 69 | **** Understand context 70 | *****_ Why this change? 71 | *****_ Done by new joinee? 72 | *****_ Done under pressure? 73 | *****_ Is dev confident? 74 | **** Try to get a meeting 75 | **** Appreciate the good 76 | **** Get opinions 77 | *****_ Ask how to improve 78 | *****_ Show how others did 79 | *** Review 80 | **** Design 81 | *****_ Backward compatibility 82 | *****_ Single point of failures 83 | **** NFR 84 | *****_ Documentation updated? 85 | *****_ Does it break load balancing? 86 | *****_ Any change in networking? 87 | *****_ Rate limits 88 | *****_ Resource usage 89 | ******_ Performance 90 | ******_ Memory 91 | *** Objective comments 92 | **** Show samples 93 | ***** Where it will fail 94 | ******_ Down stream dependency 95 | ******_ Running inside container 96 | ***** When it will fail 97 | ******_ Leap day 98 | ******_ Accessed from eastern countries 99 | 100 | legend right 101 | Inspired by the Linked in course [[https://www.linkedin.com/learning/inclusive-tech-conducting-humane-code-reviews/code-reviews-heated-but-needed?u=89254810 Inclusive Tech: Conducting Humane Code Reviews]]. But has my my own points. 102 | Left Side - What to do 103 | Right Side - Others 104 | [[https://joymonscode.blogspot.com/2017/05/toolbox-for-open-source-developers.html Old plain list]] 105 | 106 | endlegend 107 | caption Software development - Programming - Conducting humane code reviews - Mind Map - Updated on 2022-04-13 108 | center footer JoymonOnline 109 | 110 | @endmindmap 111 | -------------------------------------------------------------------------------- /programming/microsoft-365/sharepoint/api-dotnet-sdk.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | SharePoint Online 4 | endheader 5 | title SharePoint Online - API and .Net SDK model 6 | 7 | * **SharePoint Online** 8 | * Graph API\n[[https://graph.microsoft.com/]] 9 | * v1.0 10 | * [[https://www.nuget.org/packages/Microsoft.Graph/ Microsoft.Graph nuget]] 11 | * [[https://devblogs.microsoft.com/microsoft365dev/microsoft-graph-net-sdk-v4-now-generally-available-with-streamlined-authentication-and-more/ v4]] 12 | * [[https://devblogs.microsoft.com/microsoft365dev/microsoft-graph-net-sdk-v5-is-now-generally-available/ v5]] breaking changes from v4 13 | * PnP.Core 14 | *_ When [[https://pnp.github.io/pnpcore/using-the-sdk/basics-apis.html#sharepoint-rest-versus-microsoft-graph context.GraphFirst=true]] 15 | * beta 16 | * [[https://www.nuget.org/packages/Microsoft.Graph.Beta Microsoft.Graph.Beta nuget]] 17 | * PnP.Core 18 | *_ Control via [[https://pnp.github.io/pnpcore/using-the-sdk/basics-apis.html#graph-v1-versus-graph-beta context.GraphCanUseBeta and GraphAlwaysUseBeta]] 19 | 20 | left side 21 | ** SharePoint API\nor\nCSOM API\n[[https://.sharepoint.com/ https://.sharepoint.com/]] 22 | *** [[ /_vti_bin/client.svc]] 23 | ****[#Orange] [[https://github.com/pnp/pnpcore#what-underlying-apis-are-used PnP.Core]] 24 | ****[#LightGreen] [[https://www.nuget.org/packages/PnP.Framework/ PnP.Framework nuget]] 25 | *** [[https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/get-to-know-the-sharepoint-rest-service?tabs=csom /_api]] 26 | ****[#Orange] PnP.Core 27 | ****[#LightGreen] [[https://www.nuget.org/packages/PnP.Framework/ PnP.Framework nuget]] 28 | *** [[https://learn.microsoft.com/en-us/sharepoint/dev/apis/sharepoint-rest-graph /_api/v2.0]] 29 | ****[#Orange] PnP.Core 30 | *** [[https://powerusers.microsoft.com/t5/General-Power-Automate/Sharepoint-Site-Collection-Id-and-Site-Web-Id-Information-using/td-p/2038311 /_api/v2.1]] (Undocumented) 31 | ****[#Orange] [[https://github.com/pnp/pnpcore/blob/26b5ee466115bca6b0922164c17cd509600d4c1b/docs/using-the-sdk/taxonomy-intro.md?plain=1#L52 PnP.Core\ncustom invoke]] 32 | 33 | legend right 34 | # Use the beta endpoints at your own risk 35 | # [[https://learn.microsoft.com/en-us/previous-versions/office/sharepoint-csom/jj193041(v=office.15) CSOM reference]] 36 | endlegend 37 | 38 | caption SharePoint Online API and SDK - 2023-06-18 39 | 40 | @endmindmap -------------------------------------------------------------------------------- /programming/microsoft-365/sharepoint/throttling-flow.puml: -------------------------------------------------------------------------------- 1 | @startuml "Throttling" 2 | center header 3 | Microsoft 365 - Throttling in SharePoint 4 | endheader 5 | 6 | title SharePoint Online - Throttling 7 | 8 | start 9 | if (User or App based auth) then (User) 10 | :Its more of fair use policy than throttling. 11 | Throttling numbers are not available; 12 | if(ROPC flow from daemon\n User from client application?) then ([[https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc ROPC]]) 13 | :Depends on replica's of daemon. 14 | Lucky if it works. Better forget this way.; 15 | else (User) 16 | :Less chance of throttling; 17 | endif 18 | else (App based) 19 | if (Did app reach [[https://learn.microsoft.com/en-us/graph/throttling-limits#ms--in-this-article 2000 reqs/sec]] \n across all tenants) then (yes) 20 | :Throttled; 21 | else (no) 22 | :Understand the black magic of \n[[https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#application-throttling requests to resource units]]; 23 | if(App reached per minute\nresource quota?) then (yes) 24 | :Throttled; 25 | note left: More licenses in tenant,\nmore quota. 26 | else (no) 27 | if(App reached daily\nresource quota?) then (yes) 28 | :Throttled; 29 | note right:Per minute quota \nnot for all minutes of day. 30 | else (no) 31 | if(Is it search query \nwith [[https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#when-using-app-only-authentication-with-sitesreadall-permission specific permissions]]\n and app making > 25 requests/sec?) then (yes) 32 | :Throttled; 33 | else (no) 34 | if(Is it people search query, \nmore than 25 #requests/sec \nfrom [[https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#when-searching-for-people-search-results entire organization]]) then (yes) 35 | :Throttled; 36 | else (no) 37 | if(Other undocumented\nlimits hitting?) then (yes) 38 | :Throttled; 39 | else (no) 40 | :[[https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#how-to-decorate-your-http-traffic Decorate requests]] to get priority.\nThis doesn't mean will not throttled; 41 | stop 42 | endif 43 | endif 44 | endif 45 | endif 46 | endif 47 | endif 48 | endif 49 | partition Retry { 50 | if(Ready to take adventure with\n[[https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#ratelimit-headers---preview preview/beta features]]) then (yes) 51 | if(RateLimit-Reset header\npresent in response?) then (yes) 52 | :wait for seconds(RateLimit-Reset); 53 | else (no) 54 | :wait for seconds(Retry-After); 55 | endif 56 | else (no) 57 | :wait for seconds(Retry-After); 58 | endif 59 | :Retry in code [[https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online#retry-after-header Retry-After]]; 60 | } 61 | legend right 62 | References 63 | * [[https://learn.microsoft.com/en-us/graph/throttling Microsoft Graph Throttling]] 64 | * Non MSFT blog telling [[https://www.spdoctor.com/articles/Microsoft_Graph_-_Don't_Get_Throttled!.html 10000 requests/ 10 minutes]] 65 | * [[https://learn.microsoft.com/en-us/office365/servicedescriptions/sharepoint-online-service-description/sharepoint-online-limits Other limits such as file size]] 66 | endlegend 67 | caption Microsoft 365 - Throttling flow - Updated on 2023-06-08 68 | end 69 | @enduml -------------------------------------------------------------------------------- /programming/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to Programming 2 | -------------------------------------------------------------------------------- /programming/web-front-end/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to front end web application development 2 | -------------------------------------------------------------------------------- /programming/web-front-end/static-site-generators/hugo.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | title Mind map of Hugo 4 | center header 5 | Static Site Generators - Hugo 6 | endheader 7 | 8 | caption Mind map of Static Site Generator - Hugo 9 | center footer JoymonOnline 10 | * <&flag>Hugo 11 | ** WebAPIs 12 | *** Auth only via URL\nNo OAuth or other types 13 | *** Call during page build not from browser 14 | *** Types 15 | **** getJSON 16 | **** [[https://gohugo.io/templates/data-templates/#data-driven-content getCSV()]] 17 | left side 18 | ** Arche 19 | ** Content 20 | *** [[https://gohugo.io/content-management/front-matter/ Front matter]] 21 | *** [[https://gohugo.io/content-management/shortcodes/ Shortcodes]] 22 | ** [[https://gohugo.io/templates/data-templates/ Data Templates]] 23 | *** [[https://gohugo.io/templates/lookup-order/ Lookup order]] 24 | *** Types 25 | **** [[https://gohugo.io/templates/homepage/ Home page]] 26 | **** [[https://gohugo.io/templates/single-page-templates/ Single page]] 27 | **** [[https://gohugo.io/templates/lists/ List page template]] 28 | legend right 29 | Left Side - Concepts 30 | Right Side - Use cases, designs, FAQ & hacks 31 | endlegend 32 | @endmindmap 33 | @enduml -------------------------------------------------------------------------------- /programming/web-front-end/static-site-generators/readme.md: -------------------------------------------------------------------------------- 1 | # Mind maps related to Static site generators or JAMstack applications 2 | -------------------------------------------------------------------------------- /programming/web-front-end/tools-tech.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | @startmindmap 3 | caption Mind map of front end browser tools and tech 4 | title Mind map of front end browser application development 5 | center header 6 | Mind map of front end development 7 | endheader 8 | 9 | center footer JoymonOnline 10 | * <&flag>Front end 11 | ** Frameworks 12 | *** Angular 13 | *** React 14 | *** Vue 15 | ** State management 16 | ** Module/Bundling 17 | *** Webpack 18 | *** Rollup 19 | *** Parcel 20 | ** Task runners 21 | *** npm scripts 22 | *** PowerShell 23 | *** gulp 24 | *** grunt 25 | ** Styling 26 | *** frameworks 27 | **** Bootstrap 28 | *** Preprocessors 29 | **** LESS 30 | **** SASS 31 | ** Linting 32 | ** Testing 33 | *** Jasmine 34 | *** Mocha 35 | *** Jest 36 | *** Puppeteer 37 | left site 38 | ** Standards 39 | *** HTML 40 | *** CSS 41 | *** JavaScript 42 | *** WebAssembly 43 | ** Browsers 44 | *** Modern 45 | **** Chrome 46 | **** Edge on Chrome 47 | **** Firefox 48 | **** Mobile browsers 49 | *** Legacy 50 | **** IE 51 | **** Edge 52 | ** Language 53 | *** TypeScript 54 | *** EC6 and above 55 | 56 | ** Platform 57 | *** NodeJS 58 | ** Editor 59 | *** VS Code 60 | ** Source control 61 | *** GitHub 62 | ** DevOps 63 | *** AppVeyor 64 | *** TravisCI 65 | *** Github actios 66 | *** Azure DevOps 67 | legend right 68 | Left Side - Standards, platform and editors 69 | Right Side - Frameworks, tools and libaries 70 | Server side - Omitted to focus on browser side. 71 | endlegend 72 | @endmindmap 73 | @enduml -------------------------------------------------------------------------------- /software-tools/personal-tools.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Software tools - I am using 4 | endheader 5 | title Software technologies, tools and utilities - Personal Use 6 | caption Software technologies, tools and utilities - Mind Map - Updated on 2020-05-17 7 | center footer JoymonOnline 8 | * <&flag> Software 9 | ** Design 10 | *** Diagrams - [[https://en.wikipedia.org/wiki/PlantUML PlantUML]] - ([[https://www.youtube.com/watch?v=Zt3Bj1HMJ8g Set up video]]) 11 | *** Documentation - [[https://en.wikipedia.org/wiki/Markdown Markdown]] 12 | ** Technologies 13 | *** Scripting 14 | **** PowerShell 15 | *** Container 16 | **** Docker 17 | *** Automation / NoCode 18 | **** [[https://zapier.com/home Zapier]] & [[https://gist.github.com/joymon/89aeb18bef588895426b46a54e2ba970 others]] 19 | *** Visualization 20 | **** Power BI 21 | ** IDE/Editor 22 | *** [[https://code.visualstudio.com/ VS Code]] 23 | *** [[https://notepad-plus-plus.org/ Notepad++]] 24 | 25 | ** Media 26 | *** Photos 27 | **** Screenshot - Snipper 28 | **** Vector 29 | ***** Editing 30 | ****** Desktop [[https://inkscape.org/ Inkspace]] 31 | ****** Online [[https://vectr.com/ Vectr]] 32 | ***** Stock 33 | ****** [[https://www.vectorstock.com/ VectorStock.com]] 34 | **** Raster photos 35 | ***** Desktop - [[https://www.getpaint.net/ Paint.Net]] 36 | ***** Online - [[https://www.photopea.com/ PhotoPea]] 37 | **** Design 38 | ***** Spark, [[https://snappa.com/ Snappa]], [[https://www.canva.com/ Canva]], [[https://www.befunky.com/ Befunky]] 39 | ***** Converters 40 | ****** [[https://gifrun.com/ YouTube To GIF]] 41 | *** Video 42 | **** Player - [[https://www.videolan.org/vlc/download-windows.html VLC]] 43 | **** [[https://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind-maps/technology/master/media/video/publishing.puml Production]] 44 | *** Audio 45 | **** Record, edit, noise removal - [[https://www.audacityteam.org/download/ Audacity]] 46 | 47 | left side 48 | 49 | **_ Task management 50 | *** [[https://trello.com/ Trello]] 51 | ** System 52 | *** OS 53 | **** Windows 11 54 | ***** [[https://github.com/joymon/win10-dev-box-setup Environment setup]] 55 | ****** Choco+PowerShell 56 | ***** [[https://www.av-test.org/en/antivirus/home-windows/ Antivirus]] 57 | ****** Window defender 58 | ****** [[https://www.avg.com/ Avg]] 59 | *** Partitioning - [[https://www.diskpart.com/free-partition-manager.html AOMEI]] 60 | *** [[http://www.emptyloop.com/unlocker/ Unlocker]] 61 | ** Files 62 | *** Clean 63 | **** Find duplicate 64 | ***** [[http://www.alldup.info/en_download_alldup.php AllDup]] 65 | **** Cleaner 66 | ***** [[https://www.ccleaner.com/ CClearer]] 67 | *** Compare 68 | **** [[https://winmerge.org/?lang=en WinMerge]] 69 | *** Sync 70 | **** [[https://www.microsoft.com/en-us/download/details.aspx?id=15155 SyncToy]](Windows) 71 | *** Cloud storage 72 | **** GDrive, OneDrive 73 | ** Office 74 | *** Google Docs, Sheets 75 | *** Presentation slides 76 | **** [[https://revealjs.com/ RevealJS]] + [[https://marketplace.visualstudio.com/items?itemName=evilz.vscode-reveal VSCode Ext]] 77 | *** [[https://www.onenote.com/ One Note]] 78 | *** Writing 79 | **** Tools 80 | *****_ [[https://app.grammarly.com/ Grammarly]] 81 | *****_ [[https://hemingwayapp.com/ Hemingway]] 82 | *****_ [[https://quillbot.com/ QuillBot]] 83 | *****_ [[https://www.gingersoftware.com/ GingerSoftware]] 84 | ** Publishing 85 | *** Tools 86 | ****_ [[https://www.copyscape.com/ Copyscape]] 87 | *** Joymons 88 | **** Video 89 | ***** YouTube 90 | ******_ [[https://www.youtube.com/channel/UC78wYrq_keVaDV8STReHRxg Joymon v/s Code]] 91 | ******_ [[https://www.youtube.com/channel/UCzYqSifCwLYpmgRxvNo7BzA The J3D Family]] 92 | ******_ [[https://www.youtube.com/channel/UC1D3Fy0L0aoI0OfUEZnWy5A Johan & Jerin Playtime]] 93 | **** Blog 94 | ***** Blogger 95 | ******_ [[https://joymonscode.blogspot.com/ Joymon v/s Code]] 96 | ******_ [[https://joy-mon.blogspot.com/ എന്‍റെ ബ്ലോഗാന്വേഷണ പരീക്ഷണങ്ങള്‍]] ([[https://en.wikipedia.org/wiki/Malayalam Malayalam language]]) 97 | 98 | legend right 99 | All the tools are free, mostly open source. Except Win 10 100 | Left Side - Tools used for infrastructure and environment 101 | Right Side - Tools for personal projects 102 | [[https://joymonscode.blogspot.com/2017/05/toolbox-for-open-source-developers.html Old plain list]] 103 | 104 | endlegend 105 | 106 | @endmindmap -------------------------------------------------------------------------------- /software-tools/software-engineering-tools.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Software tools - I am using for personal Software engineering 4 | endheader 5 | title Software technologies, tools and utilities - Personal projects 6 | caption Software technologies, tools and utilities - Mind Map - Updated on 2020-05-17 7 | center footer JoymonOnline 8 | * <&flag> Software 9 | ** Make Money 10 | *** [[Algorithmia.com Algorithmia]] 11 | *** [[https://www.chargebee.com/pricing Chargebee]] 12 | ** Testing 13 | *** Unit 14 | **** MS Test, Jasmine, 15 | *** e2e 16 | **** Jest, Puppeteer 17 | *** Load 18 | **** [[http://blazemeter.com Blaze meter]] 19 | 20 | ** Cheatsheets 21 | *** [[https://dzone.com/refcardz DZone]], [[http://www.cheat-sheets.org/ Cheat-sheets]],[[https://www.cheatography.com/ Cheatography]] 22 | ** Public APIs 23 | *** [[https://www.programmableweb.com/ ProgrammableWeb]],[[https://any-api.com/ any-api]],[[https://apis.guru/browse-apis/ apis.guru]], [[http://www.apiforthat.com/ apisforthat]] 24 | ** SaaS 25 | *** Mail - [[https://mailchimp.com/ mailchimp]] 26 | *** SMS ?? 27 | ** Find vendors and third parties 28 | *** [[https://www.getapp.com/ GetApp.com]] 29 | *** [[https://www.whatasoftware.com/ Whatasoftware]] 30 | *** [[https://stackshare.io/ stackshare]] 31 | *** [[https://www.slant.co/ Slant.co]] 32 | ** Hosted tools 33 | *** RegEx 34 | *** [[https://countwordsfree.com/text-encode Html & Url encode and decode]] 35 | *** [[https://jwt.io JSON Web Token tester]] 36 | *** [[https://countwordsfree.com/jsonviewer JSON & XML Formatters]] 37 | ** Debugging 38 | *** .Net Code 39 | **** WinDbg, DebugDiag 40 | *** Performance 41 | **** Perfview 42 | *** Network 43 | **** Remote desktop connection manager 44 | **** [[http://www.plantuml.com/plantuml/proxy?fmt=svg&cache=no&src=https://raw.githubusercontent.com/mind*maps/software/master/debugging/windows*network*debugging.puml Network tools & cmds]] 45 | *** Decompile .Net - [[https://www.telerik.com/products/decompiler.aspx JustDecompile]] 46 | *** System 47 | **** [[https://docs.microsoft.com/en-us/sysinternals/ SysInternals]] 48 | *** Logs - [[https://lizard-labs.com/log_parser_lizard.aspx Log Parser Lizard]] 49 | 50 | ** Files 51 | *** Compare - WinMerge 52 | *** Unlocker 53 | 54 | left side 55 | 56 | ** Design 57 | *** Diagrams 58 | **** PlantUML 59 | **** Online 60 | ***** [[https://lucid.app Lucid Charts]] 61 | ***** [[https://creately.com Creately]] 62 | *** Documentation - Markdown 63 | ** Technologies 64 | *** [[https://forms.microsoft.com/ Forms, surveys, polls]] 65 | *** Automation / NoCode 66 | **** [[https://zapier.com/home Zapier]] & [[https://gist.github.com/joymon/89aeb18bef588895426b46a54e2ba970 others]] 67 | *** Visualization 68 | **** Power BI 69 | *** Scripting 70 | **** PowerShell 71 | *** Container 72 | **** Docker 73 | *** Full application 74 | **** NodeJS + NPM 75 | **** ASP.Net Core + Nuget 76 | 77 | ** DevOps 78 | *** Source control, tasks,issues - GitHub 79 | *** CI/CD 80 | **** GitHub Actions 81 | **** Previous 82 | ***** AppVeyor 83 | ***** TravisCI 84 | ** IDE/Editor 85 | *** Notepad++ 86 | *** Visual Studio 87 | **** Code 88 | **** 2019 Community 89 | 90 | ** Hosting 91 | *** Domain - GoDaddy (paid) 92 | *** Static site 93 | **** GitHub Pages 94 | *** APIs 95 | **** Azure App Service, Functions 96 | **** [[https://firebase.google.com/pricing Firebase]] 97 | **** WebTask.io 98 | ** Monitoring 99 | *** Ping 100 | **** Uptime check 101 | ***** [[https://uptimerobot.com/pricing UptimeRobot]] 102 | 103 | *** Hosted Log Aggregator 104 | **** [[https://www.loggly.com/plans-and-pricing/ Loggly]] 105 | **** [[https://www.papertrail.com/plans/ Papertrail]] 106 | **** [[https://sentry.io/pricing/ Sentry]] 107 | **** [[https://rollbar.com/pricing/ Rollbar]] 108 | **** [[https://www.bugsnag.com/pricing Bugsnag]] 109 | **** [[https://github.com/cheeaun/javascript-error-logging More]] 110 | legend right 111 | All the tools are free, mostly open source. 112 | Left Side - Tools used for software development 113 | Right Side - Debugging & Misc tools 114 | [[https://joymonscode.blogspot.com/2017/05/toolbox-for-open-source-developers.html Old plain list]] 115 | 116 | endlegend 117 | @endmindmap 118 | -------------------------------------------------------------------------------- /templates/mindmap.puml: -------------------------------------------------------------------------------- 1 | @startmindmap 2 | center header 3 | Header is thin and at top center 4 | endheader 5 | title Title is bold and center 6 | * <&flag> Center 7 | ** right side node 8 | ***_ this is line without rounded rectangle 9 | **: multiline 10 | node without \n; 11 | ***_ this is multi-line\nwith linefeed 12 | left side 13 | ** left side node 14 | 15 | **[#Orange] Orange 16 | 17 | legend right 18 | legend right with bullets 19 | # mm does not support notes 20 | 21 | endlegend 22 | 23 | caption this is caption at the bottom 24 | 25 | @endmindmap -------------------------------------------------------------------------------- /test-diagram.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | digraph world { 3 | size="7,7"; 4 | {rank=same; S8 S24 S1 S35 S30 T8 T24 T1 T35 T30;} 5 | 6 | {rank=same; 43 37 36 10 2;} 7 | {rank=same; 25 9 38 40 13 17 12 18;} 8 | {rank=same; 26 42 11 3 33 19 39 14 16;} 9 | {rank=same; 4 31 34 21 41 28 20;} 10 | {rank=same; 27 5 22 32 29 15;} 11 | {rank=same; 6 23;} 12 | {rank=same; 7;} 13 | S24 -> S8 14 | S8 -> 9; 15 | S24 -> 25; 16 | S24 -> 27; 17 | S1 -> 2; 18 | S1 -> 10; 19 | S35 -> 43; 20 | S35 -> 36; 21 | S30 -> 31; 22 | S30 -> 33; 23 | 9 -> 42; 24 | 9 -> T1; 25 | 25 -> T1; 26 | 25 -> 26; 27 | 27 -> T24; 28 | 2 -> {3 ; 16 ; 17 ; T1 ; 18} 29 | 10 -> { 11 ; 14 ; T1 ; 13; 12;} 30 | 31 -> T1; 31 | 31 -> 32; 32 | 33 -> T30; 33 | 33 -> 34; 34 | 42 -> 4; 35 | 26 -> 4; 36 | 3 -> 4; 37 | 16 -> 15; 38 | 17 -> 19; 39 | 18 -> 29; 40 | 11 -> 4; 41 | 14 -> 15; 42 | 37 -> {39 ; 41 ; 38 ; 40;} 43 | 13 -> 19; 44 | 12 -> 29; 45 | 43 -> 38; 46 | 43 -> 40; 47 | 36 -> 19; 48 | 32 -> 23; 49 | 34 -> 29; 50 | 39 -> 15; 51 | 41 -> 29; 52 | 38 -> 4; 53 | 40 -> 19; 54 | 4 -> 5; 55 | 19 -> {21 ; 20 ; 28;} 56 | 5 -> {6 ; T35 ; 23;} 57 | 21 -> 22; 58 | 20 -> 15; 59 | 28 -> 29; 60 | 6 -> 7; 61 | 15 -> T1; 62 | 22 -> T35; 63 | 22 -> 23; 64 | 29 -> T30; 65 | 7 -> T8; 66 | 23 -> T24; 67 | 23 -> T1; 68 | } 69 | @enduml 70 | --------------------------------------------------------------------------------