Ihr Partner in Web-Entwicklung

Innovative Ideen für Ihr Unternehmen

Web-Entwicklung

Egal ob neue Firmen-Webseite, CRM-System oder Spezial-Software. Wir sind ihr Ansprechpartner in Sachen Web-Entwicklung!

Wir erstellen Webseiten und Web-Applikationen nach ihren Wünschen und Anforderungen. Dabei setzen wir stehts auf die neusten Technologie- und Sicherheits-Standards.

Netzwerk Administration

Planung, Aufbau und Administration ihres kleinen bis mittelständigen Firmen-Netzwerkes.

Wir kümmern uns daraum dass es in ihrer Firma läuft. Wir planen, bauen und administrieren ihr Unternehmens-Netzwerk.

Linux Server Management

Aufbau, Instandhaltung und Wartung ihres Linux-Servers.

Wir bieten ihnen einen umfassenden Service für ihren Linux-Server. Wir sorgen dafür, dass alles auf dem neusten Stand ist und ihre Services verlässlich laufen. Dabei achten wir stehts auf die Sicherheit ihres Netzwerkes und ihrer Kunden.

Wer Sind Wir?

Software ist Analyse und Instrospektion. Um einen Prozess zu verstehen, betrachten wir ihn so lange bis wir ihn verstehen. Gute Software erklärt einen Prozess in einfachen Schritten.

Wir bauen Software aus Micro-Services, kleine Komponenten die eine kleine Aufgabe erledigen. Ein Service alleine ist nahezu nutzlos, aber wenn mehrere zusammenfließen - dann können sie komplexe Prozesse abbilden und verwalten.

Viele unserer Services sind Open-Source, so das sie von der Community geprüft und verbessert werden können. Das erlaubt uns transparente und effiziente Arbeit.

Wir ergänzen diese Services dann mit anderen Services die proprietär sind, und das geistige Eigentum ihrer Firma schützen. [Mehr erfahren?]

Wir möchten das unsere Kunden das Gefühl haben das dass was wir tun ganz einfach ist. Dann wissen wir das wir es richtig machen.

César

César

Inhaber & Entwickler

Sebastian

Sebastian

Entwicker

BLOG

Wir nutzen unseren Blog um uns mit anderen Entwicklern auszutauschen. Die Softwareentwickler Community ist global, und selten Deutsch sprechend. Unsere Artikel sind deshalb alle auf Englisch verfasst. Wir laden sie trotzdem ein sich umzuschauen.

Postal is awesome for incoming emails. Wildcards!

24/01/2020

I’m always surprised when I find little attention to detail inside of Postal. It supports wildcards and even partial wildcards.

This ticket on the Postal issues implies that routes like notifications-*@domain are not possible. But that’s actually not entirely true.

You can create a route called [email protected] and then send emails using [email protected]. The plus symbol is generally regarded as a way to route email wihin an inbox (this GMail post explains how it works) an postal supports this.

This makes it super easy to route stuff when it arrives into postal, and the application can then associate the part with the appropriate notification / thread / post / account by parsing the fragment.

I love finding out stuff like this when working with Postal.


: 0 : engineering, postal, email

Autoload your Classes

17/01/2020

This week I came to the point where I needed to load a bunch of classes, to get my project (a small self made PHP framework) to run. Luckily PHP has some builtin functions to to this.

The __autoload() function, which has been deprecated as of PHP 7.2.0. And the the newer spl_autoload_register() function. Which you should use now days.

A short example, using an anonymous function.

spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

This short function allows your script to load missing classes. Every time when you call a class which has not been loaded first, this function will be executed and loads the required class. This is very useful when you have a lot of classes and don’t want to load each class on every page-load.


: 0 : engineering, postal, ema

Woah, mysql_query() is still out there.

10/01/2020

Just trying to get a bit of steam out of my system. I just had a project that does still use the mysql_query functions for a bunch of things.

I started replacing them with mysqli_* counterparts, but now I’m considering if I should still shim the old functions so I can upgrade the PHP installation without having to refactor the entire thing before the upgrade to PHP7 is possible.

It would also make it possible to slowly test without having to deploy the entire thing without being able to test it properly locally, and without the risk of breaking absolutely everything when moving it towards production.


: 0 : engineering, postal, emaphp, mysql, legacy, engineering, software

The GLOB-Function

03/01/2020

Today I would like to talk about PHP’s glob() function. The glob() function searches for all the path-names matching a given pattern.

Example

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?> 

The above example will output something similar to:

funclist.txt size 44686

funcsummary.txt size 267625

quickref.txt size 137820

You can see that the function searched for all files with the file-extension “.txt”. Then each file was printed out with the filename and the size (with the help of the filesize() function). This can be used for creating a list of contents of a given path or even to include all, for example .php files in a directory.

Example

<?php
foreach (glob("*.php") as $filename) {
    include($filename);
}
?> 

: 0 : engineering, postal, emaphp, mysql, legacy, engineering, softwareprogramming, php, development

Been playing around a little with Jasmine for Javascript testing

27/12/2019

The first half of the holidays has charged me up with quite a lot of enthusiasm, so I thought I’d use today to play with a new toy. Jasmine is a BDD tool that looks an awful lot like the stuff that people use in Ruby.

You define a domain, by calling the describe function and then explain what it (whatever you defined) does and how it’s supposed to work.

The beauty of it, is that you’re left with a very readable testing code that produces a very readable output. For example:

define('Sum', function() {

  it('is commutative', function () {
    var a = 3;
    var b = 4;

    expect(a+b).toBe(b+a);
  });

  it('is associative', function () {
    var a = 3;
    var b = 4;
    var c = 5;

    expect( (a + b) + c).toBe(a + (b+c)); 
  });

});

The output usually is imilar to this

Sum
 - is conmutative
 - is associative

In either green, or red depending on whether the test succeeded or failed.

So far I’ve been liking it quite a lot better than Jquery’s QUnit and I am looking forward to playing around with it a bit further over the next week.

I’m hoping to build it into our toolkit and improve the reliability of our javascript overall.


: 0 : engineering, postal, emaphp, mysql, legacy, engineering, softwareprogramming, php, developmentengineering, javascript, js

Kontakt

Wir haben Ihr Interesse geweckt oder Sie möchten uns einfach eine Frage stellen?
Gerne können Sie uns eine E-Mail verfassen oder sich telefonisch bei uns melden.

Wir freuen uns auf Ihre Anfrage!

Magic3W
Pelkovenstr. 148
80992 München