Das ist gültiger Python 2.x Code, mit der winzig kleinen Ausnahme, dass hinter der Bedingung im if-Zweig ein Doppelpunkt fehlt.

So ist es korrekt:

n = input(" Zahl eingeben: ")
z = 1

for i in range(1, n, 2):
	if i == 6:
		z = z - i
	else:
		z = z * i

print("Ergebnis: " + str(z))

Bei einer Eingabe von 8 kommt 105 raus, wie an anderer Stelle schon richtig vermutet.

...zur Antwort

Genau das gleiche Problem hatte ich mal in den 90ern!

Ein Auftraggeber hatte kurz vor Abnahme bei einer Testvorführung die Nase gerümpft, weil das Programm "nur" etwas über 1MB groß war, und zu schnell startete ohne eine Ladegrafik anzuzeigen ... Nach Doppelklick auf das Icon war sofort das Programmfenster auf dem Schirm.

Ich habe dann zwei Dinge getan: Eine Fake-Ladegrafik mit einer Art Progress-Bar am unteren Rand und verschiedenen wechselnden Texten wie "Lade Schriftarten", "Lade Konfiguration", usw. ... und dann habe ich in die EXE-Datei das Firmenlogo des Auftraggebers als riesige unkomprimierte BMP-Ressource eingebaut.

Danach war der Auftraggeber zufrieden. :)

Die Leute sind teilweise schon so sehr an Bloatware gewöhnt, dass einem als ordentlicher Entwickler teilweise keine andere Möglichkeit bleibt. :)

...zur Antwort

Wordpress ist unter allen großen CMSen bekannt für seine legendären Sicherheitslöcher, die alle Nase lang auftauchen. (Auch wenn Wordpress eigentlich kein CMS im eigentlichen Sinne sein will, aber egal ...)

Ich weiß jetzt nicht, ob es erst drei, oder sogar schon fünf Tage her ist, dass die letzte große Sicherheitslücke bekannt wurde, die aktiv ausgenutzt wird, und Angreifern die volle Kontrolle über die gesamte Wordpress-Installation ermöglicht.

Allerdings sind auch die ganzen anderen nicht davor gefeit: Typo3, Joomla, Drupal, Magento, und und und ... alle haben ein paar mal pro Jahr mit massiven Problemen im Bezug Sicherheit zu kämpfen.

Deshalb ist nicht die Frage OB, sondern nur WANN deine Wordpress-Seite gehackt werden wird. Und "gehackt" heißt hier alles von "verteilt Schadsoftware an die Besucher", über "Kundendaten geklaut", bis "wird als Jumphost für ein Botnet missbraucht" ... und noch viel mehr.

Alles in allem wird der Imageverlust für dein Startup enorm sein, wenn so ziemlich jeder aktuelle Browser den Besuchern deiner Website eine fette rote Warnmeldung anzeigt, dass die Seite gefährlich ist, und nicht besucht werden kann. Es dauert in der Regel für den Seitenbetreiber mehrere Wochen, um diese Warnung wieder los zu werden.

Fazit: Bevor du dich für ein CMS, etwas Selbstgestricktes, oder was auch immer entscheidest, überlege dir GENAU, wie du mit einem Hack umgehst, und deine Kunden informierst, denn gesetzlich bist du dazu verpflichtet. Deshalb vielleicht erst mal ein paar gute Textbausteine bereit halten, damit du - wenn es dann soweit ist - nicht in Panik irgend einen Müll zusammen schreibst. :)

Nochmal um das zu verdeutlichen: Du WIRST gehackt werden, die Frage ist nur WANN!

Diesen Zeitpunkt kannst du zwar durch die Wahl einer sehr fähigen Webagentur hinauszögern, aber rechnen solltest du trotzdem immer damit.

Gerade kleine Klitschen und Einzelkämpfer verfügen leider in 99% überhaupt nicht über das Wissen, sichere Webseiten zu bauen. Die haben zwar alle schön von XSS und diversen Injections gehört, aber die allermeisten wären nicht mal Ansatzweise in der Lage Shellcode zu erkennen und zu verstehen.

hahaha ... Genau JETZT während ich den vorherigen Absatz tippe, hat mich gerade ein Kumpel angerufen, dass die Seite der NZZ gehackt wurde, und XSS-Links enthält. Das passiert also wirklich OFT wie du siehst, auch den Großen, wobei XSS noch relativ harmlos ist. :)

Also dann ... kümmere dich um eine GUTE Webagentur, wobei "zu billig" ein starkes Indiz für "schlechte Qualität" ist: You get, what you pay for! Und nur weil das Frontend schick aussieht, heißt das noch lange nicht, dass das Backend irgendwie abgesichert ist. :)

Aber egal wofür du dich entscheidest, die Wahrscheinlichkeit, dass du irgendwann gehackt werden wirst, liegt nahe der 100%!

Start-Ups erkennt man übrigens daran, dass sie grundsätzlich IT-Sicherheit unterschätzen und so ziemlich alle am Anfang Schlagzeilen dadurch machen, dass ihnen die Userdaten abhanden gekommen sind, o. ä.

Also unterschätze die Gefahr nicht, die von Wordpress und jedem anderen CMS ausgeht! Das gilt - wie gesagt - auch für Selbstgebautes! :)

...zur Antwort
Verbesserung für Java-Zufallsbuchstabengenerator?

Hallo Community!

ich habe heute mal ein kleines simples Programm geschrieben, welches solange zufällige Buchstaben (von a-z) generiert, bis ein gewünschtes Wort generiert wurde. Klappt zwar, aber ab einem 5-Stelligen Wort, dauert es unvorstellbar lange bzw. manchmal hängt sich das Programm auf. Ich werde hier mal den Quellcode rein kopieren. Bitte nicht erschrecken, ich bin ein Java Neuling und man hätte es sicherlich hübscher programmieren können ^^

Naja mein anliegen ist eigentlich nur, dass das Programm schneller ist bzw. sich bei höher-stelligen Wörtern nicht aufhängt. Vielleicht hat jemand eine Idee. Danke schon mal. LG Mcjaneek

    wort2 = jTextField3.getText();
    term = 0; 
        
        
    for (int i=1; i > term; i++)
    {
     cha = (int) (Math.random()26+1);
    if(cha == 1)         {
             jTextArea1.append("a");
             zeile = zeile + 1;
         }         
    if(cha == 2)         {        
            jTextArea1.append("b");
            zeile = zeile + 1;
         }         
    if(cha == 3)         {
             jTextArea1.append("c");
             zeile = zeile + 1;

         }     ...und so weiter bis "z"
    if (zeile == 160)         {
             jTextArea1.append("\n");
             zeile = 0;
         }      das ist nur für den Zeilenumbruch

    if(jTextArea1.getText().contains(wort2)) {
             term = i + 1;
             }
    } 
...zum Beitrag

Dein Code ist an vielen Stellen maximal ineffizient, aber selbst wenn man das mögliche Verbesserungspotential vollends ausschöpft, wirst du kaum Wörter mit mehr als einer Hand voll Buchstaben generieren können, ohne jedes Mal zwischendurch eine Kaffeepause einlegen zu müssen ... bzw. in den Urlaub zu fahren ... oder eine Weltreise anzutreten ... eine Mehrjährige. :)

Um z. B. das Wort "Cannabiskonsum" zu generieren, wird eine halbe Ewigkeit vergehen ... vor allem auf einem einzelnen Rechner. :)

Dein Programm könnte ich aus dem Stand mit gewissen Verbesserungen sicherlich um den Faktor 10000 beschleunigen, aaaaaber das wären "nur" drei Buchstaben mehr. Du wirst dich bei vielen Wörtern also immer noch totwarten. :)

...zur Antwort

Ohne root kannst du deine Mac-Adresse temporär ändern, indem du dir einen Terminal Emulatur runterlädst, dir dann mit ...

ip link

... die Macadresse anzeigen lässt, und z. B. mit ...

ip link set wlan0 address NEUE_MAC_ADRESSE

... ändern kannst.

Das hält zwar nur bis zum nächsten Reboot, aber geht dafür auch ohne root.

Du kannst dir die gängigen Terminal Emulatoren wie termux übrigens auch in anderen Appstores besorgen, und musst nicht den von Google nehmen. Du kannst dir auch die APK auf der offiziellen Seite runterladen und dann von SD-Karte oder so installieren. :)

...zur Antwort

Für Einsteiger "Der C++ Programmierer" von Ulrich Breymann in der aktuellen Auflage von Ende 2017.

Falls du Fortgeschritten bist bzw. dich schon intensiver mit anderen Programmiersprachen befasst hast: "Die C++ Programmiersprache" von Bjarne Stroustrupp. Das geht zwar mehr in die Tiefe als das Buch von Breymann, enthält aber natürlich noch nicht die aktuellsten Features der Sprache. Die nächste Auflage wird für C++20 erscheinen, ist also noch ein Weilchen hin.

Falls du Englisch kannst, ist das Tutorial auf der offiziellen Website genau das Richtige:

https://docs.python.org/3/tutorial/index.html

Das ist viel viel viel umfangreicher und m. M. n. auch deutlich besser, als alle Python-Bücher, vor allem die deutschsprachigen.

Viel Spaß beim Programmieren lernen! :)

...zur Antwort

Mit fast jeder Programmiersprache, die Bindings für grafische Oberflächen hat, kannst du irgendeine Form von "Browserfenster" in dein eigenes Fenster einbauen mit Vor-/Zurück-Buttons, Adressleiste, und Schnickschnack versehen, und den eingebetteten Browser kontrollieren.

Das geht mit ziemlich jeder bekannten großen Programmiersprache: Java, C++, C#, VB, Pascal, usw.

Zum Programmieren brauchst du eigentlich nur einen Editor und einen Compiler, aber eine IDE ist allermeistens empfehlenswerter. :)

Für die oben genannten Programmiersprachen kannst du Eclipse, NetBeans, CodeBlocks, VisualStudio, Lazarus, usw. nutzen.

Für dein Projekt sollten rudimentäre Programmierkenntnisse ausreichen, zumindest um deinen Browser grob zusammen zu klicken und mit Funktionalität auszustatten. Wenn du aber wirklich etwas Sicheres, wie den Firefox-Klon Seamonkey, bauen willst, solltest du unbedingt noch ein paar Jahre lernen! :)

...zur Antwort

Eine while-Schleife nutzt du, wenn etwas solange wiederholt werden soll, solange eine bestimmte Bedingung erfüllt ist.

Eine do-while-Schleife benutzt du am besten gar nicht, da sie ein eindeutiger Indikator für schlechten Stil und ein Entwurfsproblem ist.

...zur Antwort
Das Problem ist der "Umfang"!

Die meisten Internet-Tutorials und Videos sind vom Inhalt her so dermaßen dürftig, dass sie ausgedruckt als Buch vermutlich ein Heftchen von 30 bis 50 Seiten ergeben würden.

Dass man auf diesem kurzen Raum nicht wirklich in die Tiefe gehen und ein umfangreiches Verständnis ausbilden kann, ist selbsterklärend.

Guck dir z. B. mal die dicken Schinken "Java ist auch eine Insel" und "Die C++ Programmiersprache" an. Diese Werke haben nicht umsonst weit über 1000 Seiten!

Du kannst von keinem Tutorial erwarten, dass es den Inhalt eines mehr als 1000-seitigen Fachbuchs auf ein paar Internetseiten zusammenpresst, ohne dabei entweder didaktisch unterirdisch zu sein, oder den größten Teil des Stoffes einfach gänzlich unter den Tisch fallen zu lassen.

Bei Python ist das übrigens anders, denn hier hat das "Tutorial" in der Dokumentation der offiziellen Webseite durchaus den Umfang eines über 1000-seitigen Buches, wenn man es denn ausdrücken würde. Aber Python ist hier mit Abstand die einzige Ausnahme die mir einfällt. Verglichen kannst du dünne Python-Büchlein mit nur 200 bis 300 Seiten Umfang unter Ulk verbuchen, und - sofern du halbwegs des Englischen mächtig bist - wirst du mit dem offiziellen Tutorial auf der Python-Website sehr viel weiter kommen!

Bei Java, C++ und allen anderen mir bekannten Programmiersprachen ist das aber nicht der Fall.

Von daher: Bücher sind deshalb besser, weil sie einfach viel viel viel viel viel umfassender sind. Tutorials haben einfach den nötigen Umfang nicht! :)

Nachtrag: Es gibt natürlich auch viel mehr schlechte Lehrbücher, als gute Lehrbücher! Zu wissen, woran man gute erkennt, wird Einsteiger ohne Vorkenntnisse aber leider meist überfordern. Allerdings liest man als Profi auch nicht nur ein, oder zwei, oder 10 Fachbücher auf einem Gebiet, sondern deutlich mehr, um wirklich richtig gut zu werden.

...zur Antwort

Überlege dir doch einfach mal, was eine Liste und was ein Dictionary genau ist! Dann klärt sich deine Frage von ganz allein. :)

...zur Antwort

Dazu ist mir ein lustiger Hack eingefallen: Du könntest deine Daten nicht als *.txt, sondern als *.py im selben Verzeichnis speichern, z. B. als "foo.py", mit folgendem Inhalt:

number = 1

Und dann kannst du in deinem regulären Python-Skript das hier schreiben:

from foo import *

number += 5
print(number) # 6

Damit würdest du dir das händische Dateihandling und Parsing sparen, ist aber natürlich keine Lösung für den produktiven Einsatz! ;)

...zur Antwort

Im Schnitt ist dieser "Mythos" sicherlich zu einem gewissen Teil wahr, aber überall dort, wo von einem Durchschnittswert auf die Allgemeinheit geschlossen wird, entsteht unrecht.

Selbst wenn 99% aller Männer in einem goldenen Schloss, und nur 1% unter der Brücke leben würden, täte man unglaublich vielen Menschen Unrecht, wenn man jetzt z. B. eine Männersteuer von 1000€ pro Monat einführen würde. (Sorry, das Beispiel ist total bescheuert, aber ist ja nur ein Beispiel.)

Deshalb ist es völlig irrelevant, ob jemand Männlein, Weiblein, Schwarz, Weiß, Behindert, Gesund, Flüchtling, Einheimischer, oder irgendwas dazwischen ist: Sobald man von einem Durchschnitt auf die Allgemeinheit schließt, muss es prinzipbedingt Menschen geben, die darunter leiden werden.

Dazu fällt mir eine Vorlesung eines Professors an einer amerikanischen Uni ein, in der er beiläufig erwähnte, dass es grundsätzlich für schwarze Frauen eine bestimmte finanzielle Förderung gibt. Das Problem war, dass in diesem Kurs die Tochter eines Fabrikbesitzers saß, die zwar schwarz war, aber nur die teuersten Markenklamotten trug.

Ihr Kommilitone war ein weißer junger Mann, der mit seiner alleinerziehenden Mutter und seiner Schwester in einem Wohnwagen hauste, und sich von "Roadkill" ernährte ... also überfahrenen Tieren, der er an der Straße auflas.

Das Problem war jetzt, dass die Tochter des Fabrikbesitzers Anspruch auf nicht unerhebliche Förderung hatte, der junge Mann hingegen nicht.

Deshalb führt die Debatte "Mann vs. Frau" grundsätzlich zu überhaupt nix und man sollte eher zwischen "bedürftig und nicht bedürftig" abwägen, völlig unabhängig vom Geschlecht. Dass dabei dann am Ende an vielen Stellen vermutlich mehr Frauen als "bedürftig" gelten werden, ist ja in Ordnung, solange denen geholfen werden kann, die es wirklich nötig haben.

Gerade im Radio lief ein Interview mit einer Politikerin, die darauf hinwies, dass es momentan so wenig Frauen im Bundestag gibt, wie schon seit X Jahren nicht mehr. Das ist genau so ein Problem: Warum wird hier über Mann und Frau debattiert, und nicht über "befähigt bzw. ungeeignet"? Im Bundestag sitzen fast ausschließlich Juristen, warum wird nicht darüber diskutiert, mehr Naturwissenschaftler ins Parlament zu holen? Ob das am Ende Mann oder Frau ist, ist völlig Wurscht, solange die Befähigung stimmt.

Ich denke, die ganze Feminismus-Debatte lenkt nur vom einzig wichtigen Thema in diesem Land ab: Der immer weiter auseinander gehenden Schere zwischen Arm und Reich.

Da Zeit eine endliche Ressource ist, sollte man sich überlegen, worin man sie investiert. Meiner Meinung nach ist es Verschwendung über "Studenten vs. Studierende" zu streiten, wenn sich die Bestrittenen kaum noch ein WG-Zimmer in der Innenstadt leisten können.

Wenn ich heute jemandem erzähle, dass ich früher 50 Mark für 150qm Wohnfläche im Herzen von Berlin bezahlt habe, werde ich ungläubig angeschaut. Wir sind gefühlt alle paar Wochen umgezogen, weil es vor günstigen und guten Wohnungen nur so wimmelte. "Umziehen" war das Hobby von Studenten in den 90ern.

Aber Studenten von heute lassen sich scheinbar alles gefallen, in absolut belanglose Diskussionen hineinziehen und merken es noch nicht mal selber.

Ich halte von Feminismus gar nix ... nur von Gleichberechtigung, und zwar nicht nur von Mann / Frau, sondern von wirklich ALLEN. Wer sich mit Feminismus beschäftigt, hat zu viel lange Weile und keine wirklichen Probleme. Klingt hart, trifft aber den Nagel auf den Kopf. :)

...zur Antwort

Grundsätzlich solltest du deinen Compiler bzw. die Locale auf Englisch stellen, um vernünftige Fehlermeldungen zu erhalten, nach denen man auch erfolgreich googeln kann, aber das nur am Rande.

Dein Code ist fast richtig, aber in der Zeile, in welcher das T-Objekt instantiiert wird, musst du Folgendes schreiben:

T t { args ... };

Und dann noch eine Anmerkung: Du benutzt in deinem variadischen Template ganze Objekte, also weder Zeiger, noch irgendeine Art von Referenzen. Das ist ein Performance-Killer und vermutlich solltest du lieber auf universelle Referenzen setzen (die also sowohl RValue als auch LValue sein können!) und diese - wie in der anderen Antwort empfohlen - mithilfe von ::std::forward an den Konstruktor weiterleiten.

PS: Guck dir mal die Smartpointer und insbesondere die Hilfsfunktionen make_unique und make_shared an! ;)

PPS: An deinem Code stimmen noch andere Kleinigkeiten nicht, aber darauf kommt es jetzt nicht an. :)

...zur Antwort