Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von herbivore
Thema: Hello World! myCSharp auf .NET
Am im Forum: Ankündigungen

Hallo Abt,

Zitat von BhaaL
ich war bisher immer in der Kategorie "Entwicklung" unterwegs, was beim wbb2 nur die jeweiligen Foren unterhalb angezeigt hat - und die Funktion gibts aktuell (noch) nicht.
ich glaube BhaaL meint nicht das Verstecken, sondern dass die Forenkategorien (z.B. Entwicklung, Knowledge Base, Gemeinschaft) früher klickbar waren, und dann eine Seite mit eben nur den Foren der jeweiligen Kategorie angezeigt wurde. Also wir die Forenübersicht, aber eben nur für die jeweilige Kategorie.

Zitat von Abt
Das "Verstecken" von Bereichen haben nicht mal 1% der aktiven Benutzer verwendet. Daher ist das aktuell nicht drin.
Wenn das eine Prozent gerade die besonders aktiven Nutzer sind, ist auch ein Prozent ein relevanter Anteil, da es vermutlich auch nur 1% besonders aktive Benutzer gibt. Oder anderesherum: Es gibt Massen an Benutzern ganz ohne Beiträge (oder mit nur 1 oder 2), die den Prozentsatz bzw. die Aussagekraft einer Prozentangabe verwässern.

Ich kann ohne das Ausblenden leben, aber schön/angenehmer war es schon.

herbivore

Thema: Hello World! myCSharp auf .NET
Am im Forum: Ankündigungen

Hallo Abt,

Gratulation an dich und alle, die bei der neuen Forensoftware mitentwickelt und geholfen haben!

Natürlich schwingt auch etwas Wehmut mit, dass die alte Forensoftware, in die ich so viele Features - wenn auch die meisten Quick&Drity - eingebaut hatte, nun in Rente ist. Natürlich kann ich die Notwendigkeit gänzlich nachvollziehen. Ich freue mich, dass viele von "meinen" Features in die neue Software übernommen wurden. Und das diese Features - so wie ich es in deinem Text verstanden habe - sogar der Grund für die Eigenentwicklung waren.

Zitat
Neu ist, dass mehrere Anhänge an einen Forenpost gehängt werden können, was das Datenbank-Design der PHP-Variante nicht ermöglicht hatte: es war eine 1-1 Beziehung zwischen Beitrag und Anhang. Mir nicht klar, warum das damals so gewählt wurde.
Die Entwicklung von wbb2 war damals einfach noch nicht so weit. In einer wenig später erschienenen wbb2-Version waren auch mehrere Anhänge möglich. Leider waren da schon so viele eigene Features direkt in den wbb2-Code eingebaut (Quick&Dirty eben), dass ein Wechsel auf eine höhere wbb2-Version nicht mehr mit vertretbarem Aufwand möglich war. Ich hätte mir mehrere Anhänge auch schon seit langem gewünscht.
Zitat
Ebenfalls anders ist, dass Beiträge in Zukunft nur noch innerhalb eines gewissen Zeitraums editieren werden können, der derzeit 30 Minuten beträgt.
Das wäre für mich und andere Poweruser, die auch nach Jahren noch ihre Beiträge zum Nutzen der Community aktualisieren, wie zuletzt in Links zu (früherem) OpenBook Visual C# in einem FAQ-Beitrag funktionieren nicht mehr (bzw. in den dort verlinkten Beiträgen) geschehen, richtig schlimm. Daher hoffe ich, dass es zumindest für Poweruser eine Ausnahme gibt. Diese gehen mit ihren zusätzlichen Rechten auch bisher schon sehr verantwortungsvoll um.

herbivore

Thema: Links zu (früherem) OpenBook Visual C# in einem FAQ-Beitrag funktionieren nicht mehr
Am im Forum: Wünsche und Kritik

Hallo zusammen,

Zitat
daß es die Seite Guide To C# nicht mehr (öffentlich) gibt
die Seite mag es nicht mehr geben, aber eine alte Version des Guides gibt es schon noch. myCSharp.de sei dank :-)

[Tutorial] Guide to C#

herbivore

Thema: Links zu (früherem) OpenBook Visual C# in einem FAQ-Beitrag funktionieren nicht mehr
Am im Forum: Wünsche und Kritik

Hallo Th69,

vielen Dank für den Hinweis. Ich habe die genannten Links in den genannten FAQ-Beiträgen aktualisiert.

herbivore

PS: Ich gebe zu, dass ich die Links nicht regelmäßig kontrolliere. Aber wenn broken links gemeldet werden - wie von dir und wozu ich auch andere ausdrücklich ermutige - dann repariere ich das eigentlich immer schnellstmöglich.

Thema: Wie kann ich einen periodischen Job in einer Console ohne sichtbare Console aufrufen?
Am im Forum: Rund um die Programmierung

Hallo CoderboyPB,

du könntest die Anwendung als /target:winexe übersetzen. Das geht auch bei Consolen-Anwendungen.

herbivore

Thema: Wie ist/lebt ihr den Untersschied zwischen Projektleiter und Teamleiter?
Am im Forum: Smalltalk

Hallo multitasker,

Kunde <-> Projektleiter <-> Teamleiter <-> Entwickler

hat schon was von Stille Post.

Zitat
- Direkte Kommunikation von Kunde zu Entwickler sollte auch üblich sein, da dadurch keine Informationen verloren gehen können und man häufig effizienter an's Ziel kommt.

Anderseits bedeutet es, dass der Kunde nur einen Ansprechpartner für Alles hat und das hat schon auch Vorteile. Vor allem, wenn es jemand ist, der die Sprache des Kunden spricht. Und das ist sicher nicht bei allen Entwicklern so. Daher bin ich da nicht ganz auf deine Seite. Und direkter Kundenkontakt ist sicher auch aus anderen Gründen nicht jeder(entwickler)manns Sache.
Zitat
- Der Teamleiter ist in vielen Fällen nur ein Proxy. Der Projektleiter ist die Person, die den Kundenkontakt hat. Verschiebt sich etwas von Kundenseite etc., dann fände ich es besser, wenn der Projektleiter direkt mit dem Entwickler spricht.
Auch hier gilt natürlich, dass der Projektleiter nur einen Ansprechpartner hat, was seine Vorteile hat. Hier sehe ich aber eher Möglichkeiten, denn das ist ja alles firmenintern. Und wenn der Projektleiter eh die Pläne macht, weiß er ja auch vermutlich wen er für was ansprechen müsste. Hier könnte man also eine (Stille Post-)Station einsparen.
Zitat
- Ist der Teamleiter krank, verhindert etc. dann ist die Kommunikation gestört, da der Teamleiter derjenige ist, über den die ganze Kommunikation in der Regel geht.
Das wäre dann nicht mehr der Fall. Allerdings könnten sich die Teamleiter dadurch auch übergangen oder abgewertet fühlen. Also überleg dir genau, wen du dir durch einen entsprechenden Vorschlag vielleicht zum Feind machst.

Ich finde einen Teamleiter für fünf Leute allerdings sogar eher ganz entbehrlich, gerade wenn die eigentliche Planung sowieso der Projektleiter macht. Bei 25 Leuten würde aus meiner Sicht ein Abteilungsleiter als (direkter) Personalverantwortlicher reichen. Aber das ist natürlich eine noch klarere Kampfansage gegen die Teamleiter.

herbivore

Thema: Habt ihr Bewerbungstipps für Fachinformatiker für Anwendungsentwicklung?
Am im Forum: Smalltalk

Hallo Paddy1997,

Zitat
werde mir allerdings durch die Ausbildung Mittlere Reife anerkennen
weißt du denn, wie diese Anerkennung aussieht? Wie ein eigenständiges Zeugnis? Also eine Urkunde die für sich alleine aussagekräftig ist? Falls ja, würde ich nur dieses "Zeugnis" mitschicken. Denn es ist üblich, nur das (eine) Zeugnis des höchsten Schulabschlusses mitzuschicken.

Eine andere Lösung für das "Problem", wäre das Abitur nachzuholen. Wenn ich das richtig sehe, geht sowas in 1 1/2 Jahren. Dann ist klar, dass du nur das Abi-Zeugnis mitschicken musst und nichts von Haupt- oder Realschule. Außerdem stehen dir dadurch in Zukunft alle Wege offen. Und das Abi jetzt nachzuholen ist sicher leichter, als wenn du nach 10 Berufsjahren merkst, dass du es brauchst.

Klar, ist auch so nicht jedermanns Sache. Ist ja auch nur eine Erwägung.

herbivore

Thema: Warum sind 1kB = 1024 Byte?
Am im Forum: Smalltalk

Hallo ayykaramba,

nein, auch heute würde wohl (wieder) das Binärsystem verwendet werden, weil es einfach technisch/elektronisch herausragende Vorteile hat. Und dann landet man wieder bei binärer Adressierung und damit - wie du das zutreffend beschrieben hast - wieder bei Speichergrößen, die ein Vielfaches von 1024 sind.

herbivore

Thema: Buch zu den .NET-Internas?
Am im Forum: Buchempfehlungen

Hallo Palladin007,

also ich kann http://www.albahari.com/threading/ auch nur sehr empfehlen. Ich glaube nicht, dass es was besseres als Buch gibt bzw. das ist ja eigentlich ein Buch/PDF.

Wobei ich so konkret an Code bzw. Konstrukten orientierte Themen eh nicht ohne PC lesen kann, da ich das Gelesene immer sofort in konkrete Beispielprogramme umsetzten und ausprobieren muss. Allerdings hilft Testen im klassischen Sinne bei Nebenläufigkeit nur sehr begrenzt. Da muss man dann besser einen bösartigen Scheduler spielen. Und das erfordert - zumindest bei mir - höchste Konzentration. Das kann ich eh nur am Schreibtisch - und da steht dann sowieso der PC. Womit sich der Kreis schließt.

Zum bösen Scheduler habe ich in SyncQueue <T> - Eine praktische Job-Queue einen - wie ich finde sehr lehrreichen - Fall angegeben, wo man den Fehler durch Testen wohl kaum gefunden hätte und in SyncQueue<T> erweitern: Enqueue blockiert bei voller Queue (in: "Das Programmier-Spiel") folgende Erläuterung geschrieben, wie man vorgehen kann/sollte, um solche Fälle aufzudecken:

Zitat
[...] weil der Reiz dieser Aufgabe in meinen Augen in gerade im Knobeln und im Kniffligen liegt. Man muss das Ganze wirklich tief durchdenken. Man muss, wie in dem o.g. Link exemplarisch beschrieben, versuchen, einen möglichst bösartigen Benutzer und zusätzlich einen möglichst fiesen Scheduler zu spielen. Der Benutzer führt die Aufrufe in möglichst böser Reihenfolge in einer vertrackten Umgebung von Threads aus und der Scheduler zerhackt das Ganze noch in möglichst ungünstige Häppchen und wechselt zum jeweils unpassendsten Thread. Und dann muss immer noch alles stimmen.

Den bösen Benutzer kann man natürlich auch in Form von gemeinen Testprogrammen "spielen". Aber den bösen Scheduler kann man bei einem Test, bei dem man das Programm einfach laufen lässt, gar nicht oder nur sehr, sehr schwer simulieren. Das geht weit besser im Kopf. [...]

Wer selbst fiesen Scheduler spielen möchte, kann das - für mehrere andere Synchronisierungsaufgaben - auf der extrem coolen Seite The Deadlock Empire - Slay dragons, master concurrency! tun. Per Knopfdruck kann man dort bestimmen, welcher Thread die jeweils nächste Anweisung ausführen soll und man sieht quasi wie im Debugger sofort, wie sich daraufhin der Programmzustand ändert. Dabei ist es (Spiel-)Ziel, die (jeweils nicht korrekt implementierte) Synchronisierung auszutricksen oder das Programm in einen Ausnahmezustand zu versetzen.

In diesem Zitat "versteckt" sich der Link auf eine weitere Quelle, die ich - neben der Prosa - hier noch beisteuern wollte.

herbivore

PS: Damit man nicht jeden Anwendungscode so intensiv auf Probleme mit der Nebenläufigkeit untersuchen zu müssen, bietet es sich an, im Anwendungscode nicht selbst die Konstrukte (Semaphoren, Kritische Abschnitte, ...) der Nebenläufigkeit zu verwenden, sondern eben solche Klassen wie die SyncQueue, die einem die Details der Synchronisation abnehmen und bei denen man sehr wenig beachten muss (im Grunde genommen nur, dass der einstellende Thread nur bis zum Einstellen auf die gemeinsamen Daten zugreift und der herausholende erst ab/nach dem Herausholen.

Thema: Wie kann ich bei einer TextBox Eingabe nur ein bestimmtes Format erlauben?
Am im Forum: GUI: WPF und XAML

Hallo Davidnh,

bei der Beschränkung von TextBox-Eingaben, kann man wirklich viel falsch machen.

Aus meiner Sicht, hast du den falschen Ansatz gewählt, weil du versuchst, unerwünschte Eingaben (=Tastendrücke) ganz weit vorne abzufangen. Besser ist es, abzuwarten, was die Eingaben für eine Textänderung bewirken und diese (TextChanged) dann zuzulassen oder eben nicht. Dann musst du z.B. auch das Clipboad nicht abklemmen.

Alles was man dazu wissen muss (auch die ganzen anderen Fallen, in die man hier tappen kann), steht in der [FAQ] In einer TextBox nur bestimmte Zeichen/Eingaben zulassen. Inkl. Beispielcode für eine sinnvolle Lösung.

herbivore

Thema: Regex: Finde alles zwischen einem @ und einem Whitespace/Ende des Strings
Am im Forum: Rund um die Programmierung

Hallo Abt,

es ist mehr als eine persönliche Meinung, wie der verlinkte Thread zeigt. Da hat man den unmittelbaren Vergleich anhand eines üblichen, praktischen und konkreten Beispiels.

Und ich habe im übrigen nicht gesagt, dass Regex per se leicht wartbar ist, sondern nur wartbarer, als wenn man einen Pattern ausprogrammiert, was hier als Alternative vorgeschlagen wurde.

Wenn man Regex durch einen (fertigen/konfigurierbaren) Parser ersetzen kann, mag es anders z.B. aussehen.

Und auch das alles ist mehr als persönliche Meinung, sondern langjährige praktische Erfahrung mit Regex und den Alternativen. Trotzdem darf natürlich jeder auch einfach nur eine Meinung äußern.

Dass eine Meinung weit verbreitet ist, sagt übrigens auch nicht viel. Erst recht nicht, wenn die gegenteilige Meinung weiter verbreitet ist. :-)

herbivore

Thema: Regex: Finde alles zwischen einem @ und einem Whitespace/Ende des Strings
Am im Forum: Rund um die Programmierung

Hallo MrSparkle,

Zitat
Dazu brauchst du kein RegEx, das kannst du alles mit den Methoden der String-Klasse erledigen
es ist kein Argument, dass es auch anders geht. Meistens ist es mit Regex einfacher, verständlicher und sogar wartbarer, siehe z.B. Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch und folgende.

Hallo PierreDole,

klar kann man die Cursor-Position auslesen. Wie hängt davon ab, welche GUI-Technologie du einsetzt. Und damit ist es dann keine Frage für "Rund um die Programmierung" (was im Grunde schon die Eingangsfrage gilt, denn Regex steht explizit bei "Basistechnologien"), sondern für das entsprechende GUI-(Unter-)Forum. Davon abgesehen ist das eigentlich gar keine Frage fürs Forum, denn das bekommst du anhand der Doku leicht selbst raus.

herbivore

Thema: Regex Filter für Variabeln
Am im Forum: Rund um die Programmierung

Hallo FrankenDerStein,

obwohl ich bekennender Regex-Fan bin, muss auch ich dir abraten. Wenn überhaupt müsste man das in Schritten machen, also erst die Kommentare rausschmeißen, dann die Strings und dann die Ersetzung durchführen, nur ist dein Script dann schon verhunzt. Das nützt dir also nichts.

Wenn man versucht, einen Pattern zu bauen, der alles auf einen Rutsch erschlägt, wird das irrsinnig komplex. Da würde ich schon lange basteln müssen und das Ergebnis wäre unbefriedigend, da fehleranfällig und unwartbar. Als Anfänger wird das erst recht nichts.

Die Punkte 3 und 4 sind nicht das Problem (sogar ganz easy), sondern die Kombination von 1 und 2 mit 3 und 4. Schon 1 kombiniert mit 3 und 4 oder 2 kombiniert mit 3 und 4 wären umständlich, aber 1 *und* 2 kombiniert mit 3 und 4, unrealistisch.

Wenn nicht per Parser, dann müsste man das ausprogrammieren. Und das würde einigermaßen leicht gehen. Per Zustandsautomat einfach Zeichen per Zeichen durch die Eingabe laufen und dann weiß man mit ein wenigen Abfragen immer ganz genau, ob man gerade in einen Kommentar ist oder in einem String oder eben im eigentlichen Codebereich. Und auch hier ist es kein Problem zu wissen, ob man gerade an einer Wortgrenze ist. Und Groß- und Kleinschreibung ist auch kein Problem. Das würde also einigermaßen überschaubar gehen, ohne dass man sich in einen Parser einarbeiten muss.

herbivore

Thema: In vielen Sprachen implementierbares Programm
Am im Forum: Smalltalk

Hallo gfoidl, hallo lepton,

Zitat
so behaupte ich jetzt einfach dass sich jedes Prograrmm mit jeder Programmiersprache umsetzen lässt
solange es um Berechenbarkeit geht, stimmt das exakt für jede Programmiersprache, die turing-vollständig ist. Und das sind so gut wie alle Programmiersprachen und alle relevanten sowieso.

Es gibt aber auch viele Probleme, bei denen es nicht im engeren Sinne um Brechenbarkeit geht, sondern vor allem um die Ansteuerung von Hardware (Grafische Ausgabe, Ausgabe auf Peripheriegeräten, Maschinensteuerung, ...) und da gibt es viele Programmiersprachen, die die entsprechenden Möglichkeiten nicht oder nur eingeschränkt bieten oder nur mit entsprechenden (in anderen Sprachen geschriebenen) Bibliotheken. In solchermaßen beschränkten Sprachen lassen sich dann bestimmte (Ansteuerungs-)Probleme (praktisch) gar nicht lösen. Ein grafisch ansprechendes 3D-Spiel in Prolog kann ich mir zum Beispiel nur schwer vorstellen.

herbivore

Thema: Der #WirVsVirus Hackathon der Bundesregierung - 20. bis 22 März 2020
Am im Forum: Szenenews

Hallo MrSparkle, hallo zusammen,

43.000, das ist doch mal eine Hausnummer. Und auch wenn ich nicht zu den Teilnehmern zählte, stützt die Zahl und auch die Themen-Beispiele genau meine Thesen von (ganz) oben. Und auch wenn sich dadurch nicht gleich die Welt ändert, kann man die Veranstaltung - trotz ihrer technischen Probleme aufgrund des Ansturms - doch getrost als Erfolg ansehen.

Zitat von Golem/Kanzleramtsminister Helge Braun
Das war offenkundig der größte Hackathon, der jemals weltweit durchgeführt wurde

herbivore

Thema: Der #WirVsVirus Hackathon der Bundesregierung - 20. bis 22 März 2020
Am im Forum: Szenenews

Hallo LaTino,

ich hatte nur gewarnt, dass man gerade bei politischen Themen leicht der Gefahr erliegen kann, es sich mit der Kritik zu leicht zu machen. Ich wollte damit nicht sagen, dass man gar nicht und gar nichts mehr kritisieren darf. Das darf man natürlich. Es handelte sich also keinesfalls um ein Totschlagargument.

herbivore

Thema: Der #WirVsVirus Hackathon der Bundesregierung - 20. bis 22 März 2020
Am im Forum: Szenenews

Hallo LaTino,

wenn du erwartest, dass ein einzelner Hackathon die Welt maßgeblich verändert, dann erwartest du einfach viel zu viel. Ein Hackathon kann (und soll) immer nur Keimzelle sein. Und das ist hier so wenig ausgeschlossen, wie bei anderen Hackathons. Das wird erst die Zeit zeigen.

Davon abgesehen legt die Politik momentan weit mehr Aktionismus an den Tag, als ich für erforderlich und angemessen halte. Da ist etwas, dass wie der Hackathon keine (negativen) Auswirkungen auf mich hat, schon mal eine erfreuliche Ausnahme.

Mir ist bloß nicht klar, was du mit "politikverschuldeter Probleme" meinst. Die Politik (nachträglich) zu kritisieren, ist leicht. Es besser zu machen (gemacht zu haben), schon sehr viel schwieriger.

herbivore

EDIT: Ihr hatte ja richtig verstanden, wie der Satz gemeint war, da er zweimal zitiert wurde. Ich hab ihn trotzdem noch korrigiert: Aus "(gemacht) zu machen" wurde "zu machen (gemacht zu haben)".

Thema: String-Aufbau: KeyWord=Value1, Value2, Value3 - Umformatieren
Am im Forum: Grundlagen von C#

Hallo Automatinator,

Zitat
... und es muss funktionieren.

in meinen Augen funktioniert eben noch nicht alles richtig, oder zumindest nur, wenn die Eingabedaten bestimmte Voraussetzungen erfüllen (und wenn nicht geht es eben echt schief).

Konkret erfüllt die Methode deine Forderung aus dem Beispiel nicht, die Leerzeichen um die Einzelwerte herum zu entfernen.
Zitat
Entweder versteh ich das Dictonary nicht ...

Was nicht ist, kann ja noch werden :-)

Um Dein Beispiel zu nehmen

Velo=1, 2, 0, 1, 2

wird zu

myDictionary ["Velo"] [1]=1
myDictionary ["Velo"] [1]=2
myDictionary ["Velo"] [2]=0
myDictionary ["Velo"] [3]=1
myDictionary ["Velo"] [4]=2

Die Initialisierung des Arrays kommt genauso wie bei deinem Code noch dazu (per Rückgabewert von String.Split), nur wird es nicht an die Variable myStringArray zugewiesen, sondern an myDictionary ["Velo"]. Und myDictionary muss natürlich vorher einmal mit einem Dictionary initialisiert werden.

Das Dictionary hilft dir dabei, alle Wert-Arrays in einer Datenstruktur (eben dem Dictionary) zusammenzufassen. Du könntest dann z.B. eine Methode schreiben, die eine ganze Datei einliest und als Dictionary zurückliefert, statt nur jeweils eine Zeile der Datei als Array.

Das ist einfach nur praktisch, aber natürlich nicht zwingend erforderlich.

herbivore

Thema: String-Aufbau: KeyWord=Value1, Value2, Value3 - Umformatieren
Am im Forum: Grundlagen von C#

Hallo T-Virus,

wenn du mit "eigenes Objekt" nicht auch gleich eine eigene Klasse meinst, stimme ich dir voll zu. Hier würde wohl am ehesten ein KeyValuePair <String, String[]> das passende "eigene Objekt" sein.

Und die kann man dann außerhalb der Methode in das schon vorgeschlagene Dictionary <String, String []> übertragen.

herbivore

Thema: Der #WirVsVirus Hackathon der Bundesregierung - 20. bis 22 März 2020
Am im Forum: Szenenews

Hallo chilic,

vorne weg: Ich weiß auch nur, was auf der Webseite steht.

Doch für mich ist der Fall ziemlich klar. Denn wir alle sind in der einen oder anderen Form von Einschränkungen betroffen. Es stellt sich also mindestens die Frage, wie man die Eindämmung des Virus möglichst gut und gleichzeitig mit möglichst wenigen Einschränkungen erreichen kann. Andersherum stellt sich die Frage, wie man trotz aller Einschränkungen das (gesellschaftliche oder zumindest wirtschaftliche) Leben aufrechterhalten kann. Da wir alle mit einer völlig neuen Situation konfrontiert sind, sind auch die Lösungen wohl völlig neue, zumindest aber die Fragestellungen.

Und gerade dafür ist doch ein Hackathon ideal, denn "Ziel eines Hackathons ist es, innerhalb der Dauer dieser Veranstaltung gemeinsam nützliche, kreative oder unterhaltsame Softwareprodukte herzustellen oder, allgemeiner, Lösungen für gegebene Probleme zu finden."

Wenn klar wäre, das ist die Fragestellungen sind und was die dazu passenden Lösungen, dann bräuchte man keinen Hackathon, sondern dann macht mam es eben oder gibt es in Auftrag. Fertig! Ist hier aber nicht so.

Also ich finde die Idee super. Und wenn ich mir auch nicht vorstellen kann, dass die Idee direkt von Kanzlerin oder Ministern gekommen ist (ich sage nur "Neuland", aber vielleicht tue ich ihnen auch unrecht), so finde ich es durchaus bemerkenswert, dass sie als "Die Bunderegierung" dem zumindest nicht im Weg gestanden haben.

Ums vielleicht etwas konkreter zu machen: Mir fällt viel ein was man alles "vs Virus" tun kann, das fängt bei Apps an, die medizinische Forscher unterstützen, z.B. beim Finden eines Impfstoffes; beim gesellschaftlichen Leben geht es um Apps, die ermöglichen, was wegen der Einschränkungen nicht möglich ist, z.B. streamt der RBB jetzt Veranstaltungen, die nicht mehr physisch besucht werden können, beim wirtschaftlichen Leben könnte es z.B. um Apps gehen, die helfen, Lieferketten aufrecht zu erhalten oder neue zu schaffen. Ich denke, ich könnte da jetzt noch eine halbe Stunde Brainsorming machen und mir würde ununterbrochen Passendes einfallen.

Ich habe versucht, alle deine Fragen zu beantworten. Ich hoffe, es ist mir gelungen. Ist es?

herbivore

BTW: Durch Gendersternchen wird ein Text doch gerade aufgewertet. :-)

Thema: String-Aufbau: KeyWord=Value1, Value2, Value3 - Umformatieren
Am im Forum: Grundlagen von C#

Hallo Automatinator,

ich finde, da passen ein paar Sachen nicht zueinander.

Das Trimmen sollte am Schluss für alle Einzelwerte erfolgen. Jedenfalls nicht zwischen der Abfrage und dem Replace. Das Trim bedeutet ja, dass du mit überflüssigen Leerzeichen rechnest. Bei deiner momentanen Konstruktion würde StartsWith aber gerade nicht true liefern, wenn vor dem Keyword mindestens ein Leerzeichen steht.

Und was ist mit dem Gleichheitszeichen? Wenn sKeyWord nur das Wort ohne Gleichheitszeichen enthält (was nach dem Namen des Parameters zu vermuten ist), dann ist das Gleichheitszeichen in sTrimmedInputString weiterhin enthalten.

Außerdem ersetzt Replace alle Vorkommen, bei "a=Hallo" also auch das a von Hallo.

Davon abgesehen würde ich das KeyWord gar nicht als Parameter übergeben, sondern sehe es als Teil des Ergebnisses der Methode. Das KeyWord ist eben das, was vor dem (ersten) Gleichheitszeichen steht (natürlich wieder getrimmt). Es ist also eindeutig zu erkennen, auch wenn es nicht explizit übergeben wird.

So leicht wie die Aufgabe aussieht, ist sie nicht, wenn man alle denkbaren Fälle auch korrekt behandeln will.

herbivore

Thema: String-Aufbau: KeyWord=Value1, Value2, Value3 - Umformatieren
Am im Forum: Grundlagen von C#

Hallo Automatinator,

die Darstellung mit dem Gleichheitszeichen heißt Key-Value-Pairs (Schlüssel-Wert-Paare), wie sie in den von Palladin007 genannten Initialisierungsdateien Verwendung finden.

Die Darstellung mit dem Komma heißt CSV, also Comma-separated values.

Für die Kombination aus beiden gibt es möglicherweise keinen Namen, jedenfalls ist mir keiner bekannt.

Entsprechend kenne ich keine Klassen, die das in dieser Kombination behandeln. Man könnte aber Klassen für INI-Dateien mit welchen für CSV kombinieren, um das Problem (in zwei direkt aufeinander folgenden Schritten) zu lösen.

Die Ergebnis-Datenstruktur wäre wohl besser ein Dictionary von Arrays (oder Listen) statt nur ein Array, also Dictionary <String, String []>.

herbivore

Thema: Wie kann ich beim Testen _alle_ Fälle abdecken?
Am im Forum: Rund um die Programmierung

Hallo zusammen, hallo Unfug,

ich lese aus dem resignierten Unterton in "dass man dem Neuling nichts an die Hand geben kann außer: Lerne aus Erfahrungen", dass du Neulinge gerade nicht damit abspeisen willst, sondern nach einer echten Hilfe suchst, die du ihnen an die Hand geben kannst.

Ich bedauere ehrlich gesagt auch als Erfahrener immer wieder, wie viele Fälle man bei Unit-Tests berücksichtigten muss ... und dann immer noch nicht die volle Komplexität abgedeckt hat. Selbst bei einfachen Methoden übersteigt die Codelänge der Unit-Tests die der zu testenden Methode oft um ein Vielfaches.

Und dass wäre schon mal ein erster Rat, den man Anfängern auf den Weg geben kann: Wenn deine Unit-Tests kürzer sind, als der Code der Methode, dann fehlen vermutlich noch viele wichtige Fälle.

Außerdem muss man nachdrücklich klar machen, dass Unit-Tests nicht nur die Gutfälle berücksichtigen sollen, sondern besonders (fast schon vorrangig) auch die Schlecht- und Fehlerfälle.

Und dann finde ich es wichtig, die Haltung zu vermitteln, dass es bei Unit-Tests nicht darum geht, sich in dem Glauben zu bestätigen, dass man die Methode richtig programmiert hat. Sondern dass man ganz im Gegenteil alles daran setzen sollte, zu beweisen, dass in der Methode noch Fehler sind. Es ist ein bisschen so, wie wenn man gegen sich selber Schach spielt. Da geht man als Schwarz auch nicht davon aus, dass man als Weiß alles richtig gemacht hat und dagegen sowieso nicht anzukommen ist, sondern man setzt alles daran, die Lücken zu finden, die Weiß gelassen hat.

So sind auch Unit-Tests ein (ernsthaftes) Spiel gegen sich selber. Als Weiß versucht man die perfekte, fehlerfreie Methode zu schreiben und als Schwarz setzt man alles daran, die Schnitzer und Lücken zu finden, die Weiß doch übersehen oder gelassen hat. Und je mehr man davon findet, desto besser ist man. Nicht nur ein desto besserer Unit-Tester ist man, sondern ein desto besserer Programmierer ist man. Denn am Ende wird man danach gemessen, wie fehlerfrei der produktive Code ist, nicht danach, wie fehlerfrei eine Methode im ersten Anlauf (also vor den Unit-Tests) war.

Und man wird durch diese zwei Perspektiven sogar noch ein besserer Programmierer. Denn wenn man sich beim Programmieren bewusst ist, dass man sich selbst während der Unit-Tests auf eine wirklich harte Probe stellen wird, wird man schon beim Programmieren immer besser wissen, was man alles gleich berücksichtigen, einbauen und unterlassen muss, um in ersten Anlauf möglichst wenig Fehler zu machen.

herbivore

Thema: FormClosing event wird zweimal ausgelöst
Am im Forum: GUI: Windows-Forms

Hallo Shayliar,

die Lösung steht oben doch schon: Mit Application.Exit stößt du das Schließen gleich nochmal an.
Wenn das Form geschlossen werden soll, musst du gar nichts machen.
Wenn es offen bleiben soll, setzt du e.Cancel auf true.
Das ist alles.

Um diese Entscheidung zu treffen, sollte/muss die MessageBox mindestens zwei Button haben. Wie das zum Beispiel geht, steht auch oben, auch wenn ich eher Ja/Nein Buttons verwenden würde, oder noch besser eine MessageBox gleich ganz vermeiden würde, z.B. mit [Snippet] Nicht-modale Abfrage als Alternative für MessageBoxen oder allgemeiner mit Nenne deinen Fall, wo du denkst, ohne modalen Dialog geht es nicht, und ich nenne eine Alternative.

herbivore

PS: Solltest du das Application.Exit doch benötigen, darfst du die Aktionen im FormClosing-Event nur durchführen, wenn der CloseReason UserClosing ist. Wird auch schon oben erwähnt.

Thema: Session / Cookies Handling des Forums meldet mich alle paar Stunden ab
Am im Forum: Smalltalk

Hallo inflames2k, hallo zusammen,

noch ein (hoffentlich!?) letztes Wort zu den Wahrscheinlichkeiten. Dass ich die Möglichkeit selbst für sehr, sehr unwahrscheinlich halte, hatte ich von Anfang an geschrieben.

Zitat
Wie wahrscheinlich wäre denn wohl dass die Zugangsdaten mehrerer Forenmitglieder im Umlauf wären?

Dass mehrere Benutzer betroffen waren, war mir bewusst. Und auch dass die Wahrscheinlichkeit des zeitgleichen Auftreten mehrerer sehr unwahrscheinlicher Ereignisse *exorbitant* gering ist, quasi nahezu ausgeschlossen. Das gilt aber nur, wenn die Ereignisse *unabhängig* voneinander sind. Das wäre der Fall, wenn einzelne Zugangsdaten z.B. durch Unachtsamkeit im jeweiligen Bekanntenkreis bekannt und dann auch tatsächlich noch benutzt werden. Bei einem gezielten Angriff (den ich hier ausdrücklich betont *nicht* sehe), wäre diese Unabhängigkeit nicht gegeben. Dann bliebe die Wahrscheinlichkeit einfach nur sehr gering, würde aber nicht dadurch geringer, dass das Phänomen bei mehreren Personen auftritt. Ich glaub da nicht dran, hatte es - wie gesagt - nur der Vollständigkeit halber geschrieben. Auch das jetzt nur der Vollständigkeit halber.

Ich stimme mit deiner Vermutung über die Ursache überein und sehe das Problem als gelöst an.

herbivore

Thema: Session / Cookies Handling des Forums meldet mich alle paar Stunden ab
Am im Forum: Smalltalk

Hallo zusammen,

wie schon weiter oben angeklungen, wird man auf dem bestehenden Gerät/Browser ausgeloggt, wenn man sich auf einem anderen Gerät/Browser einloggt. Das liegt daran, dass beim Einloggen eine long-time session id generiert, im Cookie (eben genau des aktuell verwendeten Browsers) gespeichert und ab da zur Authentifizierung des Benutzers verwendet wird. Diese ID ist prinzipiell unendlich lange gültig, aber mit einem neuen Einloggen wird eine neue ID generiert und dadurch verliert die bisherige ID ihre Gültigkeit.

Ich will nun wahrlich keine Panik verbreiten und halte die folgende Möglichkeit auch für sehr, sehr unwahrscheinlich. Trotzdem schreib ich es mal zur Vollständigkeit.

Wer auch immer sich wo neu einloggt, bewirkt also, dass der bisherige Login ungültig wird. "Wer auch immer" muss man nicht unbedingt selber sein. Wenn sich also jemand anderes im Besitz der Zugangsdaten befindet und sich damit einloggt, würde das ebenfalls bewirken, dass man selber ausgeloggt ist.

Wie gesagt, sehr unwahrscheinlich. Aber es schadet auch nicht, (vorsorglich) mal das Passwort zu ändern. Vor allem, wenn das aktuelle Passwort kurz oder aus anderen Gründen unsicher ist.

herbivore

PS: Aus dem zur Funktionsweise Gesagten ergibt sich eine prinzipielle, aber eher fummelige Möglichkeit, auf zwei (oder sogar mehr) Geräten dauerhaft eingeloggt zu bleiben, nämlich indem man sich auf einem Gerät/Browser einloggt und dann den resultierenden Cookie auf dem anderen Gerät/Browser passend implantiert. Als Cookies noch einzelne Textdateien waren, ging das sogar praktisch relativ einfach, aber seit Cookies in (lokalen) Datenbanken gespeichert werden, ist es umständlicher geworden.

Thema: Space Opera (C#, Unity)
Am im Forum: Projekte

Hallo Bradley,

ich hatte das oben mit dem Klickevent falsch verstanden.

Da in meinem Vorschlag der Linksklick für das Einstellen des Sliders belegt ist, wäre eine Möglichkeit, für das Umstellen zwischen absolut und relativ einen Rechtsklick zu verwenden. Jeder Rechtsklick schaltet dann direkt in den jeweils anderen Modus.

Sollte man den Rechtsklick später doch für ein Kontextmenü benötigen, kann man das Umstellen einfach ins Kontextmenü verlegt. Man verbaut sich also nichts.

Ich gebe zu, dass mein Vorschlag oben teilweise - und auch die Verwendung des Rechtsklicks für eine direkte Aktion - nicht den üblichen GUI-Standards entspricht. Allerdings gibt es auch in Windows eine Stelle, an der ein Rechtsklick eine direkte Aktion auslöst, nämlich im Kommandozeilenfenster (cmd.exe). Dort fügt ein Rechtsklick den Text aus der Zwischenablage unmittelbar ein (zumindest wenn in Eigenschaften/Optionen der QuickEdit-Modus aktiviert ist).

Obwohl die GUI-Standards von Windows im Allgemeinen gar nicht so schlecht sind, führen sie im Einzelfall zu unnötig umständlichen Bedienungsmustern, die man aber vermeiden kann, wenn man die GUI-Standards als Empfehlung sieht, die man in begründeten Fällen nicht sklavisch einhalten muss. Gerade wenn man viele der Progressbars umstellen will, ist man über jeden gesparten Klick und jede gesparte Mausbewegung froh.

herbivore

Thema: Space Opera (C#, Unity)
Am im Forum: Projekte

Hallo Bradley,

ein "normaler" Progressbar lässt sich auf verschiedene Arten bedienen (und das ist auch prinzipiell gut so).

Man kann den Slider ziehen. Oder man klickt rechts oder links des Sliders und der Slider bewegt sich dann in festgelegter Schrittweite zur entsprechenden Seite. Beides ist vergleichsweise umständlich.

Das Ziehen erfordert ein Drücken der Maustaste (genau) über dem (eher kleinen) Slider, ein Bewegen der Maus und ein Loslassen der Maus an der gewünschten Stelle. Leichter und schneller wäre ein Klicken direkt auf gewünschten Stelle, so dass der Balken direkt bis dort hinspringt. Wenn man versehentlich klickt, ist das kein Problem, wenn es ein Undo gibt.

Außerdem wäre die Bedienung per Tatstatur wünschenswert, z.B.
Pos1 = 0%
Ende = 100%
Page Up/Down oder Pfeil Hoch/Runter = große Schrittweite (z.B. 10%-Schritte)
Pfeil Rechts/Links = kleine Schrittweite (z.B. 1%-Schritte)

Damit könnte man dann sehr flott seine Einstellungen vornehmen.

herbivore

Thema: Wie wird mein ein besserer Informatiker?
Am im Forum: Smalltalk

Hallo Olii,

sich in bestehende (Software-)Systeme einzuarbeiten, gehört zu dem schwierigsten, was es überhaupt gibt. Kein Wunder, dass das eine Herausforderung für dich ist. Aber deine Motivation und auch deine Herangehensweise scheinen mir zu stimmen. Also einfach weiter durchbeißen. Mit jedem Tag - von den üblichen Rückschlägen abgesehen - wirst du automatisch mehr und mehr von dem lernen, was du brauchst. Also Kopf hoch!

Momentan bist du damit sicher gut ausgelastet. Wenn du später an Systematik, Logik und Professionalität arbeiten willst, empfehle ich dir:https://clean-code-developer.de/

herbivore

PS: Wenn so viele verschiedene Informationen auf einen einströmen, ist es durchaus üblich, dass man sich nicht alles auf Anhieb merken kann. Ich würde sogar so weit gehen, dass ich all das, was ich Grundstudium gelernt (oder besser: aufgenommen) hatte, erst im Hauptstudium wirklich verstanden habe (also mehrere Jahre später). Es ist also auch ganz normal, dass es lange dauert, bis man ein neues System umfassend verstanden hat.

Deshalb würde ich auch keinesfalls von irgendwelchen Defiziten reden, sondern nur von einer hohen Belastung, die jeder in deiner Situation empfinden würde. Also einfach am Ball bleiben, ruhig auch mehrfach das gleiche fragen und dann wird das schon.

Thema: Space Opera (C#, Unity)
Am im Forum: Projekte

Hallo Bradley,

Gratulation zu den Fortschritten, zu denen ich zwei Anmerkungen habe.

Ich weiß nicht, ob du es sowieso machen wolltest. Ich halte es jedenfalls für wichtig, im Grunde sogar unverzichtbar, dass die Schäden als Balken angezeigt werden. Jeder Balken ist dann so lang wie die Gesamttrefferpunkte, wo die verbliebenen Trefferpunkte grün sind und die "verbrauchten" rot. Dann kann man auf einen Blick erkennen, wo Handlungsbedarf besteht und muss nicht alle Zahlen einzeln lesen, verstehen und sogar im Kopf vergleichen.

Und in dem Video zeigst du die Hintergrundinformationen als Dialog. Das finde ich ganz gruselig, vor allem, wenn der Dialog modal ist. Ich hab mich schon verschiedentlich im Forum dazu ausgelassen, wie gruselig ich (modale) Dialoge finde und verschiedene bessere Alternativen beschrieben, um sie zu vermeiden. Im konkreten Fall fände ich es gut, wenn der Text in einer Kachel angezeigt werden würde, entweder eingeblendet rechts neben den Modulen oder rechts neben dem Schiff oder wenn der Platz da nicht reicht, als Überlagerung des Schiffes. Jedenfalls so, dass man das Fenster nicht zuixen muss, um den Text des nächsten Moduls anzuzeigen (und auch so, dass die Module nicht verdeckt werden). Denn nur so kann man einfach die I's der Module eins nach dem anderen durchklicken, ohne unnötige Mausbewegungen und unnötige Klicks. (Ich sagte ja oben schon, dass es mir wichtig ist, dass man mit möglichst wenig Klicks möglichst viel erreicht.

Ich würde mich freuen, wenn ich dich überzeugen konnte und du die Vorschläge aufgreifst.

herbivore

Zitat
eins nach dem anderen durchklicken
PS: Noch schöner fände ich es, wenn in der Hintergrundinformationskachel die Pfeiltasten funktionieren würden, und man so (zu den Texten) von Modul zu Modul springen können. Überhaupt finde ich es wichtig, dass das Spiel (zumindest in den wesentlichen Aspekten) tastaturbedienbar ist.