Nanosekunden aus Megahertzen

"Karlheinz Böhme" schrieb im Newsbeitrag news:enhi3b$i1a$03$ snipped-for-privacy@news.t-online.com...

Aber Karlheinz, man merkt, das es dir noch sehr an Erfahrung fehlt, denn Open Source Freeware ist nicht inhouse, sondern zirkuiert frei. Und da geht erfahrungsgemaess sehr wohl etwas verloren, was nicht unverlierbar drangetackert ist. Du wirst das auch noch lernen, wenn du irgendwann mal mit so was zu tun hast. Nur solltest du bei dermassen mangelnder Erfahrung nicht anderen ihr Vorgehen vorwerfen.

Jupp, sie sind 20 Jahre alt, gut erkannt. Heute gibt es WHILE und Co., damals oblag es dem Programmierer, diese Strukturen einzuhalten. Strukturiert zu programmieren wird durch die Schluesselwoerter erleichert, man kann aber auch ohne sie problemlos ebenso strukturiert programmieren. Karlheinz, auf den Inhalt kommt es an, nenn mir vergleichbare Programme die eleganter programmiert wurden, ich denk, du tust dich schwer damit, egal in welcher Sprache.

_MAX_PATH wurde von Microsoft eingefuehrt und von anderen (die z.B. das inkompatible MAX_PATH hatten) uebernommen, als es einen Grund dafuer gab, naemlich NT3.51. Das war nach der Zeit.

^ Seh ich als Fehler an, geht deutlich besser, haengt aber vom Editor und Zeichensatz ab.

for( i=0 ; i In diesem Zusammenhang Herrn Wirth zu nennen, finde ich schon fast

Es ist objektiv. Deine Kritik war nicht objektiv. Denk nochmal drueber nach. Es spielt keine Rolle, ob ein Wert i oder Index heisst. Erst an Stellen, an denen eine semantische Zuordnung moeglich ist, max_value oder so, ist ein laengerer Name sinnvoll. Du urteilst pauschal, und damit falsch.

Vielleicht nichts, aber du gestehst Anderen nicht zu, das sie wissen, wann sie sich in der Gesamtsumme Arbeit ersparen und wann nicht. Vorher ahnte ich es, aber nach 10 Jahren HelpDeco hab ich sogar den Beweis, das die gewaehlte Form die in der Summe arbeitsleichteste war. Meine Erfahrung ist Praxis und durch die Realitaet bewiesen, deine Kritik Theorie, und falsch theoretisiert dazu.

Tja Karlheinz, wer klug war, hat sich damals, als sie zirkulierten, windows_2000_source_code.zip und windows_nt_4_source_code.zip eingesackt, gibt's aber vermutlich heute noch. Aber wer ernsthaft programmiert hat, kannte den Source eh schon, weil er beim Debuggen staendig in den Kernel gelaufen ist, um die Luecken der Dokumentation aufzufuellen. So ernsthaft hast du offenkundig nicht programmiert, vielleicht war Windows auch nicht dein Metier.

Tric macht optisch und problemorientiert keinen schlechten Eindruck, aber selbst wenn ich mir denke, das nur ein Bruchteil praesentiert wird, frag ich mich, wo die anderen 180000 Zeilen der 200000 Zeilen verbraucht worden sind. 20000 mag es 'wert' sein. Doch ein eher kleines Projekt nach unseren Massstaeben, wir schreiben normalerweise IDE mit Editor, Versions- verwaltung, Compiler, Interpreter, Debugger, Profiler und Runtimes fuer dutzende Plattformen und ODBC Datenbankinterface und interne eigenen Datenbank (nach Kundenwunsch, weil selbst bei 10000 Datensaetzen drastisch schneller als kommerzielle ODBC). Das ist schon eine andere Liga.

Also Karlheinz, Ball immer flach halten.

--
Manfred Winterhoff
Reply to
MaWin
Loading thread data ...

Komisch, tausende OSS-Projekte bekommen das gebacken.

Aber du bist natürlich der Uberprogrammer. Alle anderen haben mangelnde Erfahrung. Oder wie?

Auch ich finde an HELPDECO z.B. auf Anhieb Dinge, die mindestens suboptimal gelöst sind.

Zum Beispiel 'fread' auf Strukturen, '#pragma pack(1)'. Damit ist das Programm nutzlos auf Architekturen != x86, also gerade auf denen, wo es am nützlichsten wäre (wenn ich auf einem x86 bin, kann ich meistens auch winhelp.exe starten, um die Hilfedatei anzusehen. Auf 'ner Sun nicht.)

Der Mangel an Kommentaren. for(mask=0x80000000UL;mask;mask>>=1) { if(hashhi>divhi||hashhi==divhi&&hashlo>=divlo) { result|=mask; hashhi-=divhi; if(divlo>hashlo) hashhi--; hashlo-=divlo; } divlo>>=1; if(divhi&1) divlo|=0x80000000UL; divhi>>=1; } Tja, was ist das nun? Es könnte eine Bignum-Division sein. Könnte aber auch was ganz anderes sein. (Und jemand, der das nie in Assembler implementiert hat, wird es auch nicht als Division erkennen.)

'const' und 'static' scheinen gänzlich unbekannt.

Sehr amüsant finde ich auch die Routine 'PrintMVBWindow'. fprintf(hpj,"%s",SWin->Name); putc('=',hpj); fprintf(hpj,"\"%s\"",SWin->Caption); putc(',',hpj); putc('(',hpj); fprintf(hpj,"%d",SWin->X); putc(',',hpj); ...

Das Ding mag ja nützlich sein. Aber als Referenz für einen guten Programmierstil taucht das definitiv nicht. Jedenfalls nicht im Jahre 2007.

Über Einrückung und fehlende Leerzeichen beschwer ich mich ja gar nicht. Das lässt sich automatisch umbauen.

"inkompatibel"? Bloß, dass Microsoft in der MSDN behauptet, '_MAX_PATH', '_splitpath' usw. seien "ISO-konform" macht das noch lange nicht wahr. Dort behaupten sie auch, es hieße 'void main'.

Der POSIX-Name ist ansonsten 'PATH_MAX'. Aber Richtige[tm] Programme kommen sowieso ohne solche künstlichen Limits aus.

Wer *ernsthaft* programmiert, sollte es lieber vermeiden, Dinge zu tun, die ihn gegenüber Herren mit Juradiplom angreifbar machen würden. Es dürfte schwer werden, die zu überzeugen, nicht gespickt zu haben, wenn das Ding ausgepackt auf deiner Platte liegt. Ich begnüge mich daher solange mit dem WINE-Quelltext. Wenn ich es denn mal brauche. MSDN enthält auch erstaunlich viel Nützliches. Aber eigentlich reicht mir für

99% sogar die win32.hlp.

Stefan

Reply to
Stefan Reuther

"Stefan Reuther" schrieb im Newsbeitrag news: snipped-for-privacy@stefan.msgid.phost.de...

Stefan, du bist noch nicht so lange im Geschaeft sondern gerade mit der Uni fertig. Glaub den Leuten, die das schon jahrelang hinter sich haben. Ich hab schon oft genug die Erfahrung machen muessen, das von dem, was ein Autor von seinem Projekt in die Oeffentlichkeit gibt, bei mir nur ein Teil ankam. Und umgekehrt, das Empfaenger meiner Dinge nachfragten, wo denn der Rest vom Paket sei, weil im Shareware- und sonstigen Kuddelmuddel was verlorenging. Und daraus hab ich gelernt. Wenn du nicht lernen magst, schade.

Wer so programmiert, das es 'schon oft genug gut geht' und sich nicht bemueht, auch unwahrscheinliche Eventualitaeten vorherzusehen und abzufangen, schreibt schlechte Software. Du wirst deine Einstellung aendern muessen, wenn du mal gute Software schreiben willst.

HelpDeco hat auf Rechnern, auf denen kein Hilfecompiler wie HC31 verfuegbar ist, eigentlich keinen Anwendungszweck. Das Leute z.B. die Hilfe zu einem Windows-Programm auf einer Sun in RTF drucken, wuerd ich als durch die Brust ins Auge bezeichnen. Schau noch mal nach, wozu HelpDeco dient...

Immerhin, du hast das Programm von Anfang bis Ende durchgeguckt und nur 2 Stellen kritisiert. Damit kann ich leben.

Tja, dennoch muss man als Anwender da durch.

Du bist offenkundig schon praeventiv eingeschuechtert. Nur das Uebernehmen von wesentlichen Teilen vom Code eines anderen Programms ist hier urheberrechtlich verboten und wettbewerbswidrig. Algorithmen sind in Europa gluecklicherweise noch frei zugaenglich.

--
Manfred Winterhoff
Reply to
MaWin

|> > Mein Erstsemester-Prof hat sogar mal |> > gemeint, dass im die Studis viel lieber sind, die noch nie was programmiert |> > haben... |> |> Kein Wunder, er wird selber nie was ordentliches programmiert haben, |> und deren Loesungen nicht verstehen.

Naja, Eickel war/ist Compilerbauer und steht auf Grammatiken, ganz besondes attributierte ;-) Er hat mit F.L. Bauer am ersten Compiler für ALGOL68 mitentwickelt. So ganz ahnungslos ist er also nicht...

--
         Georg Acher, acher@in.tum.de
         http://www.lrr.in.tum.de/~acher
 Click to see the full signature
Reply to
Georg Acher

On Thu, 4 Jan 2007 23:09:34 +0100, "MaWin" wrote: [ vorheriges Posting ] # Tja Karlheinz, wer klug war, hat sich damals, als sie zirkulierten, # windows_2000_source_code.zip und windows_nt_4_source_code.zip eingesackt, # gibt's aber vermutlich heute noch.

Dass Du Dich da mal nicht täuscht: Du hast am Inhalt der o.g. ZIP-Dateien schlicht keinerlei Nutzungsrecht, schon der Besitz einer Raubkopie ist Dir verboten.

Und das reicht ggf. für Massnahmen nach _UWG_, wenn es um den Wettbewerb geht. Abmahnen kann Dich bei einem quasi öffentlichen Eingeständnis jeder Deiner _Wettbewerber_, denn Du könntest Dir durch die Nutzung der o.g. Dateien einen illegalen Wettbewerbsvorteil verschaffen. Da reichen schon viel kleinere Sünden für eine Abmahnung.

Aussagen wie "ich hab' nicht explizit geschrieben, dass ich die besitze", helfen da angesichts des Kontexts und der eindeutig- zweideutigen Formulierung im Zweifelsfall wenig, auch wenn ich Dir natürlich keinesfalls unterstellen will, dass Du tatsächlich Raubkopien besitzt. Aber Juristen _könnten_ Dein Posting als Anscheinsbeweis werten, und dann siehst Du alt aus. Im Zivilrecht - und darum geht es bei Abmahnungen - reicht der, dann darfst Du erstmal das Gegenteil beweisen.

Abmahnen könnte Dich natürlich auch der rechtmässige Eigentümer des Quellcodes, die Firma Microsoft, in dem Fall dann nach UrhG. Für einen Hausbesuch der Trachtenvereinigung Grün-Weiß, die Dir dann das Stück "Zeig' her Deine Rechner" aufführt, reicht Dein Posting womöglich auch bereits aus, im Zweifel frage den Advokaten Deines geringsten Misstrauens.

Falls Du es nicht glaubst: Ich selber habe schon gegen Unternehmen, die gemeint haben, sie könnten sich an meinem Autorouter vergreifen, blitzschnell eine einstweilige Verfügung bekommen. Das hat genau zwei Tage gedauert, dann war Schicht im Schacht. Und die haben ganz brav alles gelöscht.

In jedem Fall ist es sehr unklug, das, was Du zu den ZIP Dateien geschrieben hast, so öffentlich zu schreiben. Damit bringst Du Dich aber in eine Reihe mit klangvollen Namen wie Breuer, Schremp & Co, deren unbedachte Äußerungen (Kirch bzw. "Übernahme") schon als satte D&O Schadensfälle in die Geschichte eingegangen sind. Willkommen im Club der Da^H^HManager ...

Würdest Du Dir die Algorithmen hingegen aus einem Buch aneignen, oder aus frei verfügbaren Open Source Quellen, dann bestünden selbstredend keine wettbewerbsrechtlichen Bedenken.

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
Reply to
Oliver Bartels

In article , =?ISO-8859-1?Q?Karlheinz_B=F6hme?= writes: |> Welches der beiden folgenden |> Beispiele (aus HELPDEC1.C) ist wohl leichter zu lesen und verstehen: |> |> for(i=0;i |> for(i = 0; i < len-1 && src &&src [i]; i++) |> dest [i] = src [i];

Im Zweifelsfall das erstere.

Mach

for(i=0; i Dass Microsoft die Sourcen |> von Windows veroeffentlicht haette, habe ich gar nicht mitbekommen; |> aber Du wirst uns sicher die URL der offiziellen MS download Site |> bekannt geben.

Dafür wirst Du entweder den Esel bemühen oder es bei MS ins entsprechende Programm schaffen müssen... *Offiziell* ist der Source nicht für jedermann veröffentlicht worden.

Rainer

Reply to
Rainer Buchty

Ich finde es albern, einfach auf der Basis "ich bin länger da als du" zu diskutieren. Hätte ich gestern mein erstes Programm geschrieben, würde diese Ausrede zählen. Das war aber 1989.

Ich habe tonnenweise Quelltext in den Händen gehabt. Das, was ich hobbymäßig pflege, sind wohl inzwischen um die 300000 Zeilen in Summe. Die vielen tausend Zeilen, die ich sonst noch so, privat und beruflich, gelesen und produziert habe, zähle ich nicht. Aber ich maße mir an, beurteilen zu können, was ein wartungsfreundliches Programm ist und was nicht. Und da kommt einiges vor dem HelpDeco. Zugegebenermaßen aber auch eine Menge dahinter.

Im Büro erwartet mich z.B. ein Quellcode ähnlichen Alters, den ich gerade in mühevoller Kleinarbeit mit 'static' und 'const' ausstatte, globale Variablen eliminiere usw., um Zusammenhänge der Unterroutinen explizit zu machen, das Ding in Module zerlegen zu können und einfach sinnvoll damit arbeiten zu können. Das gleiche würde ich tun, wenn ich mit HelpDeco wesentlich mehr als es zu compilieren und zu nutzen wöllte.

Das ist bei weitem nicht der Regelfall. Und die überwiegende Mehrheit bekommt es hin.

Ansonsten kritisiere ich niemanden für Changelogs im Kommentar. Nur die Ausrede finde ich etwas weit hergeholt.

Wer aber unsinnige Fälle an den absurdesten Stellen berücksichtigt, schreibt auch keinen guten Code. Stichwort "cargo cult programming".

Soweit ich das verstanden habe, holt der unter anderem das .rtf raus, aus welchem das .hlp erstellt wurde. Das .rtf kann man mit OpenOffice auf einer Sun ansehen (meines Wissens kann das sogar der Editor vom CDE).

Natürlich wäre es durch die Brust ins Auge. Wenn du aber nur eine Sun hast, und die Informationen aus diesem .hlp unbedingt brauchst, siehst du das etwas anders. Und wirst dann genauso auf den fluchen, der unportablen C-Code geschrieben hat, wie ich auf den geflucht hab, der ein "unrpm" ausgerechnet basierend auf einer "librpm" geschrieben hat, welche, als ich das Ding auf einer Sun unter Solaris benötigte, im ganzen Netz nur als "librpm-X.Y.Z.rpm" zu finden war.

Nur weise mal nach, dass du genau das nicht getan hast, wenn dummerweise deine Routine zum Zeichnen von Text genau die gleiche Struktur aufweist wie die Implementation von DrawText *und* auf deiner Festplatte eine c:\nt4\user32\drawtext.cpp (oder so) liegt. "Es hat sich so ergeben und ist so am elegantesten" begreift ein nicht-Techie nicht (und wenn doch, hat MS genug Ressourcen, weitere nicht-Techies aufzufahren, bis ein passender dabei ist). Mit einem "euren Quelltext hab ich nie gehabt" spielst du den Ball gekonnt zurück.

Stefan

Reply to
Stefan Reuther

In article , "MaWin" writes: |> Kein Wunder, er wird selber nie was ordentliches programmiert haben, |> und deren Loesungen nicht verstehen. |> So was habe ich mehr als 1 mal erlebt, bei Jung-Studenten aus dem |> Bekanntenkreis, besonders schlimm Wolfenbuettel und Ilmenau.

Was mich seinerzeit im ersten Semester etwas entsetzt hat, war der Hang zur rekursiven Programmierung... Damals waren die 8-Bitter ja doch noch im Heimbereich anzutreffen -- dennoch stieß mein Kommentar "jaaaa, und Stack haben wir im Überfluß oder wie?" nur auf verschärftes Stirnrunzeln.

Es mag ja sein, daß ein Fibonacci oder eine Fakultätsfunktion rekursiv besonders elegant wirkt, aber sinnvoll war's weder damals noch heute, sofern man es nicht gerade mit einem reinen Kellerautomaten zu tun hat.

Was dann die nächste Übung war: Entrekursivierung.

Rainer

Reply to
Rainer Buchty

"Oliver Bartels" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

gewerbliches

Raub ist eine definierte Straftat die hier nicht vorlag.

Njet, der Besitz (einer ausschnittsweisen Kopie) auch von urheberrechtlich geschuetzten Werken zu privaten, nicht gewerblichen Zwecken ist in Europa gluecklicherweise erlaubt.

Gut das du darauf zu sprechen kommst, denn alles, was der Uninformierte durch Urheberrecht, Patente und Lizenzen zu erreichen meint, ist in Deutschland schon in perfekter Form durch das Wettbewerbsrecht abgedeckt.

Europaeische Rechtsprechung braucht keine Uebernahme amerikanischer Gesetze, denn die Dinge sind hier schon besser geregelt, als dort.

Und wir sollten uns hueten, die amerikanischen Gesetze zu uebernehmen, so wie sie uns Zypreis hintenrum unterschieben will, denn man sieht z.B. die Folgen an Microsoft und Windows und dem SCO/Linux Rechtsstreit:

Kein Investor wagt es, ein Konkurrenzprodukt zu Windows auf die Beine zu stellen, obwohl klar erkennbar ist, das sich damit viel Geld verdienen laesst (einfach die Bilanzen von Microsoft ansehen, so ein Produkt ist praktisch ein Selbstlaeufer mit immensem Gewinn) und der Markt nicht gerade uebersaettigt ist (ausser Linux, einem zuerst in Europa entstandenen Produkt, kein Konkurrent sichtbar), einfach weil das Risiko TROTZ der immensen Gewinnaussichten (immerhin der Chance reichster Mann der Welt zu werden), zu hoch ist, mit jahrelangen Prozessen ueberzogen zu werden (siehe SCO) und Dank einer einstweiligen Verfuegung das Ding derweil nicht vermarkten zu duerfen (dann ist es nach Klageende veraltet), selbst wenn ueberhaupt keine Patente oder Urheberrechte verletzt waren (siehe SCO), was jeder Firma das Genick bricht, die nicht ueber ebenso viel Geld verfuegt, wie Microsoft. Und wer hat das schon? Und selbst wenn er es hat, wer riskiert das schon?

Waere es ein freier funktionierender Markt, muesste schon alleine von den Gesetzen der Marktwirtschaft hier ein Konkurrent zu Windows entstehen. Schon heute ist aber der Markt (durch die US-Gesetze) blockiert, der einzige der es wagen koennte waer ein chinesischer Staatsbetrieb.

Dass das Austauschen des Copyrights im Windows-Source-Code und der Verkauf unter eigenem Namen unmoralisch waere, deckt schon unser Wettbewerbsrecht ab. So soll es sein, so ist es in Europa derzeit, so ist es gut. Ebenso waere die 'Uebernahme wesentlicher Teile' illegal, und das ist auch gut, denn es verhindert nicht die Uebernahme unwesentlicher Teile, wie es z.B. in der Musik gang und gaebe ist, und derzeit als Problem SCO/Linux die Suche nach einzelnen zufaellig gleichen Programmtextzeilen zeigt.

Don't panic (aber stoppt Zypries).

--
Manfred Winterhoff
Reply to
MaWin

"Stefan Reuther" schrieb im Newsbeitrag news: snipped-for-privacy@stefan.msgid.phost.de...

Muesste man sicher auch nicht tun, wenn du schon dieselben Erfahrungen gemacht haettest, wie ich.

Spielt keine Rolle, es reicht wenn es ein mal vorkommt und durch die gewaehlte Methode ein mal verhindert wird. Dann hat es seinen Zweck erfuellt. Ob es die beste Loesung ist, sei dahingestellt.

Falscher Ansatz. Waerst du ein verantwortungsvoller Programmierer, wuerdest du sagen: "Warum steht der da" und dir die Antwort anhoren "weil er erfahrungsgemaess als RELEASE.TXT verloren geht". Dann lautet deine Antwort nicht "interessiert mich nicht", sondern man macht Vorschlaege wie "reicht denn nicht ein ZIP zum zusammentackern" und bekommt die Antwort "erfahrungs- gemaess nicht", dann geht es weiter "tu's in sourceforge", u.s.w..

Man sucht also zum Problem alternative Loesungen, und ignoriert nicht das Problem "weil's einem anders besser gefaellt".

So lange der Fall eintreten kann, MUSS er behandelt werden.

Eben. Was hilft die Hilfe zu einem Programm was dort eh nicht laeuft. Nichtsdestotrotz haben Leute das Programm spaeter auf BSD etc. portiert, uebrigens grausam fehlerhaft.

Sicher. Reicht aber erfahrungsgemaess nicht aus.

--
Manfred Winterhoff
Reply to
MaWin

Da bist Du bei Computerprogrammen ganz klar auf dem Holzweg und in Deinem Fall gleich doppelt:

UrhG §53 schränkt ein : "soweit nicht zur Vervielfältigung eine offensichtlich rechtswidrig hergestellte Vorlage verwendet wird."

Zirkulierende Dateien eines nicht öffentlichen Quellcodes sind diskussionslos eine rechtswidrig hergestellte Vorlage.

Spielt aber eh' keine Rolle, da §53 hier nicht gilt, denn für Computerprogramme gelten §69a ff. "(4) Auf Computergrogramme finden die für Sprachwerke geltenden Bestimmungen Anwendung, soweit in diesem Abschnitt nichts anderes bestimmt ist."

Es ist aber mit §69c und §69d anderes bestimmt:

"Der Rechtsinhaber hat das ausschließliche Recht, folgende Handlungen vorzunehmen oder zu gestatten: ... 3. jede Form der Verbreitung des Originals eines Computerprogramms oder von Vervielfältigungsstücken, einschließlich der Vermietung."

Erschöpfung gilt auch nur für das einzelne Vervielfältigungsstück. Bestimmungsgemäße Nutzung und Sicherungskopien sind in §69d UrhG bestimmt, das nennt sich _abschließende_Regelung_.

Du magst Dir ja Deine eigene Denkweise schaffen, lasse Dir aber sagen, dass Richter sich im Zweifelsfall an das Gesetz halten. Und eine abschließende Regelung nennt und heißt und schreibt man abschließende Regelung, weil sie die Sache abschließt und eben nicht aufweitende Regelung oder ergänzbare Regelung genannt oder geschrieben wird ...

Und die Sache ist bei Computerprogrammen gerichtlich längst dreimal geklärt, aber nicht so, wie Du meinst.

Schaust Du z.B. LG München, Urteil vom 6. 01. 2006 - 7 O 23237/05 -, oder OLG Hamburg, Urteil vom 22.02.2001 - 3 U 247/00 oder hier:

formatting link
Da wird inzwischen gerade bei wirtschaftlich bedeutsamen Programmen knallhart durchgegriffen, und natürlich ist auch ein alter Windows Source immer noch bedeutsam.

Darum gibt es für Computerprogramme auch keine "GEMA", denn es gibt eben kein Vervielfältigungsrecht zu privaten Zwecken, das zu kompensieren wäre.

Ergo: Dein Ursprungsposting ist, um es mal nett zu sagen, eher nicht besonders geschickt.

Das ist vielfach richtig, das US Rechtssystem ist nicht wirklich ein Vorbild.

Die Gründe liegen anderweitig, genauer:

In der Vielzahl der Schnittstellen, der Kompatibilität usw. Es gibt WINE, es gab OS2, nur fängt man damit nicht viel an, wenn die gewöhnliche Büromaus glaubt, der Computer sei kaputt, wenn kein Microsoft-Logo auf dem Bildschirm erscheint.

Es geht auch anders, siehe Linux in der öffentlichen Verwaltung, natürlich ist Linux ein harter Windows-Konkurrent, nur eben nicht so kompatibel.

Und ganz ehrlich: Es gibt schon diverse Oberflächengimicks bei Windows, die recht nett sind, der Linux Desktop (KDE) ist immer noch etwas hölzern. Und das zählt bei Otto Normalanwender.

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
Reply to
Oliver Bartels

"Oliver Bartels" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

Der Test ist insofern interessant, als das er Beweggruende nennt:

"Warum Urheberrecht und wer besitzt es? Die Existenz des Urheberrechts an Software ist schnell und einleuchtend begründet. Wer ein Computerprogramm schreibt bzw. schreiben läßt, muß - je nach Programm - sehr viel Aufwand betreiben. In umfangreichen Softwaresystemen steckt viel Geld, so daß es nur verständlich erscheint, wenn der Unternehmer, der dieses Geld investiert hat, das Programm lieber verkauft als verschenkt. Da das Kopieren von Software einfach ist, erscheint die Rentabilität von aufwendigen Softwareprodukten gefährdet"

denn einige der Annahmen sind so verallgemeinert das sie falsch werden

Die Voraussetzungen tun so als ob es Open Source nicht geben wuerde und uebersehen ueberhaupt den Unterschied zwischen Source und EXE.

Ausschnittsweise kopierter Source aendert an der Rentabilitaet des EXEs rein gar nichts.

Das die Novelle des Urheberrechts 2003 wohl wegen Lobbyarbeit viele einseitig zum Vorteil der Softwareproduzenten initiierte Aenderungen am eigentlich vernuenftigen Gesetz ergeben hat, ohne jeglichen Ausgleich fuer die Buerger, unter denen heute die ganze Branche leidet, wissen wir, sie werden aber auch wieder rueckgaengig gemacht, wie z.B. die Rechtsprechung in der Schweiz zeigt.

Wir muessen damit leben, das bestochene Politiker zum Schaden des Volkes agieren, und entsprechend Widerstand leisten.

--
Manfred Winterhoff
Reply to
MaWin

Hi Oliver!

Linux is O.K.

Das Problem liegt eher in der Hardware, als an der Software. Natürlich kann man hier das IBM Argument erwähnen, aber Mirkosoft ist mind. Player 2 und Linux allenfalls Player 3 :)

PC Hardware ist Schrott, klar. Warum Linux auf so einem crap-system aufbaute ist mir auch ein Rätsel. ;) Ich meine, man kann viel über Microsoft schimpfen, aber mann sollte nie die kostenpflichtige Unterlage vergessen auf denen o.g. Betriebssysteme laufen. Andererseits ist es nicht unbedingt MS, das Hardware pushed. Ältere MS-OS kommen mit wenig (gratis!??) Hardware aus. Auch neuere MS-OS gehen weit runter (z.B. XP, ~bis 94' device driver etc.) in der Hardware-Kompatibilität...

Teuer ja, aber läuft mittlerweile gar nicht so schlecht ;-) (XP)

Mit freundlichen Grüßen,

Daniel Mandic

Reply to
Daniel Mandic

[...]

Nö, der Text sagt das klar und deutlich, worum es geht: $ENTWICKLER hat deutlichen Aufwand. $NUTZER hätt' es gern günstig, sprich mit möglichst wenig Gegenleistung.

Das ist immer so, der _Interessenkonflikt_ ist letztlich bei jedem Wirtschaftsgut da, und deshalb gibt es Gesetze, um solche Konflikte zu _regeln_, und nicht einfach das Recht des Stärkeren per Keulenschlag gelten zu lassen. Und der Stärkere ist bei Software zunächst mal der $NUTZER, der, wenn keine Schutzmassnahme vorliegt, bequem kopieren kann. Daran hindern tut ihn ohne technische Schutzmassnahmen nur die Strafvorschriften des UrhG, genauso wie der Ladendieb erstmal nur per StGB an seinem üblen Tun gehindert wird. Erst dann kommt der Detektiv.

Es ist ganz simpel:

Es ist die Entscheidung von dem, der den Aufwand hatte, also von $ENTWICKLER, ob überhaupt und zu welchen Bedingungen er es abgibt. Punkt.

So ist das mit dem Sack Mehl vom Bauern und so ist das auch mit der Software.

Wenn Dir als $NUTZER die Konditionen des Bauern nicht gefallen, hast Du ebenfalls die _freie_ Wahl, Dir einen anderen Bauern mit einem anderen Mehlsack zu suchen. Du hast dieses Recht selbst dann, wenn gleichwertige Konditionen vorliegen. Du hast aber nicht das Recht, den Mehlsack von diesem Bauern zu rauben, auch wenn Du stärker bist als er oder eine größere Keule hast. Es ist _seine_ Freiheit, zu entscheiden, ob er mit Dir handeln will oder nicht (*).

Wir leben in einem freien Land, und da ist weder der $NUTZER kaufverpflichtet (das wäre nämlich die Konsequenz aus Deinen Vorstellungen, dann gibt es eine Software-GEMA mit Zwangsabgabe) noch der $ENTWICKLER abgabeverpflichtet. Und da die Kopie eine Abgabe ist, hat beim Kopieren nunmal $ENTWICKLER das Sagen.

Auch Open Source heißt nicht "darf beliebig damit machen, was ich will, wenn ich $NUTZER bin."

Sorry, ich bin ein Freund klarer Worte: Das ist in dem Zusammenhang wirklich nur "beleidigte Leberwurst".

Die Politik setzt hier völlig zu Recht ein Freiheitsprinzip um, nämlich dieses, welches auch sonst in unserer Wirtschaft herrscht, das Prinzip von Angebot und Nachfrage.

Und wie steht es so schön in der GPLv2: "Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen, die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern, auf diese Rechte zu verzichten. Aus diesen Einschränkungen folgen bestimmte Verantwortlichkeiten für Sie, wenn Sie Kopien der Software verbreiten oder sie verändern."

Besser kann man das nicht sagen.

Gruß Oliver

P.s.: (*) Und solltest Du jetzt "Monopol, Monopol!" rufen, dann lasse Dir sagen: Wir haben ein Kartellamt und andere Regulierer und zur Not Gerichte - wenn man Dir z.B. im Nachhinein die Kosten anheben will -. Auch diese Institutionen dienen der Wahrung genau der Funktion des _freien_ Marktes. So funktioniert das hierzulande, und nicht per "ich klau den Mehlsack" Selbstjustiz.

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
Reply to
Oliver Bartels

Die Regel, dass du Software nicht ohne Zustimmung des Urhebers (beim Windows-Quelltext also Microsoft) nutzen darfst, stand aber schon vorher drin. Neu ist nur das Kopierverbot einer offensichtlich rechtswidrigen Vorlage. Das macht nur *bei Software* keinen Unterschied, weil du da selbst eine definitiv nicht rechtswidrige Vorlage nicht ohne Zustimmung des Urhebers kopieren darfst. Der Unterschied OSS Closed Source ist hier einfach, dass OSS dir diese Erlaubnis pauschal gibt.

Ebenfalls schon vorher drin war die Regel, dass du zwecks Herstellung von Interoperabilität Konkurrenzprodukte debuggen darfst (->

Kerneldebugger, Disassembler für user32.dll, etc.).

Stefan

Reply to
Stefan Reuther

MaWin wrote:

Warum versuchst du mir dann eigentlich weiter unten einzureden, dass es immer absolut nutzlos sein muss, sich ein .hlp auf einer Sun anzusehen? Ich habe schon oft die Erfahrung gemacht, unter System X eine Software zu brauchen, die nur unter System Y läuft und nur dort entpackbar ist. Liegt es an mangelnder Erfahrung deinerseits?

Nein. Der gute Entwickler kann die Fälle unterscheiden, wo eine Behandlung sinnvoll ist und wo nicht.

Ich behandle nicht den Fall, dass von Win32 'MessageBox(..., MB_YESNO)' was anderes als IDYES oder IDNO zurückkommt (was soll ich auch tun, wenn da 0 = "out of memory" zurückkommt? MessageBox("out of memory")? Windows nervt bei Speichermangel ansonsten schon mit genug Popups.)

Ich behandle i.A. nicht den Fall, dass von POSIX 'close' was anderes als

0 zurückkommt. Was soll ich da auch tun? perror("close fehlgeschlagen, Datei bleibt offen")? perror("exit fehlgeschlagen, Programm läuft weiter")? Bei 'fclose' ist das schon eher sinnvoll. HelpDeco zeigt hier ein klassisches Beispiel von Cargo Cult, indem es 'fclose' wrappt und ein bisschen Fehlerbehandlung andeutet (die bestenfalls fehlende Fehler- behandlung beim Aufrufer kompensiert), den Fall, dass 'fclose' seinen Puffer nicht rausschreiben kann, aber ignoriert.

Aktueller Fall: ich habe eine named-pipe. Zu schreiben ist eine Funktion int get_the_pipe(void) die das Ding beim ersten Aufruf öffnet, den fd cached, und dann zurück- liefert. Nebenbedingungen: Aufruf von get_the_pipe() kann aus mehreren Threads erfolgen. Preemptiver prioritätsbasierter Scheduler. 'open' ist im verwendeten System quasi atomar. Grundstruktur: int get_the_pipe(void) { static int fd = -1; if (fd == -1) fd = open("the_pipe", O_RDONLY); return fd; } Nun wird dir jeder Informatik-Erstsemester erzählen, dass da doch ein Race drin ist, und ein Mutex drum muss. So hier? int get_the_pipe(void) { static int fd = -1; sem_t* sem = get_the_semaphore(); sem_wait(sem); if (fd == -1) fd = open("the_pipe", O_RDONLY); sem_post(sem); return fd; } Nur, wie sieht 'get_the_semaphore' aus? So? sem_t* get_the_semaphore(void) { static sem_t* sem = 0; if (sem == 0) sem = sem_create(); return sem; } Aber da muss doch ein Mutex drum! Der Drittsemester hat dann schon mal aktuelle Kernelquellen gelesen und was von 'cmpxchg' gehört. Er wird das Problem vielleicht so angehen: int get_the_pipe(void) { static int fd = -1; if (fd == -1) { int newfd = open("the_pipe", O_RDONLY); if (!cmpxchg(&fd, -1, newfd)) close(newfd); } return fd; } Dummerweise hat die Zielarchitektur kein 'cmpxchg'. Vielleicht was mit 'cli' und 'sti'? Oder thread-local-storage und ein fd pro Thread? Neuen Kernel-Call für diesen Fall einführen?

Meinereiner überlegt hingegen: damit obiges Race überhaupt auftritt, muss während der Handvoll Mikrosekunden zwischen 'if' und 'open' des ersten Aufrufs dieser Funktion ein Interrupt auftreten, der einen weite- ren Thread bereitmacht, der zu allem Übel auch noch ebenfalls diese Funktion aufrufen will. Und selbst, wenn dieses unwahrscheinliche Ereig- nis eintritt, ist die schlimmste Auswirkung ein einmaliges fd-Leck, was bei unserem System einem Verlust von 32 Byte Systemspeicher (von mehre- ren MB) entspricht. Deswegen treib ich doch nicht solchen Aufwand.

Tja. Da fehlt dir wohl die Erfahrung.

Vielleicht möchte jemand ein Programm, dass er nur im Quelltext vorliegen hat, zum Laufen bekommen, und in der win32.hlp nachschlagen, was denn nun die Bedeutung der vier Parameter von 'CreateSemaphore' ist. Oder er bekommt eine Datei, deren Dateiformat ausgerechnet in einer .hlp dokumentiert ist. Alles schon gehabt.

Gut, inzwischen lässt man Windows 3.1 in DOSBOX laufen.

Stefan

Reply to
Stefan Reuther

Dann gibt es noch die Leute, die schreiben würden

if (NULL != src) { i = 0; /* muesste eigentlich vor das if */ while (i < (len - 1)) { if ('\0' != src[i]) { dest[i] = src[i]; i++; } else { break; } } }

weil das viel mehr Ähnlichkeit mit dem Flußdiagramm hat. "Da steht dann wirklich, was es tun soll." oder so ähnlich. Wir hatten Algodat mit einem "pascal-ähnlichen Pseudocode" gehört, war super.

Gruß, Felix

Reply to
Felix Opatz

In article , Felix Opatz writes: |> Dann gibt es noch die Leute, die schreiben würden |> |> if (NULL != src) |> { |> i = 0; /* muesste eigentlich vor das if */ |> while (i < (len - 1))

Naja, alles persönliche Vorlieben. Ich bringe zB. in for-Schleifen nur ungern eine zweite Bedingung neben dem Schleifenzähler unter. Und den Abbruch einer while-Schleife mache ich auch lieber per Hand innen drin per if()break als in der while-Bedingung selbst. Liegt wohl daran, dass am Anfang des Schreibens selten klar ist, wann die Schleife aufhören muss ;-)

--
         Georg Acher, acher@in.tum.de
         http://www.lrr.in.tum.de/~acher
 Click to see the full signature
Reply to
Georg Acher

Axel Berger wrote: [...]

Ohne auf die Vorgeschichte einzugehen (habe eh nicht den gesamten Thread hier, weil ich mich erst kürzlich hier wieder eingeklinkt habe, in dieNG), finde ich obigen Satz doch bedenklich:

Software, die sich anders verhält, als sie soll, gibt es ja. Gerade als Fachspezi sollte man wissen, daß eine Software, die solide programmiert ist,von keiner Fehlbenutzung ausser Tritt gebracht werden kann. Wer tatsächlich meint, daß die Benutzer und nicht die Programmierer Mist gemacht haben, wenn ein Programm abstürzt, der sollte zurück in die DAU-Kiste springen. Alternativ in die Augsburger Puppenkiste, zecks Belustigung des Nachwuchses.

Daß es üblich ist, unsolide programmierte Software als Standardsoftware weitverbreitet einzusetzen macht diese auch nicht besser.

Crap bleibt Crap.

Ciao, Oliver

Reply to
Oliver Bandel

den

und

OCaml? Geil.

Woist das? An ner Uni? FH? Sach mal an.

OCaml ist IMHO die allergeilste Sprache, die mir bisher untergekommen ist. Finde ich interessant, wenn sich das an Unis/FHs nun endlich mal auch einfindet... :)

verstanden

Das

Scheme und GUI? Nette Sache; habe ich noch nicht probiert; angeblich soll ja selbst die XLib bereits ein scheme-Binding haben;mehr als dass dem so sei ist mir dies aber nicht begegnet:woman hinguckt, immer C.

Vergleiche)

zuviel

....ja, und wenn ihm die Viel-Programmierer auch nicht recht sind, sollte es einem aber zu denken geben?! ;-) Manche Profs sind ja sehr auf nur eine Sprache fixiert...

Gruß, Oliver

Reply to
Oliver Bandel

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.