Re: [Talk-de] Entwicklung MoNav

2011-11-19 Diskussionsfäden Jo
Man muss nicht im Kommentar schreiben was die Quellkode tut, sondern
warum sie es so tut.

Jo

2011/11/7 Christoph Eckert :
> Moin,
>
>> Ich stimme Dir zu, dass Kommentare in Quellcode durchaus sinnvoll sind. Ich
>> mache das in der Regel so, dass ich dann Kommentare in den Code schreibe,
>> wenn einem anderen beim lesen nicht gleich klar werden kann was ich mir
>> dabei gedacht haben könnte. Das ist natürlich subjektiv, aber ich denke
>> wenn man selber der MEinung ist oh, das versteht ein fremder nicht, dann
>> schadet ein Kommentar im Code ganz bestimmt nicht.
>
> +1
>
> Das sind dann die Kommentare, die wahrgenommen werden und die ungemein helfen.
> Viele Kommentare, die ich lese, sind aber schlicht nur Füllmaterial.
>
> --
> Beste Grüße,
> Best regards,
>
> ce
>
>
>
> ___
> Talk-de mailing list
> Talk-de@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
>

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Entwicklung MoNav

2011-11-19 Diskussionsfäden Christoph Eckert
Moin,

> Ich stimme Dir zu, dass Kommentare in Quellcode durchaus sinnvoll sind. Ich
> mache das in der Regel so, dass ich dann Kommentare in den Code schreibe,
> wenn einem anderen beim lesen nicht gleich klar werden kann was ich mir
> dabei gedacht haben könnte. Das ist natürlich subjektiv, aber ich denke
> wenn man selber der MEinung ist oh, das versteht ein fremder nicht, dann
> schadet ein Kommentar im Code ganz bestimmt nicht.

+1

Das sind dann die Kommentare, die wahrgenommen werden und die ungemein helfen. 
Viele Kommentare, die ich lese, sind aber schlicht nur Füllmaterial.

-- 
Beste Grüße,
Best regards,

ce



___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Entwicklung MoNav

2011-10-25 Diskussionsfäden Torsten Rahn

Nochmal ein paar Gedanken aus dem Marble-Off:

Wir bieten in Marble ja auch einen recht ausgeklügelten Navi-Modus an.
Es gibt in Marble derzeit noch keinen echten OpenGL 3D-View aber wir arbeiten 
in die Richtung und werden wahrscheinlich in den nächsten Monaten schon so 
etwas anbieten können.

In Marble verwenden wir für unseren Navi-Mode ein Plugin-System, das es 
erlaubt beliebige  Routing Backends parallel abzufragen. 

Routing Backends können dabei Offline Lösungen oder Online Lösungen sein. 
Marble unterstützt bei Offline Lösungen derzeit Gosmore, Routino und das Monav 
Backend.  Als Online Lösung werden z.B. OpenRouteService und Yours 
unterstützt.
Wenn die Plugins auf die Suche antworten, wird das beste Ergebnis ausgewählt.

Damit sind wir nicht an den Erfolg einer einzelnen Navi-Backend-Lösung 
gebunden und können dem Nutzer eine Mischung aus schnellen Offline-Ergebnissen 
und aktuellen Web-Ergebnissen bieten.

Daneben unterstützen wir natürlich auch Dinge wie Drag and Drop, alternative 
Routen, Turn-By-Turn Instructions, Routenneuberechnung, internationalisierte 
Sprachausgabe

http://edu.kde.org/marble/speakers.php

und vieles mehr.

Wer genaueres zu diesen Themen wissen möchte, kann sich gerne Dennis' Blog 
anschauen:

http://nienhueser.de/blog/

Gerade hat Niko Sams auch ein schönes Blog dazu geschrieben, wie wir beginnen 
Höhendaten mit einzubeziehen.

http://nikosams.blogspot.com/2011/10/marble-elevation-profile-for-route.html

Da Marble auch gleichzeitig eine reine Qt-Bibliothek ist, lässt sich die 
gesamte Marble-Funktionalität auch in eigenen Programmen verwenden.

Ist Marble damit ein echtes Navi? Das hängt sicherlich davon ab, was man 
erwartet. 
Die Marble-Applikation versteht sich ja vom Grundansatz her quasi als 
schweizer Taschenmesser für Kartendarstellung. Davon profitieren wir natürlich 
auch in puncto Entwicklungsmodell, denn damit fällt für den Navi-Mode immer 
wieder automatisch Funktionalität ab, die eigentlich für einen ganz anderen 
Use-Case von Marble gestrickt wurde. Das gleiche gilt auch in puncto 
Plattform: Leute, die eigentlich Marble für den Desktop verbessern wollen 
(Windows, Mac, Linux), verbessern oft automatisch auch unsere Nokia N900 bzw. 
Nokia N950 / N9 Version gleichzeitig mit.

Das gleiche gilt natürlich auch über den Code hinaus: da wir organisatorisch 
ins KDE-Projekt eingebettet sind, profitieren wir - und damit auch unser Navi-
Modus -  von dem KDE Übersetzungsteam, der "angeschlossenen" Doku-Abteilung 
und dem KDE Marketing.

All diese Peripherie aus Leuten, die vielleicht gar nicht unbedingt ein 
direktes Interesse an der Navi-Funktionalität besitzen, hilft dabei eine 
Software zum vollständigen Produkt zu machen. 

Das müsste  sich ein eigenständiges Navi-Projekt selbst "erarbeiten" und dafür 
Leute begeistern. Das ist sicherlich möglich - aber ein langer steiniger Weg.

Viele Grüße,
Torsten


On Sunday, 23. October 2011 23:11:52 Christoph Eckert wrote:
> Ich habe im Laufe der Zeit an vielen Routern 'rumgebastelt (Gosmore,
> Routino, Navit, MoNav, …). MoNav erschien mir letztendlich am
> vielversprechendsten, weshalb ich im letzten Winter etliche Monate an
> Arbeit investiert habe.

> - MoNav aktualisiert im Moment die Route jedes Mal, wenn eine neue GPS-
> Position anlandet (derzeit einmal pro Sekunde). Dadurch werden auch die
> Abbiegehinweise am Bildschirm einmal pro Sekunde aktualisiert, was nicht
> weiter auffällt. Für die Sprachausgabe ist das aber unbrauchbar, sprich da
> "müsste mal jemand" (man nennt sowas das Partnerschaftspassiv) etwas mehr
> Intelligenz einbauen.
> 
> - MoNav müsste lernen, wo man sich auf der Route befindet. Kann es derzeit
> nicht, weil es ob der Geschwindigkeit die Route permanent neu berechnen
> kann.
> 
> - MoNav müsste lernen, nicht nur selbst berechnete Routen zu nutzen,
> sondern auch eingeladene, die man sich aus dem Web gezogen hat.
> 
> - Für Radrouting möchte man SRTM-Daten mit einrechnen. Da ist schon was
> angefangen, aber der aktuelle Status ist mir nicht klar.
> 
> - Sprachausgabe. Das ist eines der wichtigsten Features überhaupt. Ich habe
> aber bewusst nicht damit angefangen, denn das ist ein Monstertask. Die
> Audioausgabe an sich ist Dank Qt sehr einfach. Aber es hinzubekommen, dass
> im rechten Moment die Abbiegehinweise kommen, erfordert sehr viel
> Feinarbeit, die wenig spannend ist. Abbiegehinweise auf der Landstraße
> sind natürlich trivial. Spannend wird es im Stadtverkehr, in Kreiseln und
> so weiter.
> 
> Es gibt noch weitere Wunschfeatures, aber solange wir kein vernünftiges
> Routing haben, brauchen wir uns eigentlich nicht weiter unterhalten.
> 
> 
> IMO ist die Sache ganz einfach. Wenn Routing auf Mobilgeräten für uns
> wirklich wichtig wäre, dann hätten sich schon zahllose Leute auf MoNav
> (oder Navit etc.) gestürzt und es gebaut. Es ist also nicht wichtig, und
> somit werden alle Offline-Routingprojekte in wenigen Jahren eingeschlafen
> sein, weil wir dann alle überall permanent online

Re: [Talk-de] Entwicklung MoNav

2011-10-25 Diskussionsfäden Sven Geggus
hannes  wrote:

>> Die Doku muss jemand auch irgendwann schreiben, und vor allem muss sie
>> hinterher auch synchron gehalten werden. Wenn ich mich entscheiden muss, ob
>> ich lieber Doku oder lesbaren Code schreibe, entscheide ich mich für den 
>> Code.
>>
> Ich meine so etwas:
> "OSM fragmentiert Straßen. Diese Funktion versucht sie wieder zusammen 
> zu setzen."
> Klar, das geht auch mit: void defragstreet (map *m)
> Die Frage ist doch könnte ein Neuer hier auf eine falsche Fährte 
> gelangen? (Schlechtes Beispiel, es ist tatsächlich klar wenn man OSM 
> Daten kennt.)

Ich stimme Dir zu, dass Kommentare in Quellcode durchaus sinnvoll sind. Ich
mache das in der Regel so, dass ich dann Kommentare in den Code schreibe,
wenn einem anderen beim lesen nicht gleich klar werden kann was ich mir dabei
gedacht haben könnte. Das ist natürlich subjektiv, aber ich denke wenn man
selber der MEinung ist oh, das versteht ein fremder nicht, dann schadet ein
Kommentar im Code ganz bestimmt nicht.

Gruss

Sven

-- 
"Every time you use Google, you're using a Linux machine"
 (Chris DiBona, a programs manager for Google)

/me is giggls@ircnet, http://sven.gegg.us/ on the Web

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Entwicklung MoNav

2011-10-24 Diskussionsfäden hannes

Am 23.10.2011 23:11, schrieb Christoph Eckert:


MoNav ist äußerst modular aufgebaut. Die beste Doku, die ein Programmierer
schreiben kann, ist lesbarer Code. Vergiss Doku oder Kommentare im Code, die
nicht zum Code passen.

Sehe ich auch so aber der Einstieg sollte leicht sein, damit sich der 
Interessierte Entwickler möglichst festliest. Zu MoNav gibt es eine 
Diplomarbeit, damit sollte das Thema erledigt sein. Ich werde sie 
demnächst lesen.


Die Doku muss jemand auch irgendwann schreiben, und vor allem muss sie
hinterher auch synchron gehalten werden. Wenn ich mich entscheiden muss, ob
ich lieber Doku oder lesbaren Code schreibe, entscheide ich mich für den Code.


Ich meine so etwas:
"OSM fragmentiert Straßen. Diese Funktion versucht sie wieder zusammen 
zu setzen."

Klar, das geht auch mit: void defragstreet (map *m)
Die Frage ist doch könnte ein Neuer hier auf eine falsche Fährte 
gelangen? (Schlechtes Beispiel, es ist tatsächlich klar wenn man OSM 
Daten kennt.)



Lesbarer Code ist bei MoNav der Fall,

stimmt

dafür wirst Du doku oder Kommentare
weitestgehend vergeblich suchen. Man guckt also in den Code, fängt an kleinere
Bugs zu fixen, dann kleinere Features einzubauen, und irgendwann hat man
kapiert, wie das Ding tickt, und kann an die großen Brocken gehen. Wer das
nicht schafft, wird es auch mit Doku nicht schaffen.

Es mir geht nicht ums schaffen, sondern ums Programmierer fangen. (Ich 
hab nichts dagegen gefangen zu werden und hoffe dass noch viele in die 
Falle gehen.)

*** die alten Mitarbeiter im Projekt sollten für Neulinge Arbeiten
definieren, beschreiben und die Einstiegspunkte aufzeigen.
Das dient alles dazu einem Interessierten den Einstieg zu erleichtern
und zu motivieren dabei zu bleiben.

Auf Sourceforge gibt es solche "Stellenausschreibungen". Die führen mitnichten
dazu, dass sich Leute begeistert zur Mitarbeit melden. Die Motivation zur
Mitarbeit kommt nämlich nicht von einer Stellenausschreibung, sondern davon,
dass Leute in ihrer Freizeit eine Herausforderung suchen, die sie anspricht.

Ich glaube so beginnt man ein Projekt, eine echte Herausforderung - erst 
einmal richtig gute Arbeit machen und dann mehr Leute hinzugewinnen die 
beim Programmieren helfen. Ich glaube sich in ein Team einzuordnen hat 
braucht eine andere Motivation.

Und wenn man nun versucht die Leute mit überschaubaren Aufgaben zu ködern?

Kann das funktionieren? Keine Ahnung! Aber ich würde es so versuchen.

Als einer, der es versucht hat, empfehle ich, Deine Freizeit lieber woanders
zu investieren :) .


Wie ist es, wollen wir versuchen ein Navi herzustellen? Hat jemand Lust
mitzumachen?

Du wirst erstens nicht allzu viele MItstreiter finden, und zweitens wirst Du
nur ein weiteres Projekt aufmachen, dass dann irgendwann genauso tot ist wie
viele andere.

Ich bin nicht dafür ein neues Projekt anzufangen und suche auch keine 
Mitstreiter, bin eher einer.


Hannes





___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Entwicklung MoNav

2011-10-23 Diskussionsfäden Christoph Eckert
Moin Jungs,

auch wenn es schon fast zwei Jahre her ist, dass ich hier auf der Liste 
gepostet habe, möchte ich das Thema mal aufgreifen.

> Weiter oben im alten Thema wurde das Problem mit den hohen 
> Einstiegshürden aufgezeigt, das sehe ich genau so. Die Einarbeitungszeit 
> um sich in die Gedanken eines anderen einzuarbeiten ist einfach zu lang.

Der Code von MoNav ist außerordentlich leserlich, und der Maintainer 
beantwortet alle Fragen auf der Mailingliste äußerst präzise.

> Es ist doch schade, da macht sich jemand an die Arbeit und schreibt  
> z.B. ein Navi, da geht dann mehr Zeit rein als gedacht und die Arbeit 
> wird eingestellt.

Die Arbeit an MoNav ist nicht eingestellt. Es gibt aber recht wenig 
Entwickler, und wenn die Monate lang ihre Freizeit investiert haben, möchten 
die vielleicht auch mal Pause machen dürfen. Zudem reift in mir die 
Erkenntnis, dass zwei Leute in ihrer Freizeit ein Projekt wie MoNav nicht 
alleine stemmen können.

> *** in möglichst viele abgeschlossene Module aufgetrennt sein, mit 
> dokumentierter Schnittstelle. Geht das überhaupt? Na, wenn nicht, das 
> Umdokumentieren nicht vergessen.

MoNav ist äußerst modular aufgebaut. Die beste Doku, die ein Programmierer 
schreiben kann, ist lesbarer Code. Vergiss Doku oder Kommentare im Code, die 
nicht zum Code passen.

> *** für Neulinge dokumentiert sein. Ich meine grundsätzliche Dinge 
> sollten erklärt werden.

Die Doku muss jemand auch irgendwann schreiben, und vor allem muss sie 
hinterher auch synchron gehalten werden. Wenn ich mich entscheiden muss, ob 
ich lieber Doku oder lesbaren Code schreibe, entscheide ich mich für den Code.

Lesbarer Code ist bei MoNav der Fall, dafür wirst Du doku oder Kommentare 
weitestgehend vergeblich suchen. Man guckt also in den Code, fängt an kleinere 
Bugs zu fixen, dann kleinere Features einzubauen, und irgendwann hat man 
kapiert, wie das Ding tickt, und kann an die großen Brocken gehen. Wer das 
nicht schafft, wird es auch mit Doku nicht schaffen.

> *** die alten Mitarbeiter im Projekt sollten für Neulinge Arbeiten 
> definieren, beschreiben und die Einstiegspunkte aufzeigen.
> Das dient alles dazu einem Interessierten den Einstieg zu erleichtern 
> und zu motivieren dabei zu bleiben.

Auf Sourceforge gibt es solche "Stellenausschreibungen". Die führen mitnichten 
dazu, dass sich Leute begeistert zur Mitarbeit melden. Die Motivation zur 
Mitarbeit kommt nämlich nicht von einer Stellenausschreibung, sondern davon, 
dass Leute in ihrer Freizeit eine Herausforderung suchen, die sie anspricht.

> Kann das funktionieren? Keine Ahnung! Aber ich würde es so versuchen.

Als einer, der es versucht hat, empfehle ich, Deine Freizeit lieber woanders 
zu investieren :) .

> Wie ist es, wollen wir versuchen ein Navi herzustellen? Hat jemand Lust 
> mitzumachen?

Du wirst erstens nicht allzu viele MItstreiter finden, und zweitens wirst Du 
nur ein weiteres Projekt aufmachen, dass dann irgendwann genauso tot ist wie 
viele andere.

> Wie wollen wir starten? Fangen wir von vorne an und arbeiten Teile von 
> monav oder gosmore ein oder bauen wir auf monav auf oder...

Ich habe im Laufe der Zeit an vielen Routern 'rumgebastelt (Gosmore, Routino, 
Navit, MoNav, …). MoNav erschien mir letztendlich am vielversprechendsten, 
weshalb ich im letzten Winter etliche Monate an Arbeit investiert habe. Es 
gibt verschiedene Builds, Installer und vorberechnetes Kartenmaterial, so dass 
möglichst viele Leute damit 'rumspielen können. Unter anderem habe ich einen 
Windowsinstaller gebaut, obwohl ich Windows gar nicht nutze. Auf der 
Mailingliste schlagen inzwischen auch Leute auf. Die fragen dann aber 
bevorzugt, ob es nicht Unterstützung und Installer für Plattform X geben 
könnte. Wir brauchen aber Leute, die nicht danach fragen, sondern es machen.

Hier ein paar Infos zu MoNav:

* Läuft auf jeder Plattform, die Qt4 und QtMobility unterstützt. Auf Android 
kriegt man es wohl irgendwie zum Laufen, aber es ist Gebastel. Auf Windows 
Phone wird es nie laufen, weil man dort keinen nativen Code laufen lassen 
kann.

* Die Suche und das Routing auf dem N900 sind überragend schnell. So will man 
es haben. Sprich die Kernfunktionalitäten sind gelöst. Eigentlich braucht es 
jetzt "nur noch" Leute, die das ganze zu einer endanwendertauglichen 
Applikation machen. Das motiviert aber Entwickler üblicherweise nicht, denn 
die suchen nach Herausforderungen, nicht nach Fleißarbeit.

* Die OSM-Daten eigenen sich nicht für eine Routingsoftware. Wir wissen nicht, 
zu welcher Stadt eine Straße nun wirklich gehört, wir wissen nicht, welche 
Straßen innerstädtisch und welche außerorts verlaufen, wir haben keine 
Hausnummern und keine Postleitzahlen. Unsere Straßen sind komplett 
zerhäckselt, weshalb man potentiell viel zu viele Weghinweise erhält.

Der zweite Punkt ist nicht wirklich superschlimm, der erste aber auf jeden 
Fall, und die beiden vorletzten ließen sich theoretisch verschmerzen, stehen 
aber einer Endanwendertauglich