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, Mithril, React
 •
Data Visualisation: D3.js, Maps using Leaflet
 •
Realtime Error Monitoring: Sentry
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::Object, \Throwable::class],
    [IsType::Object, ProcessTrace::class]
  ];
  const P_stateFilter = [
    IsType::Null,
    IsType::Regexp,
    [IsType::Callable, [Hint::bool, ProcessState::class]],
  ];
  
  //...
Standard demultiplexer mechanism:
  /**
   * ProcessTrace constructor
   * @param null|\Throwable|ProcessTrace $origin
   */
  public function __construct($origin = null) {
    $originType = 
      ParamGuard::some($origin, self::P_traceOrigin);
    
    switch ($originType) {
      case IsType::Null: //...
      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

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