[Erledigt] Beispielprojekte und Demos

Für Installationen unter Windows
Antworten
charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

[Erledigt] Beispielprojekte und Demos

Beitrag von charlytango »

Hi,

wenn ich mich irgendwo in Komponenten oder überhaupt nicht so ganz auskenne, bzw wissen möchte ob Komponenten hilfreich für mich sind, ist meine erste Anlaufstelle die Beispielprojekte oder Demos die den Komponenten meist beiliegen.

Das ging bis v2.2.6 recht holprig aber immerhin.

Für diejenigen die Beispielprojekte selten benutzen, ihr findet diese Funktion unter Tools->Example Projects (Ctrl+Alt+E) oder wenn ihr ein Projekt schließt (Project -> Close Project) kommt ein "Project Wizard"-Fenster wo man das Beispielfenster auch aufrufen kann. Sollte das in v3.0 nicht aufscheinen liegt das daran, dass das Fenster für Beispielprojekte und als Komponente installiert werden muß und bei der Installation (zumindest mit fcpupdeluxe -- anderes hab ich nicht getestet) fehlt.

Nun wurde dieses Thema IMHO verschlimmbessert.
Offensichtlich werden die Beispiele im Verzeichnis lazarus/examples noch mit ausgeliefert aber es gibt keine Möglichkeit mehr den Suchpfad zu ändern um zB Demos aus Komponenten zu finden die überOPM installiert wurden.
Zudem gibt es neu die Möglichkeit sich das GitLab Repo anzusehen oder ein Beispiel Downzuloaden ???
Wenn man in die Komponente exampleprojects.lpk (sinnigerweise im Verzeichnis /components/examplewindow reinschaut) findet man Funktionen die unterschiedliche Quelle für Beispiele unterstützen und auch ein Fenster für Pfadänderungen. Beides sehe ich aber nicht implementiert. grübel...

Für mich ist das Design des ganzen Fensters ziemlich unglücklich.

Kann mich da bitte jemand erleuchten was das soll?
Zuletzt geändert von charlytango am Do 25. Jan 2024, 11:39, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6217
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Beispielprojekte und Demos

Beitrag von af0815 »

Da gibt es eine Story dazu im englischen Forum. Im endeffekt, soweit ich verstanden habe, sollen die Beispiele nicht Lazarus aufblähen, sondern wie bei OPM nur dann wenn benötigt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Beispielprojekte und Demos

Beitrag von theo »

Ich finde das nicht gut.
Gerade solche Sachen, welche den Einstieg erleichtern sollen, wie Beispielprojekte, Online Package Manager aber auch z.B. die Zeichensatztabelle, die durchaus einen Informativen Wert hat im Unicode Bereich muss man nun nachinstallieren.
Das gefällt mir nicht.
Bis ein Einsteiger diese Tools überhaupt entdeckt, ist er wahrscheinlich schon Profi. :wink:

onlinepackagemanager.lpk
exampleprojects.lpk
charactermap_ide_pkg.lpk

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Beispielprojekte und Demos

Beitrag von charlytango »

Die Idee mit der Schlankheitskur ist absolut nachzuvollziehen.
Die Umsetzung ist nur ziemlich dürftig und nicht zu Ende gedacht.

Und wieso liefert man dann die Beispiele doch mit ?
Das Teil ist nicht Fisch und nicht Fleisch

Besonders wenn dann bei einem Entwicklungssytem vorausgesetzt wird dass mann immer und überall Internet haben muss.

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Beispielprojekte und Demos

Beitrag von charlytango »

theo hat geschrieben:
Mi 24. Jan 2024, 12:45
Ich finde das nicht gut.

Bis ein Einsteiger diese Tools überhaupt entdeckt, ist er wahrscheinlich schon Profi. :wink:
Da bin ich absolut deiner Meinung -- da überlegen manche wie man Lazarus bekannter machen kann und dann solche komische Anwandlungen.

Als IDE-Installation sollte das alles mit dabei sein. Oder halt einen alternativen Download mit anbieten. Da ich vermute dass das Packaging der Installversionen wohl weitgehend automatisiert sein muss, sollte das machbar sein.

Und bei fpcupdeluxe kann man sich das nun eh selbst einstellen.

Ich verstehe ohnedies nicht wieso man so ein geiles Tool wie OPM nicht viel besser fördert, mitinstalliert und auf eine bessere Basis stellt -- angesichts des Umfanges ist das für einen Gratis-Einmannbetrieb mehr als beachtlich. Voraussschauend ist so eine Strategie jedenfalls nicht -- wobei wir dann wieder beim Geld wären ggg

Mathias
Beiträge: 6210
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Beispielprojekte und Demos

Beitrag von Mathias »

Offensichtlich werden die Beispiele im Verzeichnis lazarus/examples noch mit ausgeliefert aber es gibt keine Möglichkeit mehr den Suchpfad zu ändern um zB Demos aus Komponenten zu finden die überOPM installiert wurden.
Bei mir ist der Ordner voll.
Als IDE-Installation sollte das alles mit dabei sein. Oder halt einen alternativen Download mit anbieten. Da ich vermute dass das Packaging der Installversionen wohl weitgehend automatisiert sein muss, sollte das machbar sein.
Ich finde es schlecht, wen Lazarus mit Examples aufgebläht wird, besonders wen man mehrere Installationen parallel hat.

Was eine Idee wäre. Jetzt gibt es 3 packages.
fpc-src, fpc, lazarus-ide.
Man könnte noch ein zusätzliches optimales Paket machen, "lazarus-examples".
Evtl. noch RTL-Examples.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Beispielprojekte und Demos

Beitrag von charlytango »

Mathias hat geschrieben:
Mi 24. Jan 2024, 13:02
Ich finde es schlecht, wen Lazarus mit Examples aufgebläht wird, besonders wen man mehrere Installationen parallel hat.
Jetzt lass mal die Kirche im Dorf, eine meiner Laz-Installationen hat ohne zusätzliche Packages so roundabout 2,88 GB und das Examples Verzeichnis keine 10 MB
Das macht das Kraut auch bei mehreren Installationen nicht fett.

Trotzdem verstehe ich die Idee dahinter und bin nicht grundsätzlich dagegen -- aber so eine Strategie sollte
  • gut durchdacht
  • für Anfänger und Experten gleichermaßen zugänglich sein
  • komfortabel anzuwenden
sein.

Wenn dabei die ganzen Demos/Examples aus Komponenten wegfallen die per OPM installiert werden halte ich das gelinde gesagt für unausgegoren. Und wenn ein Anfänger nicht mit Beispielen unterstützt wird, ebenso.
Und wenn ein Experte die beispiele nicht downloaden will, muss das genauso gehen.

Mich nervt die aktuelle Version jedenfalls sehr.

Es werden Dateine im Source benutzt --

Code: Alles auswählen

LazConfigDir + 'staticpackages.inc'
LazConfigDir + 'packagefiles.xml'
die nirgends zu finden sind und es wird versucht aus dem LPK File das auszulesen wo die Beispiele liegen

Code: Alles auswählen

<ExampleDirectory Value="../Examples/">     // Maybe not there ....  


aber offensichtlich weiß davon noch niemand... grübel.
Dateien die gewartet werden müssen und die in der Installation (noch) nicht zu finden sind ??? Das kann IMHO nur schiefgehen, weil die Ressourcen dafür doch gar nicht langfristig verfügbar sind.

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Beispielprojekte und Demos

Beitrag von wp_xyz »

Ja, es gibt Bestrebungen, die IDE stärker zu modularisieren, so dass sich jeder "seine" IDE nach seinen Wünschen zusammenstellen kann. Die Zeichentabelle habe ich unabhängig davon selbst rausgeworfen, weil ich der Meinung bin, dass durchaus der Bedarf bestehen könnte, diese in seinem eigenen Projekt einzusetzen. Der OnlinePackageManager war schon von Anfang an immer als eigenständiges Package konzipiert. All die zugehörigen Packages werden aber standardmäßig in Lazarus mitinstalliert, und wenn man die IDE mit "make bigide" baut, sind sie mit dabei. Wenn sie bei FPCUpDeluxe fehlen, dann wendet euch bitte an den Maintainer, das ist sicher so nicht beabsichtigt.

Nun zu den Beispielen: Unter Linux/Mac gibt es das Problem, dass die Lazarus-Installation, und damit auch die Beispiele, sich in einem nicht-beschreibbaren Ordner befinden. Um ein Beispiel ausprobieren zu können, muss man daher zuerst den Code ins User-Verzeichnis kopieren. Außerdem bestand die Klage, dass es kaum möglich ist, ein bestimmtes Beispiel unter der Vielzahl zu finden. Daher hatte User dbannon das neue "Example Window" zur Verfügung gestellt, das das alte ersetzt hat. Dort werden alle dafür vorgesehenen Beispielprojekte mit einer Kurzbeschreibung und nach Schlagworten durchsuchbar dargestellt. Damit ein Beispiel-Projekt aufgeführt werden kann, muss eine ex-meta-Datei im zugehörigen Code-Ordner gespeichert werden, in der die Zusatzinformationen bereitgestellt werden. Das funktioniert auch bei externen Packages (z.B. chemtext, captcha), ist aber bei weitem nicht überall implementiert. Mit "Open" wird dann das ausgewählte Projekt ins Lazarus-Profil-Verzeichnis kopiert, und kann von dort übersetzt und ausprobiert werden.

Das alles ist im wiki beschrieben: https://wiki.freepascal.org/Lazarus_Examples_Window

Ich weiß nicht, was daran schlecht sein soll... Die Beispielprojekte aus der Lazarusinstallation zu entfernen war nie im Gespräch, und ich fände es auch eine schlechte Idee: Wenn ich eine neue Komponente verwenden möchte, ist der erste Schritt, immer ein funktionsfähiges Beispielprojekt zu testen, mit dem ich die Komponente kennenlerne, und dafür will ich nicht vorher im Internet nach Beispiel-Code suchen, und vielleicht inkompatiblen Code zu Gesicht bekommen, oder gar ChatGPT befragen müssen. Und wenn jemand an Problem mit 10 MB für Beispielprojekte verschenkten Plattenspeicher hat, bei ansonsten 2,88 GB (die Zahlen wurden oben genannt), dann muss es ihm auch wert sein, sich ein entsprechendes kleines Script zu schreiben, das die Beispiele zu löscht.

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Beispielprojekte und Demos

Beitrag von wp_xyz »

charlytango hat geschrieben:
Mi 24. Jan 2024, 14:10
Es werden Dateine im Source benutzt --

Code: Alles auswählen

LazConfigDir + 'staticpackages.inc'
LazConfigDir + 'packagefiles.xml'
die nirgends zu finden sind
Dann hast du nicht richtig gesucht. In diesen Dateien stehen die installierten Packages, sie befinden sich in deinem User-Profil-Verzeichnis.
charlytango hat geschrieben:
Mi 24. Jan 2024, 14:10
und es wird versucht aus dem LPK File das auszulesen wo die Beispiele liegen

Code: Alles auswählen

<ExampleDirectory Value="../Examples/">     // Maybe not there ....  
Natürlich. Wie soll das Examples-Window sonst wissen, wo sich die Beispiel-Projekte befinden? Wir hatten anfangs eine Version ohne diese Information, und als dbannon's Projekt so erweitert wurde, dass auch externe Packages zugelassen sind, hat die Suche nach Beispielprojekten (d.h. ex-meta Dateien) Minuten gedauert.

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Beispielprojekte und Demos

Beitrag von charlytango »

@wp_xyz: Danke für deine ausführliche Info. ich hab mir den Forumsbeitrag teilweise zu Gemüte geführt.
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 15:40
Dann hast du nicht richtig gesucht. In diesen Dateien stehen die installierten Packages, sie befinden sich in deinem User-Profil-Verzeichnis
Ich bin unter Win 10 unterwegs und in meinem Userverzeichnis finde ich die Dateien auch nicht. Gefunden hab ich solche Dateine im Verzeichnis /config_lazarus
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 15:40
Wie soll das Examples-Window sonst wissen, wo sich die Beispiel-Projekte befinden?
na zB wie im alten Examples-Fenster indem man die Dateipfade mit "demo,demos,example....etc" auswertet, das geht blitzschnell, auch über meine recht umfangreiche Komponentensammlung (in einem eigenen Verzeichnis irgendwo auf der Platte) hinweg.
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 15:40
Wir hatten anfangs eine Version ohne diese Information, und als dbannon's Projekt so erweitert wurde, dass auch externe Packages zugelassen sind, hat die Suche nach Beispielprojekten (d.h. ex-meta Dateien) Minuten gedauert.
Sorry, verstehe ich nicht. FindAllFiles ist bei mir sauschnell, da dauert das Finden von mehreren 10tsd Dateien keine Sekunde. Und das hats auch in der alten, dynamischen Version nicht gedauert. Und jetzt ist es ja auch halbwegs performant beim Einlesen der *.ex-meta Dateien.

Code: Alles auswählen

unit uLaz_Examples;
{
This unit displays all the examples that it can find metadata for. At present it
looks in the LazarusDir and then the LazConfigDir (but can be made to look online).
}
Also demnach findet er nur solche Beispiele in deren Verzeichnis auch die richtige *.ex-meta datei existiert. Alle anderen Beispiele fallen durch den Rost nur weil keine korrekte Beschreibung existiert. Das halte ich für einen Designfehler oder zumindest eine Verschlechterung.

Und das klappt auch nur in zwei Verzeichnissen, eine Möglichkeit in einem anderen Verzeichnis nachzusehen (wie in der vorigen Version) ist nicht vorgesehen. Ein Einstellbares Verzeichnis zum Durchsuchen ist scheinbar überhaupt nicht vorgesehen. Das Auswahlfenster scheint nur dazu da zu sein um in den Optionen einstellen zu können wohin Beispiele kopiert werden (vermutlich Linux)
Wobei ich mit der Beschreibung "Directory where Examples Go" nicht ein Kopierverzeichnis verbinden würde.

Die Kategorien-Checkboxen werden aus den *.ex-meta Dateien dynamisch ohne Kontrolle der Kategorisierung erstellt. Wildwuchs? Designproblem?

Code: Alles auswählen

type
    TExampleDataSource = (FromGitlabTree,  // Read all remote project meta files                   not used
                          FromLocalTree,   // Read all local Git project meta files                not used
                          FromThirdParty,  // Packages listed in first block of packagefiles.xml
                          FromCacheFile,   // Load data from Local Cache File                      not used
                          FromLazSrcTree); // Searches the Lazarus Src Tree, eg ~/examples; ~/components 
Bloß 2 von 5 angedachten Varianten wurden umgesetzt und die Beispiele aus dem OPM kommen in der Liste gar nicht vor. Zudem wird nicht das /examples Verzeichnis durchsucht, sondern eine dort befindliche Datei examples.txt geladen und versucht, daraus die *.ex-meta zu finden und einzulesen. Andere Dateien wie *.lpk oder *.lpi spielen keine Rolle

Und wenn ich schon eine Liste sortierbar mache, sollte das auch funktionieren, bei mir geht es eben nicht.

Und der ganze Stunt nur weil man unter Linux schreibbare Verzeichnisse dafür braucht?

Ich bleibe dabei... für mich ist das alles nicht zu Ende gedacht. So etwas nenne ich nach wie vor unausgegoren und eine drastische Verschlechterung. Daher für mich unbrauchbar.

Ich weiß, ich belle absolut vor dem falschen Baum und will niemandem zu nahe treten. IMHO ist das nur keine Visitenkarte für Lazarus.

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Beispielprojekte und Demos

Beitrag von wp_xyz »

charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 15:40
Dann hast du nicht richtig gesucht. In diesen Dateien stehen die installierten Packages, sie befinden sich in deinem User-Profil-Verzeichnis
Ich bin unter Win 10 unterwegs und in meinem Userverzeichnis finde ich die Dateien auch nicht. Gefunden hab ich solche Dateine im Verzeichnis /config_lazarus
OK - schlecht ausgedrückt, gemeint war das Lazarus-User-Profil, oder besser "primary config path", bei den meisten in %appdata%\local\Lazarus, bei dir offenbar in \config_lazarus
charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 15:40
Wie soll das Examples-Window sonst wissen, wo sich die Beispiel-Projekte befinden?
na zB wie im alten Examples-Fenster indem man die Dateipfade mit "demo,demos,example....etc" auswertet, das geht blitzschnell, auch über meine recht umfangreiche Komponentensammlung (in einem eigenen Verzeichnis irgendwo auf der Platte) hinweg. ... FindAllFiles ist bei mir sauschnell, da dauert das Finden von mehreren 10tsd Dateien keine Sekunde. Und das hats auch in der alten, dynamischen Version nicht gedauert.
Aber damit ist nicht sichergestellt, dass die gefundenen ex-meta Dateien zur selben Lazarus-Version gehören und, wichtiger, ob die in dem Beispiel-Projekt verwendeten Packages in der zugehörigen IDE überhaupt bekannt/installiert sind. Sich einen Haufen nicht funktionierender Beispielprojekte in die Liste zu holen, ist nicht Sinn der Sache.
charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
Also demnach findet er nur solche Beispiele in deren Verzeichnis auch die richtige *.ex-meta datei existiert. Alle anderen Beispiele fallen durch den Rost nur weil keine korrekte Beschreibung existiert. Das halte ich für einen Designfehler oder zumindest eine Verschlechterung.
Verstehe ich nicht. Ich finde das Vorgehen logisch. Es liegt in der Verantwortung der Autoren der Beispielprojekte, aussagekräftige ex-meta-Dateien mit guter Beschreibung und guten Suchbegriffen zu erstellen. Alles andere, nur eine "dumme" Liste der lpi-Dateien, erhalte ich auch im Dateimanager des Betriebssystem.
charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
Wobei ich mit der Beschreibung "Directory where Examples Go" nicht ein Kopierverzeichnis verbinden würde.
Was denn dann?
charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
Die Kategorien-Checkboxen werden aus den *.ex-meta Dateien dynamisch ohne Kontrolle der Kategorisierung erstellt. Wildwuchs? Designproblem?
Die Kategorien gefallen mir auch nicht. Wende dich an dbannon und motiviere ihn weiterzumachen. Als ich mich an ihn gewandt habe, wie man denn auch die Beispiel-Projekte von Fremd-Packages einbinden könnte, war er gleich Feuer und Flamme.
charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
Bloß 2 von 5 angedachten Varianten wurden umgesetzt und die Beispiele aus dem OPM kommen in der Liste gar nicht vor.
Du kannst gerne an dem Projekt weitermachen und Änderungen einreichen, statt rumzustänkern...
charlytango hat geschrieben:
Mi 24. Jan 2024, 19:58
Ich bleibe dabei... für mich ist das alles nicht zu Ende gedacht. So etwas nenne ich nach wie vor unausgegoren und eine drastische Verschlechterung. Daher für mich unbrauchbar.
Wenn du meinst... "Package" > "Install/Uninstall Packages" > in der linken Liste "ExampleProjects" markieren > "Uninstall selection" > "Rebuild IDE". Das ist der Sinn der modularen IDE.

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Beispielprojekte und Demos

Beitrag von charlytango »

wp_xyz hat geschrieben:
Mi 24. Jan 2024, 22:22
statt rumzustänkern...
Es tut mir leid wenn du das so siehst, das ist keineswegs beabsichtigt.
Ich habe mich bereits an dbannon gewandt.
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 22:22
Wenn du meinst... "Package" > "Install/Uninstall Packages" > in der linken Liste "ExampleProjects" markieren > "Uninstall selection" > "Rebuild IDE". Das ist der Sinn der modularen IDE.
Das hast du nicht nötig, oder ?
wp_xyz hat geschrieben:
Mi 24. Jan 2024, 22:22
charlytango hat geschrieben: ↑
24. Jan 2024, 19:58
Wobei ich mit der Beschreibung "Directory where Examples Go" nicht ein Kopierverzeichnis verbinden würde.

Was denn dann?
Ich würde den Text so interpretieren dass nur hier die (originalen) Beispiele rein gehören. Dass sie hierhin kopiert werden erschließt der Text nur wenn man den Kontext auch wirklich gut kennt.

Wie gesagt, ich warte mal auf Antwort von dbannon. Case closed

Antworten