Software TesterIn gesucht!

Software TesterIn gesucht!

DEINE AUFGABE WIRD SEIN:

  • Black/White-Box-Testing
  • Erstellen von Integration und E2E Tests

WAS DU MITBRINGEN SOLLTEST:

Must have:

  • HTML, CSS, JavaScript (at least beginner level)
  • Developer Tools der gängigen Browser (Chrome, Firefox, IE)

Should have:

  • OS: Windows, Linux, OSX
  • Browser automation (zB Selenium)
  • Design/UX Affinität

Could have:

  • AWS
  • Docker
  • C#/.Net/Asp.Net MVC/WebAPI
  • Go

DIE PARAMETER:

  • mind. 10h pro Woche
  • freier Dienstvertrag

DU HAST FRAGEN ODER WILLST DICH BEWERBEN?

SCHREIB MIR EINFACH EINE E-MAIL AN 

DAVID@TRIGO.AT


Powered by MongoDB!

Powered by MongoDB!

Was ist MongoDB?

MongoDB ist eine Open Source dokumentenorientierte Datenbank mit einem Fokus auf Performance, Verfügbarkeit, Skalierbarkeit und einfache Benutzung.

Daten werden in MongoDB im BSON-Format (Binary JSON) abgelegt. Dadurch eignet sich MongoDB sehr gut für Webapplikationen, insbesondere NodeJS-Applikationen, da von der Datenbank bis zum Webbrowser JSON als Datenformat beibehalten werden kann.

Dokumente in MongoDB sind prinzipiell schema-frei. Für flexible Datenstrukturen ist eine schema-freie Datenbank ideal.

powered by mongodb

Warum MongoDB?

MongoDB bietet gegenüber herkömmlichen relationalen Datenbanken zahlreiche Vorteile in der Performancecharakteristik.

Für Line-of-Business-Applikationen liegt der Hauptvorteil aber in der Effizienz und Einfachheit der Entwicklung auf Basis einer dokumentenorientierten Datenbank.

MongoDB vereint die Vorteile von relationalen Datenbanken (z.B. Ad-hoc-Queries, Write Consistency, Atomic Updates) mit den Vorteilen von NoSQL-Datenbanken (Performance, Einfachheit in der Benutzung u.v.m.)

Betrieb von MongoDB

MongoDB ist in der Administration sehr einfach zugänglich. Zahlreiche mitgelieferte Tools und ein umfangreiches Utility-Ökosystem ermöglichen Monitoring, Backup/Restore, User Management u.v.m. auf einfache Art und Weise.

Durch Deployment als sogenanntes Replica Set kann man MongoDB in einem Cluster-Setup für redundante Datenhaltung betreiben.

MongoDB bietet Benutzer-Authentifizierung per Benutzername/Passwort und Kerberos. Die Autorisierung erfolgt über ein Rollenkonzept, das eine fein-granulare Zugriffsberechtigung ermöglicht.

Backup/Restore

Für Backup und Restore von Datenbanken bietet MongoDB zwei einfach zu bedienende Command Line-Tools (mongodump, mongorestore), die den aktuellen Datenstand in Dateien ablegen bzw. von dort wiederherstellen. Mongodump kann dabei jederzeit während dem laufenden Betrieb ausgeführt werden.

Empfehlenswert ist, mongodump periodisch auszuführen und die generierten Dateien in weiterer Folge per regulärem File System-Backup zu sichern.

We are hiring!

We are hiring!

Wir suchen Node.js/AngularJS (MEAN) Entwickler/Innen!

Was du mitbringen solltest:

  • Node.js
  • Angular.js
  • Express, hapi.js,...
  • MongoDB, Redis, PostgreSQL,...
  • Mocha, Jasmine,...
  • (optional) Ionic
  • mind. 2 Jahr praktische Erfahrung

deine Aufgabe wird sein:

Full-Stack Entwicklung in großen und kleinen Projekten. Remote, in unserem Büro in der Währinger Straße oder vor Ort bei Kunden. Wie es das Projekt erlaubt.

Was wir bieten:

  • Mindestbruttogehalt (Festanstellung) von € 35.000,— pro Jahr
    • 40h pro Woche
    • Überbezahlung nach Qualifikation
  • Arbeitsgerät nach Wahl
  • Tickets für Events (Pioneers Festival, Konferenzen,...)
  • Gym Abo (CrossZone)
  • Dir fehlt ein Incentive? Lass es uns wissen :)

 

Du hast Fragen oder willst dich bewerben?

Schreib mir einfach eine E-Mail AN 

david@trigo.at

Bilder machen deine Web-Anwendung langsam? Das muss nicht sein!

Zu oft wundert man sich warum die eigene Web-Anwendung nicht so schnell im Browser geöffnet wird, wie man sich das wünscht.

Der, aus meiner Sicht, mit Abstand häufigste Grund sind nicht optimierte Bilder die in der Anwendung verwendet werden. Das daraus resultierende schlechte Benutzer-Erlebnis führt dazu, dass du potentielle Kunden verlierst.

Bilder, Bilder und nochmal Bilder

image-size.png

Bilder die durch deine Web-Anwendung bereit gestellt werden sollten nicht unnötig groß sein. Wird ein Bild mit einer Breite von sagen wir 400px dargestellt, solltest du es nicht mit einer Auflösung von 6000x6000 zur Verfügung stellen. Das Bild wird dann im Bereich von 50MB liegen und dein Benutzer wird sich nicht darüber freuen das er ewig darauf warten muss oder gar vorzeitig deine Seite verlässt.

Was kann man dagegen machen?

Zuerst sollten wir unterscheiden ob es eigenes oder durch den Benutzer hochgeladenes Bildmaterial ist.

Im Falle des eigenen Bildmaterials kann man sich mit Werkzeugen wie Photoshop oder ImageOptim weiterhelfen. (Ich bin Mac User, es gibt für Windows sicher ähnliche gleichwertige Tools).

Mit "Save for Web" kann man die gewünschte Auflösung angeben und sein Bild so um einiges verkleinern.

save-for-web-png

Anschliessend komprimiert und optimiert ImageOptim das Bild noch weiter.

image-optim.png

Das ist mir viel zu aufwendig!

Natürlich ist dieser Workflow sehr manuell uns als Entwickler möchte man gerne seine Arbeit so automatisiert wie möglich ablaufen lassen. Dafür gibt es ein paar sehr praktische Gulp-Tasks die ihr in euren Build-Prozess einbauen könnt.

https://github.com/mahnunchik/gulp-responsive

Mit Gulp-Responsive kannst du dein Bildmaterial während des Build-Prozesses auf die gewünschte Größe anpassen.

https://github.com/sindresorhus/gulp-imagemin

gulp-Imagemin ermöglicht das Komprimieren von Bildern im Build-Prozess.

Wurde das Bildmaterial durch deine Benutzer hochgeladen, dann kannst du die Bilder entweder direkt nach dem Hochladen verkleinern und komprimieren (zB einen Worker der neue Bilder mittels der oben genannten Tasks bearbeitet) oder diese adaptiv zur Verfügung stellst.

Adapt... was?

Hinter dem Begriff "Adaptive Images" steckt eine schlaue Variante Bilder an den Benutzer/Client auszuliefern. Am Server wird erkannt welches Endgerät die Anfrage gestellt hat und passend dazu wird das Bild geliefert.

Dazu kann man die Bilder für die gebräuchlichen Größen vorrätig halten (zB nach dem Hochladen erzeugen und ablegen).

zB:trigo.at/images/logo@300x300.png

Alternativ dazu kann man Bilder auch on-Demand in der gewünschten Größe erzeugen. Diese Methode hat den Vorteil das man Bilder für die unterschiedlichsten Einsatzzwecke optimiert bereit stellen kann, hat aber den Nachteil das am Server mehr Rechenleistung notwendig ist.

zB: trigo.at/images/logo.png?s=300w

Als Beispiel hier eine Implementation in Node.js (https://github.com/fgnass/adaptive)

Conclusio

Ein einziges schlecht oder gar nicht optimiertes Bild kann alle Bemühungen um eine gute Performance deiner Web-Anwendung zunichte machen. Ich habe ein paar sehr einfache Methoden gezeigt dieses Problem in den Griff zu bekommen.

Wenn du noch weitere Möglichkeiten kennst/einsetzt oder Anregungen hast (zB Links zu Implementierungen in anderen Sprachen/Frameworks) erreicht ihr mich unter @trigo_at auf twitter.