Flight Log
Familienergänzende Kinderbetreuung Kanton Zug
Plattform für Kinderbetreuungangebote auf der Website des Kantons Zug ...mehr
Sie sind hier: Startseite Blog

Blog

Empowering your data with open source

147 Posts gefunden.
Filter Posts
| |

Flask vs. Django vs. Pyramid vs. Plone

Python Web Frameworks im Vergleich

Wir entwickeln Web Applikationen mit unterschiedlichen Python Frameworks. Unterschiedliche Anforderungen verlangen nach unterschiedlichen Werkzeugen.
Einen direkten Vergleich zwischen den Python Web Frameworks Flask, Django, Pyramid und Plone gibt es hier: http://blog.stacktrace.ch/post/49178654214

13.05.2013 14:55 | Comments

WebCronMon - Web Monitor

Shows websites monitored on Webcron.org in kiosk mode.

At seantis we use Webcron.org to monitor our sites. For our customers, as well as for our office monitor screen, we wanted a simple auto-refreshing page that shows the status of our sites at a glance. We therefore wrote this small Flask application looking like this:

Webcronmon

The monitor only shows the bare minimum of information to keep things simple:

  • list monitors by group
  • link the monitors to the actual website
  • show the current state (online / offline since)
  • show the uptime of the last 30 days

The site will update the list every 60 seconds by default, unless configured otherwise or unless the timer on the upper right is toggled with a mouse-click.

GitHub project: https://github.com/seantis/webcronmon

22.04.2013 15:15 | Comments

Über das Problem sprechen statt über die Lösung!

Wir alle neigen dazu, voreilig über Lösungen zu sprechen, anstatt zuerst das zugrundeliegende Problem gründlich zu analysieren.

Die perzipierte Lösung ohne ausführlichere Beschreibung des zugrunde liegenden Problems (im Sinne von zu lösender Aufgabe) kann für das Projekt zum Risiko werden. Das Denken in vorgespurten Lösungskategorien verengt vorzeitig den Möglichkeitsraum für die zu entwickelnde Lösung. Gut möglich, dass es passendere und bessere Lösungen gibt.

Das Nachdenken über das Problem an sich darf nicht übersprungen werden.

1) Beschreibung des Problems
Ein paar wenige Sätze zur Beschreibung des Problems. Sätze und nicht Bullet Points! Also auch kein Power Point bitte.

2) Ursachen des Problems
Verschiedene Erklärungsversuche (Arbeitshypothesen) sollen aufgestellt werden.

3) Quantifizierung des Problems
Wie gross ist das Problem relativ gesehen: haben 5 von 1'000 Benutzern ein Problem oder sind es 500 von 1'000? Die Relationen abschätzen zu können hilft.

4) Abgrenzungen (Scope)
Es soll beschrieben werden, was nicht Teil des Problems ist. Es mag paradox erscheinen, aber das explizite Benennen von Elementen, die nicht Teil des Problems sind, macht durchaus Sinn.

5) Begrifflichkeiten klären
Für Personen mit unterschiedlichem Hintergrund darf nicht davon ausgegangen werden, dass sie unter einem verwendeten Begriff das Gleiche verstehen.

6) Quick Fix
Gibt es eine einfache Möglichkeit, das Problem rasch aus der Welt zu schaffen? Können bestehende Prozesse so angepasst werden, dass sich das Problem mit kleinem Aufwand - so genannt "administrativ" - bewältigen lässt.

Die Schritte 2)-6) kann man sich auch sparen. Sie sollen lediglich illustrieren, dass die gründliche Analyse eines Problems mehr bringt, als die voreilige Zuflucht zu eine bekannte Lösung.

Probleme zu finden ist schwierig genug

Warum haben viele Leute die Tendenz voreilig über die Lösung sprechen zu wollen, statt zuerst gründlich über das zugrundeliegende Problem nachzudenken?
Es wird zu wenig anerkannt, dass allein schon das Finden und Beschreiben von Problemen wertvoll und keinesfalls trivial ist!


[..] I’ve learned one of the biggest mistakes “nontechnical” people make when communicating to great hackers about product is that we try and tell them the solutions before we ever tell them the problem.  It’s like we don’t trust them to be able to think through and reach their own solution.  When in reality their solution is usually 10-100x better than ours because they are the ones building it!!

I started thinking about this and realized maybe its because nontechnical people don’t realize the value they’ve created just by finding the problem. Truly, just being able to find and articulate the problem is really valuable when building a product.

http://katgleason.tumblr.com/post/47257463324/talk-about-the-problem-not-the-solution

06.04.2013 14:40 | Comments

SCQM-Datenbank am Bechterew-Symposium

PD Dr. med. Adrian Ciurea präsentiert am Bechterew-Symposium vor Betroffenen Forschungsergebnisse der Langzeitstudie Morbus Bechterew («Spondylitis ankylosans»).

Es motiviert uns sehr zu sehen, wie wir mit der Entwicklung und dem Betrieb der Nationalen Online-Datenbank für entzündlich rheumatische Erkrankungen unseren Beitrag für diese Forschung leisten dürfen.

Swiss Clinical Quality Management in Rheumatic Diseases: www.scqm.ch
Schweizerischen Vereinigung Morbus Bechterew
: www.bechterew.ch

22.03.2013 22:05 | Comments

Sicheres Login mit YubiKey

Webapplikationen mit schützenswerten Daten verlangen nach einer sicheren Authentifizierungslösung.

Was ist ein YubiKey?

Ein YubiKey funktioniert wie eine externe Tastatur und kann einfach per USB an Ihr PC/Mac angeschlossen werden. Der YubiKey funktioniert auf allen Betriebsystemen ohne zusätzliche  Software/Treiber-Installation.


YubiKeyWie funktioniert der YubiKey?

Der YubiKey ist nichts anderes als eine USB-Tastatur. Der Clou: er hat nur einen (goldenen) Kopf und eine Funktionalität. Der YubiKey erzeugt ein OneTime-Token. Das erzeugte Einmalpasswort wird serverseitig validiert und authentifiziert den Benutzer.

Der Login-Prozess

Jedes Mal, wenn der Benutzer den Knopf drückt, wird ein neues OneTime Token erzeugt. Auf dem Login-Formular müssen daher ein persönliches Passwort und das YubiKey Token eingegeben werden. Auf das Eintippen des Benutzernames (eMail-Adresse) kann verzichtet werden, da der YubiKey automatisch eine eindeutige YubiKey ID mitschickt.

YubiKey Demo

Angenehmer Nebeneffekt: andere bekannte Zwei-Faktor-Authenfizierungen machen den Prozess für den Benutzer mühsamer: ich muss z.B. das Token von meinem Handy ablesen und dieses dann in das entsprechende Formularfeld übertragen. YubiKey hingegen erspart dem User Tippen und macht den Login-Prozess bequemer.

Der YubiKey in Ihrer Organisation

Um die Authentifikation für Ihre Webapplikation sicher zu machen, werden alle Ihre Mitarbeiter mit YubiKeys ausgerüstet.

Der Prozess dazu könnte wie folgt aussehen:

  1. seantis bestellt für Sie die YubiKeys
  2. Jedem Benutzeraccount wird ein YubiKey zugeordnet
  3. seantis schickt die YubiKeys per Post an Ihre Mitarbeiter
  4. Ihre Mitarbeiter können sich sofort mit ihrem persönlichen YubiKey sicher einloggen.


Sie können organisatorisch sicherstellen, dass alle Mitarbeiter ihre YubiKeys sicher in den Büroräumlichkeiten verwahren. So besteht eine erweiterte Kontrolle wer wo und wann Zugriff auf sensible Daten hat.
Persönliche YubiKeys lassen sich mit sofortiger Wirkung entziehen.
Ein YubiKey lässt sich damit bei einer personellen Mutation einfach von einem Benutzer einziehen und an einen anderen weitergeben.

Ein YubiKey verloren

Geht ein Schlüssel verloren oder wird gestohlen, so lässt sich dieser mit sofortiger Wirkung für ungültig erklären (revozieren).

23.01.2013 13:50 | Comments

healthinsurance.opendata.ch

Navigator im Krankenkassen-Prämien-Dschungel

Am Swiss Open Data Hackday dieses Wochenende in Basel haben wir innerhalb von nur zwei Tagen eine interaktive Karte mit allen Krankenkassenprämien der Schweiz entwickelt.

Die interaktive Karte ist online unter: http://healthinsurance.opendata.ch

SHIP Screenshot

Ein Audio-Live-Mitschnitt der Schlusspräsentation ist auch verfügbar (http://infam.antville.org/stories/2137823)

Team SHIP

Impressionen von "Open Data"-Enthusiasten beim Hacken: http://www.flickr.com/photos/ph64/sets/72157631649312225

SHIP Präsentation

30.09.2012 14:00 | Comments

Visualiserung der Krankenkassenprämien

Am Swiss Open Data Hackday arbeiten wir an einer Visualisierung der Krankenkassenprämien der Schweiz.

Nachdem wir den Prämiendatensatz vom BAG erhalten haben und diesen mittels einem kleinen Tool (SHIP) in eine Datenbank gebracht haben, sind wir nun dabei die Prämiendaten zu visualisieren. Es ist allgemein bekannt, dass die Prämienunterschiede zwischen einzelnen Kantonen sehr gross sind.

ship.png

Wir möchten die Daten auf einer interaktiven Karte darzustellen, so dass sich regionale Unterschiede einfach erkennen lassen. Für die Karte sollen sich dann dynamische Filter setzen lassen. Interessant könnten hier gewisse "Kovariablen" wie Ärzte- oder Spitaldichte sein. Auch die Entwicklung über Zeit ist sicherlich nicht uninteressant.

SHIP Map


Für die interaktive Karten-App bauen wir auf die Applikation "Swiss Train Flows", welche am letzten Swiss Open Data Hackday in Zürich entstanden ist.

Im Team "SHIP" Swiss Open Data Hackday:

 

Last but not least das GitHub Repository: https://github.com/seantis/ship



Stand der Arbeiten

Update FR 28.09.2012 17:30: Kantonsgrenzen auf die Karte zeichnen mit GeoJSON

Geo JSON

 


 

Update FR 28.09.2012 18:48: Wir werden definitiv ein schönes Farbschema brauchen! Hier ein verdammt schönes Beispiel von http://mbostock.github.com/d3/talk/20111018/choropleth.html

Unemployment USA

 


 

Update FR 28.09.2012 19:24: Ich habe gerade die kleine Python Webapp auf meinem Notebook installiert:

  • Die Karte wird geladen
  • Die Kantonsgrenzen sehr ordentlich eingezeichnet!

Kantonsgrenzen

 



Update FR 28.09.2012 19:46: Wir haben erste Farben! Wow!!

Map Colors

 


 

Update FR 28.09.2012 21:02: Wie visualisieren wir die Ärztedichte pro Kanton?

aerzte_pro_10T.png

 


 

Update SA 29.09.2012 10:15: Tag zwei der Hackdays. Wir haben nun neue Farben mit mehr Bedeutung: rot = über den CH-Durchschnitt / grün = unter dem CH-Durchschnit

CH-Durchschnitt

 


 

Update SA 29.09.2012 10:50: Eine erste Version unserer interaktiven Karten-App ist online: http://ship.seantis.ch

28.09.2012 15:00 | Comments

Die ärztliche Handschrift und Dokumentationsfehler

Werden Verschreibungen von Medikamenten von Hand erledigt, kommt es oft zu Fehlern bei der Medikamentenabgabe.

unleserlich1.jpg

Eine Studie über den Verschreibungsprozess auf einer Station des Universitätsspitals Bern kam zum Schluss, dass Verschreibungsfehler wegen fehlender oder zweideutiger Angaben des Arztes häufig sind [http://www.nzz.ch/aktuell/schweiz/die-handschrift-der-halbgoetter-in-weiss-1.12848707].

Unter folgenden Bedingungen sind Fehler bei der Medikamentenabgabe wahrscheinlicher:

  • die Schrift der Verschreibung ist unleserlich
  • die Angaben des Arztes sind unvollständig (es fehlen z.B. Informationen zur Dosis eines Medikaments)
  • die Verschreibung enthält widersprüchliche Angaben


Aus diesen Gründen empfiehlt es sich, handschriftliche Dokumentationsprozesse durch elektronische Systeme zu ersetzen.

Mit OCQMS entwickeln wir eine modulare webbasierte Software für ein "Clinical Quality Management System". Das System unterstützt den praktizierenden Arzt in seiner täglichen klinischen Arbeit (automatische Generierung von ärztlichen Berichten) und stellt dabei eine strukturierte Ablage der Daten sicher.


Medikation.png

Dabei werden nicht nur medikamentöse Verschreibungen, sondern der gesamte Dokumentationsprozess in einem wohlstruktutrierten elektronischen System abgebildet.

OCQMS legt zudem grossen Wert auf eine geeignete Visualisierung der Daten, so dass sich Fehler oder Inkonsistenzen (z.B. bei der Medikation) leichter erkennen lassen.

medicationtimeline.png

Die erfassten Daten werden dank Report Generator als Textbausteine bzw. tabellarische Darstellung in den ärztlichen Bericht (Arztbrief) übertragen.

Bericht.png

Gefährliche Fehler aufgrund einer unleserlichen Handschrift können so komplett vermieden werden.

font.jpg

19.09.2012 11:20 | Comments

SHIP - Swiss Healthcare Insurance Premiums

Wie offen sind die Prämiendaten der Krankenkassen?

Im Rahmen der leidigen Diskussion um den mutmasslichen "Hackerangriff" (http://www.nzz.ch/aktuell/schweiz/bund-liess-comparis-hackerangriff-durchgehen-1.17547910) von Camparis (www.comparis.ch) auf den Prämienrechner des Bundesamts für Gesundheit (www.priminfo.ch) haben wir uns gefragt, wie offen die Prämien-Daten des BAGs verfügbar sind.

Wir haben also beim BAG nachgefragt und erhielten sehr prompt eine Antwort inkl. Link auf den Datensatz mit allen Prämien: http://www.bag.admin.ch/themen/krankenversicherung/01156/02446/index.html?lang=de
Vielen Dank und chapeaux BAG!

Der Datensatz des BAG liegt im Excel-Format vor und ist daher nicht ganz so einfach zu verarbeiten. Wir haben daher noch einmal beim BAG nachgefragt, ob die Daten auch in  "Rohkost" verfügbar sind. Das BAG war wiederum sehr hilfsbereit und hat uns Daten sogleich im CSV-Format zu kommen lassen.

Mit diesem Datensatz war es uns einfach möglich, ein kleines Tool für die Prämiendaten zu entwickeln. SHIP (Swiss Healthcare Insurance Premiums) bietet im jetzigen Stadium folgende Funktionalität:

  • Einlesen der Prämiendaten in eine beliebige SQL-Datenbank
  • Verständliche Feldnamen
  • Einfache Abfragen auf die Datenbank


Das Ziel wäre, für die Datenbank eine öffentliche API zu entwickeln.
Wir sind beim Swiss Open Data Hackday zum Thema Health (http://make.opendata.ch) dabei und hoffen da gemeinsam mit anderen die Arbeiten an der API vorantreiben zu können.
Um den unmittelbaren Nutzen der API zu zeigen, könnte man eine kleine Website mit einem Formular zur Prämienabfrage bauen. Auch wäre es möglich, die über die API gewonnenen Daten zu visualisieren.
Idealerweise würde durch die API ein ganz neuer Möglichkeitsraum geöffnet und es entstünden Applikationen, an die wir selbst nie gedacht hätten.

SHIP - Swiss Healthcare Insurance Premiums auf GitHub: https://github.com/seantis/ship

ship.png

PDF result of ipython notebook example:
https://github.com/seantis/ship/blob/master/docs/examples.pdf?raw=true

12.09.2012 13:15 | Comments

Artikel über die OneGov Box in der «eGov Präsenz»

Die Strategie der starken Gemeinschaft – einer für alle, alle für einen

Der Verein OneGov.ch steht exemplarisch für den in der Strategie E-Government des Bundes geforderten Grundsatz «Einmal entwickeln – mehrfach nutzen». Die Mitglieder des Vereins – Kunden und Hersteller – stellen gemeinsam ein durchgängiges E-Government-System zur Verfügung, das dem föderalistischen Prinzip der Eigenständigkeit von Gemeinden und Kantonen Rechnung trägt, eine hohe  Wiederverwendbarkeit garantiert und bedarfsgerecht weiterentwickelt wird. Die kundenorientierten Lösungen sind streng modular aufgebaut und individuell konfigurierbar.
Ein einmal im Auftrag eines Kunden entwickeltes Modul – zum Beispiel ein Veranstaltungskalender, ein Reservationssystem oder eine Auftragsbox – wird von OneGov.ch zertifiziert und lässt sich danach von allen Mitgliedern einsetzen. Die Kunden teilen so den Entwicklungs- und Pflegeaufwand. Und als Nutzergemeinschaft bietet OneGov.ch seinen Kunden weit mehr als bloss ein Produkt.

 

OneGov Box

10.09.2012 14:20 | Comments
abgelegt unter: