Blogartikel aus der Kategorie Softwareentwicklung

Künstliche Intelligenz im privaten und beruflichen Alltag

Gegenwart und Zukunft von künstlicher Intelligenz

Auch wenn man es kaum glauben mag, aber was im Bereich der künstlichen Intelligenz einst als ferne Zukunft galt, ist heute bereits allgegenwärtig. Selbstfahrende Autos, Sprachassistenten, neuronale Netzwerke. All diese Errungenschaften haben unser Leben in den letzten Jahren verändert. Wir möchten einen kurzen Überblick zum Stand der Dinge in Sachen KI im beruflichen und privaten Alltag geben.

Künstliche Intelligenz in Unternehmen

Viele Unternehmen benutzen neben smarten ERP-Systemen schon jetzt auch intelligente Algorithmen, welche den Mitarbeitern bspw. zeitaufwändige Aufgaben abnehmen.

1. Vor allem im Bereich Chatbots und künstliche Telefonie erreicht KI momentan ihren Durchbruch.

Die kürzlich vorgestellte Demo eines komplett autonomen Telefonanrufes von Google Duplex zeigt die Möglichkeiten der digitalen Kommunikation. Die Software führte eigenständig ein Telefonat durch, machte mit dem angerufenen Restaurant eine Reservierung zum Abendessen aus und fügte diese als Termin in den Kalender des Telefons ein.

Diese und weitere Routineaufgaben im Büro oder im Feierabend könnte künstliche Intelligenz uns künftig also auch auf mündlicher Ebene abnehmen.

2. Auch die Schrift- und Bilderkennung funktioniert dank künstlicher Intelligenz heutzutage schon tadellos.

Durch diese Funktionalität kann dem Anwender eine wesentlich intuitivere Nutzererfahrung geboten werden. So können z. B. handschriftliche Notizen digitalisiert, eingescannte Unterschriften erkannt oder Bildersammlungen nach Personen, Orten und Farbstimmungen vorsortiert werden. Unsere Softwareentwickler sind ihren Projekten stets daran orientiert, diese Nutzererfahrungen zu verbessern. Aus diesem Grund evaluieren wir ständig neue Methoden für ein besseres Nutzererlebnis.  

3. In der Medizin als Anwendungsgebiet rettet die KI Menschenleben.

Neben der großen Arbeitserleichterung durch künstliche Intelligenzen, bieten sie außerdem einen erheblichen Vorteil im medizinischen Bereich. Die frühzeitige Erkennung von Krankheiten ist hier ein wesentliches Einsatzfeld. Nur die intelligenten Algorithmen der KI können riesige Datenmengen aufnehmen, verarbeiten, bestimmte Vergleiche ziehen und so u. a. die Prävention unterstützen.

Wie lernt eine KI?

Wir greifen erneut zum Beispiel Google. Dessen quelloffenes Framework für künstliche Intelligenz und maschinelles Lernen “Tensor Flow” ist frei nutzbar und verfolgt zur Erstellung einer KI immer eine ähnliche Schrittweise: 

  1. Es müssen möglichst viele Datensätze einer bestimmten Sache vorliegen. Diese nutzt die KI dann zum Training.
  2. Ein grundlegendes Rechenmodell muss ausgewählt werden. Einige sind z. B. für die Bilderkennung, andere für bestimmte Spracherkennung ausgelegt und optimiert.
  3. Schließlich wird das Modell anhand der Datensätze aus Big Data trainiert.
  4. In verschiedenen Tests wird an neuen unbekannten Beispielen überprüft, wie genau die KI arbeitet.
  5. Nach erfolgreicher Absolvierung der Tests ist die Intelligenz nun praxistauglich.

Mithilfe intelligenter Algorithmen und moderner Frameworks kann Ihnen die kreITiv dabei behilflich sein, auch Ihre Geschäftsprozesse zu optimieren. Wir betrachten Projekte immer aus ganzheitlicher Sicht und stellen spezifisch Teams aus Softwareentwicklern, ERP- und IT-Spezialisten und der Onlinemarketing-Abteilung zusammen. > Kontaktieren Sie uns

Fragen und Antworten zum Einstieg als Programmierer bei kreITiv

Als Praktikant in der Welt der Programmierer und Softwareentwickler

Unser Praktikant Tony findet Antworten auf die 4 wichtigsten Fragen, die sich Schüler und Auszubildende beim Einstieg in die Welt von Softwareentwicklung und IT stellen sollten.

1. Welche Voraussetzungen sollte ich als Praktikant mitbringen?

Die junge Generation wächst heute ganz selbstverständlich mit dem Medium Internet, sowie Smartphones und Tablets auf. Aus dem normalen Alltag ist all das nicht mehr wegzudenken. Doch nur weil man diese nutzen und zu bedienen weiß, heißt das noch lange nicht, dass man die Strukturen dahinter nachvollziehen kann. Jedoch wird mit diesem Grundwissen der Einstieg in das Thema deutlich vereinfacht.

Programmieren ist nicht einfach; es zu erlernen erst recht nicht, denn anders als in herkömmlichen Berufen, entwickelt die Technik sich stetig weiter und die Herausforderungen wachsen mit jedem Projekt. Doch wer ein gewisses Maß an Vorstellungsvermögen und Bereitschaft sich dahinter zu klemmen hat, kann diese Hürde meistern. Eine weitere wichtige Vorrausetzung ist das grundlegende Interesse, diese technischen Vorgänge nachzuvollziehen, weil Fehlersuche zur täglichen Arbeit als Praktikant in der Webentwicklung gehört und sie teils viele Stunden in Anspruch nehmen kann.

2. Wie kann ich Programmieren lernen?

w3schools.com oder Codecademy.com sind gute Anlaufstellen für den Einstieg in Programmiersprachen wie HTML, CSS, Python, PHP, JavaScript. Beide ermöglichen das Programmieren lernen im Browser. Die meisten dieser Kurse sind kostenlos und reichen völlig aus für die Basics. Wer jedoch mehr lernen möchte, kann auch monatlich einen Festpreis dafür zahlen, um auf mehr Übungen und weitere Features Zugriff zu haben.

Die meisten Seiten, Videos und Tutorials sind auf Englisch, was zusätzlich die Sprachkompetenzen mit auffrischt – auch das ist für Entwickler ein Muss. Ebenso gibt es zahlreiche YouTube Channels, die spannende Tutorials vermitteln. Ich lerne z. B. gerade erste WordPress Plugins zu programmieren. Selbstverständlich muss man dabei viel nachschlagen und googeln, doch es macht Spaß, wenn durch die eingegebenen Codezeilen der Computer die Aktionen erwartungsgemäß durchführt und das richtige Ergebnis liefert.

3. Welche Arten von Programmierern gibt es?

Die IT-Branche ist heutzutage sehr weitläufig und bietet für Entwickler zahlreiche Einsatzgebiete, die für viele auch und gerade als Praktikant interessant sind. Unterteilen kann man grob in folgende Kategorien:

Webprogrammierer/innen:

Von einfachen Webseiten bis hin zu komplexen Webshops oder Onlinespielen gehört ein breites Spektrum zu den Aufgaben eines Webprogrammierers. Wichtige Bestandteile sind Skriptsprachen wie JavaScript, des weiteren serverseitige Programmiersprachen wie Python oder PHP und natürlich die Seitenbeschreibungssprachen wie HTML, CSS, XML.

Systemprogrammierer/innen Desktop, Großrechner:

Die Einsatzmöglichkeiten in der Systemprogrammierung sind sehr speziell. Dabei geht es von künstlicher Intelligenz (z. B. Spracherkennung und -verarbeitung) bis hin zu virtueller Realität.

Anwendungsprogrammierer/innen Apps für mobile Geräte:

Hier sollen Apps nach Kundenwünschen entworfen und angepasst oder selber eine zündende Idee umgesetzt werden. Von reinem Coding bis hin zum Design und Aufbau der App ist dieser Beruf sehr vielseitig, abwechslungsreich und aufgrund des sich stark in diese Richtung entwickelnden Marktes sehr zukunftsträchtig.

Anwendungsprogrammierer/innen Desktop:

Sie entwickeln Software speziell für individuelle Nutzer, testen diese und führen regelmäßig Updates durch. Außerdem verbessern sie die Anwendungen hinsichtlich der Funktionalität (Sicherheit, Design) und anpassen sie an den aktuellen Standard an.

4. Wie lange dauert das Programmieren lernen?

Dafür gibt es keinen Richtwert, viel mehr erfordert Programmierung ein lebenslanges Lernen. Die Grundlagen eignet sich jeder unterschiedlich schnell an, aber bis man mit einem Programm das erste Geld verdienen kann, vergehen sicher erst einmal ein paar Jahre.

Und so heißt es in der Softwareentwicklung vom Praktikant bis zum alten Hasen, sich ständig mit neuen Technologien und Sprachen zu befassen und immer am Ball zu bleiben. Auch nach dem aktuellen Mobile-Trend wird es wieder neue Entwicklungen und damit auch Aufgabenfelder für Programmierer geben.

 

Zusammenfassend kann man sagen, dass die Programmierung und Softwareentwicklung ein abwechslungsreicher, spannender und sich stetig entwickelnder Beruf ist. Du hast Lust auf eine neue Erfahrung? Hast schon sehr viele Jahre als Entwickler gearbeitet? Oder würdest gern mal als Praktikant in die Webentwicklung reinschnuppern? Dann findest du in den Stellenanzeigen der kreITiv vielleicht etwas passendes.

Ursprung und Vorteile reaktiver JavaScript Frameworks für moderne Benutzeroberflächen

Reaktive JavaScript Frameworks – Trend in der Entwicklung von Benutzeroberflächen

Reaktives Verhalten, Virtual DOM und Komponenten sind die wesentlichen Bestandteile von reaktiven JavaScript Frameworks und entscheidende Stichworte für den modernen Softwareentwickler bei der Erstellung von Benutzeroberflächen. Richtungsweisend für die Etablierung dieses Trends können die zahlreichen Entwicklungen der letzten Jahre sein, welche auf eben diesen Frameworks basieren, darunter große Projekte wie Netflix, Facebook, Instagram, WhatsApp oder AirBnB.

Wieso man diesem Trend folgen sollte und welche Vorteile er mit sich bringt, möchten wir in diesem Blogartikel aufzeigen.

Ein eindeutiger Trend, doch wo liegt der Ursprung?

In den vergangenen Jahren dominierten Libraries beziehungsweise Frameworks, wie jQuery oder Mootools, den Bereich der Benutzeroberflächenentwicklung. Nun lässt sich jedoch ein eindeutiger Wechsel in Richtung reaktiver JavaScript Frameworks erkennen.

Bei der Entwicklung von großen Webanwendungen kommt es zunehmend darauf an, eine vernünftige Codestruktur zu erzeugen. Vergleicht man hier als Beispiel jQuery mit Vue oder React als Vertreter der reaktiven Frameworks, so stellt man fest, dass jQuery keine Komponenten bietet.

Mittels Komponenten ist ein Entwickler in der Lage, Struktursprachen wie HTML und CSS mit der JavaScript-Logik innerhalb einer Datei zu bündeln. Diese kann dann an beliebiger Stelle innerhalb der Anwendung mehrfach verwendet werden. Zusätzlich besteht die Möglichkeit, diese Komponenten problemlos innerhalb einer anderen Anwendung zu nutzen. Die variabel einsetzbaren Codestrukturen werden dann in übersichtlicher Art und Weise miteinander verknüpft, sodass am Ende die Darstellung über eine Baumstruktur möglich ist.

Der zentrale Vorteil von reaktiven JS-Frameworks ist somit die Reduktion der Komplexität der Codestruktur. Sekundäre Ziele sind dabei die bessere Verständlichkeit und somit auch leichtere Wartung von komplexen Codestrukturen.

Was ist eigentlich dieses reaktive Verhalten?

Innerhalb einer Komponente kann der Entwickler zum Beispiel Formulardaten definieren, welche automatisch über das Model Binding der Logik zugänglich gemacht werden können. Bei jQuery muss an dieser Stelle mit Events gearbeitet werden, bei Vue und Co. ist dies praktisch nicht notwendig.

Zusätzlich gibt es neue Libraries, wie zum Beispiel Elements für Vue. Durch Elements kann ein Entwickler vorgefertigte Komponenten in seine Anwendung implementieren. Diese verfügen damit schon über eine gewisse Logik und sind auch komplett grafisch aufgearbeitet.

In Puncto Geschwindigkeit können reaktive JavaScript Frameworks natürlich auch bestehen, da mindestens ein virtuelles Strukturabbild des HTML-Dokuments im Speicher vorgehalten wird. Dadurch muss nicht das komplette HTML-Dokument neu geladen werden, wenn sich ein Teil dieser Struktur ändert. Der virtuelle DOM prüft selbstständig, welche Bereiche im Dokument neu gerendert werden müssen und imitiert genau dies automatisch. Damit ist die clientseitige Manipulation deutlich effizienter geworden.

Viele Vorteile rechtfertigen die höhere Entwicklungszeit

Fassen wir die zahlreichen Vorteile von reaktiven JavaScript Frameworks zusammen:

  • Wiederverwendbarer Code durch Komponenten

  • Bessere Wartbarkeit der Anwendung

  • Schnellerer Zugriff auf Daten dank Model Binding und reaktiven Verhaltens

  • Effizientere Manipulation von HTML-Strukturen

  • Höhere Geschwindigkeit

Natürlich besitzt jede neue Technologie auch ein oder zwei Schattenseiten. Im Fall von Vue ist dies der doch spürbar höhere Anspruch für die clientseitige Entwicklung. Das führt letztlich zu einer längeren Entwicklungszeit für eine Anwendung.

Zusammenfassend kann man jedoch sagen, dass der Trend eindeutig in Richtung reaktiver JavaScript Frameworks zeigt, da selbst das World Wide Web Consortium W3C an einer sehr analogen Technologie namens „Shadow DOM“ arbeitet.

Sinn und Zweck der Entwicklung eines Prototyps in einem Software-Projekt

3 Arten von Prototyping in der Softwareentwicklung

Prototyping ist ein seit langem verbreitetes Prinzip in der Softwareentwicklung. Doch um was genau handelt es sich dabei und was ist der Unterschied zu einem Mock-up?

Der Grund für die Existenz beider Prinzipien ist das Entwickeln einer gemeinsamen Basis, die dem Kunden auf der einen und dem Entwicklerteam auf der anderen Seite bei der Kommunikation helfen. Eine konkrete Modellierung hilft beiden Parteien, ein besseres Verständnis vom Zielsystem aufzubauen.

Dabei sind Prototypen funktionsfähige Entwürfe, die bereits grundlegende Funktionalitäten beinhalten. Mock-ups dagegen sind Attrappen und besitzen normalerweise keine Funktionalität, sind also nicht mit Programmlogik angereichert. Dafür können Mock-ups dem Kunden ein deutlicheres Bild vom Endergebnis vermitteln als ein teils funktionsfähiger Prototyp.

Ein Prototyp als erster Schritt zur Software

Prototyping steht am Anfang eines Softwareprojekts für die Entwicklung eines Musters. Es ist ein Verfahren, welches im Software-Engineering eingesetzt wird. Gegenstand des Prototypings ist die Entwicklung einer lauffähigen Software bzw. einer Softwarekomponente, die bestimmte Kernfunktionen abdeckt. Das Verfahren ist kostengünstiger, da es weniger Zeit in Anspruch nimmt als die Komplettentwicklung. Der Prototyp kann erstellt und getestet werden. Fehler können somit frühzeitig erkannt und Änderungswünsche besser berücksichtigt werden als bei der fertigen Software.

Empfehlenswert ist der Einsatz vor allem dann, wenn die endgültigen Anforderungen und Spezifikationen für die komplette Software noch nicht ausgearbeitet werden. Dabei kann man es als iterativen Prozess betrachten, der zwischen Entwicklerteam und Auftraggeber stattfindet.

Es haben sich unter anderem folgende Arten herausgebildet: Exploratives, experimentelles und evolutionäres Prototyping. Daneben gibt es noch das Rapid-Prototyping für die schnelle Herstellung eines Musters.

1. Exploratives Prototyping – Ermittlung verschiedener Lösungsansätze

Das explorative Prototyping dient dazu, den Entwicklern einen Einblick in den Anwendungsbereich zu vermitteln, mit dem Auftraggeber verschiedene Lösungsansätze zu diskutieren und die Realisierungsmöglichkeiten abzuschätzen. Dazu wird auf Grundlage der Anwendung und Kundenvorstellungen ein Prototyp entwickelt. Beim explorativen Prototyping geht es in erster Linie um die Funktionalität des Systems, weniger um dessen (optische) Qualität.

2. Experimentelles Prototyping – Verdeutlichung eines Gesamtsystems

Einen anderen Ansatz verfolgt das experimentelle Prototyping. Hierbei sollen sämtliche Teilsysteme für die spätere Implementierung vollständig definiert werden. Anschließend soll die Funktion der Teilsysteme nachgewiesen und die jeweiligen Schnittstellen überprüft werden. Im Vordergrund stehen also die Einzelkomponenten und ihr Zusammenspiel.

3. Evolutionäres Prototyping – Schrittweise zum Endprodukt

Beim evolutionären Prototyping geht es um eine stufenweise Systementwicklung. Das System soll schrittweise nach den exakten, definierten Spezifikationen aufgebaut werden. Jeder Zwischenschritt dient als Grundlage für die inkrementelle Weiterentwicklung, basierend auf weiteren Spezifikationen. Das evolutionäre Prototyping ist eine Vorgehensweise, bei dem der Prototyp grundsätzlich das fertige Produkt darstellt.

Softwareentwicklung bei der kreITiv

Zusammenfassend sehen wir Prototyping in der Softwareentwicklung als effiziente Technik, um die späteren Anwender frühzeitig und kontinuierlich in die Entwicklung einzubeziehen. Dadurch lässt sich das Risiko von Fehlentwicklungen reduzieren und Kunden sind mit dem Endergebnis deutlich zufriedener.

Auch wir als Team der kreITiv wissen um die Mehrwerte, die Prototyping mit sich bringt und setzen vermehrt auf dieses Werkzeug, um bei jedem Projekt von Anfang an mit dem Kunden ein einheitliches und gemeinsames Verständnis vom Endergebnis zu entwickeln.

Unser Überblick über die Arten von Schadsoftware für IT-Systeme

Arten von Schadsoftware im Überblick – Viren, Würmer und Trojaner

Schadsoftware gehört zu den größten Risiken für IT-Systeme. Hierbei existiert eine sehr große Bandbreite. Für eine sichere Erkennung und wirksame Abwehr ist das Wissen über die verschiedenen Arten von Schadsoftware grundlegend. Zwar kennt man im Allgemeinen die Begriffe “Virus”, “Trojaner” oder “Wurm”, aber was genau steckt dahinter und worin unterscheiden sich zum Beispiel “Adware” und “Scareware”? Wir haben eine kleine Kategorisierung vorgenommen, um Ihnen den Einstieg in diese Thematik zu erleichtern.

Computervirus – Die älteste und bekannteste Schadsoftware

Ein Virus verbreitet sich von Rechner zu Rechner, indem er Dateien mit seinem Code infiziert. Im Vergleich zu einem Wurm benötigt ein Virus immer die Hilfe des Anwenders, damit er aktiv wird. Folgende Arten von Computerviren sind verbreitet:

  • Dateiviren: Sie befallen ausführbare Dateien, die beispielsweise mit den Dateinamenserweiterungen “.exe” oder “.com” gekennzeichnet sind. Betroffen sind davon fast alle Bestandteile, von Windows bis hin zu installierten Programmen. Diese Art von Viren schreibt ihren Schadcode in die betroffene Datei. Nachdem der Nutzer die Datei startet, wird der Virus automatisch mit ausgeführt.
  • Bootviren: Sie infizieren Datenträger und verbreiten sich vor allem über USB-Sticks. Ihr Ziel ist der Bootsektor der Festplatte. Bei jedem Systemstart wird der Virus aktiviert und befällt weitere Sektoren oder andere Speichermedien. Heute ist diese Virenart allerdings nicht mehr sehr weit verbreitet, da moderne Rechner Manipulationen des Bootsektors relativ zuverlässig erkennen.
  • Makroviren: Sie verstecken sich in Word- oder Excel-Dokumenten. Beim Laden eines manipulierten Dokuments beginnt das Virus automatisch mit seiner Codeausführung. Diese reicht bis hin zum Löschen von Dateien.

Neben den klassischen Viren gibt es heutzutage jedoch eine ganze Bandbreite an weiteren Angreifern auf Privat- und Unternehmensrechner, IT-Systeme und auch Mobilgeräte, über die man Bescheid wissen sollte.

Der Schädlingskatalog, von A wie Adware bis T wie Trojaner

 

  • Adware

    Als Adware bezeichnet man kostenlose Angebote, die dem Nutzer auf seinem Endgerät Werbung anzeigen. Diese Programme verstecken ihre Absicht in der Regel nicht und bitten den Anwender vor der Installation um Zustimmung. Da es aber Anwendungen gibt, die zugleich Adware und Spyware darstellen, stehen alle Vertreter der Kategorie Adware unter dem prinzipiellen Verdacht, Spyware zu sein.

  • Computerwurm

    Die klassische Eigenschaft eines Computerwurmes ist die schnelle Verbreitung und der bevorzugte Weg der E-Mail-Anhang. Im günstigsten Fall besteht ihr Ziel in ihrer endlosen Vermehrung und der Belegung von Speicherressourcen. Das beeinträchtigt “nur” die Performance eines infizierten Rechners. Würmer haben jedoch bereits ganze Netzwerke stillgelegt. Zudem kommen viele Würmer nicht mehr allein: Ihr Code wird mit den Eigenschaften von Viren kombiniert oder sie haben sogar Trojaner mit an Bord.

  • Hoax

    Hoax bedeutet übersetzt “schlechter Witz” und wird allgemein für eine Falschmeldung benutzt. Derartige Meldungen werden oft mit der Bitte ergänzt, die Nachricht an Freunde oder Bekannte weiterzuleiten. Hoaxes sind nicht wirklich Malware, da sie normalerweise keine bösartigen Absichten verfolgen. Dennoch können solche “Scheinviren” gefährlich werden. Einige Hoaxes fordern den Nutzer zum Beispiel auf, bestimmte und zum Teil wichtige System-Dateien zu löschen.

  • Keylogger

    Ein Keylogger wird eingesetzt, um Tastatureingaben des Anwenders aufzuzeichnen. Kriminelle benutzen Keylogger, um persönliche Daten wie Passwörter direkt abzugreifen. Sie existieren mittlerweile auch auf Smartphones und Tablets und lesen hier die Eingabe auf virtuellen Tastaturen und Touchpanels mit.

  • Scareware

    Scareware dient dazu, Computeranwendern erst Angst zu machen und sie anschließend dazu zu verleiten, eine Software zu installieren. Normalerweise handelt es sich um professionell aufgemachte Programme, die vortäuschen, den Rechner auf Befall, Angriffe oder andere Probleme zu prüfen. Geht der Anwender darauf ein, erhält er anschließend einen umfassenden und beängstigenden Fehlerbericht. Dazu kommt eine Aufforderung, ein Programm zu installieren, das angeblich gefundene Viren oder Probleme entfernt. Natürlich werden von Scareware keine Tests durchgeführt. Auch die angeblichen Systemprobleme oder der scheinbare Virenbefall stehen schon vorher fest.

  • Spyware

    Spyware bezeichnet Programme, die Informationen über Anwender (wie persönliche Daten und Surfgewohnheiten) abgreifen und sie weiterleiten. Die Urheber können so beispielsweise Vorlieben des Anwenders ermitteln und gezielt Werbung auf dem Rechner platzieren. Spyware-Anbieter locken oft mit Tools oder anderer Freeware, in denen die Schadsoftware versteckt ist. Zunehmend wird Spyware auch über Trojaner und Würmer verbreitet.

  • Trojaner

    Als Trojaner bezeichnet man ein scheinbar harmloses Programm mit einer versteckten Schadensfunktion. Diese kann wiederrum ein Virus, Wurm oder Spyware sein. Mit den meisten Trojanern wird bezweckt, schädliche Programme auf den PC zu schleusen. Diese können anschließend unbemerkt sensible Daten wie Passwörter für Onlinebanking oder andere Zugangsdaten ausspähen und an den Urheber übermitteln. Die gefährlichste Form des Trojaners sind die Backdoor-Trojaner. Dabei handelt es sich um Programme, durch die ein Hacker direkt auf den befallenen Computer zugreifen kann.

Diese Liste ist nicht vollständig, da regelmäßig neue, unbekannte oder abgewandelte Formen von Schadsoftware entstehen. Gerade im Zuge der nach wie vor steigenden Nutzung von mobilen Endgeräten und der Heimautomatisierung eröffnen sich für Kriminelle neue Möglichkeiten, Schaden anzurichten.

Um auch auf zukünftige Gefahrenpotenziale vorbereitet zu sein, werden die Entwicklungen im Bereich Schadsoftware von den Mitarbeitern der kreITiv sehr genau verfolgt und regelmäßig diskutiert. Zusätzlich bilden die Empfehlungen und Richtlinien des BSI eine wichtige Grundlage für die Softwareentwicklung in der kreITiv.

Das Grundprinzip und die Einsatzmöglichkeiten von Blockchains

Die Blockchain – Eine sichere dezentrale Datenhaltung

Vielen ist der Begriff “Blockchain” aus dem Kontext der Kryptowährungen bekannt. Ihr berühmtester Vertreter ist der Bitcoin, der gleichzeitig die älteste noch bestehende Blockchain ist. Doch auch in anderen Bereichen können Blockchains zum Einsatz kommen und über die ursprüngliche Idee eines dezentralen Buchungssystems in der Finanzwelt weit hinausreichen.

Wozu eine Blockchain?

Grundsätzlich dienen sie der Verbesserung und Verifizierung von Transaktionen in verteilten Systemen.

Die Grundidee einer Blockchain ist es, einen weltweiten Austausch von Werten zu ermöglichen und dabei auf eine übergeordnete Aufsichtsinstanz, komplizierte Verifizierungsverfahren oder Gebühren zu verzichten.

Somit können bei Transaktionen Kosten gespart, Zeit gewonnen und Transparenz erhöht werden.

Wie funktioniert die Blockchain?

Sehr vereinfacht gesagt, ist die Blockchain eine sehr große, verschlüsselte Textdatei, die alle Transaktionen beinhaltet. Technisch gesehen, handelt es sich um eine Log-Datei, in der alle Peer-to-Peer-Verbindungen aufgezeichnet werden. Angefangen wird dabei immer mit dem Initial-Block. Neue Blöcke werden über ein sogenanntes Konsensverfahren geschaffen und anschließend an die Blockchain angehängt.

Das populärste Konsensverfahren ist hierbei die Proof-of-Work-Methode. Es existieren zahlreiche andere Formen, Konsens herzustellen. Dazu zählen: Proof-of-Stake, Proof-of-Burn, Proof-of-Activity. Die Daten in einer Blockchain können nicht ohne Weiteres manipuliert werden, da sie aufeinander aufbauen und bei Manipulation die Integrität des kompletten Systems zerstört wäre.

Dadurch wird die Möglichkeit von böswilligen Änderungen erheblich erschwert. Der dezentrale Kontrollmechanismus macht eine dritte Instanz zur Bestätigung der Integrität von Transaktionen überflüssig.

Noch detaillierter wird die Funktionsweise im folgenden Vortrag vom Chaos Communication Congress 2016 beleuchtet.

Was kann die Blockchain bewirken?

Beim Kauf z. B. von Immobilien, verdienen unter anderem immer auch Notare, Städte und Gemeinden mit. Der Aufwand für die Dokumentation von Wertübertragungen ist teuer. Auch die Art und Weise, wie heute Verträge zustande kommen oder Urheberrechte verwaltet werden, könnte sich dramatisch verändern. Digitale Verträge könnten sich in Zukunft selber überwachen. Auch ein Fachbegriff für diese Art von Verträgen existiert bereits: “Smart Contracts”. Eine einzelne Aufsichtsinstanz ist damit nicht mehr notwendig.

Weitere Optimierungspotenziale sind in folgenden Bereichen vorstellbar:

  • die Reduzierung von Risiken bei Finanzgeschäften
  • die Vereinfachungen interner Betriebsabläufe
  • effizienter Umgang zwischen Regulierern und den von ihnen beaufsichtigten Finanzunternehmen
  • Zeitersparnisse bei der Verbuchung und Abwicklung von Finanzgeschäften
  • eine bessere Nutzung des Eigenkapitals und der liquiden Mittel eines Unternehmens
  • geringere Gefahr von Betrügereien

Die Digitalisierung, derzeit auch in Form von Blockchain, sorgt zunehmend dafür, dass durch Technologie ein Macht- und Kontrolltransfer stattfindet. Dieser erfolgt immer stärker von zentralen Systemen hin zu den verteilten Massen der Anwender und Netzwerke, die sich in Zukunft immer stärker selber kontrollieren.

Lassen Sie sich von den Digitalisierungsexperten der kreITiv GmbH beraten, wenn es um Sicherheit und Zukunftstechnologien geht. Smarte Verträge, die selbst auf ihre Einhaltung achten, sind heute nur der Anfang von etwas sehr Spannendem.

Moderne App-Entwicklung für Smartphones und Tablets

App-Entwicklung für Android und iOS in der Praxis

Dem Thema “mobile” und der App-Entwicklung geht die Luft nicht aus – ganz im Gegenteil, die oft zurückhaltende Unternehmenswelt entdeckt gerade erst die vielfältigen Möglichkeiten zur Digitalisierung von Geschäftsprozessen mittels Apps fürs Smartphone und Tablet. Immer wieder bekommen auch wir Kundenanfragen zur Entwicklung von Anwendungen für mobile Endgeräte, denen wir mit unserer kreITiv Softwareentwicklung gern nachkommen.

Wie man Apps für Unternehmen entwickelt

Im konkreten Fall gilt es zunächst, die Anforderungen und Wünsche der Kunden für die gewünschte Lösung zu analysieren und zu prüfen. Oft eignen sich Webanwendungen, die über den Browser überall und von jedem Gerät aus verfügbar sind – die sogenannten Web-Apps.

Für uns in der Webentwicklung ist es mittlerweile zum Standard geworden, Webanwendungen responsive zu erstellen und das Design somit von vornherein für alle Endgeräte zu optimieren. Viele Firmen legen zusätzlich aber auch Wert darauf, in den App Stores von Apple und Android vertreten zu sein und die eigene App zum Download zur Verfügung zu stellen. Dadurch können natürlich Umsatzsteigerungen durch neue Kunden realisiert werden. Außerdem ergreift man damit u. U. die Chance, der Konkurrenz einen Schritt voraus zu sein.

  • In einigen Fällen steht beim Kunden bereits eine Responsive Webseite oder Webanwendung zur Verfügung. Diese können wir in kurzer Zeit in eine native App – also eine speziell für die mobilen Plattformen entwickelte Anwendung – umsetzen. Anschließend wird die App in den Google Play Store für Android-Geräte übertragen oder auf der Webseite des Kunden zum Download zur Verfügung gestellt.
  • Bei Apps für das iPhone ist dies nicht ganz so einfach, da Apple strengere Richtlinien für seinen App Store verfolgt und Anwendungen aus diversen Gründen auch gern ablehnt. Über das sogenannte Volume Purchase Program (VPP) von Apple haben wir allerdings die Möglichkeit, die entwickelte App im B2B-Store für iPhones und iPads anzubieten und somit doch auf allen Endgeräten zu platzieren.

Wann empfiehlt sich eine native App und wann reicht die Web-App?

Oft ergeben sich in der App-Entwicklung funktionelle Anforderungen, die in einer reinen Web-App nicht umgesetzt werden können, nach denen also eine native Anwendung durchaus sinnvoll oder auch zwingend erforderlich ist. Dies empfiehlt sich insbesondere, wenn die App auf die Hardware von Endgeräten (wie z. B. GPS-Funktionen oder die Kamera für einen Barcode-Scanner) zugreifen soll. Aber auch Anforderungen wie Push-Benachrichtigungen, Hintergrunddienste, Bluetooth oder Near Field Communication (NFC) erfordern die Entwicklung einer nativen App.

Mitunter kann auch der spätere Gebrauch der App darüber entscheiden, ob es sinnvoll ist, die App nativ für Android und/oder iOS zu entwickeln. Häufig sollen in kurzer Zeit Daten erfasst werden, um Prozesse zu digitalisieren. Für einen echten Produktivitätsgewinn muss dies flüssig und ohne Unterbrechungen am Stück geschehen. Wenn es sich hierbei um größere Datenmengen handelt und eventuell nicht immer eine Internetverbindung verfügbar ist, ist es sinnvoll die Daten zunächst auf dem Gerät zu speichern.

Nach Abschluss des Vorgangs können diese Informationen dann von der App an den Server über das Internet übertragen werden. Eine native App eignet sich somit bspw. auch, wenn Sie sensible Daten speichern, diese aber nicht in eine Cloud oder nach Außen übertragen wollen.

Ihre App zum Download oder im App Store von Google & Apple

Wie bereits erwähnt, kann es bei Anwendungen für Apple-Geräte vorkommen, dass diese nicht zur Veröffentlichung im öffentlichen App Store zugelassen werden. Doch nicht immer ist es überhaupt nötig oder vom Kunden auch gewünscht, dass die App für jedermann im Store zugänglich ist. In solchen Fällen übertragen wir die entwickelten Apps in den separaten Store für B2B-Kunden. So wird sichergestellt, dass die Anwendung auch nur an berechtigte Nutzer verteilt wird und z. B. im internen Gebrauch bei Unternehmen verwendet werden kann.

Für Android-Nutzer ist der Prozess deutlich weniger kompliziert. Das Ergebnis der App-Entwicklung ist eine APK-Datei, die beliebig an ausgewählte Nutzer verteilt und zum Download zur Verfügung gestellt werden kann. Der Weg über den Google Play Store ist nicht zwingend nötig, kann sich aber speziell im B2C-Bereich ebenso anbieten.

Individuelle App-Entwicklung von kreITiv

Bei der Entwicklung von Apps verhält es sich ganz ähnlich wie bei jedem herkömmlichen Softwareprojekt. Zunächst ist es immer wichtig, die Anforderungen genau zu analysieren und anschließend zu entscheiden, welcher der richtige Weg zum Ziel ist. Dank der zahlreichen technischen Standards, die Smartphones und Tablets heute bieten, ergeben sich auch ganz neue Möglichkeiten für intelligente Softwarelösungen, welche Unternehmensprozesse digitalisieren und zu mehr Produktivität im alltäglichen Arbeiten führen können.

Wir beraten Sie gern in der Konzeption Ihrer App und unterstützen Sie in jedem Schritt der Umsetzung nach Ihren individuellen Vorstellungen.

Sprachassistenten – Digitaler Trend und Chance für Softwareentwickler

Sprachassistenten – Digitaler Trend und Chance für Softwareentwickler

Sprachassistenten liegen im Trend und immer mehr Menschen nutzen sie im privaten wie auch im beruflichen Umfeld z. B. für Sucheingaben oder zum Verfassen von Textnachrichten. Sie hören auf die Namen Siri, Alexa oder Cortana und stammen aus den Häusern der ganz Großen der Digitalbranche: Google, Apple, Amazon und Microsoft. Im Alltag bereichern sie das Smart Home, auf Arbeit ergänzen sie moderne ERP-Systeme.

Geschichte der Mensch-Maschine-Kommunikation

Schaut man sich die Entwicklung von Benutzeroberflächen bei Computern und Anwendungen an, dann lässt sich eine eindeutige Tendenz erkennen: Sie bilden immer besser die menschliche Interaktion untereinander nach.

Dabei lässt sich folgende Evolution sehr gut nachvollziehen…

  1. In den Anfängen war Computerarbeit so abstrakt, dass sie nur Spezialisten vorbehalten war.
  2. Bildschirme und bessere Eingabegeräte, wie Tastaturen, machten das im nächsten Schritt für ein größeres Publikum bereits deutlich einfacher.
  3. Die grafische Benutzeroberfläche in Kombination mit der Maus als Eingabegerät versuchte daran anschließend viele Vorgänge bildhaft zu gestalten.
  4. Mit Touchscreens reagierten die Geräte dann auf bereits bekannte und natürliche Gesten, wie das Wischen und Tippen.
  5. Die natürliche Sprache wäre nun die logische, nächste Stufe der Evolution für eine effiziente Form der Nutzung und Steuerung von elektronischen Geräten und Anwendungen.

Die Herausforderung für Sprachassistenten

Einerseits möchte der Nutzer, dass der digitale Assistent ihn genauso gut versteht, wie ein Mensch. Gleichzeitig weiß der kleine Helfer alles, was das Internet an Informationen bereithält. Durch selbständiges Lernen und Beachtung von Wahrscheinlichkeiten kennt er uns so gut, dass er sich fehlende oder fehlerhafte Informationen ggf. selbst erschließen kann. Diese Entwicklungen zusammengenommen könnten einen enormen Wandel des Alltags auslösen. Viele Situationen, in denen bislang eine Suchmaschine oder eine App zum Einsatz kamen, würden nun vom digitalen Assistenten abgedeckt.

Deshalb vermuten manche, dass das Onlinemarketing und hier besonders die Optimierung mit Hinblick auf Suchmaschinen, vor neuen Herausforderungen steht. Ganz konkret bedeutet das: Es muss auch bei der Entwicklung von bspw. Webportalen verstärkt auf die Sichtbarkeit in Suchmaschinen Wert gelegt werden. Denn Sprachassistenten geben nicht den fünften oder zweiten Treffer einer Suchergebnisliste aus, sondern lediglich den ersten Platz. Umso entscheidender ist das perfekte Zusammenspiel von Software (z. B. in Form einer Webseite) und Onlinemarketing.

Chance für Softwareentwicklung und Onlinemarketing

Mit der kreITiv GmbH haben Sie einen Digitalisierungspartner an Ihrer Seite, bei dem Softwareentwickler und Onlinemarketing-Spezialisten zusammentreffen. Wir betrachten Anforderungen und Lösungsmöglichkeiten ganzheitlich und achten dabei stets auf digitale Trends und Zukunftstechnologien.

Die Integration von Sprachassistenten in die IT-Landschaft Ihres Unternehmens ist nur eines von unzähligen Projekten, die wir gemeinsam im Hinblick auf die Digitalisierung Ihrer Geschäftsprozesse angehen können.

directCOURSE, wie Kurssoftware in der Cloud

directCOURSE – die webbasierte Kurssoftware von kreITiv

Sie suchen eine leistungsfähige Software, die Sie in der Planung, Organisation, Durchführung und Abrechnung von Kursen aller Art unterstützt? Sie stellen sich in der alltäglichen Verwaltung Ihrer Kurse regelmäßig Fragen, wie z. B.:

  • Welcher Dozent lehrt in Kurs A welchen Inhalt?
  • Wo finde ich die Teilnehmerlisten der gestrigen Kurse und wie sieht es mit den Zulassungsvoraussetzungen zur Prüfung aus?
  • Welche Teilnehmer aus Kurs B werden durch welche Institution gefördert?
  • Wie sieht es mit dem Anwesenheitsgrad der jeweiligen Teilnehmer aus?
  • Können wir schnell und einfach an den Förderer Bericht erstatten?
  • Und warum kann unsere Software diese Fragen nicht schnell und einfach beantworten?

Dann haben wir mit directCOURSE genau das Richtige für Sie und Ihr Unternehmen. Hier stellen wir unsere neueste kreITion vor.

Interne Verwaltung entlasten – Wettbewerbsfähig bleiben

Wir alle stehen vor der täglichen Herausforderung, uns zu verbessern und vom Wettbewerb abzuheben. Das ist in der Bildungsbranche nicht anders. Seminarräume sollten gefüllt und Dozenten ausgelastet sein, der Außenauftritt muss passen und die interne Verwaltung sollte schlank sein und reibungslos laufen. Dies funktioniert garantiert nicht mit Excel-Listen und Outlook.

Wir haben uns als Spezialist für webbasierte Softwareentwicklung über dieses Thema für Sie Gedanken gemacht. Das Ergebnis dieses Prozesses ist directCOURSE, unsere Kurssoftware in der Cloud.

Ihre Teilnehmer profitieren von einer komfortablen Bedienung und von der Möglichkeit, Kursmaterialien direkt downloaden zu können. Dozenten können sämtliche Informationen zu Teilnehmern zentral verwalten, indem sie ein digitales Klassenbuch führen. Sie behalten wichtige Informationen zu Unternehmen, die Kurse für ihre Mitarbeiter buchen, im Blick. Die Dokumentationspflicht im Hinblick auf Anwesenheit und Abwesenheit wird damit zum Kinderspiel.

Dank der Entwicklung als Web-App greifen alle beteiligten Personen und Organisationen komfortabel und geräteunabhängig auf die Software zu und planen so z. B. auch mobil auf dem Smartphone die nächste Unterrichtsstunde, reichen Unterlagen ein oder kommunizieren mit den Teilnehmern.

directCOURSE, keine Kurssoftware von der Stange

Sie möchten eine flexible Kurs- und Ressourcenplanung, ein Dozenten- und Kursfeedback und idealerweise eine Anbindung an Ihre Buchhaltungssoftware realisieren?

Alle diese Wünsche lassen sich in Ihr directCOURSE integrieren. Dies bedeutet für Sie ein Höchstmaß an Individualität und Effizienz. Dabei handelt es sich um Nichts von der Stange, sondern um eine modular aufgebaute Kurssoftware. Denn wir wissen, kein Bildungsinstitut ist wie das andere.

Vielfältige Einsatzmöglichkeiten ergeben sich jedoch nicht nur im Bildungssektor. Auch beliebige andere Businessevents (bspw. Online-Schulungen und -Seminare, Messe- und Eventmanagement oder die Terminplanung im medizinischen Bereich) sowie Freizeitveranstaltungen (u. a. Fitnesskurse, Künstlergruppen oder Hobbytreffen) lassen sich über unsere Software flexibel organisieren und verwalten.

Weitere Einblicke und die Möglichkeit zur Kontaktaufnahme erhalten Sie auf unserer directCOURSE-Unterseite.

Sie kennen Ihre Anforderungen am besten!

Wir wollen Ihre passende Kurssoftware kreieren. Daher besprechen wir mit Ihnen gemeinsam in einem Erstgespräch, was Ihnen wichtig ist. Um Ihre individuellen Prozesse und Abläufe zu unterstützen, müssen wir diese natürlich kennenlernen.

Sprechen Sie uns an und lassen Sie uns COURSE auf Ihre Zukunft setzen!

Webseiten und Web-Apps mit dem Laravel Framework

Laravel Framework – Die beste Option für Ihr Unternehmen

Webanwendungen erlauben einen universellen und flexiblen Zugang zu den unterschiedlichsten Dienstleistungen. Mit einer rasant steigenden Nutzung des Internets bieten auch zahlreiche Unternehmen ihre Waren, Dienstleistungen und Kenntnisse als Web-Content an. Zuverlässige, sichere und effiziente Applikationen sind somit der Schlüssel zum Erfolg für viele moderne Firmen.

Oft wird die Umsetzung solcher Web-Apps an Spezialisten und Agenturen abgegeben. Trotzdem ist es auch für den Auftraggeber wichtig, die unterschiedlichen Herangehensweisen bei der Entwicklung zu kennen, um zu verstehen, wie sich diese auf das eigene Unternehmen auswirken können.

7 Gründe, warum wir auf das Laravel Framework setzen

Für die Softwareentwicklung von kreITiv haben wir uns, wenn es um komplexe und langlebige Webanwendungen geht, für das PHP-Framework Laravel entschieden. Aus der Unternehmersicht, waren die folgenden Kriterien für diesen Schritt ausschlaggebend.

1

Ladezeit/Geschwindigkeit der Anwendung

Statistiken von Google aus dem Jahr 2016 belegen, dass 53% aller Nutzer eine Webseite verlassen, wenn deren Ladezeit mehr als drei Sekunden beträgt. Dies zeigt, dass die Geschwindigkeit von Web-Applikation höchste Priorität haben sollte.

Anders als bspw. beim mittlerweile sehr komplexen CMS WordPress, beinhaltet eine Laravel-Applikation ausschließlich die Funktionen, die auch wirklich gebraucht werden. Das Resultat ist ein nahezu perfekt auf den Verwendungszweck zugeschnittenes Produkt.

Bei großen Erweiterungen, welche die Ladegeschwindigkeit immer begrenzen, bietet Laravel diverse Optimierungsoptionen, bei denen unter anderem Caching eingesetzt wird.

2

Möglichkeiten zur späteren Weiterentwicklung

Laravel ist das beliebteste PHP Framework 2017 und kommt mit einer breiten Community von Programmierern und Unterstützern. Das bedeutet, dass es keine Probleme bei der späteren Überarbeitung eines Produktes gibt, da Laravel vollständig dokumentiert ist und zahllose Hilfestellungen zu finden sind. Projekte können durch die Skalierbarkeit Laravels stets wachsen und haben keine Limitierungen in diesem Bereich.

Außerdem beinhaltet Laravel ein Versionsmanagement für die Datenbankentwicklung, welches bei der späteren Expansion des Projektes hilfreich ist.

3

Client-Side Framework Unterstützung

Die komplizierten Funktionalitäten einer Web-App verstecken sich immer hinter dem Design. Daher ist es von hoher Wichtigkeit, dass die Benutzeroberfläche einfach zu bedienen ist und mit einer gewissen Eleganz beim Nutzer einen bleibenden Eindruck hinterlässt.

Laravel unterstützt eine Vielzahl an unterschiedlichen Client-Side Frameworks, welche für eine professionelle Entwicklung der Seitendarstellungen benötigt werden. Somit können sowohl statische als auch dynamische Seiten erstellt werden und es gibt keinerlei Limitationen, wenn es um die Interaktivität und Komplexität der Webanwendung geht.

4

Verwendung neuester Techniken bei der Entwicklung

PHP-Frameworks wie Laravel sind grundsätzlich ein Schritt in die Zukunft der Webentwicklung, da durch die Abstraktion keine einfachen Fehler und Sicherheitsprobleme auftauchen und die Programmierung effizienter und schneller geschieht.

Laravel ist ein ideales Grundgerüst für jegliche Webanwendungen, dank dem sich der Entwickler auf die eigentlichen Funktionalitäten der Applikation konzentrieren kann. Ein Beispiel dafür sind die Datenbankzugriffe, welche bei Laravel über vorgefertigte und abgesicherte Methoden laufen, was dazu führt, dass die Entwicklung schneller und die Verwendung sicherer ist.

5

Programmiererfreundliche Entwicklung

Durch den logischen Aufbau und die durchdachte Struktur der Laravel-Applikationen, ist das Handling für Produktentwickler um vieles angenehmer. Das führt dazu, dass viel weniger Logik- und Strukturfehler entstehen. Durch den besseren Überblick erkennen Programmierer schon bei der Entwicklung viel mehr Sicherheitsfehler und Bugs. Auch spätere Erweiterungen oder Änderungen der App können ohne Probleme durchgeführt werden, da es auch für einen projektfremden Entwickler einfach ist, die Struktur und Funktionalitäten zu verstehen und darauf basierend weiterzuentwickeln.

6

Überprüfte und instand gehaltene Sicherheitsoptionen

Laravel baut auf ein vollwertiges und häufig getestetes Authentifizierungssystem. Hinter dem Open Source Framework steht eine große Community. Dadurch werden Sicherheitslücken und allgemeine Fehler schnell erkannt und behoben.

Dieses Authentifizierungssystem umfasst das ganze Framework, wodurch die Absicherung von bestimmten Seiten und einzelnen Prozessen realisiert werden kann. Aufbauend darauf, wurden verschiedene Erweiterungen/Pakete entwickelt, mit denen man komplexere Systeme entwickeln kann. Genauso wie die nativen Laravel-Funktionen, sind diese Erweiterungen community-unterstützt und daher sehr verlässlich.

7

Erweiterte Möglichkeiten bei der Datenverarbeitung und -bereitstellung

Anders als bei vielen CMS und anderen Frameworks, liegt die Datenbankverwaltung ganz in den Händen der Programmierer. Es erlaubt den Zugriff auf alle Daten und ermöglicht eine Verwertung dieser Daten in einer großen Vielfalt.

Eloquent ist eine Laravel-Klasse, welche eine effizientere Datenverarbeitung erlaubt. Über automatisierte Verknüpfungen zwischen Datenbanktabellen und Laravel-Modellen wird der Datenzugriff erleichtert. Dadurch können jegliche Informationen verarbeitet werden und im Anschluss für Marketing, Prozessanalysen, und Kundenbetreuung sowie -service verwendet werden.

Moderne Webanwendungen von kreITiv

Egal, ob Webseite, Web-App oder cloud-gestützte lokale Anwendung, die Softwareentwicklung von kreITiv aus Dresden realisiert auch Ihr Projekt. Wir bauen auf moderne Webtechnologien und die Ablösung isolierter Systeme zugunsten flexibler und zukunftsweisender Onlinelösungen. Fragen Sie uns an.