Seite 71 von 258
Re: Jammer-Thread
Verfasst: 12.06.2012, 14:02
von antisteo
Krishty hat geschrieben:ich bin etwa bei dem Punkt, wo der Compiler global Symbole zusammensuchen kann
Damit hast du schon mal eine gute Wahl getroffen.
gwscript arbeitet auch mit globalen Definititonen, die erst mal zusammengesucht werden. Damit hast du erst mal Super-Highlevel aspektorientierte Programmierung.
Jetzt fehlt nur noch ein Paradigma, wie man die Low-Level-Sachen mit Zero Overhead hinbekommt.
[btw man könnte die Sprach-Sachen mal in nen extra Thread stecken]
Re: Jammer-Thread
Verfasst: 12.06.2012, 19:52
von Krishty
BeRsErKeR hat geschrieben:Verblüffenderweise sieht deine Syntax für Funktionen fast exakt wie mein Entwurf aus.
Ich habe lange versucht, eine einheitliche Deklarationssyntax sowohl für Daten als auch für Funktionen hinzukriegen, aber bisher mit wenig Erfolg.
BeRsErKeR hat geschrieben:Was mir auch wichtig ist, ist Nebenwirkungen so gut es geht zu minimieren. Bei mir sollen alle Funktionen von Haus aus "pur" sein, man kann also weder I/O durchführen, noch globale Variablen ändern.
Meinst du mit
von Haus aus müssen pur sein oder
sind pur so lange nicht anders angegeben? Keine Ahnung, ob Erstes so eine gute Idee ist – für eine Skriptsprache mit Sicherheit; für eine vollwertige Programmiersprache wäre es mir schon wieder zu utopisch. Pascal hat eine Unterscheidung zwischen Funktionen (Parameter zu Rückgabewert; letzterer
muss vom Aufrufer behandelt werden) und Prozeduren (Wirkung; Rückgabewert optional); das wäre für mich ein brauchbarer Kompromiss.
BeRsErKeR hat geschrieben:hab mich da teilweise an D orientiert, genau wie bei der Syntax von Arrays
Array-Syntax ist ein interessantes Thema … ich hasse C(++)-Arrays. Im Augenblick löse ich in meinen C++-Projekten alles über
range-Strukturen, die auf Anfang und Ende von Feldern zeigen, und das fließt wie Butter – abgesehen von dem winzigen Detail, dass der Compiler es nicht ausreichend optimiert, weil es keine Wurzel in der Sprache selber hat; und dass mir bei String-Literalen immer die automatisch angehängte Null zum Verhängnis wird (for teh luv of gawd,
WHY!). Ich muss mir auch unbedingt nochmal Gos Slices ansehen, falls ich irgendwann mal Zeit habe. Und dann wären da noch Strings, die ja auch ein Thema für sich sind (Rein in die Sprache oder nicht? Nur Literale? Nullterminiert oder nicht? …).
BeRsErKeR hat geschrieben:globale Variablen / statische Member soll es höchstwahrscheinlich gar nicht erst geben (allerdings globale Funktionen und eventuell statische Methoden, wobei mit global dann modul-lokal bzw. namespace-lokal gemeint ist).
Gegen globale Variablen spricht für mich nur der eine Grund, dass sie nicht mit dem Konzept von Threads und Fibers vereinbar sind. Ich würde
definitiv statische (vorberechnete) globale Variablen für sowas wie Nachschlagtabellen erlauben; wohl auch einige bei Programmstart initialisierte Instanzen (mit automatisch korrekter Initialisierungsreihenfolge, da ich die Abhängigkeiten sowieso zur Typauflösen ausklamüsern muss), weil man sich ohne einfach zu weit von der Praxis entfernen würde. (Beispiel Spiele-Sandbox: Wo nähmst du freien Speicher manueller Lebenszeit her, falls du weder I/O aufrufen, noch einen globalen Zeiger anlegen könntest? Du müsstest alles auf esoterische, wahrscheinlich halb rekursive Gebilde umschrauben … das würde es für den Compiler-Entwickler vereinfachen, aber sicher nicht für den Programmierer.) Aber bei mit dem Prozess initialisierten Variablen würden dann wieder Leute alles aushebeln, indem sie ihr ganzes Programm in einen K’tor packen (MFC).
BeRsErKeR hat geschrieben:Bei deinem Beispiel fällt mir das Schlüsselwort instance auf. Ich vermute du unterscheidest dadurch zwischen Stack und Heap?
Nein; das benötige ich für Template-Metaprogrammierung. Genau genommen benötigt C++ es (in Form von
typename vor den Namen abhängiger Typen in Templates), um beim Parsen zwischen den Fällen
a * i; // Multiplikation; a: int; i: int
a * i; // Zeigerdeklaration; a: typedef für int; i: Name des Zeigers
unterscheiden zu können. Ich brauche es
immer, weil ich ja keine Deklarationen habe und der Compiler sonst beim Parsen dieser Stelle nicht wissen könnte, um welchen der Fälle es sich handelt. Mit einer ausreichend klaren Deklarationssyntax wäre das am Ende sicher obsolet; aber um es mir selber zu vereinfachen, habe ich es erstmal dringelassen. Was die Unterscheidung zwischen Stack / Heap angeht (sehr unglückliche Begriffe; nennen wir sie
automatische und
manuelle Speicherverwaltung), würde ich nur eine Placement-Syntax bauen (d.h., Byte-Array aus beliebiger Quelle zu Objekt initialisieren) und die vor ein paar Tagen erwähnte Array-Initialisierung irgendwie reinboxen.
Re: Jammer-Thread
Verfasst: 12.06.2012, 22:45
von Jonathan
Ich versuche mittlerweile seit Wochen das Equalizer-Framework unter Windows zu kompilieren. Es geht einfach nicht. Heute habe ich schon 2 Bugs in den CMake-Skripten gefunden, aus denen offensichtlich wurde, das sich keine Sau für die Windowsversion interessiert, jedenfalls frag ich mich, wie man sie in diesem Zustand benutzen sollte.
Achja: Es gibt auch eine vorkompilierte Version, allerdings stürzt der Installer jedesmal ab, weil die Umgebungsvariable PATH zu lang ist, als das er sie verändern kann (äh, wie kann das denn sein), was ich allerdings im Fenster vorher explizit ausgeschaltet habe. Supi.
Oh, und VisualStudio hängt sich immer beim kompilieren auf und macht dann gar nichts mehr. Vielleicht hat das was mit diesen Fehlermeldungen zu tun, die offensichtlich daher kommen, dass er keine Leerzeichen in Pfaden mag (und das im Jahr 2012, das darf doch wohl nicht wahr sein).
Jetzt bin ich immerhin soweit, dass ich Linkerfehler habe, die ich nicht verstehe. CMake generiert mir da eine Projektmappe mit geschätzten 200 Unterprojekten, davon eine Lib in der eine Funktion ist, die eine andere benutzt, dann aber einfach nicht da ist. Ich habe mir diese Lib im kompilierten Zustand mal mit dumpbin angeschaut und die fraglichen Funktionen stehen tatsächlich nicht drin. Keine Ahnung, was ich da jetzt noch machen soll, vielleicht liegt es einfach daran, dass es die aktuelle Version aus dem git-Repo ist.
In so Momenten weiß man einfach, dass C++ auch nur Mist ist.
Re: Jammer-Thread
Verfasst: 13.06.2012, 01:22
von BeRsErKeR
Krishty hat geschrieben:BeRsErKeR hat geschrieben:Verblüffenderweise sieht deine Syntax für Funktionen fast exakt wie mein Entwurf aus.
Ich habe lange versucht, eine einheitliche Deklarationssyntax sowohl für Daten als auch für Funktionen hinzukriegen, aber bisher mit wenig Erfolg.
Ja ich bin auch noch am Frickeln.
Krishty hat geschrieben:BeRsErKeR hat geschrieben:Was mir auch wichtig ist, ist Nebenwirkungen so gut es geht zu minimieren. Bei mir sollen alle Funktionen von Haus aus "pur" sein, man kann also weder I/O durchführen, noch globale Variablen ändern.
Meinst du mit
von Haus aus müssen pur sein oder
sind pur so lange nicht anders angegeben? Keine Ahnung, ob Erstes so eine gute Idee ist – für eine Skriptsprache mit Sicherheit; für eine vollwertige Programmiersprache wäre es mir schon wieder zu utopisch. Pascal hat eine Unterscheidung zwischen Funktionen (Parameter zu Rückgabewert; letzterer
muss vom Aufrufer behandelt werden) und Prozeduren (Wirkung; Rückgabewert optional); das wäre für mich ein brauchbarer Kompromiss.
Zur Zeit unterscheide ich zwischen Funktion und Prozedur. Da Prozeduren ohne Nebenwirkungen sinnfrei sind, müssen diese eigentlich nicht weiter mit Schlüsselwörtern beschmückt werden. Ich nutze aber zusätzlich noch ein Schlüsselwort um Funktionen als
non-pure bzw. in dem konkreten Fall als
Funktionen, die I/O durchführen zu kennzeichnen. Problematisch ist halt, wie du sagst, dass man dann eigentlich nicht wirklich I/O nutzen kann, weil pure Funktionen keine I/O-Funktionen aufrufen können. Und das ganze ab der main-Funktion trennen ist wohl auch nicht sehr sinnvoll oder in jedem Fall machbar. Und prinzipiell benötigt man auch nicht-pure Funktionen, falls man z.B. was aus ner Datei lesen will. Naja mit dem Thema werde ich mich noch beschäftigen.
Krishty hat geschrieben:BeRsErKeR hat geschrieben:hab mich da teilweise an D orientiert, genau wie bei der Syntax von Arrays
Array-Syntax ist ein interessantes Thema … ich hasse C(++)-Arrays. Im Augenblick löse ich in meinen C++-Projekten alles über
range-Strukturen, die auf Anfang und Ende von Feldern zeigen, und das fließt wie Butter – abgesehen von dem winzigen Detail, dass der Compiler es nicht ausreichend optimiert, weil es keine Wurzel in der Sprache selber hat; und dass mir bei String-Literalen immer die automatisch angehängte Null zum Verhängnis wird (for teh luv of gawd,
WHY!). Ich muss mir auch unbedingt nochmal Gos Slices ansehen, falls ich irgendwann mal Zeit habe. Und dann wären da noch Strings, die ja auch ein Thema für sich sind (Rein in die Sprache oder nicht? Nur Literale? Nullterminiert oder nicht? …).
Klingt interessant. Kannst du mir da mal ein Beispiel zeigen? Zwecks
range-Strukturen.
Krishty hat geschrieben:BeRsErKeR hat geschrieben:Bei deinem Beispiel fällt mir das Schlüsselwort instance auf. Ich vermute du unterscheidest dadurch zwischen Stack und Heap?
Nein; das benötige ich für Template-Metaprogrammierung. Genau genommen benötigt C++ es (in Form von
typename vor den Namen abhängiger Typen in Templates), um beim Parsen zwischen den Fällen
a * i; // Multiplikation; a: int; i: int
a * i; // Zeigerdeklaration; a: typedef für int; i: Name des Zeigers
unterscheiden zu können. Ich brauche es
immer, weil ich ja keine Deklarationen habe und der Compiler sonst beim Parsen dieser Stelle nicht wissen könnte, um welchen der Fälle es sich handelt. Mit einer ausreichend klaren Deklarationssyntax wäre das am Ende sicher obsolet; aber um es mir selber zu vereinfachen, habe ich es erstmal dringelassen. Was die Unterscheidung zwischen Stack / Heap angeht (sehr unglückliche Begriffe; nennen wir sie
automatische und
manuelle Speicherverwaltung), würde ich nur eine Placement-Syntax bauen (d.h., Byte-Array aus beliebiger Quelle zu Objekt initialisieren) und die vor ein paar Tagen erwähnte Array-Initialisierung irgendwie reinboxen.
Ich möchte es bei mir recht strikt und eindeutig halten. Ich überlege z.B. die Ausdrücke für Typen und Variablen soweit einzuschränken, dass sie in jedem Fall unterscheidbar sind und auch die Syntax für Pointer wird eher in Richtung von
pointer<a> i; gehen, als
a * i; - halt um solche Sachen zu vermeiden. Aber auch da muss ich mir noch was Anständiges überlegen.
typedef/alias plane ich auch gänzlich wegzulassen oder wenigstens nur sehr begrenzt anzubieten. Ich bin eher für ein bischen mehr Schreibaufwand als für möglichst kurze Typnamen. Gleiches gilt für
using namespace und so Sachen. Es führt letztlich eher zu Verwirrungen und kann auch zu solchen Uneindeutigkeiten führen, die du angesprochen hast.
Re: Jammer-Thread
Verfasst: 13.06.2012, 13:55
von CodingCat
HLSL Packing ...
Code: Alles auswählen
struct Bounds { float3 Min, Max; };
RWStructuredBuffer<Bounds> BoundsUAV;
struct BoundsConstantLayout
{
float4 MinM;
float2 ax;
};
cbuffer BoundsConstants
{
BoundsConstantLayout BoundsConstants;
}
// ...
float3 min = BoundsConstants.MinM.xyz;
float3 max = float3(BoundsConstants.MinM.w, BoundsConstants.ax);
Das Beispiel ist natürlich vereinfacht. Will man einen
RWStructuredBuffer einfach auf gleiches Layout mit einem Constant Buffer bringen, reicht manuelles Padding:
Code: Alles auswählen
struct Bounds { float3 Min; float _1; float3 Max; float _2; };
RWStructuredBuffer<Bounds> BoundsUAV;
cbuffer BoundsConstants
{
Bounds BoundsConstants;
}
// ...
float3 min = BoundsConstants.Min;
float3 max = BoundsConstants.Max;
Re: Jammer-Thread
Verfasst: 13.06.2012, 22:51
von TDK
Was zum Jammern ist:
Wenn ich mir hier die Postings im Thema durchlese, frage ich mich mittlerweile, ob ich hier in einem Programmiersprachen-Guru-Forum gelandet bin, oder in einem Forum für Spieleprogrammierer :|
Re: Jammer-Thread
Verfasst: 13.06.2012, 22:55
von Andre
TDK hat geschrieben:Was zum Jammern ist:
Wenn ich mir hier die Postings im Thema durchlese, frage ich mich mittlerweile, ob ich hier in einem Programmiersprachen-Guru-Forum gelandet bin, oder in einem Forum für Spieleprogrammierer :|
Das kann ich nur bestätigen :lol:
Re: Jammer-Thread
Verfasst: 14.06.2012, 00:05
von j.klugmann
Da programmiere ich seit Tagen an meiner Rendering-Monade herum und wunder mich warum beim Weiterreichen in die App-Monade nichts angezeigt wird. Da fehlte mir einfach im Bind-Operator der Flush-Aufruf...
*ggrrr*
Re: Jammer-Thread
Verfasst: 15.06.2012, 11:32
von CodingCat
Re: Jammer-Thread
Verfasst: 15.06.2012, 12:29
von dot
Ich kann dich beruhigen: Mit OpenCL würd's vermutlich noch viel schlimmer aussehen ;)
Re: Jammer-Thread
Verfasst: 15.06.2012, 18:49
von Chromanoid
Ich kann mir gut vorstellen, dass das was du (CodingCat) machst nichts damit zu tun hat, aber was haltet ihr eigentlich von Sachen wie C++ AMP
http://msdn.microsoft.com/en-us/library ... .110).aspx oder Aparapi
http://code.google.com/p/aparapi/? Schon mal benutzt?
Re: Jammer-Thread
Verfasst: 15.06.2012, 18:55
von dot
Ich seh' in C++ AMP sehr viel Potential. Verwendet hab ich's aber noch nicht...
Re: Jammer-Thread
Verfasst: 15.06.2012, 20:19
von eXile
Ich habe es versucht zu verwenden (unter Visual Studio 2012 im Consumer Preview von Windows 8 mitsamt Parallel Nsight Debugging), bis ich plötzlich gemerkt habe, dass meine VM ja gar keine richtige Graphikkarte emuliert. :|
Re: Jammer-Thread
Verfasst: 15.06.2012, 21:41
von eXile
Wie Karlsruhe ist nicht mehr exzellent?
(Alleine dass Saarbrücken sich über das MPI was schnorren muss, zeigt, dass irgendwie in Deutschland was schiefläuft.)
Re: Jammer-Thread
Verfasst: 15.06.2012, 22:07
von CodingCat
Nein nein, das hat schon seine Richtigkeit, dank Java sind wir hier leider im Laufe des letzten Jahres kollektiv verblödet. (Ich habe gerade mehrere 100 Zeilen fremden Mathecode von abstrusem
x.Cross(y) auf
cross(x, y) gebracht, auch deshalb ist ADL ein Segen; hat aber nichts mit der Uni zu tun ...).
In other news: Entweder ich habe seit Tagen einen ultrafetten Bug in meinem Code, oder
Ray Space Hierarchies sind nicht mal ansatzweise zu gebrauchen?!? :-/
Re: Jammer-Thread
Verfasst: 16.06.2012, 12:49
von .357er-Argument
CodingCat hat geschrieben:Nein nein, das hat schon seine Richtigkeit, dank Java sind wir hier leider im Laufe des letzten Jahres kollektiv verblödet. (Ich habe gerade mehrere 100 Zeilen fremden Mathecode von abstrusem x.Cross(y) auf cross(x, y) gebracht, auch deshalb ist ADL ein Segen; hat aber nichts mit der Uni zu tun ...).
Du meinst hier Umstellung von Member-Methode auf freie Funktion? Ist das schneller oder geht das "nur" auf die Diskussion von neulich zurück, die Vorteile von freien Funktionen aufzeigte?
Re: Jammer-Thread
Verfasst: 16.06.2012, 13:02
von CodingCat
Ja, in Bezug auf Performance spielt das in C++ prinzipiell keine Rolle. Wobei Krishty ja neulich feststellte, dass mit freien Funktionen bisweilen sogar besserer Code erzeugt wird.
In diesem Fall habe ich jedoch einfach fremden Mathecode nach HLSL portiert, ich hatte also ohnehin keine Wahl. ;)
Re: Jammer-Thread
Verfasst: 16.06.2012, 14:53
von Artificial Mind
Bei uns gibt es am Lehrstuhl ein Framework welches den %-operator für das Kreuzprodukt und den |-operator für das Skalarprodukt überladen hat. Mir wird jedesmal fast schlecht. Zum Glück muss ich damit nur selten arbeiten.
Re: Jammer-Thread
Verfasst: 16.06.2012, 17:22
von Jonathan
Wenn man sich im Bulletforum registreiren will, muss man gleich 2 Anti-Spam Fragen beantworten:
What was George Orwell's famous book (a number)?
What is the dot product of (4, -1, 0) and (5, 3, 20) times the number of toes on my right foot?
Gut, die erste konnte ich noch googeln, aber für die zweite muss man irgendwie schon ne Menge vorwissen haben, oder es wird kniffelig. Achja, als beide beantwortet waren, wurde meine EMailadresse kommentarlos abgelehnt, obwohl die überall sonst funktioniert. Die sind doch total bescheuert...
@Artificial Mind: Jaaa, wir haben hier auch immer so bescheuerte Frameworks. Eine Vectorklasse, die CPosition heißt und neben den 3 Koordinaten auch noch Werte für Farbe und Texturkoordinate speichern kann, die man im Konstruktor übergeben kann, für die es aber keine Zugriffsfunktionen gibt. Das ist nicht nur schlechtes Design, das ist ganz und gar unsinnig.
Re: Jammer-Thread
Verfasst: 16.06.2012, 18:23
von eXile
Jonathan hat geschrieben:Gut, die erste konnte ich noch googeln, aber für die zweite muss man irgendwie schon ne Menge vorwissen haben, oder es wird kniffelig.
Das ist mal sowas von gar nichts im Vergleich zu dem
hier (ein paar Mal aktualisieren).
Re: Jammer-Thread
Verfasst: 16.06.2012, 19:49
von Krishty
Scanner sind scheiße. Mein Canon benötigt 16 Tastendrücke, bis ich beim Scannen bin, und dann drei für jede weitere Seite.
Nun scanne ich alte Familienalben, die in ihrer Qualität stark schwanken. Idealerweise würde ich alle in ein Programm füttern, das Mustererkennung und eine Fouriertransformation durchführt und damit automatisch bestimmt
- wie die schief eingeklebten Fotos rotiert werden müssen um wieder gerade zu stehen;
- auf welche Größe sie danach zugeschnitten werden müssen; und
- auf welche Größe sie skaliert werden müssen damit die digitale Auflösung der analogen Auflösung angemessen ist.
Aber nein:
- die Auflösung ist viel zu gering (600 DPI – da konnte mein fünfzehn Jahre alter ScanJet mehr, bevor es keine Treiber mehr gab);
- da sind überall Farbsäume an den Kanten;
- da ist irgendein adaptiver Tiefpassfilter am Werk, so dass die Qualität monotoner Flächen schwankt, wenn sie von Details unterbrochen werden;
- bei den JPEG-Dateien kriege ich dauernd Warnungen, dass sie voller Padding-Bytes sind.
Darum darf ich das jetzt von Hand machen. Ich will den Scheiß nicht in eine PDF flushen;
gib mir einfach die verdammten Bildinformationen!
Re: Jammer-Thread
Verfasst: 16.06.2012, 22:22
von eXile
Ich betreibe meinen alten Scanner (Umax Astra 4500, Maximalauflösung 1200 dpi) in einer Windows-XP-VM, weil es wie bei dir keine Treiber mehr gibt. Er hat mittlerweile einige tote Sensoren, so dass es (nur im Farb-Modus!) vertikale Streifen über das Bild gibt. Als Scan-Software benutze ich übrigens den Windows-XP-Scan-Assistenten (mit Alt+Z, Enter, Enter kann man das nächste Bild scannen), zur Batch-Verarbeitung bei vielen, gleichartigen Scans benutze ich ImageMagick.
Außerdem willst du die Rotation des Bildes via Fouriertransformation berechnen? Das glaube ich nicht; eher Kantenerkennung, dann Hough-Transformation, und dann einen RANSAC-Algorithmus. :)
Ich hatte vor knapp einen Monat mal schnell eine obskure russische Scan-Software ausprobiert, die ziemlich gut automatisiert hat. Hätte ich deinen Post damals antizipiert, würde ich jetzt nicht seit einer halben Stunde danach suchen; ich melde mich wieder, wenn ich sie wiedergefunden habe.
Re: Jammer-Thread
Verfasst: 16.06.2012, 22:32
von Krishty
eXile hat geschrieben:Außerdem willst du die Rotation des Bildes via Fouriertransformation berechnen? Das glaube ich nicht; eher Kantenerkennung, dann Hough-Transformation, und dann einen RANSAC-Algorithmus. :)
Nein, die optimale Auflösung.
eXile hat geschrieben:Ich hatte vor knapp einen Monat mal schnell eine obskure russische Scan-Software ausprobiert, die ziemlich gut automatisiert hat. Hätte ich deinen Post damals antizipiert, würde ich jetzt nicht seit einer halben Stunde danach suchen; ich melde mich wieder, wenn ich sie wiedergefunden habe.
Macht nichts. Habe eh nur noch eine halbe Stunde bevor ich den Rest auf unbestimmte Zeit verschieben muss.
Re: Jammer-Thread
Verfasst: 16.06.2012, 22:43
von Stephan Theisgen
Ihr wisst schon warum das so ist?
Re: Jammer-Thread
Verfasst: 16.06.2012, 22:54
von Jonathan
Äh, was? Hört sich irgendwie nach einem schlechten Scherz an. Nur leider wird es gerade dadurch plausibel.
Re: Jammer-Thread
Verfasst: 16.06.2012, 23:00
von Alexander Kornrumpf
Ne, finde ich absolut unplausibel. Die GEMA verwertet doch Musikrechte. Wer kopiert denn Musik mit einem Scanner? Und was die Kopie von Noten angeht: Dafür braucht man doch nicht besonders viele DPI.
Re: Jammer-Thread
Verfasst: 16.06.2012, 23:09
von Stephan Theisgen
Ok, ich habe versucht eine harte Quelle dafür zu finden, aber das ist nicht so einfach... Ich suche mal wieter... Die GEMA verwaltet aber nicht nur Musik-Rechte. Sondern schützt die Rechte von Künstlern. Aber es geht hier soviel ich weiß hauptsächlich um das Kopieren von Büchern. Auf jedem Radio, Scanner, Laufwerk etc. sind GEMA-Gebühren im Preis mit drin. Deswegen ist es zum Beispiel legal vom Radio Musik mit nem Kasetten-Rekorder aufzunehmen.
siehe hier:
https://www.google.de/url?sa=t&rct=j&q= ... eXGVVWpA9g
Das wurde auch für CD-Brenner für Spielekopien versucht oder auf dem Internetanschluss, dann wären alle Tauschbörsen legal gewesen. Das hat sich leider(?) aber nicht durchgesetzt.
Re: Jammer-Thread
Verfasst: 16.06.2012, 23:13
von Stephan Theisgen
Also wenn ich hier jetzt nichts Handfestes finde, dann lösche ich den Text wieder. Aber so viel ich weiß, war das schon früher mit Kopierern so... Ich versuche was zu finden... Aber Scanner ließen sich damit früher zumindest wirklich beschleunigen.
Re: Jammer-Thread
Verfasst: 16.06.2012, 23:15
von Krishty
Re: Jammer-Thread
Verfasst: 16.06.2012, 23:17
von Alexander Kornrumpf
Es gibt zwar tatsächlich eine Geräte- und Leermedienabgabe, aber trotzdem ist die GEMA ein Verwerter von Musikrechten. Ich trau es denen tatsächlich zu über das Argument mit den Noten auch auf Scanner Einfluss zu nehmen, aber die DPI Einschränkung macht mMn einfach auch in diesem Kontext keinen Sinn.