Linux gar nicht so flexibel

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Stevie63
Beiträge: 86
Registriert: 06.05.2009 23:02
Computerausstattung: Win 10, i7, fsc celsius

Re: Linux gar nicht so flexibel

Beitrag von Stevie63 »

Kurzer hat geschrieben: Just my 2 cents.
:allright: :allright: :allright:
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Linux gar nicht so flexibel

Beitrag von ccode_new »

Kurzer hat geschrieben:Just my 2 cents.
:allright: :allright:

"Nur meine unbedeutende Meinung"
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
CodeBurg
Beiträge: 101
Registriert: 06.06.2011 22:53

Re: Linux gar nicht so flexibel

Beitrag von CodeBurg »

Hallo Kurzer,
sorry erst einmal für die verspätet Antwort, aber das Wetter war diese Woche einfach zu schön, um auch nach erledigtem Tagwerk weiter vor der Kiste zu sitzen.
Kurzer hat geschrieben:... was anderen User jedoch nicht das explizite Recht einräumt bei der betreffenden Person auffallend oft provokant zu antworten bzw. durch einen herabwürdigenden Ton oder mittels bestimmter suggestiver Fragetechniken dafür zu sorgen, dass beim Diskussionspartner ein emotionaler Druck aufgebaut wird bzw dieser sich angegriffen fühlt.
Ich denke nicht, dass ich dies getan habe. Ich habe DarkDragon nur darauf hingewiesen, dass sein eigenes Verhalten auch nicht immer frei von jeglicher Kritik ist und er daher nicht so schnell mit dem Finger auf andere zeigen soll.
Um das ganze mal etwas zu konkretisieren, ich bin bezogen auf ein anderes Hobby von mir auch in anderen Foren unterwegs. In mindestens 2 dieser Foren hätte DarkDragon für sein Verhalten alleine in genau diesem Thread hier, selbst eine Verwarnung erhalten. Hierbei handelt es sich nicht unbedingt um die eine, große Verfehlung, es wäre viel mehr die Summe seines Verhaltens. Aber wie geschrieben, nur bezogen auf diesen Thread hier.
Kurzer hat geschrieben: Ich kenne niemanden der hier an der Diskussion beteiligten User persönlich und habe keine bestimmte Präferenz für den einen oder den anderen, aber als einigermaßen empathisch veranlagter Mensch ist dieser Diskussion diesbezüglich eine eindeutige Schieflage zu entnehmen - zumindest Streckenweise.
Da geht es mir genau so. Weder kenne ich hier jemand persönlich, noch kann ich der Geschichte mit der Schieflage widersprechen. Jedoch habe ich eine andere Sichtweise auf diese Schieflage, sowohl was deren Ursprung als auch die Richtung betrifft.
Kurzer hat geschrieben: Man kann in einer Diskussion absolut entgegengesetzter Meinung sein und trotzdem respektvoll miteinander umgehen.
Gerade wenn man das Instrument "Schrift" dafür nutzt ist das angebracht, da durch die fehlenden Informationskanäle wie Körpersprache, Gesichtsausdruck, Tonfall etc., die man bei einem persönlichen Gespräch zur Verfügung hat, das Potential für Missverständnisse und der fehlerhaften Auslegung dessen, wie etwas gemeint ist, eher hoch ist.
Das sehe ich ebenfalls als korrekt an. Jedoch schwingt auch diese Tür in beide Richtungen. Während der eine aufpassen sollte, was er wie schreibt, sollte der andere nicht alles auf die Goldwaage legen und überinterpretieren. Wie geschrieben, insbesondere in einem Thread in dem es ums polarisieren geht. Denn eine Polarisierung sorgt per Se immer für Spannungen, und jeman der in diesen Thread einsteigt, mit der Vorgabe, dass er polarisieren möchte, ist genau auf diese Spannungen aus. Um so mehr, ist es in meinen Augen ebenfalls ein evtl. sogar noch größeres Fehlverhalten, wenn solch ein Nutzer jedes unter dem Einfluss der von ihm erzeugten Spannungen von anderen Nutzern geschriebene Wort auf die Goldwaage legt. Und nur um Missverständnisse zu vermeiden, ich behaupte hier nicht, dass alle Schuld bei DarkDragon liegt und sich JMaker immer und mit allem korrekt verhalten hat. Im Gegenteil, ich denke sogar, dass manche der Beiträge von JMaker in Richtung DarkDragon schärfer formuliert waren, als es angebracht war. Jedoch kann ich in der Summe seines Verhaltens, DarkDragon die reine Opfer-Rolle nicht abnehmen und ihn von jedem Fehlverhalten freisprechen.
Kurzer hat geschrieben: Solche angefügten Nachsätze wie der rot markierte...
"Ich habe dich lediglich darauf hingewiesen dass man seine These auch begründen und verteitigen muss wenn man sie aufstellt. Sonst ist das nur eine sinnlose Diskussion. Hast du das nie in der Grundschule gelernt oder von deinen Eltern gelernt? *Facepalm*"
... sind in dieser Hinsicht auch nicht mehr als Versehen anzusehen oder aus Unwissenheit geschrieben worden. Hier handelt es sich eindeutig um eine suggestive Frageform, die bewusst gewählt wurde, um bei dem Gegenüber eine gewisse Emotion auszulösen. Sie unterstellt indirekt einen Fakt, den der Befragte erst einmal aufklären bzw. dementieren muss, bevor er auf den eigentlichen Sachinhalt der Diskussion antworten kann. Es handelt sich um eine Art von Angriffsfrage, die den Gesprächspartner schwächen und in einem schlechten Licht darstellen soll.
Darüber kann man geteilter Meinung sein. Ja, es ist eine gewisse Angriffsform, in dieser Hinsicht gebe ich dir Recht, was den Rest betrifft jedoch nicht. So eindeutig, wie das ganze für dich eine Suggestivfrage ist, so eindeutig ist es für mich jedoch eine rhetorische Frage, die weder eine Antwort haben will noch einer Antwort bedarf. Entsprechend trifft für mich der ganze Part mit „aufklären“ und/oder „dementieren“ nicht zu, da dies ja eine Antwort auf diese rhetorische Frage wäre. Ausserdem sollte man nicht nur diese eine Aussage von JMaker betrachten, sondern viel mehr die ganze Diskussion, die dann meiner Meinung nach auch aufzeigt, dass DarkDragon an dieser Eskalation nicht ganz unschuldig war. Durch meine Erfahrung aus annähernd 20 Jahren Tätigkeit in leitender Position sowie eine fast genau so lange Zeitspanne in der ich in Foren selbst Posten als Moderator oder Administrator begleitet habe bzw. noch begleite, habe ich nicht nur eines gelernt, aber eine Sache, die hier wirklich sehr gut passt. Wenn man andere ständig eines bestimmten Verhaltens bezichtigt, braucht man sich nicht wundern, wenn sie dieses Verhalten auch annehmen. DarkDragon hat JMaker bereits zu einem deutlich früheren Zeitpunkt hier im Thread des Mobbings bezichtigt. Zwar gilt auch hier, dass das von JMaker verwendete Wort „labern“ nicht unbedingt die gepflegteste Ausdrucksweise darstellt, mit Mobbing hat das ganze jedoch nicht wirklich was zu tun. Nicht jedes Wort, das eine (ab-)wertende Eigenschaft hat, dient auch gleich dem Mobbing. An dieser Stelle erschien es mir jedoch so, dass DarkDragon nur darauf gewartet hat, die kleinste Kritik an seinem eigenen Verhalten zum Anlass zu nehmen, einen anderen User zu bezichtigen.
Kurzer hat geschrieben: Diese Art Frage hat keinerlei Nutzen für den sachlichen Verlauf der Diskussion. Sie ist derart drastisch formuliert, dass Du Deinem gegenüber auch gleich hättest ins Gesicht rotzen können.
Ähh, nein. Manche Sachen, kann man auch überinterpretieren. Und die spezielle Frage, die du hier umschreibst, kenne ich von meiner Arbeitsstelle sogar von Ebenen, in denen nur Leute mit gehobenen Einkommens- und Bildungsniveau unterwegs sind.
Kurzer hat geschrieben: Eine emotionsarme Diskussion, die mit Respekt gegenüber allen Teilnehmern geführt wird, ist definitiv entspannter und wird schneller Früchte tragen, als eine Diskussion die emotionsgeladen ist und persönliche Angriffe enthält.
Korrekt, aber ich weisse nochmals darauf hin, dass ein Nutzer (DarkDragon), der mit expliziten Hinweis, dass er polarisieren möchte, in eine Diskussion einsteigt, wahrscheinlich gar kein Interesse an einer emotionsarmen Diskussion hat. Polarisieren und emotionsarm sind IMHO unvereinbar.
Kurzer hat geschrieben: Das zu erreichen benötigt allerdings ein gewisses Maß an Disziplin, den Willen seine eigenen Emotionen zurückzustellen sowie die Fähigkeit sich selbst zu reflektieren (also auch einschätzen zu können, wie das, was man da gerade von sich gibt, von den anderen Teilnehmern ggf. aufgenommen werden könnte.)
Ja, aber auch hier nochmal der Hinweis, dass dies keine einseitige Geschichte war.
Kurzer hat geschrieben: Und ja, das bedeutet in der Regel Aufwand. Aufwand in der Form, dass man an sich selbst arbeiten muss, falls man diese Fähigkeit noch nicht entwickelt haben sollte. Aber wir sind ja hier im Internet. Da kann man sich recht gut hinter der Anonymität und der physischen Nichterreichbarkeit (z.B. für die Faust seines Gegenübers ;-) ) verstecken. Klar, dass es dann nicht ganz so wichtig ist seinem Gesprächspartner ein gewisses Mass an Respekt angedeihen zu lassen.
Ja, man sollte die Leute mit Respekt behandeln. Trotzdem liest sich manches, das du da geschrieben hast eher, als würdest du Tipps für ne Partnerbörse geben. In einem normalen Forum, in dem sich normale Leute unterhalten, muss es auch mal gestattet sein, sich frei nach Schnauze zu unterhalten.
Kurzer hat geschrieben: Ich bin ja sonst nicht so redselig, aber ganz ehrlich... hier war es mir ein Bedürfnis etwas dazu zu schreiben. Möglicherweise denkt sonst noch jemand, dass der oben beschriebene Umgang mit bestimmten Diskussionsteilnehmern von allen Usern als völlig ok eingestuft wird.
Wird es nicht.
Siehst du. Und so wie es dir ein Bedürfnis war, das hier los zu werden, war es mir ein Bedürfnis, aufzuzeigen, dass die Fehler auch nicht nur von einer Seite begangen wurden.
Benutzeravatar
GlassJoe
Beiträge: 108
Registriert: 11.06.2017 20:25
Computerausstattung: 2 x AMD Phenom II x4 945,2x Dell Latitude X300, Dell Latitude D410, Hp Compaq NC4400

Re: Linux gar nicht so flexibel

Beitrag von GlassJoe »

mk-soft hat geschrieben:
*Aber leider neigt ja PB unter Linux dazu, bei völlig logischen, einfachen Code, der unter Windoof perfekt geht, daß Programm (Screenshot Tool, 4MB Ram Verbrauch unter Windows, 37 unter Debian mit xfce4, gtk2) einfreezen zu lassen, und nicht mal eine Debug Meldung raus zu hauen was los ist !

So das mann 2 Stunden den Code anstarrt was denn Bitte an dem Code denn mann seit ca 8 Jahren benutzt das Problem ist !
Beim Programmieren mit Standart Befehlen von Purebasic muss man trotzdem auf das unterschiedlicher verhalten von den OS beachten.
Was unter Windows durch seine Message-System ohne Probleme funktioniert, geht bei Linux und Mac überhaupt nicht und kann zum Absturz führen.

Wichtig
Niemals Gadgets aus Threads erstellen oder ändern. Also PostEvent verwenden oder mal nach dem Modul ThreadToGUI suchen.

Gibt bestimmt noch mehr hinweise dazu...
Danke für den Tip :) Aber leider kann es nicht daran liegen.

Alles was ich mache ist folgendes.

Code: Alles auswählen

  Procedure WatchForClipBoardImage(bla)
    
    supervise_run=1
    
    Repeat
      If stop_supervise
        Break
      EndIf
      Delay(5)
      CreateScreenShot()  
    ForEver
    
    supervise_run=0 
    
  EndProcedure
Sobald stop_supervise auf 1 ist, gibt es ein Break (unter Windoof geht delay(5) unter xfce hab ich bei Werten unter 50 heftige gtk Feldermeldungen) und dann friert das Programm komplett ein, das Fenster reagiert auf gar nichts mehr (ausser verschieben) es gibt auch keinerlei Debugger Rückgabe egal wo ich ein Debug xy setze.

Die Funktion heist nur CreateScreenShot() es wird nicht wirklich gleich einer erstellt, nur wenn im Clipboard auch Bildaten sind, und da sind keine, es freezed trotzdem ein, sobald stop_supervice gleich 1 ist.

Ich finde das sehr schade, grade das Coden unter Linux ist mir sehr wichtig, aber ich komme ums verrecken nicht drauf wo das Problem ist, vor allem weil weder der interne noch der externe Debugger irgendein Replie raushauen.

@Kurzer

Alter Schwede, bist du Anwalt ? :lol: du kannst dich echt heftig artikulieren :allright: die Punkte die du aufgezählt hast, warum CodeBurg, Darkdragon provoziert hat, und wie du es geschrieben hast, sind eines Top Anwalts würdig :lol:

@all

Hier ging es ja voll ab seit ich etwas inaktiv war, dachte schon das alle auf mich XP User ohne AV & Updates losgehen :lol: bin positiv überrascht :) Ein Kompliment an alle hier !

In den paar deutschen Foren die noch nicht tot sind (ich treibe mich seit 13 Jahren in Foren rum, und habe den Untergang von ganzen Szenen und riesen Foren (z.B p2pworld) miterlebt, und dabei viele langjährige gute Bekannte verloren) heutzutage fehlt oft der Biss !

Es gibt kaum noch Foren wo es mal etwas abgeht, weil irgendwie nur noch die alteingesessenen Leute übrig sind (der Rest sind 1-3 Posts per Year User) die sich schon so lange kennen, daß sie gar nicht mehr richtig miteinander diskutieren und sich auch bisschen fetzen, mann kennt sich halt schon so lang ! Und niemand will das Risiko eingehen das ein alteingessener Member die Schnauze voll hat und sich verzieht, also ist mann immer ganz nett zueinander, auch wenn mann etwas anders sieht.

Aber das nimmt den Foren auch sehr die Luft aus den Segeln, es sind ja Diskussions Foren :)

Jedenfalls find ich es cool das es hier ein Thema gab, bei dem es um was anderes als das Coden ging, und mehrere Leute ihren Senf dazu gegeben haben, Dank allgemeinem Interesse am Thema........sowas geht sonst nur mit Fussball & Boxen :lol: oder Skandal Themen wie Bundestrojaner.

Was natürlich nicht sein muss, ist das es zu Verwarnungen kommt, Leute irgendwie Schaden nehmen usw

Nehmt den Thread Bitte nicht zu ernst, mann muss nicht ewig kontern & Posts ewig zerflücken & zitieren, unbedingt das Letzte Wort haben wollen, irgendwann kann mann auch einfach schreiben.

"Is mir zu anstrengend auf deine zig Behauptungen noch zu antworten :p zu kontern ! ich könnte, aber ich will lieber coden/entspannen/schach spielen etc"
https://www.geek.com/tech/a-commodore-6 ... s-1672510/
٩(̾●̮̮̃̾•̃̾)۶ __̴ı̴̴̡̡̡ ̡͌l̡̡̡ ̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ ̡͌l̡̡̡̡.___٩(- ̮̮̃-̃)۶
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Linux gar nicht so flexibel

Beitrag von Kurzer »

@CodeBurg: Du hast in deinem letzten Beitrag oben recht viel geschrieben und bist auf viele Punkte meines Posts eingegangen. Insofern tut es mir um die Energie, die du da reingesteckt hast, schon ein wenig leid, denn ich hatte nicht vor auf Details einzugehen oder mich einer immer tiefer greifenden Diskussion einzubringen. Dafür kenne ich die beteiligten Personen und die von dir erwähnten anderen Umstände bzgl. deren Verhalten und Äußerungen in anderen Foren nicht.

Ich habe einfach nur geschrieben was mir im Moment des Lesens dieser Diskussion durch den Kopf (und gegen den Strich) gegangen ist (quasi ein "Affekt-post" ;-) ). Und ich habe damit auch nicht explizit dich oder eine andere einzelne Person gemeint, sondern habe bewusst die Formulierung "andere User" gewählt, da ich den Eindruck hatte, dass mehrere User im Bezug auf einen anderen User ziemlich gleicher Meinung sind und das auch gemeinsam auf die von mir beschriebene Weise -sagen wir mal- "zelebriert" haben.

Mir ist bewusst, dass ich in mancherlei Beziehung komisch bin und viele Dinge anders bewerte als manch anderer. Gerade im Bereich des sozialen Miteinanders, aber nach mittlerweile fast 50 Jahren auf diesem Planeten kann ich damit relativ gut umgehen -> indem ich öfter meine Klappe halte. Nur hin und wieder geht sie aber dann doch mal auf. ;-)

In diesem Sinne würde ich ungern weiter auf Details zu der Thematik eingehen geschweige denn diese ausdiskutieren wollen. Letztendlich hat jeder seine eigene Meinung dazu und kann diese im angemessenen Rahmen auch vertreten. Mir persönlich wäre eine Fortführung ehrlich gesagt auch zu anstrengend, denn als "social-monk", wie ich einer bin, sitzt man an jedem post wirklich lange *) bis alles in die richtigen Worte gegossen und feinpoliert ist. Da ist dieser zwanghafte Anspruch alles so zu formulieren, dass es möglichst genau dem entspricht was in Kopf, Gefühl und Geist gerade abgeht. :-)

@GlassJoe: Anwalt? :-) Nein, Gottseidank bin ich kein Anwalt. Dieses Paragraphenzeug ist nichts für mich. Das würde mich fertig machen.
Ich mache das so, weil ich es selbst gern mag, wenn ein Beitrag bzw. eine Konversation so gestaltet ist, dass man sich einfach entspannt auf den sachlichen Inhalt konzertieren kann. Im echten Leben ist das allerdings eher hinderlich, weil viele Leute einfach nur "schnacken" wollen wie es Ihnen gerade in den Sinn kommt (und das ist dann meist ohne Struktur und ohne Reflektion). Oder noch schlimmer... smalltalk. :-) Da wird es für mich richtig anstrengend. Eine Unterhaltung ohne definiertes Ziel, einfach nur des Redens willen? *grusel* :freak:

*) Nur als Beispiel: Das Erstellen dieses Posts dauerte ca. 50 Minuten und mind. 9 Vorschau-reviews
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Linux gar nicht so flexibel

Beitrag von Nino »

Kurzer hat geschrieben:@CodeBurg: Du hast in deinem letzten Beitrag oben recht viel geschrieben und bist auf viele Punkte meines Posts eingegangen. Insofern tut es mir um die Energie, die du da reingesteckt hast, schon ein wenig leid, denn ich hatte nicht vor auf Details einzugehen oder mich einer immer tiefer greifenden Diskussion einzubringen.
Vielleicht hat CodeBurg auch keine immer tiefer greifenden Diskussion beabsichtigt? Ich weiß es nicht.
Jedenfalls hat er seine Sicht der Dinge geschildert, so dass nun "beide Seiten der Medaille" recht ausführlich dargestellt wurden. Und das ist gut so. :-)
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Linux gar nicht so flexibel

Beitrag von ccode_new »

GlassJoe hat geschrieben:mk-soft hat geschrieben:
Zitat:
*Aber leider neigt ja PB unter Linux dazu, bei völlig logischen, einfachen Code, der unter Windoof perfekt geht, daß Programm (Screenshot Tool, 4MB Ram Verbrauch unter Windows, 37 unter Debian mit xfce4, gtk2) einfreezen zu lassen, und nicht mal eine Debug Meldung raus zu hauen was los ist !

So das mann 2 Stunden den Code anstarrt was denn Bitte an dem Code denn mann seit ca 8 Jahren benutzt das Problem ist !


Beim Programmieren mit Standart Befehlen von Purebasic muss man trotzdem auf das unterschiedlicher verhalten von den OS beachten.
Was unter Windows durch seine Message-System ohne Probleme funktioniert, geht bei Linux und Mac überhaupt nicht und kann zum Absturz führen.

Wichtig
Niemals Gadgets aus Threads erstellen oder ändern. Also PostEvent verwenden oder mal nach dem Modul ThreadToGUI suchen.

Gibt bestimmt noch mehr hinweise dazu...


Danke für den Tip :) Aber leider kann es nicht daran liegen.

Alles was ich mache ist folgendes.

Code:
Procedure WatchForClipBoardImage(bla)

supervise_run=1

Repeat
If stop_supervise
Break
EndIf
Delay(5)
CreateScreenShot()
ForEver

supervise_run=0

EndProcedure
Das ist leider so ein leidiges Thema mit Gtk.
Threads contra Gtk !!!

PostEvent() bringt auch nur in wenigen Fällen Abhilfe.

Gerade z.B. beim Einsatz von Datenbankbefehlen (z.B. MySQL) kannst du den Zugriff auf die GUI vergessen.
Was mich auch noch stört sind die immer noch gravierenden Unterschiede zwischen der Verwendung von GTK3 (Standard) und GTK2 (Subsystem).
Es gibt immer noch gravierende Darstellungs- und Funktionsfehler die mit Gtk2-Subsytem nicht auftreten.

-> Ein Screenshot kannst du unter Linux sehr gut z.B. mit diesem Beispiel machen.

http://www.chabba.de/Linux/Misc/Screens ... eenGdk3.pb
Zuletzt geändert von ccode_new am 25.06.2017 11:55, insgesamt 1-mal geändert.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Linux gar nicht so flexibel

Beitrag von mk-soft »

Normaler weise Zicken die Leute erst hier rum wenn es Winter wird... :mrgreen: Kommt manchmal vor :wink:

Zum Theme unterschiede zu zur Programmierung von Window und Linux, sowie Mac

Wie es aus sieht verwendetes Du Threads für die Verarbeitung.
Im Gegensatz zu Windows, wo viele Sachen von sich aus Threadsafe sind, Muss bei Linux und MacOS darauf geachtet werden das vieles nur im Mainscope verarbeitet werden kann.

Aber ohne den Code der Probleme mach können wird keine weiteren aussagen machen.

P.S. Was mach CreateScreenShot()

P.S.2 Verwendet meisten gtk2
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
GlassJoe
Beiträge: 108
Registriert: 11.06.2017 20:25
Computerausstattung: 2 x AMD Phenom II x4 945,2x Dell Latitude X300, Dell Latitude D410, Hp Compaq NC4400

Re: Linux gar nicht so flexibel

Beitrag von GlassJoe »

ccode_new hat geschrieben:
GlassJoe hat geschrieben:mk-soft hat geschrieben:
Zitat:
*Aber leider neigt ja PB unter Linux dazu, bei völlig logischen, einfachen Code, der unter Windoof perfekt geht, daß Programm (Screenshot Tool, 4MB Ram Verbrauch unter Windows, 37 unter Debian mit xfce4, gtk2) einfreezen zu lassen, und nicht mal eine Debug Meldung raus zu hauen was los ist !

So das mann 2 Stunden den Code anstarrt was denn Bitte an dem Code denn mann seit ca 8 Jahren benutzt das Problem ist !


Beim Programmieren mit Standart Befehlen von Purebasic muss man trotzdem auf das unterschiedlicher verhalten von den OS beachten.
Was unter Windows durch seine Message-System ohne Probleme funktioniert, geht bei Linux und Mac überhaupt nicht und kann zum Absturz führen.

Wichtig
Niemals Gadgets aus Threads erstellen oder ändern. Also PostEvent verwenden oder mal nach dem Modul ThreadToGUI suchen.

Gibt bestimmt noch mehr hinweise dazu...


Danke für den Tip :) Aber leider kann es nicht daran liegen.

Alles was ich mache ist folgendes.

Code:
Procedure WatchForClipBoardImage(bla)

supervise_run=1

Repeat
If stop_supervise
Break
EndIf
Delay(5)
CreateScreenShot()
ForEver

supervise_run=0

EndProcedure
Das ist leider so ein leidiges Thema mit Gtk.
Threads contra Gtk !!!

PostEvent() bringt auch nur in wenigen Fällen Abhilfe.

Gerade z.B. beim Einsatz von Datenbankbefehlen (z.B. MySQL) kannst du den Zugriff auf die GUI vergessen.
Was mich auch noch stört sind die immer noch gravierenden Unterschiede zwischen der Verwendung von GTK3 (Standard) und GTK2 (Subsystem).
Es gibt immer noch gravierende Darstellungs- und Funktionsfehler die mit Gtk2-Subsytem nicht auftreten.

-> Ein Screenshot kannst du unter Linux sehr gut z.B. mit diesem Beispiel machen.

http://www.chabba.de/Linux/Misc/Screens ... eenGdk3.pb
Also versteh ich das richtig das Coden unter Linux somit ohne Threads ablaufen muss, wenn ich etwas mit einer Gui benutze ?

Also ich hab einfach den

Ergebnis = GetClipboardImage(#Image [, Tiefe])

Befehl benutzt, und jetzt auf API Code (den ich nicht verstehe :mrgreen: ) umzusteigen, will ich
mir eigentlich ersparen.

Trotzdem Danke für den Code :)

@mk-soft

Ja es gibt einen einzigen Thread, der von mir oben gezeigte, der nur in 50-200ms Abständen (50 gehen auch, aber ich wollte sicher gehen, und hab auf'm Lappy 200 genommen)

die CreateScreenShot() Prozedure aufruft, und die besteht nur aus

Code: Alles auswählen

  Procedure CreateScreenShot()
    
    pic = GetClipboardImage(#PB_Any)
    
    If IsImage(pic) 
      ..
      ....
    EndIf
  EndProcedure
Es wird auch nichts innerhalb vom Thread das Gadget verändert, die Anwendung hat auch keine Menüs.

Und im Hauptprogramm passiert folgendes wenn ich auf die Checkbox Clicke, um den SuperVisor :lol:
auszuschalten.

Code: Alles auswählen

      If EventGadget = #AUTO
        If GetGadgetState(#AUTO)
          stop_supervise=0
          CreateThread(@WatchForClipBoardImage(),0) : SetGadgetState(#AUTO,1)
        Else
          SetGadgetState(#AUTO,0) : stop_supervise=1 
        EndIf 
      EndIf
Ich verstehe es wirklich nicht ! Ich kann absolute nicht nachvollziehen wo der Fehler liegt, ich hab ja nicht auf ein Gadget in einem Thread zugegriffen, noch habe ich irgendwas anderes gemacht als eine Globale Variable (stop_supervise) zu verändern, um den SuperVisor aus der Schleife austretten zu lassen.

Die Variable kommt an 4 Stellen im Code vor (keine Ahnung wie das der normale PB Editor einem anzeigt, in japbe markiere ich eine und drücke F1)

Einmal ganz oben natürlich

Global stop_supervise

Dann einmal in der Thread Prozedure

WatchForClipBoardImage()

und 2 x im Main Code bei

If EventGadget = #AUTO



Was vielleicht noch wichtig ist, daß Tool arbeitet wenn es minimiert wird im Tray.
https://www.geek.com/tech/a-commodore-6 ... s-1672510/
٩(̾●̮̮̃̾•̃̾)۶ __̴ı̴̴̡̡̡ ̡͌l̡̡̡ ̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ ̡͌l̡̡̡̡.___٩(- ̮̮̃-̃)۶
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Linux gar nicht so flexibel

Beitrag von ccode_new »

Hi GlassJoe!!!

So wie du das machst ist das schwer kritisch !!!

Repeat
Delay(5)
ForEver

Oh je!!!!

Hier mal eine "Thread umgehende" - Methode:

Code: Alles auswählen

Global CWin

Global btnGetClip, cvDrawImage

Global klick.b = #False, run.b = #False

#CImage = 0

UsePNGImageDecoder()
UseJPEGImageDecoder()
UseJPEG2000ImageDecoder()

Procedure CreateScreenshot()
  If run = #False
    run = #True
    GetClipboardImage(#CImage)
    If IsImage(#CImage)
      If StartDrawing(CanvasOutput(cvDrawImage))
        ResizeImage(#CImage, GadgetWidth(cvDrawImage), GadgetHeight(cvDrawImage))
        DrawImage(ImageID(#CImage), 0, 0, GadgetWidth(cvDrawImage), GadgetHeight(cvDrawImage))
        StopDrawing()
      EndIf
      FreeImage(#CImage)
      ClearClipboard() ;SEHR WICHTIG !!!
    EndIf 
    run = #False
  EndIf
EndProcedure

Procedure OpenCWin(x = 0, y = 0, width = 430, height = 310)
  CWin = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
  btnGetClip = ButtonGadget(#PB_Any, 10, 10, 410, 40, "Starte Clipboard-Image-Suche") ;Startet einen bring mir das evtl. Image -Thread
  cvDrawImage = CanvasGadget(#PB_Any, 10, 60, 410, 240)
  AddWindowTimer(CWin, 123, 500)
EndProcedure

Procedure CWin_Events(event)
  Select event
    Case #PB_Event_Timer
      If EventTimer() = 123
        If klick = #True
          CreateScreenshot()
        EndIf
      EndIf
    Case #PB_Event_CloseWindow
      RemoveWindowTimer(CWin, 123)
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
        Case btnGetClip
          If klick = #False
            ;stop_supervise = 0
            klick = #True
            SetGadgetText(btnGetClip, "Beende Clipboard-Image-Suche")
          ElseIf klick = #True
            ;stop_supervise = 1
            klick = #False
            SetGadgetText(btnGetClip, "Starte Clipboard-Image-Suche")
          EndIf
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

OpenCWin()
ClearClipboard()
Repeat
  ev = WindowEvent()
Until Not CWin_Events(ev)
-> ClearClipboard() ;SEHR WICHTIG !!!
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten