text
Informatik Handwerk
Peter Fargas
Structural Programming
PHP | JavaScript | Java
Informatik Handwerk
Peter Fargas | Structural Programming | PHP,JavaScript,Java
Prototyping . Development
Crosscutting concerns –
aber auch Domain-spezifisch.
Crosscutting concerns – but also domain specific.
I prototype reusable components, which completely fill out the algebraic space and exhibit high consistency.
I prototype reusable components,
which completely fill out the algebraic space
and exhibit high consistency.
I do fundamental scientific research.
web
Apps, Interactive, CMS
 •
Backend: node.js, PHP
 •
Frontend: vanilla, JQuery, React
 •
Data Visualisation: D3.js, Maps using Leaflet
 •
Realtime Error Monitoring: Sentry
 •
Linux server: Ansible managed, Docker
Prototype
Chance Geo-Cash
Country-specific prices for digital goods
People from different countries have very different opportunities and purchasing power. I adjust the prices of my products and services accordingly.
People from different countries have very different opportunities and purchasing power.
I adjust the prices of my products and services accordingly.
For what I would charge a customer e.g. from Germany 82€, a customer from France would get for 70€, one from England for 76€ and one from Brazil only for 40€. Russian customer would be served with 43€, Czech for 69€.
The mathematical model is based on:
In this way, people around the world could get a similar chance to use the tools and information they want or need.
Source code
ParamGuard
Parameter-Validation of a higher order
Type-free Lanugages (PHP, JS) allow very user-friendly APIs. When unskillfully used, type inconsistencies in data-pipes appear. It is a most common bug source and discoverability is problematic.
Definition of composite Datatypes:
class ProcessTrace {
  
  const P_traceOrigin = [
    IsType::Null,
    IsType::Array,
    [IsType::Object, \Throwable::class],
    [IsType::Object, ProcessTrace::class]
  ];
  
  //...
Standard demultiplexer mechanism:
  /**
   * ProcessTrace constructor
   * @param null|array|\Throwable|ProcessTrace $origin
   */
  public function __construct($origin = null) {
    $originType = 
      ParamGuard::whichOf($origin, self::P_traceOrigin);
    
    switch ($originType) {
      case IsType::Null: //...
      case IsType::Array: //...
      case \Throwable::class: //...
      case ProcessTrace::class: //...
      default: ParamGuard::fallthrough($originType);
    }
    
    //...
  • standardized element with load capacity, universally applicable
  • several levels more thorough than classical validators
  • stronger than PHP 8.0 union types
  • best starting point for coverage testing
  • Production-ready: strict/performant, environment dependent
  • Set of tools of different expressiveness, pluginable
  • intuitiv to use and default sensible

Contact, de, en, sk

handwritten eMail-Address to avoid spam
0049 / 176 / 458 67 358
Leipzig, Germany
logo: LinkedIn

Privacy

This website does not use trackers or cookies.
Hosting provider keeps standard apache logs available for two weeks.

Sustainability Declaration

Source code distribution / clientele
I open-source only source code that e.g. cannot contribute to "dual-use-technology" or more precisely, cannot be used "universally".
My customers and partners share my views in such matters.
Bank
Triodos Bank (99 % CSR/ESG-Ranking)

Impressum according to german law

Informatik Handwerk
Postfach 31 02 44
04161 Leipzig
Germany
Peter Fargas
0176 / 458 67 358
Steuernr. 323/218/07170
Ust-IdNr. DE314942858