=head1 BBBike: TODO Legend: Challenge level: E: easy/fast to implement M: middle H: hard/time consuming to implement Priority from 1 (unimportant) to 5 (very important). =head1 Perl/Tk version of bbbike =over =item * (M1) Loading plugins: show multiple errors in one dialog. =item * (M2) Replace all dialogs with longdialog (maybe) through a common subroutine. Either re-use dialogs or destroy them after usage. =item * (M2) Create nice anti-aliased and alpha-using PNG images and use it if possible for icons/symbols etc. =item * (H2) Logos für Radfernwege verwenden, z.B. L oder L. =item * (H5) Besseres Erkennen der Kreuzungssituation in der Straßenliste. Z.B. Bei Kreuzungen, wo beide Straßen nur einen kleinen Winkel zueinander haben, sollte immer (auch bei <30°) die Richtung ausgegeben werden. Bei Situationen wie Falkensteinstr./Oberbaumstr. sollte trotz Geradeausfahrt die Nebenstraße gekennzeichnet werden (z.B. Enicht der Hauptstraße folgenE). Bei einfachen Kurvensituationen ohne Kreuzung (Neudecker Weg und Rudower Str.) braucht keine Richtungsangabe erfolgen. Wenn an so einer Stelle eine Kreuzung ist, dann kann die Angabe EHauptstraße folgenE zusätzlich angezeigt werden. =item * (H3) insert/delete etc. functionality: add an easy way to use custom layers =item * (M3) Show more fields in route list (just like in web interface) =item * (H3) Edit mode, coloring of pp points: use different coloring for EKurvenpunkteE and crossings, to easier detect errors in the street net. =item * (M3) Bugreport von Andreas Mühlhausen: BS/Del funktioniert nicht zum Löschen von Punkten aus der Selection im Edit-Modus unter Windows. =item * (M3) Bugreport von Andreas Mühlhausen: Sehenswürdigkeiten werden auch im Normalmodus mit einem grünen Punkt gezeichnet (unter Windows). =item * (M3) Tk::Getopt addition: for some changes a post dialog should be shown, e.g. "Please restart the app to make this/the option change/s visible". Or is it already possible? Use it in bbbike. =item * (H3) Drucken: if the PDF backend is chosen, then Druckeinstellungen have no effect. Maybe it would be nice to support at least some of them (legend, maybe b/w) =item * (H4) Overview-Map: always segfaults under Win98 =item * (H3) Option editor does not fit into 800x600 screen --- using scrollable pane? (it even does not fit into a 1024x768 screen on windows). Maybe for a first workaround use a smaller font for smaller screens/on windows? =item * (H1) Unterstützung für EPersönliche WegeE (oder user-defined layers). Zwei Typen: routingfähig (automatisch per Eadd...E in das Straßennetz eingebunden) oder nicht-routingfähig. Editiermöglichkeiten für diesen Layer (mit Verwendung von datachange.log). Möglichkeit der Veröffentlichung. -> Niedrige Prio, da theoretisch schon machbar, auch wenn nicht ganz komfortabel: edit-Funktion funktioniert für eigene Layer, add custom und custom existiert für das Suchnetz =item * (H3) Ich sollte GPX als Ein/Ausgabeformat unterstützen: L. Eingabe geht bereits. =item * (H3) Neue Symbole für Steigungen verwenden: > (gepunktet): 1-3% > (solid): 3-7% >>: über 7% > (grau): Steigung ohne Prozentangabe =item * (M4) Aufteilen des Strassen-Menues. Vorschlag: Strassen-Layer Strasse auswaehlen Erweiterte Auswahl (untereinander!) Strassenkategorien Strassennamen Attributierung: Radwege + Kategorien (comments_cyclepath geht hier ein) Hoehenangaben ? Ampeln Strassenqualitaet + Kategorien Sonstige Beeintraechtigungen + Kategorien ? Unbeleuchtete Straßen Vorfahrt Gruene Wege ? Steigungen (comments_mount geht hier ein) Kfz-Verkehrsdichte (comments_kfzverkehr) Strassenbahnen (comments_tram) Routing-Hilfen (comments_path) Sonstige Kommentare (comments_misc) Andere Wege-Layer Radrouten (comments_route) Radrouten auswaehlen Faehren (comments_ferry geht hier ein) Faehren auswaehlen Fragezeichen =item * (H2) Bug: see t/strassennetz.t =item * (M3) Computers are faster nowadays. Make some feature default, e.g. no_overlap_labels, more layers on startup (flaechen, gewaesser). Detect computer speed on linux: perl -e '($bogomips)=`grep bogomips /proc/cpuinfo` =~ /:\s*([\d\.]+)/; print $bogomips,"\n"' How to get CPU/hardware speed on other OSes: FreeBSD (sysctl?), Windows? EOptionen für langsame RechnerE: z.B. EÜberlappungen vermeidenE etc. =item * (H1) Hausnummern. Für wichtige lange Straßen erfassen. In der Kreuzungsliste beim CGI dann neben den Straßennamen anzeigen. Wie in der Perl/Tk-Karte darstellen? Vielleicht nur bei kleinen Massstaeben? =item * (H2) Optimize SRTProgress: only hide canvas if first progress drawing is necessary (already done, check). Adjust progress drawing to be specified in time intervals (alternatively). This would reduce the need of hiding/displaying the canvas in short or empty redraws. Research for alternative SRTProgress implementation: pre-forked stand-alone MainWindow, or submit a TIP with a per-widget update (in Perl/Tk: updateWidget) method. =item * (H5) The -lazy option seems to cause a big memory leak. =item * (H2) Dynamisches Zeichnen (weniger/mehr) von Kartenelementen anhand der VergrEEerung (wird teilweise schon gemacht, z.B. bei get_symbol oder Orte/Kategorien=Auto, was fehlt noch?). Beim Zeichnen von Orten muss das Problem des Abstand zwischen Punkt und Label geloest werden --- bislang wird der Abstand beim Vergroessern zu gross und beim Verkleinern zu klein. Ideal waere natuerlich ein eigener Canvastyp (Composite-Item) Mittlerweile ist das Problem Punkt-Label bei Orten gelöst für den Modus EüberlappendE. =item * (M3) In Routenbeschreibungen Zeilen wie "StraEe A", "StraEe A", "StraEe A" zu einer Zeile zusammenfassen. Das kann vorkommen, wenn bei der Route ein Zwischenpunkt verwendet wird. =item * (M2) Bessere Routenbeschreibung fEr LandstraEen (wie? was ist an der derzeitigen nicht gut genug?). In der Datenbank "X - Y" nach "(A) - X - V - Y - (B)" Endern, wobei X und Y Start- und Zielort der Strecke ist, (A) und (B) die globale Richtung (grEEere StEdte vor und nachher) und V ein Via-Ort ist. Die geklammerten Orte und V sind optional. Auch alle Straßen, die bislang nur mit der Straßennummer bezeichnet sind, auch mit Start/Zielort in der Form EX9: Start - ZielE oder EStart - Ziel (X9)E bezeichnen. =item * (H2) MEglichst Orte (optional) in die Routenbeschreibung aufnehmen. Vielleicht mit nearest_... arbeiten. Eine erste Implementation mit $do_route_strnames_orte, aber was macht diese? Nähe zur Ortschaft sollte evtl. einstellbar sein. Problem: ich habe keine Ortsgrenzen zur Verfügung. Anfangen, die Datei orte_flaeche anzulegen (zwischen sicheren Punkten --- diejenigen, wo ich einen Waypoint am Ortsausgang gesetzt habe, und interpolierten Punkten unterscheiden) =item * (H2) Im Umland ist es vielleicht sinnvoller, eine Routenbeschreibung anhand von Punkten (Ortschaften) anstatt Strecken (StraEen) zu machen. Optional eins oder beides zusammen. =item * (H1) (Rsync und CVS hat Zeit...) Update Eber das Internet: rsync-UnterstEtzung und die Alternative CVS testen. rsync ist vielleicht nicht so gut, weil ein rsyncd irgendwo benötigt wird und rsyncd nicht das Sicherste der Welt ist. CVS wäre besser, noch besser, wenn es eine abgespeckte Client-Variante in Perl gäbe (VCS-LibCVS scheint auch brauchbar zu sein), die man ins Windows-distfile dazupacken könnte. CVS ist unter Unix meist vorhanden. =item * (M1) Wie ist der derzeitige Stand mit aktuellen Telefonbuch-CDROMs? Welches Programm kann diese auslesen (tbb?). =item * (M1) Telefonbuch-Datenbank (Name): Die Suche ist suboptimal. Bei der Suche von hEufigen Nachnamen (MEller, Schulze) wird das Ergebnis begrenzt (200 Namen) und kann mit "Weiter" fortgesetzt werden. =item * (M1) Maushilfe: B4/B5 dokumentieren (nur im Canvas, nicht auf den Buttons notwendig), Erklärung für B2 anpassen =item * (M2) Oben/normal/unten: Reihenfolge: RB oder S, dann RB-Bhf oder S-Bhf, und nicht RB, RB-Bhf, S, S-Bhf wie bislang. =item * (H1) Unlimited Undo? =item * (M1) Optionen -auchumland und -nurberlin einführen: damit könnten einige Variablen wie wasserumland, landstr, orte etc. gesetzt werden. Aber wahrscheinlich sollte ich besser auf lazyplot setzen? =item * (H2) search_route: multiple Start/Zielpunkte (Checkbutton) --- Ausführung unklar. =item * (M3) Mehr einfache Optionen (EShortcutsE) fEr die Suche: kErzeste Strecke, schnellste Strecke (in AbhEngigkeit von Wind, Steigung/GefElle, StraEenoberflEche etc.), =item * (M1) Einheitliche Schalter fEr das interne Caching von Daten (z.B. ob beim Anklicken von "Ort" die Datei immer neu eingelesen werden soll). =item * (H1) Portrait/Landscape-Umschaltung: alle Canvas-Daten aktualisieren. Route wird z.Zt. nicht gedreht (evtl. auf @coords verzichten und nur @realcoords verwenden). =item * (M4) VernEnftige Options-Eingabe in der GUI. Zwischen Startup-Optionen (Zeichnen der StraEen/Punkte) und aktuellen Optionen unterscheiden. Damit zusammen hängt eine Neubearbeitung von Tk::Getopt (Tk::NoNotebook, Klick auf Checkboxen etc. resultieren *NICHT* in einer sofortigen Aenderungen --- erst nach EOkE, besseren Msgcat-Support (eigene Module dafür?)). =item * (M1) choose_ort, S- und U-Bahnen: neben dem Bahnhof die zugehErige(n) Linien anzeigen =item * (M2) Option -centerc auch schöner zugEnglich machen. Eine Möglichkeit wäre, im Optionseditor einen Button neben der Option anzubieten, der in den set-coord-mode geht, cursor aendert, das tk-getopt-fenster withdraw-t, und darauf wartet, dass der benutzer auf die karte klickt oder EcancelE drückt. =item * (M1) Bei Tix sind Eingabe-Widgets und Listboxen in einem helleren Farbton. Auch bei BBBike konsequent umsetzen (systematisch alle Fenster durchgehen). =item * (M2) Evtl für BBBike-Canvas und Ebersichtskarte: Maus ziehen zum Einstellen eines Ausschnitts. Das Rechteck, das beim Ziehen erzeugt wird, muss natuerlich den Aspect des Hauptfensters beibehalten. =item * (M2) Edit-Modus: Cursor aendern. Die Checkbox EVias einblendenE ausschalten (und spaeter wieder restaurieren). =item * (H4) Edit-Menu: Weiteren Punkt Ebulk editE einführen. Damit kann ein Straße mit allen wichtigen Attributen gesetzt werden. Zusätzlich für EAdd new toE-Dialog: Beschränkung der Kategorien auf die aktuell verwendbaren (also bei strassen auf HH .. NN, bei landstrassen zusätzlich B, bei qualitaet-* Q... etc.) =item * (H3) Edit-Menu: new feature: prolonge street. From the editing view: click 2nd and 1st point of street and then a series of coordinates to be added. =item * (H3) Edit-Menu: new feature: split street. From the editing view: click three neighboring points on the street. The middle one is the split point. =item * (H2) Edit-Menu: new feature: combine streets. From the editing view: click three points from two streets, where the middle one belongs to both streets. Check if both streets have the same name and category, otherwise combining is not possible. But maybe combine nevertheless and give the user the possibility to choose the combined name/category. =item * (H3) Edit-Menu: new feature: Move multiple points. From the editing view: select a number of points (e.g. all points of a street or area; or by selection rectangle; or by clicking on a number of points). Select a delta by defining a line. Move all points by this delta. =item * (M2) Edit-Mode: DEL does not delete the coord list (but Backspace does). =item * (M3) search net custom: statt automatisch alle Layer zu verwenden sollte man lieber: * entweder einen Filedialog erhalten und damit eine bbd-Datei auswählen * oder einen Dialog mit allen vorhandenen Layern anzeigen und daraus beliebig viele (für multistrassen) auswählen * oder beides =item * (M3) Additional layers sollten auch in der Kommandozeile und im config-File spezifizierbar sein. =item * (H3) Replay datachange.log: alle Änderungen (am/bis einem bestimmten Datum) werden automatisch aufgenommen. Am besten mit einem Testmodus, der zuerst alle Dateien aus data/* nach /tmp kopiert und nur dort ändert. Dann könnte man bbbike mit -datadir aufrufen und testen, oder ein diff -r machen. =item * (H3) StraEennamen: Labels wie in richtigen StadtplEnen anordnen, also z.B. "Yorckstr.": am Anfang der StraEe "Yorck-", am Ende der StraEe "str.". Dadurch werden die Namen hoffentlich lesbarer sein. Der Code dazu existiert schon, ist aber langsam und buggy und wird nur bei bbbike.cgi verwendet. =item * (H3) Da das Zeichnen von StraEennamen so lange dauert: mit Hints arbeiten (z.B. fEr einige oft verwendete Zoomstufen Koordinaten und Transformationsmatrizen vorberechnen). =item * (H2) Beim VergrEEern kEnnte man ab einer bestimmten Stufe auch die GrEEe der StraEen/Ortslabel auch mitvergrEEern. =item * (H1) Server-Mode und Client-Programm: austesten, insbesondere mit KDE, und dann alle Starts auf bbbikeclient umschreiben. Gucken, wie man sowas mit Win32 machen kEnnte. Server-Beispielcode aus EMastering Perl/TkE verwenden. =item * (H3) Rotierte Fonts: vielleicht ein Freetype-Modul schreiben, dafEr eine Tk::Canvas-Erweiterung und diese in BBBike verwenden? =item * (M1) VergrEEerung der Schrift beim Zoomen =item * (M1) Beim pp-Symbol wird beim Zoomen vergrößert; beim Neuzeichnen wird aber die kleinste Vergrößerungsstufe wieder genommen. =item * (H1) Kurzhilfe: kann man feststellen, ob man eine 2/3-Tastenmaus hat? Und wenn es nur eine 2-Tasten-Maus ist, dann existiert vielleicht eine Emulation fuer die mittlere Taste? =item * (E2) Vielleicht Windchill-Temperatur zusEtzlich anzeigen. See windchill program in bin/sh or devel. New formula: L =item * (H1) Optimierung: Beim Ausschalten von Outline oder StraEennamen muE nicht alles neu gezeichnet werden. =item * (H2) Meta-Choose-Dialog, der alle Choose-Dialoge vereinigt. Vielleicht Tk::SmartListbox verwenden? =item * (M3) wettermeldung2 mit fork/spawn/threads aufrufen =item * (H3) Neue Version von wettermeldung2 schreiben, die SYNOP-Information verwendet. =item * (M4) Wenn wEhrend eines WWW-Fetches die Verbindung gekappt wird, hEngt BBBike vollkommen. Gesehen bei Win32. Vielleicht mit Timeouts arbeiten (kann das LWP?) und hEppchenweise holen. Oder noch besser: fileevent verwenden! ... LWPng kann Event-Handling. Leider ist das Event-Handling noch inkompatibel mit Tk. Auch fEr wettermeldung2 mit LWPng arbeiten. =E Vielleicht das hochgelobte POE verwenden. XXX Stimmt das noch immer, auch mit Http.pm? Unter Unix scheint es gut zu laufen. =item * (M2) FEr das Drucken von Text: evtl. auch Netscape und print-Methode verwenden (?). FEr Unix kEnnte man eine start netscape, netscape remote openFile/print-Kombination verwenden. Bei Windows? Netscape kEnnte man auch zum Mailabschicken verwenden, Eber mailto. Evtl. ein Modul fEr Netscape schreiben, daE die ganzen remote-Kommandos verwendet. Hier eine Liste: %s: usage: OpenURL(url [ , new-window|window-name ] ) %s: usage: OpenFile(file) %s: usage: print([filename]) %s: usage: SaveAS(file, output-data-type) %s: usage: SaveAS(file, [output-data-type]) %s: usage: mailto(address ...) %s: usage: find(string) %s: usage: addBookmark(url, title) %s: usage: htmlHelp(map-file, id, search-text) Mit Xprt fEr X11 experimentieren (doc lesen). =item * (H1) Ein LightWeight-Modul (CanvasMap) schreiben. Vielleicht irgendwann alles auf dieses Modul umschreiben. =item * (H1) PerlPlusPlugin ausprobieren und BBBike dafEr portieren. Sachen, die mir dafEr einfallen: Ich brauche ein open(), das Eber LWP funktioniert (vielleicht mit LWPng?). Ich brauche ein hyperuse und hyperrequire. Z.B. @HYPERINC = qw("http://user.cs.tu-berlin.de/~eserte", "file://tmp"); hyperuse BBBikeEdit; hyperrequire Strassen; Irgendwo habe ich so etwas schon implementiert gesehen ... suchen! =item * (M2) Bei einem Resize muE auch das Progress-Canvas angepasst werden. =item * (H1) BBBikeContext.pm schreiben: gibt alles aus, was ich so brauche: $os, Strassen-Objekte, Crossings, Netze etc. Caching bei Belieben einstellen, evtl. mit Ties arbeiten, die sich selbst umwandeln oder durchgEngig mit Methoden. AutoLoading verwenden. Z<>=E Teilweise erledigt BBBikeRouting.pm einige dieser Sachen... =item * (H1) Speicheroptimierung. Folgende Symbole kommen im Dump von Devel::Symdump vor und bedErfen KlErung (warum, woher, benEtigt?): * English::* => in irgendeinem Tk-Modul * DB::args * Tk::Pretty::* * re::* * DirHandle::* Ein minimales System kann auf Folgendes verzichten: * Fahrinfo::* * BikePower::* * Devel::Peek::* * EasySound::* * Karte::Berlinmap1997::* * Karte::Berlinmap1999::* und weitere * wettermeldung2::* * BSD::Resource::* * Hyper::* * Plugin::* Evtl. auch: * Tk::DragDrop::* * Tk::CanvasBalloon::* * Tk::ContextHelp::* * Tk::Dialog::* (nach STDERR umlenken, wenn nur OK-Button erscheint) * Tk::ErrorDialog::* (Default: nach STDERR umlenken) * Tk::FireButton::* * Tk::SRTProgress::* * Tk::UnderlineAll::* =item * (H1) 3D-Darstellung von Berlin (z.B. vier versetzte FlEchen, die oberste in der Hintergrundfarbe und die anderen in der Schattenfarbe). Z<>=> Wo verwenden: overview-Fenster, overview-Button oder im CanvasMap anstelle der normalen Grenzen? =item * (H2) Bike+Ride integrieren. Das wErde in eine unterbrochene Route resultieren, deren Fahrzeiten addiert wErden. ZusEtzlich kEme noch eine abgeschEtzte Zeit fEr die Benutzung des Verkehrsmittels (Fahrzeit + Zusteigzeit + Umsteigezeiten). Eine Verbindung zu Fahrinfo wEre genial. Vorgehensweise: =over =item * automatisch Verknüpfungspunkte Bahnhof-Straßennetz erstellen. Z.B. exact_streetchooser verwenden, um die nächste Straße zu ermitteln, und dann mit add_net den Lotpunkt neu erzeugen. =item * evtl. für pathologische Fälle Verknüpfungspunkte manuell erstellen =item * make_net_cat für die Geschwindigkeit. Faustregel: RB 80-100 km/h (?), U-/S-Bahn anhand von einigen Fahrplänen Durchschnittsgeschwindigkeiten ermitteln =item * jeder Verknüpfungspunkt wird mit einer Penalty belegt, die der Wartezeit ungefähr entspricht. =item * auch Umsteigemöglichkeiten im Netz mit Penaltys belegen (wie?) =item * Suche modifizieren: Verabschieden vom Grundsatz gleiche Koordinate = Verknüpfung? Mitführen der aktuellen Linie (bzw. Liniengruppe), um Umsteigen zu erkennen. =back =item * GfxConvert evtl. mit Tk::WinPhoto/Tk::Photo-Funktionen implementieren, wenn die externen Programme nicht verfEgbar sind. Am besten wEre natErlich noch immer ein NetPBM-Modul. Photo-Zooming: -zoom x -subsample y == -zoom x/y oder umgekehrt =item * Radwegekategorien erweitern: RW(kategorie)(qualitaetskategorie). Also heiEt dann z.B. RW00: Radweg mit sehr guter QualitEt und RW13: benutzungspflichtiger Radweg mit sehr schlechter QualitEt. Bei den restlichen Kategorien kann man sich die Erweiterung sparen, da dort die QualitEtskategorie der StraEe gilt. Default-QualitEtskategorie fEr Radwege sei 1 (gute QualitEt). Problem => ich bin schon bei RW10 angelangt, also brauche ich eine andere Kodierung. =item * ShAddRecentDoc geht unter Win98 nicht? =item * Drag'n'drop und open's sollten vielleicht etwas mit .lnk-Dateien unter Win* anfangen kEnnen... =item * outline_text bei draw_text_intelligent verwenden =item * (M4) draw_text_intelligent should use the bbox of the central object if xaddanchor/yaddanchor is not defined =item * Beim intelligenten Zeichen von Ortsnamen bietet sich ein Scanline-Vorgang von rechts nach links an. Somit vermeidet man Sachen wie Slubice * * Frankfurt Schwierig, wenn gleichzeitig das Ergebnis aus sortbycat beachtet werden soll (Multipass? Langsam!) =item * Bei der Ausgabe der StraEennamen an der Route sollte ein aehnlich intelligentes Verfahren angewendet werden. Vielleicht kann bei Routen, die von W nach O verlaufen, die Strassennamen erstmal links vom Punkt eingezeichnet werden und umgekehrt. =item * Bei -usbahnnetz sollte folgendes gehen: Routenbeschreibung mit BahnhEfen statt Strecken (davon kann auch die Routenbeschreibung auf dem flachen Land profitieren!) ... Und noch schEner: eine Kombination von U/S-Bahn und StraEennetz (fEr FuEwege bzw. Bike+Ride). =item * Optional eine kErzere Beschreibung. Diese wErde nur folgendes enthalten: StraEen und AbbiegevorgEnge. Wenn man auf einer StraEe nicht abbiegen muss, dann werden verschiedene StraEennamen in einer Liste zusammengefasst. ZusEtzlich noch eine Druckausgabe. Auch beim CGI. Wann wird die Ausgabe endlich vereinheitlicht? =item * bei Windows (oder allgemein: bei ClickToFocus) ist es unangenehm, dass neue Fenster den Focus klauen. Allerdings ist es ohne Maus eher angenehm, dass neue Fenster den Focus bekommen. Wie soll man also verfahren? =item * Pilot.pm installieren, BBBikePalm dafEr erweitern =item * user editing: negative/positive prEferenzen mit b2/b3 lange druecken setzen =item * bugfix: optmenu in optimierungseinstellungen korrigieren (Fehler beim Tk Widget) =item * lange hEnger bei vielen Canvas-Elementen ueberpruefen =item * MDI-Interface entwickeln mit: * map-widget * start/zieleingabe * einfaches opt-einstellungs-fenster * routenbeschreibung Siehe Tk::WindowManager =E entwickle ich nicht mehr weiter, dafEr gibt es aber ein neues Tk::MDI-Widget. Aber: MDI is evil! =item * Andreas' Labeling-Algorithmus verwenden =item * (E2) -font/-fontfamily/-fontheight handling verbessern. -font in der Kommandozeile sollte Einstellungen in der Config-Datei überschreiben. Das Verwenden von -fontfamily lucida -fontheight 7 führt nicht zum gewünschten Ergebnis. =item * (M2) You Tk::Icon (see L) to optionally display the bbbike icon (avoid transparency problem!). =back =over =item CDROM-Probleme: - tk:underlineall.pm warnings in 111,114,157,178 - win, print: fehlermeldung nicht auf stdout zeigen. start_cmd wird ohne progexe gestartet, wenn der ps-viewer gestartet weden soll. dito beim browser - tk::getopt: pane verwenden. ab 800.015 eh standard - optionen besser gruppieren. z.b. audio irgendwo unterbringen zwei Reihen mit Notebook? - "outline" -> umrandungen sonstige anglizismen herausnehmen - Bei Win98 geht anscheinend perlglob nicht-> Probleme mit Ncopy - unix/kde-installation: statt symlink von /usr/local/bin besser shell-skript mit richtigem perl-path erstellen. wenn /usr/local/bin nicht im PATH, dann evtl. /usr/bin nehmen. wie macht es autoconf bei KDE? kann ich was von autoconf verwenden? Env-loesung ist auch OK - menuepunkt fuer taste x - layereditor hat bei win95 einen absturz verursacht, und zwar beim local drag (NT mit 800.015 selbst compiliert auch? nur bei followmouse?) - winddaten eingeben als menuepunkt - eigenes popup mit popover nicht fuer win32 verwenden - da ist eh clicktofocus aktiv. Bei KDE auch? Gibt's ne property, die die wm -einstellung anzeigt? - set ziel vom str-dialog setzt anscheinend das via-array nicht - shift-click vom start aus geht nicht - besseres cdrom.pl schreiben. Sowas wie cons, nur fuer das kopieren. Oder mkisofs beibringen, das er die richtigen sachen ohne kopieren erzeugt =item BBBike - Externalization, towards to v4.0 Allgemein: Aenderungen nur durchfuehren, wenn sie entweder trivial und unaufwendig sind oder zwingend fuer die anstehenden Portierungen sind. - data: neue Verzeichnishierarchie Vorschlag: city "_" iso-country-abbrev. Beispiel: berlin_de, muenchen_de, san_francisco_us - oder: derzeitige datadir-praxis beibehalten: z.b. data_berlin_de - in den Geography-Modulen: Iconleiste (welche Buttons sind ueberhaupt definiert? Welche zugehoerigen Menues?) - Iconleiste wird stadtspezifisch erzeugt (e.g. Gibt es U-/S-Bahnen?) - Iconbilder werden stadt/landtpezifisch benannt. Beispiel: ubahn.gif => ubahn_de.gif - Umland ja/nein. 3-stufig (mit jwd?), "Haltestelle" oder "Haltestelle/Ort"? - Aufgeben des manuellen LandstraEenzeichnens (und jwd etc.) - generell: vielleicht ein gesondertes sub symbolframe fEr jeden Ort? - oder: XML-Beschreibungsdatei fEr die Properties? - automatisches Erstellen der Properties in Geography.pm anhand der existierenden data-Dateien - Ampeln sind vielleicht nicht Eberall erfasst - winddaten kEnnen vielleicht nicht Eberall Eber das web geholt werden - StraEen: nicht alle Daten sind Eberall erfasst (Kategorien, Radwege, QualitEt, ...) - StraEenauswahl: PLZ-Liste, CDROM? - etc. So gut wie alle daten kEnnen vorhanden sein oder nicht - transpose-Funktion ist ortabhEngig, BBBikeTranspose als Verteiler - map-button sollte berlin-spezialitEt bleiben - check-skript: sind alle benEtigten Variablen definiert (in den Geography-Modulen) - einige devel-skripte sind auch ortabhEngig - vielleicht Erstellung eines devel-Verzeichnisses mit nEtigen skripten aus miscsrc und vielleicht misc. Insbesondere kritische Sachen wie den eplus-Roboter herausnehmen - verkleinerung fEr overview-mode sollte einstellbar sein - anhand von $0 erkennen, welcher Ort verwendet eerden soll. Gut fEr CDROM-Installationen - edit vs. normal mode: bei anderen stEdten keinen unterschied machen (transpose entsprechend setzen) oder gps-koordinaten im edit-mode verwenden - CGI: imagedir ortsunabhEngig machen - caches ortsunabhEngig machen =item Bookmarks Bookmarks in choose_ort und möglichkeit, per dnd neue bookmarks zu definieren, um als straßenauswahl dienen zu können =item weiter: - bei Http.pm vielleicht IO::Select::can_read/write verwenden - bbbike.cgi: Installation auf rapidsite testen => automatisierten Test a la wap_test schreiben, gleiche Features erkennen und verallgemeinern - BBBike: feinere Aufteilung der Gegenwind- etc. Strecken (fließend von rot bis grün) - BBBike: "Window intelligent positionieren" implementieren - BrowserInfo.pm: von Roxen's SUPPORT lernen: SUPPORTS: font tables cookies javascript backgrounds backgrounds autogunzip netscape_javascript tablecolor ssl frames mailto forms images pull push java imagealign gifinline pjpeginline fontcolor some_html3 jpeginline - bbbike/c: neues pmake funktioniert unter Suse nicht => gmake benutzen? grrr... - Verwendung von Tk::App::Reloader. Scheint allgemein zu funktionieren. =item Fahrbahnbeschaffenheit Aus der Radzeit 3/2001, Seite 8-9: Radwege: Verbundsteine kontra Asphalt [...] Der Energieverbrauch beim Rad fahren (durchschnittliche Geschwindigkeit 15 km/h) auf Asphalt in StraEenqualitEt betrEgt ca. 1000 Joule und auf Kopfsteinpflaster ca. 2200 Joule jeweils pro 100 Meter. Bei asphaltierten Radwegen mit schlechter LEngsebenheit liegt dieser Wert zwischen 1200 bis 1400 Joule, bei neu gebauten Radwegen mit gefasten Verbundsteinen bei ca. 1400 Joule und bei wassergebundenen Decken zwischen 1600 und 2000 Joule pro 100 Meter. Da der Einsatzbereich des Fahhrades als Verkehrsmittel umgekehrt proportional zum Quadrat des Energieverbrauchs ist, ist dieser bei Radverkehrsanlagen in guter StraEenqualitEt rund doppelt so groE wie bei Radwegen mit Betonverbundsteinen und etwa viermal so groE wie bei wassergebundenen Radwegen. Quelle: UPI-bericht Nr. 41, 3. erw. Auflage August 1999 EEntwicklung und potentiale des Fahrrad-VerkehrsE Seiten 18 bis 20 URL: L =item Verkehrsverwaltung Verkehrs-/Umweltverwaltung wegen Emissionen: ReulenbEcker IX D2 Tel: 9025 2391 Raum 8.020 BrEckenstr. Mitte =item weiter - Farbeditor: background setzen sollte vielleicht Canvas-bg ignorieren bzw. eigener Auswahlpunkt für Canvas-bg. Vielleicht *alle* Farben änderbar machen --- aber dann muss man die Änderungen auch abspeichern können (schwer, unwichtig) - Straßennamen: zeichnen on demand? besserer Algorithmus? TIP mit -angle ausprobieren? (schwer) - intelligenterer Markieralgorithmus: nicht Zentrieren, sondern nur verschieben, falls: durch andere Fenster verdeckt (nur eigene Toplevels beachten) oder weniger als 10% (5%) oder .... Pixel vom Rand oder einem anderen Toplevel entfernt. In diesem Fall den Ausschnitt auch nur minimal verschieben, bis sichtbar (schwer) - Idee von effizienten Loop/Callback-Mechanismus: ein callback kann entweder alleine aufgerufen werden (mit nötiger Initialisation + Cleanup) oder in eine beliebige Loop eingebettet werden (Inline, Initialisation + Cleanup außerhalb der Loop). Beliebig viele Callbacks können kombiniert werden (Stacking). Verwendung von B::Deparse? (sehr schwer, API und Ausführung erst einmal ausdenken) - Bug: beim Umschalten von einem anderen Mode in den Suchmode muss zuerst einmal ein Reset ausgeführt werden, bevor Start gesetzt werden kann (mittel) - Start/Ziel löschbar machen (mittel) - Optimierung bei vias löschen/verschieben/einfügen: nur geändertes Stück berechnen (delete=strecke vor-nach; move=beide strecken vor/nach; insert: neue zwei strecken) (mittel-schwer, nur, wenn ich das via-feature häufiger nutze) - bbbike.cgi: kommentar-spalte: bei münchen schiebestrecken ausweisen, evtl. auch radwege. in berlin vielleicht alles mögliche ausgeben --- ausprobieren =item StraEennetz, Suche Die build-Funktion kEnnte viel einfacher gestaltet werden, da if (const) { } von perl optimiert wird. Die Vorgehensweise wEre also: eval q{ sub CONST () { $const } ... A*-Code } Leider gibt es mandatory redefine warnings, die vielleicht mit einer STDERR-Umleitung unsichtbar gemacht werden kEnnen. Allerdings --- eine Analyse mit B::Terse zeigt, dass nach der Optimierung zusEtzliche enter/leave opcodes im Tree geblieben sind. (Das wEre eine Idee fEr optimize::...: EberflEssige enter/leave Eberspringen, wenn in einem Block keine padsv (my) oder LVINTRO (local) vorkommen sowie der Block in einem void-Kontext steht.) =item BBBikeEdit Teile nach BBBikeGPS etc. auslagern => schon gemacht, noch mehr? =item VernEnftige Koordinaten verwenden Wahrscheinlich ist GKK (fEr Deutschland) die beste Wahl. Mit dem Mapsource-Programm und/oder gpsman folgendes testen: * 1km entspricht wieviel LEngengrad in Usedom, Prenzlau, Berlin, Dessau, Dresden? * Das gleiche mit Karte::Polar ausrechnen * Zur Sicherheit auch BreitengradabstEnde berechnen. * Range von GKK feststellen (in Mapsource einstellen, falls mEglich, ansonsten mit dem eTrex). Wo gelten die Zonen, was fEr EinschrEnkungen hEtte ich? * Umrechnung GKK - Karte::Standard - Karte::Berlinmap1966 - Karte::GISmap. * -orig-Dateien =E GKK, konvertierte Dateien =E einfach auf 0/0 subtrahiert (Ehnlich wie in MEnchen)? Hmmm. Wahrscheinlich ist es sogar besser, wenn die -orig-Dateien auf polare Koordinaten basieren --- wegen der verschiedenen Zonen. Beim Konvertieren wird eine Zone als EHauptzoneE angenommen und die gesamte Karte dagegen konvertiert (die REnder sind dann verzerrt). Da mitten durch Berlin eine GKK-Zone verlEuft, sollte ich vielleicht eine Pseudo-Zone 4.5 verwenden (Aufruf von Karte::UTM::ConvToTm mit dem Berliner LEngengrad als lat0 z.B.). Wie sieht es mit der Konvertierungsfunktion DegreesToGKK aus? * Liste aller von den derzeitigen Koordinaten abhEngigen Dateien erstellen * Wenn die GKK-Konvertierung in Perl zu langsam lEuft: XS-Modul schreiben. Tests sind einfach (Perl-Ausgabe gegen XS-Ausgabe checken) * Welches Datum verwenden: Potsdam oder WGS84? * Alle abgespeicherten Dateien sollten besser Degrees sein! Also .bbr und evtl. esri und so. Auch wenn mEglich: die sichtbaren Koordinaten im cgi sollten auch Degrees sein. * Evtl. alle data/*-Dateien nach .bbd umbenennen und am Anfang einen Header einfEgen (Datum, Koordinatenformat etc.) Entsprechende orig-Dateien heiEen .orig.bbd oder .bbd.orig. In der Zwischenzeit mit beiden Systemen gleichzeitig arbeiten (Konvertierung im Makefile) * DegreesToNZGrid sieht interessant aus --- das brauche ich: x und y und keine Zonen. Implementieren, angucken! * Was ist mit dem Koordinatensystem ETRS 89? =item Niederschlagsprognosen: http://puma.dkrz.de/theomet/prognosen/ http://puma.dkrz.de/theomet/prognosen/bilder/colorpop6.jpg http://puma.dkrz.de/theomet/prognosen/bilder/colorpop6_12.jpg Kommerzielles Programm: http://www.einfalt.de/x_rad_vorher.html =item Volltextsuchfunktion in bbbike erweitern: agrep mit fester Fehleranzahl, automatische Operation mit schrittweiser ErhEhung der Fehleranzahl =item Eine Kreuzung: Verzögerung durch Vorfahrtsberechtigungen: Ampel, Bahnübergang, Vorfahrt, Vorfahrt gewähren, rechts-vor-links; Abbiegevorgänge Verzögerung durch Richtungsänderungen: geradeaus, rechts/links =item Splines verwenden? Z.B. in den Daten so markieren: x,y S x,y ... Falls ein Spline auftritt, wird der gesamte Linienzug mitsamt Outline als -smooth => 1 markiert und für nicht spline-Abschnitte werden die Koordinaten gemaess der Tk::Canvas-Doku dupliziert. Kreuzungen müssen exakt sein (also darf ein Kreuzungspunkt nicht zwei S-Nachbarn haben! => Konsistenzcheck möglich). Mögliches Problem: können alle Tools mit Extra-Daten zwischen den Koordinaten umgehen? Und: wie sieht die API dazu aus (z.B. $street->getattr($data_pos, $coord_pos) und $street->getallattr($data_pos)). Splines auch bei der Routensuche (strecke()) beachten? =item H1: Ausblenden von Strassentypen/Radwegtypen: sollte besser -state => "hidden" verwenden, wenn moeglich (d.h. recent Tk). Waere aber eine Semantikaenderung, da zurzeit nicht eingeblendete strassen auch nicht in der routensuche verwendet werden. Was eigentlich Quatsch ist. =item ??? make some data controlled persistent: * mapping full path => data structure * check modtime list: strassen, landstrassen, Berlin.coords.data, Potsdam.coords.data ??? =item Ampelschaltung.pm und BBBikeEdit.pm so erweitern, dass die alte Form (misc/ampelschaltung-orig.txt) auch per GUI editierbar ist. Alternativ herauskriegen, wie ich mir die Punkt-Kreuzung-Liste zusammenklicken kann (wahrscheinlich einfacher). =item secure deployment to radzeit.de: * cp on server: bbbike => bbbike~ etc. * rsync to ~ version * test ~ version (maybe name the test scripts bbbike~.cgi etc.) * exch ~ and "" version * test "" version =item dillo 0.7.x ist schon richtig gut --- kann imagemaps und tabellen für ipaq besorgen und dann endlich die alternative zu bbbike impl.! => auf skiffcluster compilieren =item gpsman2bbd Parameteruebergabe ueberarbeiten =item Tk::LayerEditor in einer nicht-DND-Version (für Windows, optional auch für X11, notwendig fuer Tk804) -> fix for TK804 ist leicht, einfach my($x, $y) = ($_[3], $_[4]);#XXXchanged for Tk804 in LayerEditorCore::Drop verwenden =item * (H3) Entweder nur einen LayerEditor erlauben oder Aenderungen in einem LayerEditor in alle anderen propagieren. Ausserdem: jeder Aufruf von plot* sollte alle LayerEditoren aktualisieren LayerEditor koennte weitere Spalten mit Funktionen enthalten, z.B. hidden/visible setzen vs. ganz loeschen, Reload, Ausschnitt anpassen, Strassenliste zeigen. LayerEditor bug: es wird special_raise nur auf alle vom LayerEditor verwalteten Layer gemacht. Dadurch wird die stacking order von nicht-verwalteten Layern kaputt gemacht. =item * (M3) Rewrite BBBikePersonal to a real object-oriented module: preserve widgets when do any actions, immediately show changes (plot, hlist) when editing. =item Preferences: - Stellung des Kopfsteinpflaster-/Ampelzeit-Buttons (nicht so wichtig) - evtl. die Möglichkeit des Rücksetzens (nicht so wichtig) =item Inline modules => XS modules (less hassle with dependencies, faster compilation) =item Rename Kurvenpunkte => ... to AllPoints => ... in all scripts and modules. =item Turn all comments in Strassen/*.pm into Pod. =item Waypoint+ besorgen. geht der export ueberhaupt? gibt es extensions? geht ein import? => Programm ist downgeloaded und in distfiles/windows, install and check =back * E5 make test unter Windows/cygwin ausführen * E5 bbbike -public unter Windows/cygwin ausführen * M3 make ext unter cygwin machen => habe ich Inline installiert? * evtl. overview-fenster so positionieren, dass die canvas-scrollbars nicht verdeckt sind * alle skripte/module, die zum abspeichern als ESRI notwendig sind, einbinden * es ist nur ein Upload auf den Garmin unter Win moeglich. Wird ein FH evtl. nicht geschlossen? perl-gps-Problem oder bbbike-Problem? -> Lösung ist in Sicht, ich muss nur auf Win testen! * Tk::Getopt-Optimierung: withdraw before showing (long)help window CHECK AGAIN: * M5: GPS::DirectGarnim fehlt in der dist? => Kann ich nicht reproduzieren (MANIFEST ist OK). Nochmal testen => Jetzt kann ich es reproduzieren --- perl-GPS hat in SiePerl gefehlt. => Geht es jetzt? => Bessere (weniger irreführende) Fehlermeldung erzeugen => Garnim anschliessen und mit sieperl testen (brauche ich Win32::Serial dazu?) * M1 ->postscript is slow (sieperl). Warn before calling any export and print function? COMBINED WITH: * M1 PNG-Export: first check for all dependencies, then try to export (change in GfxConvert needed). Das ist jetzt haesslioch: ps-export braucht jahre und dann merkt man, dass es doch nicht geht * E3 Print OK? (ps vs. pdf backend and automatic recognition) low prio: Research Tk::Balloon: kann ich Tk::CanvasBalloon durch Tk::Balloon *effizient* ersetzen? TelbuchDBApprox: wenn eine genaue hausnummer nicht gefunden wurde, dann in der naehe suchen! inaccessible_strassen, look at: fix_coords in bbbike.cgi all_crossings and similar functions introduce also in perl/tk version [???] data_corrected: cp or symlink or convert missing files: kneipen, restaurants etc. 2. use data_corrected for CVS and all distributions! [Ab hier wieder geordnet:] =over =item * (H2) Cycle paths are displaced when zooming. Correct this. =item * (M1) Remove SRT Algo (bbbike menu, StrassenNetz.pm ...) =item * (M2) enter_opt_preferences, Straßenqualität: additional select box like in bbbike.cgi (Kopfsteinpflaster vermeiden, rennradtauglich, Custom). =item * (M1) Überprüfen, ob der Menüpunkt EGPS-Track bearbeitenE im Edit-Modus funktioniert. =item * (M2) Drucken: optional auch die Routenansicht/PDF drucken, mit/ohne Routenbeschreibung. =item * (M3) SehenswErdigkeiten: eine neue Kategorie für EflächigeE Sehenswürdigkeiten (z.B. Holländisches Viertel) einführen, um besseres Stacking zu machen (unterhalb von Straßen). =item * (M4) comments_kfzverkehr sollte nicht in EAktuelle RouteE (und wahrscheinlich nicht in show_info) vorkommen, da viele Einträge ohne vernünftigen Namen existieren. Mögliches Problem: $comments_net/_get_comments_obj braucht vielleicht an einigen Stellen comments_kfzverkehr, an anderen nicht. =item * (M2) power and speed settings: allow to EchainE power settings to speed settings; or let the user set the power settings (distinguishing both needs option support). In the first case, if changing parameters in the BikePower interface and clicking EApplyE, then the power should be recalculated in the applyhook. =item * (M2) BikePower: if some variable bikepower settings like steigung or gegenwind are set, then these are used in the initial calculation of the chained power values, which seems wrong. =item * (H1) Umluts get lost in fvwm2 titlebars (Debian, fvwm2.4.x and fvwm2.5.x, Tk800.024). No problem on FreeBSD with fvwm2.4.15. On Mac and Tk804.027, umlauts are shown as unicode escape sequences \x{....} =back =head2 Windows specific =over =item * (M5) Add Tk::Clipboard to @Tk::HList::ISA on Windows (or so). Then it would be possible to use Control-C for copying the selection. =item * (E4) Check if Object::Iterate will really be available in the next windistro. =item * (M1) Maybe under Windows or for all click-to-focus systems: make bbbike internal windows act as focus follows mouse. Something like: $t->bind("" => sub { $t->focus }); may do (but only if the main toplevel or one of its descendents already has the focus). This is really only necessary for convenient keyboard control. =item * (H1) Windows: An activating click should only activate the window but not doing an action. This should be like in Excel (but unlink Windows Commander). This sounds like a generell Tk problem (is it maybe solved with Tk804?). =item * (E3) Windows: add List::Permutor to the bindist of Windows (sieperl) -> getan; überprüfen, ob Salesman nun läuft =item * (M1) Check appearance on Windows, especially the buttons (is the ipady value OK now?). I do not use some optionAdd commands for fg/bg on Windows --- is this OK? It seems that it is standard on Windows to have some more spacing between buttons and make related buttons the equal width (especially in end dialog buttons). Is HList white? =item * (H1) Don't understand this one: EBug: Busy-Zeiger zurücksetzen ist unter Win kontraproduktiv!!!E =item * (M1) An example how to programmatically make a screenshot on Windows --- maybe this can be of use somewhere (using instead of xwd?): L =item * (H1) Drawing custom category images seems to not work in lazy mode (try: turn on lazy mode, draw Emisc/zebrastreifenE as a point layer). =back =head1 Daten allgemein =head2 Radwege und -touren im Netz =over =item * (E3) Bahntrassenradeln: L =item * (E3) GPS-Tracks in BRB: L Bereits eingepflegt: Ahrensfede-Gamegrund-Niederfinow.trk, Berlin-Bredereiche.trk, Teile von anderen. =item * (E3) Radrouten im Raum Potsdam: (aus L) Route F1 Potsdam - Caputh - Ferch - Geltow - Pirschheide- Wildpark - Potsdam Route F2/2 Werder - Golm - Nattwerder - Grube - Bornim - Eiche - Wildpark - Werder Route F3 Werder - Phöben - Ketzin - Paretz - Uetz - Marquardt - Grube - Nattwerder - Werder Route F3/1 Die Insel Töplitz Route F3/2 und F3/3 Glindow - Plötzin - Bochow - Groß-Kreutz - Deetz - Schmergow - Krielow - Derwitz - Glindow Werder - Kemnitz - Krielow - Schmergow - Phöben - Werder Route F3/4 Glindow - Petzow - Plötzhorn - Glindow Route F3/5 Glindow - Kammerode - Klaistow - Kanin - Busendorf - Glindow Route F3/6 Werder - Werder Inselstadt - Glindow - Plessow - Werder =item * (E3) Der Spreeradweg: L =item * (E3) Berlin-Kopenhagen: L =item * (E3) Berlin-Usedom: L Anfahrtsbeschreibung: L =item * (E3) Broschuere der Landesregierung Brandenburg: L =item * (E3) Radtouren im Raum Potsdam: L =item * (E3) Radfahren - Mobil in Potsdam: L =item * (E3) Radwegkonzept MOL: L =item * (E3) Allgemein: L =item * (E3) GPS-Tracks zusammenfassen. =back =head2 Fehler, Ergänzungen, ... =over =item * (E2) Ostsee Richtung Osten so weit erweitern, dass kein haesslicher Rand in der Übersichtskarte bleibt. =item * (H2) Potsdam ist größer geworden (Golm, Marquardt ...). Potsdam.coords.data erweitern, vielleicht auch zwischen den Potsdamer Ortsteilen unterscheiden? =item * (E3) Neue Straßen in Mitte (jetzt und zukünftig): Lehrter Bahnhof: Emma-Herwegh-Straße, Europaplatz, Agnes-Zahn-Harnack-Straße, Ilse-Scheffer-Straße, Washingtonplatz, Ella-Trebe-Straße, Berta-Benz-Straße, Katharina-Paulus-Straße, Clara-Jaschke-Straße Nordbahnhof, Stettiner CarrE Julie-Wolfthorn-Straße, Coroline-Michaelis-Straße, Elisabeth-Schwarzhaupt-Platz Elisabeth-Lüders-Haus, Straße davor: Adele-Schreiber-Krieger-Straße (done) Moabiter Werder-Nord: Elisabeth-Abegg-Straße Friedrichswerder-West: Caroline-von-Humboldt-Weg Luisenstadt: Paula-Thiede-Ufer, Bona-Peiser-Straße =item * (E1) ÖPNV-News tracken: L. Oder: L. =item * (H4) EFlughafen SchönefeldE ist im Web-Interface nicht erreichbar. Das Problem ist, dass der Flughafen außerhalb des Berliner Stadtgebietes liegt. Man könnte vielleicht einen Hack für Schönefeld analog zu potsdam_hack programmieren? Dann bräuchte man aber eigentlich ein Schönefeld.coords.data --- lieber nicht... =item * (E1) Recherchieren (und aus fragezeichen herausnehmen): Neuendorf (Nl) wird ab 2002-08-18 geschlossen; neu: 'Cottbus-Willmersdorf Nord' und 'Teichland'. Grund: Umverlegung der Trasse (betr. RE1 und RE18) ?? 80691,-66664 80603,-64961 81213,-63504 82460,-63229 =item * (E1) Look at it: aus zwei Artikeln in der aktuellen Bahnzeitung punkt3 habe ich herausgelesen, dass es ab dem 14. Juni eine neue S-Bahnlinie S85 gibt, die von Grünau über den Ostring nach Waidmannslust fahren soll. Sehe ich das richtig, dass diese Linie die erste Linie nach der Wiedervereinigung ist, die eine bis dahin nicht gefahrene Trasse nutzt? Die Artikel sind Online unter nachzulesen. =item * Vosskanal => Voßkanal? neue stuetzpunkte fuer gps_correction_map (entsprechungen in standard-koordinaten suchen) N52 46 59.9 E14 02 11.3 Bad Freienwalde B158/B167 N52 35 49.4 E14 14 17.8 bei Neuhardenberg B167/L36 nach Trebnitz N52 48 50.5 E12 45 48.1 Fehrbellin (Knick der L16) N53 15 52.1 E13 36 23.6 Boitzenburg (hmmm, reichlich unspezifisch) N53 23 36.8 E13 35 04.5 L259/L25 bei Fuerstenwerder (vielleicht anstelle von Boitzenburg) N52 53 37.2 E11 45 09.4 Seehausen/Altmark, Kreuzung, richtig! N51 21 59.7 E12 44 38.9 Wurzen: B6/S11 N52 16 52.3 E11 25 22.9 Haldensleben:B245/L24 nach Hundisburg N52 31 42.2 E11 26 02.5 B71/B188 stolpe => stolpe/oder hohensaatener wasserstr. eintragen H-str. B2 => Stolpe/oder => neukuenkendorf eintragen deichstr. ab stolpe richtung sueden siehe auch: http://www.grass-net.de/modules.php?name=Content&pa=showpage&pid=16 Radtouren um bestensee herum: http://www.mediapur.de/foto_rad.html Fahrplanaenderungen Dezember 2003 bei RE/RB beachten! brunnels mit nicht-leeren NAME suchbar machen S-Bahn: N-S-Tunnel als brunnel markieren U-Bahn: Negativliste erstellen, alle Strecke, die nicht enthalten sind, sind automatisch als Tunnel markieren. U1 nach Krumme Lanke = tunnel. brunnels sollten bei sort_by_cat verwendet werden können, insbesondere für BBBikeDraw::GD und ::PDF gpsbabel kann zwischen einer großen Anzahl von GPS-Formaten konvertieren. Evtl. optional in bbbike integrieren. Siehe auch: L. Evtl. ein Strassen::Gpsbabel schreiben, welches alle gpsbabel-unterstützten Formate lesen/schreiben könnte. =item * Waypoints und Tracks im Internet: =over =item * Jede Menge, leider in einem binaeren Format: L =item * Als Test für G7T Version 2, enthält Teil von Berlin-Usedom bis Biesethal: L =item * Alternativroute von Frankfurt/Oder Richtung Norden: L und L =item * Radfernwege in Brandenburg: L =item * Radwege um den Stechlinsee herum: L Radfernwanderweg Berlin - Kopenhagen, Stechlinsee-Radweg, Polzow-Radweg =back =item * Funktionieren die Aufzüge bei der S-Bahn? Das erfährt man E... am Besten bei der Kundenbetreuung 297-4 33 33E. =item * SpielplEze aufnehmen? Z.B. L =back =head2 Datenhandling (make, conversion ...) =over =item * (M3) Check the coordinates of Berlin.coords.data against the corresponding streets in strassen-orig. =item * (M3) resolve_stars: add support for E* X *E =item * (H4) .desc-Dateien komplett durch globale Direktiven ersetzen. Es fehlt noch: @scrollregion = (516703,180658,918450,458155) $p_attrib = ["Botschaft", "Botschaften, undef]; =item * (H2) 0-Sperrungen mit Richtungen durch drei Koordinaten kennzeichnen. =item * (H3) Check auf EerlaubteE Kategorien pro Datei, also z.B. H/HH/N/NN in strassen, zusätzlich B in landstrassen, nur Pl in plaetze etc. Diese Information könnte auch dazu verwendet werden, um im Straßen-Editor die Kategorien einzuschränken. BBBikeCategories.pm? =item * (H4) Find algorithms for reducing points in a polyline/gon. Use it for wasserstrassen-lowres. =item * (M4) Automatic conversion from GPS tracks to bbd data: maybe using Douglas-Peucker polyline simplification algorithm? =item * (H4) Ich brauche eine spezielle handicap-Kategorie für Abbiegevorgänge (z.B. q\d3 oder q\d::3), sowohl für Anzeige als auch für das Routing. =item * (H3) rbahn-orig -> rbahn-orig + rbahnhof-orig. Oder gibt es noch einen Grund für das Extra-Handling? insert_points und co. sollten gut genug sein, um die beiden Dateien synchron zu halten... Dann brauche ich auch eine make-Regel, um rbahnhof gegen rbahn zu checken (wie bei der S-Bahn) =item * (M3) Introduce new bbd file ExxxE which contains all non-public XXX comments. ? on devel-host would also draw xxx. =item * (M4) Siehe miscsrc/merge_overlapping_streets.pl =item * (M1) Convert the data/Makefile to data/Makefile.PL or similar (to solve problems like for loops etc. only availabkle in BSD make). =item * (M3) All references to EcommentsE should use the partial comments files instead. Maybe define a method with a list of the partial files in Strassen/Dataset. Create new menu cascade Comments all and comment types (partially done in bbbike, check for other apps). =item * (M4) insert_points changes: * warn if deleting a point causes a street to have only one point * special handling for vorfahrt: given A B C insert between A and B: A changes to last inserted point insert between B and C: C changes to first inserted point =item * (H3) insert_points optimizations: * Use a MLDBM or similar database for a point -> [file, pos] mapping. This can be used for fast searching. Check database file <-> orig file for recentness. * Further optimization: the insert/add/change/move operations should update the MLDBM database themselves to avoid a complete rebuild. =item * (M4) Use the :by and :temporary directives in the data files (ampeln already done). Change some files which are using this information (e.g. misc/Makefile). Write some tests for all kinds of directives (global, block, line, nested blocks and lines, errors) =item * (M3) Change convert_* to optionally not ignore directives and comments. Rewrite the misc/Makefile rule to use standard Strassen methods. =back =head2 cgpsmapper =over =item * (H3) Fragezeichen besser bauen: alle aus fragezeichen ausser für mich ignorierte (wo ich z.B. die Daten einfach nicht aufnehmen will). next_check/last_checked beachten. Auch alle XXX-Strecken aufnehmen. temporaries aufnehmen (es sei denn, mit next_check/last_checked versehen). =item * (M3) Strip Bezirk: nicht für fragezeichen =item * (M4) Nach Kategorien sortieren (HH -> H -> ...). Evtl. werden die Labels von zuerst genannten Straßen zuerst gezeichnet. =item * (M3) zwischen Wäldern und Parks, und Seen und Meer unterscheiden =item * (M3) landstrassen/N und NN ab 8km oder so nicht mehr sichtbar haben; Sichtbarkeiten zwischen strassen und landstrassen differenzieren =item * (H2) Straßennummern - wie? =item * (M4) beim Buildprozess fragezeichen separat erzeugen =item * (H3) Images oder Prozess veröffentlichen =item * (M3) Eisenbahnen werden zurzeit nur bis 200m angezeigt. Für RB hochgehen auf 3 km oder mehr, bei S-Bahn auf ca. 800m, bei U-Bahn auf ca. 500m (falls es überhaupt geht). =item * (H3) Friedhof-POI (flaechen), scenic-POI (comments-scenic), bank-POI (falls ich noch sparkassen/citibank-Daten habe), sonst. Sehenswürdigkeiten -> building-POI, church-poi, hospital-poi, theater, museum, stadium, tall tower (Fernsehturm, Funkturm, Schäferbergturm), Zoo-POIs, igraliste (PVRT?) =item * (H3) Regionenübergreifende Dateien: feststellen, ob in Berlin oder nicht und dementsprechend in der richtigen Karte zeichnen (mittels line/point_in_polygon). =item * (H3) Einführen von Garmin-Typen in bbd, z.B.: SW::GARMIN=0x1f39. Diese könnten von bbd2polish direkt verwendet werden. IDs oder Klartextnamen verwenden? =back =head2 Verschiedenes =over =item * (M2) Straßen im Oderbruch! Anhand meiner Fahrradkarten und Benutzer-GPS-Tracks Fragezeichenstrecken eintragen. =item * (M4) Nicht benötigte Einträge aus bbbike-temp-blockings.pl nach old-bbbike-temp-blockings.pl verschieben. old-bbbike-temp-blockings.pl kommt ins MANIFEST.addtocvs, aber nicht ins MANIFEST. -> evtl. reicht die jetzige Methode mit dem optimierten bbbike-temp-blockings? =item * (E1) weblinks EoffiziellE machen. =item * (E1) Look at it: Es wurde eine Unterführung gebaut, die erst die Fernbahntrasse und ein paar Meter weiter dann auch die neue S-Bahntrasse unterquert. Bilder hier: http://www.bsisb.de/default_f.htm?/anhalter/anhalter07fc.htm oder direkt die schrittweise Wandlung vom Kolonnenweg zur Unterführung: http://www.bsisb.de/anhalter/g_s_lio_tw/l25.htm =item * (H4) Wie zeige ich an, dass ein BNP unpassierbar fuer anhaenger ist? Fr-Jahn-Sportpark zur Topsstr ist so ein fall. =item * (H4) Alle in "strassen" vorkommende StraEen sollten auch in "Berlin.coords.data" stehen. Ansonsten gibt es derart PErobleme, daE zwar beim CGI in der Liste "Alle StraEen anzeigen" z.B. "Hallesches Tor" angezeigt wird, diese StraEe als Eingabe aber nicht akzeptiert wird. Sprich: die Datei data/add_str sollte auf AktualitEt EberprEft werden und dann mEglichst alle fehlende StraEen nach Berlin.coords.data Ebertragen werden. Hatte ich schonmal: [in add_str sollten möglichst KEINE "richtigen" Straßen stehen --- nur Sachen wie Brücken, Tunnel, "Alexanderplatz [zur Grunerstr.]", Parkwege etc. ansonsten werden sie in bbbike.cgi nicht erkannt, obwohl sie existieren!] Vielleicht ein ausreichender Workaround vorerst: Liste aller Straßen enthält nicht die Straßen, die keine Koordinate in Berlin.coords.data haben. =item * (M2) LandstraEen: Gibt es Untersuchungen zur Verkehrsdichte? Recherchieren! => Jan hat etwas gefunden (Aldi-Karten...) -> Die habe ich jetzt auch... =back =head1 Routing (BBBikeRouting.pm, Strassen::StrassenNetz) =over =item * (H4) Neue Kategorie 0 und BNP mit Richtungsabhängigkeit einführen. Z.B. 0:10 A B C wobei B die Stelle mit dem Hindernis ist. Es sind also nur genau ein oder drei Punkte erlaubt. Im Pre-Processing könnte man Joker (*) erlauben. Implementiert werden muss: * Routing (wahrscheinlich ähnlich wie E3E und EBNPE, make_sperre und build_penalty_code müssen geändert werden) * Zeichnen im Perl/Tk-Tool (weiterer Spezialfall in plot_sperre, vielleicht mit einem Pfeil versehen? Oder versetzt zeichnen, wenn die Position eindeutig ist (i.e.: * A B)? Neues Icon bzw. Polygon/Polyline-Zug für Bordsteine, da diese so oft vorkommen [wenn ja, dann auch im Postprocessing (Winkelberechnung) berücksichtigen]?) =item * (H2) Optimierung: bei LandstraEen reine Kurvenpunkte bei der Netzberechnung ignorieren. Das ist mit B bereits implementiert, wird aber nicht verwendet. Benchmarks? Probleme? =item * (H1) Suchen nach Alternativen. Es ist schwierig zu entscheiden, wann eine Alternative wirklich eine Alternative darstellt (z.B. ist es kein groEer Unterschied, ob man nur rechts oder links um einen Block herum fEhrt). =item * (H1) Neuimplementation der Streckensuche. Dabei soll zwischen StreckenaufwEnden und KnotenpunktaufwEnden unterschieden werden. AufwEnde werden entweder in LEngen, in Zeit oder in einem Punktesystem (Kombination aus Zeit, Komfort, Sicherheit etc.) angegeben. StreckenaufwEnde berechnen sich aus: LEnge der Strecke, Gegenwind, Steigungen, Dynamowiderstand, StraEenqualitet der Strecke, sonstige Hindernisse auf der Strecke, Verkehrsdichte (Staus, Berufsverkehr), Radwege, Maximalgeschwindigkeiten. KnotenpunktaufwEnden berechnen sich aus: durchschnittliche oder wahre Ampelwartezeit mit Zeit fEr die Beschleunigung, durchschnittlicher Zeitverlust an Rechts-vor-links-Kreuzungen und an vorfahrtsgewEhrenden Kreuzungen (abknickende VorfahrtsstraEen beachten), Zeitverlust fEr AbbiegevorgEnge (rechts, links), erschwertes Abbiegen (Bordsteinkanten Eberwinden). QualitEtsbewertungen: StraEenqualitEt, niedrige LeistungsaufwEnde (Wind, Steigungen), NebenstraEen, Parks. Sicherheitsbewertungen: NebenstraEen vor HauptstraEen bevorzugen, Radwege ja/nein. In (C) und Perl implementieren. Analyse eines Streckenabschnitts: =over =item * Feststellen der LEnge =item * Feststellen der Windrichtung und -geschwindigkeit =item * Feststellen der Steigung =item * Verluste durch StraEenqualitEt =item * Korrigieren auf Maximalgeschwindigkeit (max. Trittfrequenz) =item * anhand der aktuellen Leistungswert Zeit berechnen =back Analyse einer Kreuzung: =over =item * Feststellen, ob es um einen Abbiegevorgang handelt und ggfs. Zeit fEr den Abbiegevorgang abziegen =item * Feststellen, ob eine Ampel vorhanden ist, und eine durchschnittliche Zeit abziehen. =item * Feststellen, ob die Vorfahrt beachtet werden muE =back Z<>=E nicht unbedingt notwendig, die jetzige LEsung reicht erst einmal aus... =item * (H3) Compressed data: use (or ) for starting x,y value and then only the deltas as bytes . Add additional points if delta exceeds 128/128 meters. =back =head1 bbbike.cgi =over =item * (H2) Make an interface to Google Maps. See L or L =item * (M3) Zusätzlich zu "Schopenhauer Str. (Potsdam)" die Schreibweise "Potsdam, Schopenhauer Str." akzeptieren. Frage: nur fuer Orte oder auch fuer Bezirke, also "Kreuzberg, Bahnhofstr."? Kommt auch vor, dass die Leute EBerlin, ...E schreiben. =item * (E3) /robots.txt einrichten, um das Indexieren von temporären Dateien bei bbbike und mapserver zu verhindern. -> Hmmm, es existiert schon ein robots.txt. Mit Dirk konferieren? =item * (H1) Bei pref_fragezeichen=yes: Straßenbezeichnungen aus fragezeichen vertragen sich mit Strasse::strip_bezirk nicht so gut. Es wird oft zu viel abgeschnitten. Könnte strip_bezirk intelligenter programmiert werden und tatsächlich nur die in Geography:: vorkommenden Bezirke abschneiden? Wo wird strip_bezirk überall eingesetzt? =item * (M1) Evtl. Link auf Detailmap, um eine bessere Straße auszuwählen? Bei "genaue Kreuzung": evtl. Link auf Detailmap um alternativ eine Kreuzung auszuwaehlen? =item * (H5) Ackerstr. (Mitte,Wedding,Spandau)-Problematik: es sollte erkannt werden, dass die Ackerstr. (Mitte, Wedding) die selbe Strasse ist. In multi_bez_str steht es drinnen, muesste wahrscheinlich von PLZ.pm verwendet werden (combined streets?). (Aber nur, falls multi_bez_str vorhanden ist) =item * (M2) Request: > Wäre es auch möglich, daß man die Acrobat -datei erst speichern > könnte, bevor man sie sich anzeigen läßt? Oder, daß man diese > vielleicht per autom. Email zugeschickt bekommt? Ersteres könnte man machen, indem man einen Link bereitstellt, der das gleiche wie der submit-Button macht, nur mit Content-Disposition: attachment oder ähnlichem. Vielleicht nicht allzu schwer. =item * (M5) Opera and Safari: Hitting the return key on the first screen calls the abc page (because it's the first element in the form). (SOLVED for Konqueror, Opera seems to be difficult, ask wosch about Safari, same for MSIE!) =item * (H1) On resize, the reddot points for multiple choices become displaced. =item * (M2) Dokumentieren (in ?info=1): Beschreibung der Sucheinstellungen =item * (H2) Optional mehr Informationen in der Routenbeschreibung aufnehmen, z.B. Steigungen, SehenswErdigkeiten in der NEhe, U/S-Bahnstationen ... Kommentare sind schon drinnen. =item * (E3) cgi-Version: Linux+Netscape: Probleme mit Cookies (Einstellungen) =E noch immer? -> ein Problem habe ich gelöst, war es das? =item * (M2) Automatisches HTML-Validieren in der Test-Suite. Man koennte http://validator.w3.org/check?output=xml;uri=http%3A%2F%2Fwww.iconmobile.com%2F&doctype=%28detect+automatically%29&charset=iso-8859-1+%28Western+Europe%29 verwenden, aber die XML-Ausgabe ist als "experimentell" markiert. Links auf bbbike: http://validator.w3.org/check?uri=http%3A%2F%2Fwww.radzeit.de%2Fcgi-bin%2Fbbbike.cgi http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwww.radzeit.de%2Fcgi-bin%2Fbbbike.cgi =back =head1 WAP version of bbbike =over - Nokia Series 40: lange Straßennamen werden im Select abgeschnitten - bla als bla umbauen - keine Tabelle für Nokia40/60 für das Ergebnis verwenden - XHTML-Lösung? - Nokia 6650 in Browserinfo.pm aufnehmen (ca. 120x160, nachmessen!) - width=/height= in BBBike Karte angeben, damit Platz reserviert wird =back =head1 tkbabybike =over =item * (H3) Convert to be useable with the Tcl::Tk module (beginnings are done...) =item * (M4) Tk::PathEntry (used in start/goal entries): -autocompletion does not work (anymore)? =item * (M5) Completion failure for EStrausbE. It should be Strausberger Platz (the first in list), but it is not completed when leaving the entry. =back =head1 Modules =head2 Route =head3 Route::GPX =over =item new (input: coords, net, maybe also dataset) =item param_from_cgi: =over =item gpxcontent: trk, rte, trk+rte (default), wpt (?) =item gpxrteno: number of route points, 50 is default, may be 20 or 30 for older GPS devices =item gpxtrkno: number of track points, by default very high (1024 or 2048?) or even unlimited =item gpxversion: default 1.1, maybe support for 1.0 (for gpsbabel) =item gpxwptlen: length of waypoint ids, by default 10 =item gpxwptsuffix: fixed waypoint id suffix =item gpxwptprefix: fixed waypoint id prefix =item gpxname: name of gpx file =item gpxnameauto: boolean; otherwise: generate name automatically from start and goal point of route =back =item as_string/as_gpx =back =head3 Route::Simplifier Output-agnostic simplifier of routes. Should take coords, net, already used waypoints and some gpx* parameters and return a simplified coord list with generated shorter waypoint names =head2 BBBikeDraw =head3 BBBikeDraw::GD =over =item * (M3) unclosedPolygon anstelle von mehreren line-Aufrufen verwenden (benötigt gd 2.0.33!) =item * (M5) Was sind die gepunkteten Linien bei der MapServer-Ausgabe von bbbikedraw.t? -> Steigungen! Nicht bzw. schöner zeichnen! Siehe auch brb.map-tpl, mount. =item * (M1) Wird ImageSuffix irgendwo verwendet? Besser ImageType stattdessen verwenden, dann kann ich auch bei bbbikedraw MapServer/gif oder MapServer/pdf sagen. =item * (M3) In BBBikeDraw/GD.pm nach Kommentar bei AREA suchen: Probleme mit den verschiedenen Netscape-Versionen. Beim Galeon scheint man nicht auf das Area-Polygon klicken zu koennen, sondern nur in der Naehe davon. Evtl. das gleiche Problem bei allen Gecko-Browsern. =item * (H3) Auch hier könnte man Labels intelligent positionieren, siehe unten bei BBBikeDraw::PDF. VectorUtil::intersect_rectangles wird hier aber schon genutzt... (Werden auf radzeit.de die XS-Versionen genutzt? Beim syncen kompilieren!) =item * (M1) Titel: E->E schöner EmalenE statt Text verwenden =item * (M3) Bahnhofsnamenpositionierung: vertikal zentrieren (ist zurzeit nicht, sieht man, wenn die Schrift groß wird). =item * (H2) Routenbrush: kann man transparente Pixel einfügen, also rot - transparent - blau - transparent? (Versucht, scheint aber mit gd2.0.33 nicht so schön zu klappen) Ebenfalls zu übelegen bei BBBikeDraw::PDF. =item * (E2) E(A -) BE zu E-> BE optimieren =back =head3 BBBikeDraw::PDF =over =item * (M3) Show more fields in route list (just like in web interface) =item * (H3) Bei Bedarf in mehrere Seiten aufteilen? =item * (M2) Überprüfen, ob der Massstab noch auf die Karte passt, ansonsten von 1km verkleinern. Der entsprechende Code müsste auch für andere BBBikeDraw::*-Module verwendet werden. =item * (H3) Straßenbeschreibung: Labels intelligent positionieren. Das ::PDF-Objekt führt eine Liste der belegten BBoxes. Jede neue potentielle Text-BBBox wird dagegen geprüft. Auch prüfen, ob man sich innerhalb der PageBBox befindet. Falls kein Platz ist, werden zunächst die Himmerlsrichtungen versucht und dann per Verbindungslinie eine entferntere Position. Kann man Texte auch rotieren? Besser: feststellen, wo sich die Route befindet (Pseudo-BBox dafür erstellen?) und Überlappungen der Route somit vermeiden. Oder ganz alternativ: wie sieht die PDF-Unterstützung des Mapservers aus? Weiterhin kann man Strasse::short verwenden, wenn es nicht passt. =item * (M1) Via im Titel erwähnen: Start -> Goal über Via. Dazu muesste vianame im CGI übermittelt werden. =item * (H2) Untersuchen, ob man mit 8-Bit-GIFs und PDF::Create arbeiten kann. Wenn ja, dann 8-Bit-Varianten für U/S-Bahnsymbole erstellen. (Oder vielleicht liegt es an der Transparenz?) =item * (M5) Check: wird das richtige gemacht, wenn die Route Landscape und die Routenliste weiterhin Portrait ist? Veraenderungen bei Route::PDF notwendig? =item * (E2) E(A -) BE zu E-> BE optimieren (mit leftarrow) =item * (H4) Acrobat Reader often shows an error message for BBBikeDraw/PDF.pm-created files. No problems with xpdf and other viewers. (Not reproducible anymore) =item * (H3) Bessere Platzierung der Labels in der PDF-Ausgabe. U- und S-Bahn-Symbole sind suboptimal, evtl. GIFs stattdessen verwenden (geht zurzeit nicht, weil PDF::Create anscheinend GIFs mit 8 Bit Farbtiefe erwartet (extra dafuer erzeugen?). JPEGs gehen, aber ohne Transparenz (schlecht für das S-Bahn-Symbol), außerdem geht es nur mit xpdf, aber nicht mit acroread). Wenn Platz ist, könnten auch die Bahnhöfe mit Labels versehen werden. Wenn ich rotierte Fonts zeichnen kann, dann auch wichtige Straßen. =item * (H1) Migrate to PDF::API2 (beginnings in BBBikeDraw::PDF2, Route::PDF2 should also be created) or another pdf package, which is supported (in opposite to PDF::Create). =back =head2 Strassen and Strassen-related =over =item * (M3) Alternative implementation of nearest_point with Strassen::QuadTree (which must be made official!). Use in match_bbd_data. Strassen::QuadTree could also be used in BBBikeExp. =item * (E2) Mapinfo.pm converter: add new attributes Author, AcquireAuthor, CreationDate, AcquireDate (maybe better names for AcquireDate?) (from by directive), FromDate, ToDate (from temporary directive). Implement first the directive stuff above. New output scheme: create one mapinfo file per layer. Use real pen/symbol for lines. =item * (H1) AI implementation for detecting street parts (from crossing to crossing, or just a crossing) from normal text. =back =head2 Other =over =item * (M1) Sometime take a look at L Only needed if my functions would be too slow one day. =item * (M1) Maybe write an BBBikeAreaPlugin for displaying the current route's area (in a balloon or additional label/toplevel). =back =head1 MapServer =over =item * (H3) Make it easy to show additional custom layers (with limited mapserver mapfile functionality???). E.g. integrate somehow miscsrc/bbd2mapservhtml.pl =item * (M2) Zurzeit werden innerhalb Berlins Radroutennummern angezeigt. Soll das so bleiben? =item * (H4) Fehlende Layer: Baustellenzeichen. Die Symbole von BLOCKED_CARRY/_BNP sind nicht gedreht. Keine Unterscheidung zwischen handicap und qualitaet. Spezieller Modus für das Erzeugen von Mittelpunkten (e.g. Schwerpunkt mit Zusatzregeln wie bei den Gewässern). Diese könnten für Sehenswürdigkeiten verwendet werden. =back =head1 BikePower =over =item * BikePower: Profile laden/speichern, evtl. auch direkt aus bbbike sichtbar. Erst einmal das Problem mit dem Komma (Linux, Solaris mit LANG gesetzt) lösen. =back =head1 Distribution/Installation/other development =over =item * (H2) Marek::Pod::HTML seams to have a problem, maybe inherited from Pod::Checker: 2nd argument set to \*STDERR for parse_from_file does not work. See my hack in Marek/Pod/HTML.pm in the perl5.8.0 tree. =item * (M3) bbbike/html: add bbbike_small.html.spp to CVS, but maybe first convert to use TT? =item * (M2) GNOME-Desktop-Icon in ~/.gnome-desktop/BBBike.desktop mit folgendem Inhalt ungefaehr erstellen: [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Exec=/mnt/suse/usr/bin/perl -e 'for (@INC) { push @_INC, "/mnt/suse$_" } @INC = @_INC; $0= "/mnt/suse/home/slavenr/work2/bbbike/bbbike"; do $0 ' TryExec= X-GNOME-DocPath= Terminal=false Name[en_US]=BBBike GenericName[en_US]= Comment[en_US]= und in ~/.nautilus/metafiles/file:%2F%2F%2Fhome%2Fslavenr%2F.gnome-desktop.xml =item * (M1) Das Erzeugen von GIF-Bildern benEtigt netpbm, von JPEG-Bildern die JPEG-Distribution und alle brauchen ghostscript. Eine bessere Methode wEre WinPhoto (wenn es korrekt und unter Win32 überhaupt funktionieren wErde). Kann ich in die win32-dist einige weitere Binaries unterbringen (ppmtogif o.ae.). =item * (M1) install.pl: Falls Tk nicht installiert ist und PPM vorhanden ist, mit PPM nachinstallieren. Bei Bedarf eine Reihe weiterer Module nachinstallieren (siehe Bundle::BBBike). =item * (M1) FreeBSD-Port anpassen, so daE install.pl verwendet wird. PLIST von install.pl abhEngig machen. -kdeinstall in AbhEngigkeit von HAVE_KDE angeben. =back =head1 Tests =over =item * (M2) Cgiinfo in cgi2.t funktioniert leider nicht, weil openURL als zweiten Parameter nur true oder false zulEEt. Workaround: Schreiben eines Multiplexers, der per Javascript neue Fenster Effnet. =item * ... reveals problems if started first time without any cache files --- many warnings, sometimes even coredumps on RedHat (?). The 2nd pass is usually OK. Z<>=> maybe the cache build should be done in a separate process. This would save memory which probably can't be given back to the process. add another full-test rule which calls some tests with their -slow/-all/-full/-doit options =back =head1 Documentation =over =item * (M4) Diese TODO-Liste aktualisieren. =item * (E4) Alle Anregungen von anderen Leuten (z.B. per Mail) hier eintragen. =back =head1 Sonstiges =over =item * Nichts ... =back