Skip to content

Design Patterns

IDEs :

VisualStudio :

How to format code in visual studio

To format a selection : Ctrl+K - Ctrl+F

To format a document: Ctrl+K - Ctrl+D

APIs :

Restfull API

REST APIs enable you to develop all kinds of web applications having all possible CRUD (create, retrieve, update, delete) operations.

FastAPI

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.

Typer

Typer is a library for building CLI applications that users will love using and developers will love creating. Based on Python 3.6+ type hints. It's kind of a version of FastApi for CLI.

RSTP

Real Time Streaming Protocol (RTSP)

Typically, an RTSP server will stream all the files from a certain folder.

Multicast Camra Frames over LAN

In this lesson, we are receiving frames from an IP camera using LiveThread and recast those frames to a multicast address using another LiveThread.

GitHub

How to manage Labels : Using github-label-manager tool (community dev)

OSSU :

Open Source Society University

Path to a free self-taught education in Computer Science!

Numfocus :

From Netflix to NASA, researchers use NumFOCUS sponsored projects to solve the most challenging problems. Explore our open source tools by language, features, or industry.

Funding Numpy, matplotlib, pandas, project jupyter....

Windows :

usefull shell commands :

command arguments description
ipconfig a classic. Get info mainly about local network of a computer
nbstat

Freeze a configuration for a multi user computer :

Faronics DeepFreeze - Not free : search for alternatives online

Conventions :

IDE flags :

Scannable notes in code :

TODO BUG XXX FIXME OPTIMIZE HACK

Styleguides :

Google styleguides

Model program structure :

  • Agent Interaction Diagram : a way to represent model diagram of agents interactions with a user.
  • UML (Universal Modeling Language) : Object oriented way to represent classes and their interactions - Easy to use with Java

​ https://plantuml.com/fr/guide

​ https://www.planttext.com/

MORJ data transfer with planttext :

morj_data_transfer

​ https://github.com/qjebbs/vscode-plantuml/blob/master/README.md

File path components :

/ -> root . -> THIS dir path .. -> go "up" one level

Examples :

/a/./b -> in /a/b /a/./b/.. -> /a/b/.. -> /a /a/./b/../.. -> /a/.. -> / /a/./b/../../c -> /c

File formats :

bin files advantages

The good point of these files is that writing/reading is fast with numpy arrays or memmap()

Fastest to slowest [ref]:

  • bin files (use with struct and an architecture descriptor)
  • feather / parquet
  • pickle

pandas optimisation with pandas.Categorical

There is a very high factor ratio for read / write times between string and pandas.Categorical based categorical indexing. Consider use that type of structure when using a DataFrame.

HDF file viewer

An official software called HDF View allows to inspect HDF files. It can be downloaded here.

  • HDF view (e.g. PyTables)

  • CSV

Readable by human :

  • config text files (e.g. ini)
  • yaml or yml files

For configurationtext files : stack exchange thread

.ini -style configuration files may have a format similar to this:

[heading1]
key1=value
key2=value

[heading2]
a=1
b=2

etc...

.conf -style configuration files are more varied. They may look similar to this:

# A comment
button 1 {
  name "hello"
  "text" hi.there
  "more..." {
    "something 123"  bla.bla "123"
  }
}

# Another comment
button 2 {
  # hello
  x=2
}

3D space computations :

Graphical 3D space mathematical programming courses & tutorials : Scratchpixel 2.0

Geometry homepage - Geometry 3D calculations

Machine Learning :

Google's machine learning crash course : 2021-10-14-Google_Developers-Machine_Learning_Crash_Course_…

FPGA deep learning tutorial

Convolution artificialNN guide

Deep learning eebook by matlab

Opening deeplearning black box : interpretability deep learning

Deep Learning : particularly good for solving Complex Systems where very well studied filds interacts with each other (proteomics, cellular biology, fluidics and immunology, for the adaptative imune system , many fields for neurosciences and consciousness, behavioral studies for bridges ! cf Veritasium video on Millenium bridge in London)

With interpretable deep learning : could open a new way in neurosciences.

Using Deep Learning to Predict Complex Systems: A Case Study in Wind Farm Generation

Recurrent Neuronal Networks :

Languages / Frameworks existing :

Tools

Tools_informatic

WEB frameworks

net_frameworks_informatics

Cloud platforms

informatics

Databases

databases_infrormatics

Old languages :

Cobol : COmmon Business Oriented Language

Some vocabulary :

Managed code :

is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI) or other types of virtual machines.Le terme de managed code provenant de Microsoft ne fait pas partie de la terminologie Java, mais le même concept existe : du code exécuté dans la JVM bénéficie de plusieurs avantages du code managé, dont notamment le ramasse-miettes.

Garbage colletor :

In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector attempts to reclaim memory which was allocated by the program, but is no longer referenced—also called garbage There is several strategies for automatic garbage detection.

Esoteric language or Esolang :

An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, as software art, as a hacking interface to another language (particularly functional programming or procedural programming languages), or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax,[1] have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.

Closures :

In programming languages, a closure, also lexical closure or function closure, is a technique for implementing lexically scoped name binding in a language with first-class functions. Operationally, a closure is a record storing a function[a] together with an environment.[1] The environment is a mapping associating each free variable of the function (variables that are used locally, but defined in an enclosing scope) with the value or reference to which the name was bound when the closure was created.[b] Unlike a plain function, a closure allows the function to access those captured variables through the closure's copies of their values or references, even when the function is invoked outside their scope.

Singletons :

In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one "single" instance. This is useful when exactly one object is needed to coordinate actions across the system.

The term comes from the mathematical concept of a singleton.

Code parfait Hamming, etc.

v=I0QRUrJDKJw