Article
2 comments

Klein und gut

Neulich rauschte ein Blogposting des kleinen Seitenstraßenverlages an mir vorbei. Darin geht es darum, daß so mancher Verlag mit den so oft romantisierten kleinen unabhängigen Buchhändlern seine Probleme hat. Und daß man bei Amazon wenigstens gleich fair (bzw. unfair) zu allen Großverlagen behandelt wird. Für keine der beiden Parteien wird eine Lanze gebrochen, beide haben ihre Vor- und Nachteile. Fand ich spannend.

Das machte mich aber auch auf ein typisches Marketing- bzw. Vertriebsproblem der kleinen Verlage aufmerksam: wenn die Buchhändler sie nicht promoten, wo findet man sie dann? Ja klar, im Internet. Marketing über die sozialen Netzwerke etc. Aber da kämpft jeder Verlag für sich alleine. Damit bleibt die Sichtbarkeit im Promillebereich. Andere Branchen haben da eine interessante Lösung. Amazon Shops, eBay und Dawanda eint ein Prinzip: hier finden sich tausende kleinere Anbieter unter einem Dach. Ich brauche keine Google-Suche, um eine bestimmte Angebotsseite zu finden. Auch wenn auf solchen Portalen “die Konkurrenz” ja mit vertreten ist, steigt die eigene Sichtbarkeit für potentielle Kunden an. Diese Portale haben natürlich auch ihre Probleme für Anbieter: die Gebühren für Einstellen und Verkauf sind teilweise exorbitant (gut, Verlage sind da ganz andere Abschläge aus der Buchhandelsbranche gewohnt) und die Plattform gehört einem Unternehmen. Das macht die Anbieter abhängig. Wenn z.B. eBay keinen Bock mehr auf professionelle Anbieter hat, sperren sie diese aus und die Anbieter sind mit einem Schlag nicht nur von ihrer potentiellen, sondern auch von der Stammkundschaft getrennt.

Auf Twitter entstand dazu folgende kurze Diskussion:

Meine Idee dazu wäre:

  • Was wäre, wenn es ein solches Portal für Kleinverlage gäbe?
  • Inhaber bzw. Betreiber sollte dabei eine Art Dachorganisation der Verlage sein, damit keine für die Verlage unfaire Gewichtsverteilung auftritt.
  • Zudem braucht es einen technischen Betreiber, der das Ganze entwickelt und für den Betrieb sorgt.
  • Über die Höhe evtl. anfallender Gebühren müßte man sich als technischer Betreiber mit dem inhaltlichen Betreiber einigen.
  • “Die Kleinverlage” ist eine sehr heterogene Gruppe. Man muß Mittel und Wege finden, den Verlagen das Einstellen der Bücher zu vereinfachen.

Klingt ja alles ganz nett, nicht wahr? Warum hat es bisher noch niemand gemacht? Vielleicht war das Kosten-Nutzen-Verhältnis nicht gut genug, vielleicht hatte jemand keine gute Verbindung zu Literatur an sich und den kleinen Verlegern (eine direkte Verbindung hab ich ja auch nicht). Wer weiß?
Nächste Frage: warum leg ich mich so ins Zeug für eine Idee, die dann offensichtlich anderen zu Gute kommt? Das ist gar nicht so einfach zu beantworten. Weil ich Literatur mag. Weil ich kleine Verlage mag. Weil ich die großen meist nicht mag. Weil der viel beschworene Zusammenbruch des Papierbuchmarktes vor allem die Großverlage mit ihren unglaublich aufwendigen Mechanismen treffen wird und die Kleinverlage vielleicht eine Möglichkeit sind, dieses Medium Buch, an dem ich so hänge, zu erhalten. Schaun wir mal, was jetzt passiert …

Nachtrag: eines ist schon passiert: der Seitenstraßenverlag hat die Reaktionen auf sein Posting mal zusammen gefaßt und im letzten Absatz werde auch ich mit meiner Idee kurz nicht-namentlich erwähnt ;)

Article
0 comment

Starting with Grails and Neo4J

Since Stefan Armbruster is a bit short of time to update the documentation of the Neo4J plugin for Grails I thought I start a short series of postings describing my progress in using Neo4J as a graph database for a Grails based application. I will use the REST API of Neo4J and not the embedded version.
Like always it starts with additions to grails-app/conf/BuildConfig.groovy. First we need to add the Neo4J maven repository to the repositories section:
[pyg l=”groovy”]repositories {
// …
mavenRepo ‘http://m2.neo4j.org/content/repositories/releases/’
} [/pyg]
Then I set my versions:

[pyg]neo4jVersion=”2.0.3″
neo4jRestVersion=”1.9″[/pyg]

 
Now we need to declare the dependencies:
[pyg]dependencies {
//…
compile “org.neo4j:neo4j-community:$neo4jVersion”
compile group:”org.neo4j”, name:”neo4j-graphviz”, version: neo4jVersion
runtime group:”org.neo4j”, name:”neo4j-shell”, version: neo4jVersion
runtime “org.neo4j:neo4j-rest-graphdb:$neo4jRestVersion”
}[/pyg]

En bloc that looks like this (caveat: this code block also installs the angularjs plugin!):

[pyg]grails.project.dependency.resolver = “maven” // or ivy
grails.project.dependency.resolution = {
// inherit Grails’ default dependencies
inherits(“global”) {
}
log “error”
checksums true
legacyResolve false

repositories {
    inherits true // Whether to inherit repository definitions from plugins

    grailsPlugins()
    grailsHome()
    mavenLocal()
    grailsCentral()
    mavenCentral()
    // uncomment these (or add new ones) to enable
    // remote dependency resolution from public Maven repositories
    //mavenRepo "http://repository.codehaus.org"
    //mavenRepo "http://download.java.net/maven/2/"
    //mavenRepo "http://repository.jboss.com/maven2/"
    mavenRepo 'http://m2.neo4j.org/content/repositories/releases/'
}

neo4jVersion="2.0.3"
neo4jRestVersion="1.9"

dependencies {
    // runtime 'mysql:mysql-connector-java:5.1.29'
    // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
    test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"

    compile "org.neo4j:neo4j-community:$neo4jVersion"
    compile group:"org.neo4j", name:"neo4j-graphviz", version: neo4jVersion
    runtime group:"org.neo4j", name:"neo4j-shell", version: neo4jVersion
    runtime "org.neo4j:neo4j-rest-graphdb:$neo4jRestVersion"
}

plugins {
    // plugins for the build system only
    build ":tomcat:7.0.55"

    // plugins for the compile step
    compile ":scaffolding:2.1.2"
    compile ':cache:1.1.8'
    compile ":asset-pipeline:1.9.9"

    compile ":angularjs:1.0.0"

    // plugins needed at runtime but not for compilation
    runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18"
    runtime ":database-migration:1.4.0"
    runtime ":jquery:1.11.1"

}

}[/pyg]

This will get you started with the integration itself. In the next posting I will show, how to access data in the Neo4j database from a controller.

Article
0 comment

Neuer Wein in alten Schläuchen

Heute morgen las ich in der Frankfurter Sonntagszeitung vom letzten Wochenende (ja, ich komme nie dazu, eine Sonntagszeitung wirklich durchzulesen, das mach ich den Rest der Woche) ein Interview mit Thomas Vollmoeller, dem Vorstandsvorsitzenden von Xing. Darin wies er eindringlich darauf hin, wie sehr sich die Arbeitswelt geändert habe und noch ändere. Stellenbewerber hätten heute ganz andere Möglichkeiten als früher. Das erfordere auch von Firmen- oder Personalchefs ein anderes Daseinsmodell. Er zitierte hier den so oft strapazierten, aber ausnahmsweise mal angebrachten Begriff des Paradigmenwechsels.

Der Chef 2.0 soll Mitarbeitern morgens einen Grund zum Aufstehen und zur Arbeit gehen geben. Man müsse eine gemeinsame Aufgabe und Auffassung von dem, was man da tue entwickeln. Ihr seht schon, ich vermeide bewußt – so wie Vollmoeller – den Begriff ‘Vision’. Allerdings könne ein Mitarbeiter nur dort einem Firmenchef oder Vorgesetzter vertrauen, wo dies auf Gegenseitigkeit beruhe. An der Stelle schweiften meine Gedanken etwas ab, weil ich schon den Eindruck habe, daß sich da in den Chefetagen etwas bewegt hat. Ich bin bzw. war ja auch mal Chef und hatte eigene Mitarbeiter. Und habe ähnlich darüber gedacht wie er. Und ich habe aus vielen Firmen, in denen ich als Berater tätig war den Eindruck, daß das mit der Gegenseitigkeit noch nicht so recht funktioniert.

Ich kenne sehr viele Mitarbeiter, vorwiegend in IT Firmen, weil ich dort meist tätig war, die sich zwar über mangelndes Entgegenkommen ihres Chefs beschweren, aber selbst noch das “Wir gegen Die” Szenario im Kopf haben. Ich meine diese klassische Sicht von Gewerkschaften auf Firmen als das Böse schlechthin, daß dem Mitarbeiter die Lebenskraft aussaugt und dem man mit Blut und Schweiß einen Obulus abtrotzt. Ich weiß, daß ich hier maß- und hemmungslos übertreibe. Ich wollte das Bild möglichst bunt malen ;)

Natürlich kann man sich jetzt fragen, wie sehr die defensive Einstellung der Mitarbeiter auf Enttäuschungen mit dem Unternehmen beruhen. Und man sollte nicht aus dem Auge lassen, daß Firma und Mitarbeiter natürlich nicht alte Freunde sind, denen man blind vertrauen kann. Ich denke, ein Stück weit sind schon bestehende Arbeitsverträge das Problem. In neuen Verträgen kann man flexible Modelle aushandeln und dann eben auch deren Spielregeln festlegen. Alte klassische Arbeitsverträge als Grundlage flexibler Mitarbeiter zu sehen, die ein Stück weit für ihre Firma unternehmerisch denken, ist wohl etwas schwierig.

Und wenn man die neuen Arbeitsplatzregeln des Gesetzgebers liest, stellt man fest, daß die zwar dem Schutz der Mitarbeiter dienen sollen, aber eben auch exakt Null Flexibilität enthalten. Da sollen Arbeitszeiten immer und auf jeden Fall erfaßt werden. Das ist gut, weil es viele Menschen gibt, die ohne eine solche Kontrolle (wie effektiv die ist, sei mal dahin gestellt) von ihren Unternehmen oder sogar sich selbst, regelrecht ausgebeutet werden. Firmen wie Best Buy in den USA, die das “ROWE” (result oriented work environment) Prinzip eingeführt haben, sucht man trotz guter Debattenbeiträge wie den des geschätzten Autors Markus Albers leider in Deutschland meist immer noch vergeblich.

Ich kenne allerdings Unternehmen, die eine, man möchte sagen typisch deutsche, Mittelweglösung gefunden haben: dort gibt es eine Arbeitszeiterfassung. Aber da tragen die Mitarbeiter selbst ihre Zeiten ein. Ob die Werte richtig sind, kontrolliert im Normalfall niemand. Ich gehe mal davon aus, daß jemand, der täglich 8h einträgt, aber nie im Haus ist, schon auffallen würde. Die Zeiten, die da nachher in Summe heraus kommen pro Monat, interessieren weitestgehend auch niemanden. Problematisch wird das an der Stelle nur, wenn diese Stundenkontingente als Basis für die Abrechnung von Kundenprojekten benutzt werden. Das funktioniert an der Stelle nur, wenn der Kunde dem Unternehmen als Dienstleister ein gewisses Vertrauen entgegen bringt.