kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Windows Zugriffsrechte für Prozesse

    geschrieben von toolz

    Mir stellen sich gerade zwei Fragen bezüglich Windows:

    1. Woran kann es liegen, dass ein eigenes C-Programm, gestartet durch einen Java-Prozess, ausschließlich Zugriffsrechte auf Dateien im selben Verzeichnis oder in Unterordnern des selben Verzeichnisses hat, während das Programm auf alle gesamten Dateien zugreifen darf, wenn ich es von der Konsole aus starte. Dieses Verhalten ist von mir ungewünscht und ich möchte wissen, was ich dagegen tun kann.

    2. Wie ist es möglich, bestimmten Prozessen, deren Code ich nicht kenne, genau dieses Verhalten zuzuweisen, dass solche Programme also nur auf ihre eigene Verzeichnisstruktur zugreifen dürfen und keine übergeordneten Verzeichnisse sehen können?

    Hat wirklich der aufrufende Prozess etwas mit der Rechtevergabe zu tun?
  • in: SVG als ImageMap?

    geschrieben von toolz

    Dazu musst du ganz einfach die gewünschten Inhalte in einen
    <a></a>
    -Tag packen und schon kann man ganz einfach per Klick mit der Maus darauf zugreifen.
    http://tutorials.jenkov.com/svg/a-element.html
    Es gibt dabei keine nennenswerten Unterschiede zum HTML-Verweis. Eine ImageMap ist also in SVG vollkommen unnötig.
  • in: Suche Spiel wo Computer versucht, Handlung vorherzusagen

    geschrieben von toolz

    Aus mathematischer Sicht die einzige legitime Implementation eines solchen Spieles:
    http://toolz.lima-city.de/tastenspiel/
    <html>
    <head>
    <title>Tastenspiel</title>
    <script type="text/javascript">
    var n=0,r=0;
    function w(s){
    var i=Math.random()<0.5?'A':'B';
    document.getElementById('s').innerHTML=s;
    document.getElementById('i').innerHTML=i;
    document.getElementById('p').innerHTML=100*(s===i?++r:r)/++n+'%';
    }
    </script>
    </head>
    <body>
    <div>Ich versuche Ihr Verhalten vorherzusagen.</div>
    <div>Dr&uuml;cken Sie dazu einen beliebigen Knopf: <button onclick="w('A')">A</button><button onclick="w('B')">B</button></div>
    <div>Sie haben <span id="s">nichts</span> gedr&uuml;ckt.</div>
    <div>Ich habe <span id="i">nichts</span> vorhergesagt und lag somit bei <span id="p">100%</span> aller Versuche richtig.</div>
    </body>
    </html>
    Das Verhalten des Menschen wird erst dann deterministisch, wenn man weitere Anreize zur Entscheidungsfindung anbietet. Nur äußerst mühevoll kann man aber dieses Programm insofern modifizieren, dass es über die 50% Treffersicherheit hinauskommt, indem man den Spieler austrickst.

    Hat der Benutzer keine Kenntnisse über den Quelltext des Programmes, so kann man ihn einfach täuschen:
    http://toolz.lima-city.de/tastenspiel/lernen.html
    Dieses Programm scheint nach ~10 Versuchen dein Verhalten durchschaut zu haben und erreicht schließlich Quoten im Bereich von 75%. Aber ehrlich ist das Programm dabei nicht!
  • in: Programmvorstellung: Dawn Spectator

    geschrieben von toolz

    mein-wunschname schrieb:
    2. AVG meldet:
    MalSign.Wilmo.145
    Als unbekanntes Programm aus ebenso unbekannten Quellen, welches den Bildschirminhalt ausliest und offenbar ebenso Daten über das Internet verschicken will ist der Dawn Spectator sicherlich für manche Virenscanner nicht vertrauenswürdig.
    Das heißt aber nicht, dass er irgendwelche Viren beinhalten würde. Ich empfehle weniger auf den Virenscanner, als viel mehr auf die heuristische Echtzeitanalyse der Firewall zu vertrauen.

    An VampireSilence:
    Hast du das ganz alleine programmiert?
    Was kannst du uns über die Übertragungsrate sagen?
  • in: War Thunder Panzer?

    geschrieben von toolz

    Nicht nur Panzer, sondern auch Schiffe (wobei wir bei letzteren wohl noch 2-3 Jahre warten werden müssen). Und zum Beweis:

    http://warthunder.com/de/game/about
    Die offizielle Beschreibung benennt Flugzeuge, Panzer und Schiffe als potentiell spielbar.


    http://forum.warthunder.com/index.php?/topic/93105-cbt-impressionen/
    In diesem Forum gibt es sehr viele Informationen, die hier vielleicht auch von Interesse sein könnten.



    Etwas Videomaterial über die leichte StuG.


    Die Panzer befinden sich momentan in der Closed-Beta, zu welcher nur ausgewählte Personen Zugriff (oder solche, die rund 50€ dafür ausgegeben) haben. Wann die Panzer für jedermann spielbar sein werden ist nicht bekannt. Die Entwickler werden das wahrscheinlich einen Monat zuvor groß ankündigen, sodass man es gar nicht übersehen kann.
  • in: ASM: Problem mit C-Call pthread

    geschrieben von toolz

    Ich will euch nicht die Lösung vorenthalten. Nachdem darkpandemic sich eingehender damit beschäftigt hatte, ist bei ihm dieses funktionierende Programm herausgekommen:
    format elf
    public main
    
    extrn printf
    extrn pthread_create
    extrn pthread_join
        
            SECTION '.data'
        
    anz:    dd      0
    msg:    db      "Anzahl der Aufrufe: %ld", 10, 0
    thr:    dd      0
    
    
            SECTION '.text'
        
    main:
            push    ebp
            mov     ebp, esp
            
            push    DWORD 0
            push    fkt
            push    DWORD 0
            push    thr
            call    pthread_create
            add     esp, 16
            
            call    fkt
            
            push    DWORD 0
            push    DWORD [thr]
            call    pthread_join
            add    esp, 8
        
            push    DWORD [anz]
            push    msg
            call    printf
            add     esp, 8
        
            xor     eax, eax
            leave
            ret
            
    fkt:
            push    ebp
            mov     ebp, esp
            
            inc     DWORD [anz]
            
            leave
            ret
    Und das Beste: Es funktioniert! Wirklich!
    Vielen Dank an nomis und ganz besonders darkpandemic und an alle anderen, die sich an meinem Problem versucht haben, ohne hier einen Beitrag zu erstellen.
  • in: Programmiert noch jemand Blitzbasic

    geschrieben von toolz

    Ich will dann doch mal auf die dafür vorhandene Gruppe verweisen, an deren Gründung ich persönlich beteiligt war: http://www.lima-city.de/groups/blitzbasic

    Allerdings sehe ich in BlitzBasic nur das Potential zur schnellen und unkomplizierten Spieleentwicklung. Für komplexere Dinge würde ich es nicht benutzen. Immerhin eine noch gut gepflegte Sprache... Leider proprietär.

    Wen der härtere Stoff nicht interessiert oder wer mal eben so ein paar Dinge ausprobieren will, dem kann man schon zu BlitzBasic raten. Zwei große Nachteile schleppt die Sprache aber außerdem mit sich: Sie ist langsam und läuft nur auf Windows. Das sorgt dafür, dass ich schon lange nicht mehr an sie gedacht habe. :smokin:
  • in: ASM: Problem mit C-Call pthread

    geschrieben von toolz

    Stimmt! Je nach Implementierung kann pthread_create tatsächlich versuchen, das Argument vom Stapel zu holen (was noch nicht das Problem ist) und es dann analysieren wollen (das wäre ein Problem)! Aber selbst wenn ich sicherheitshalber noch null übergebe klappt die Ausführung nicht.
    Mein Debugger funktioniert leider gerade nicht und ich finde den Fehler einfach nicht.
    Bist du mittlerweile weiter gekommen? Oder weiß jemand anderes etwas darüber?

    Edit: Jetzt habe ich den Debugger wieder zum Laufen gebracht (extra hierfür) und es stellt sich heraus, dass der Prozess in der Routine pthread_create stecken bleibt. Und zwar bei einer Anweisung
    rep stosd
    , falls euch das hilft...
  • in: ASM: Problem mit C-Call pthread

    geschrieben von toolz

    In der Tat, da hast du zwar Recht, aber da meine Funktion fkt ja keine Argumente abruft (das vierte Argument also niemals vom Stapel geholt werden würde) stecke ich es gleich gar nicht hinein. Versuchsweise habe ich jetzt aber doch mal ein
    PUSH DWORD 0
    vor Zeile 6 geschrieben, allerdings stimmt es dann immer noch nicht (und ich glaube das ist dann sogar noch zusätzlicher Fehler).
    int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
    Also das letzte Argument von pthread_create sind doch nur die Argumente der aufzurufenden Funktion - auf Assemblerebene kann ich das auch einfach weglassen, wenn die Funktion keine Argumente erwartet. Ich habe vielmehr das Gefühl, dass ich die Funktionsadresse falsch übergebe... Aber selbst wenn ich die nocheinmal in eine Variable packe und dann die Adresse der Variablen auf den Stapel haue wird mir immernoch ein Fehler beim Ausführen angezeigt.
    Ich bin etwas ratlos.
  • in: ASM: Problem mit C-Call pthread

    geschrieben von toolz

    Ich versuche mich gerade an pthread, allerdings in Assembler. In C ist mir ein vergleichbares Programm bereits gelungen. Die Syntax gehört zu Linux-FASM, es kompiliert ohne Fehler:
    fasm pthread.asm && gcc -pthread pthread.o
    Jedoch kommt beim Ausführen ein Speicherzugriffsfehler, der sich mir nicht erschließt. Durch Einfügen diverser Debugausgaben konnte ich feststellen, dass die main anscheinend insgesamt nicht durchlaufen wird, wenn ich darin einen Aufruf an pthread mache. Bei Auskommentieren von Aufruf und Extern-Anweisung läuft das Programm jedoch fehlerfrei durch.
    FORMAT elf
    PUBLIC main
    SECTION '.text' executable
    
    main:
        PUSH fkt
        PUSH null
        PUSH zgr
        CALL pthread_create
    
        CALL fkt
    
        PUSH null
        PUSH zgr
        CALL pthread_join
    
        PUSH [anz]
        PUSH msg
        CALL printf
    RET
    
    fkt:
        INC [anz]
    RET
    
    EXTRN printf
    EXTRN pthread_create
    EXTRN pthread_join
    SECTION '.data'
    anz DD 0
    null DD 0
    msg DB "Anzahl der Aufrufe: %i",10,0
    zgr DD ?
    Wo liegt hier mein Fehler? Ich konnte ihn jetzt nach sehr langer Suche immer noch nicht entdecken...
  • in: Knoten verbieten im Internetprotokoll

    geschrieben von toolz

    Das bedeutet doch aber, dass die Daten bereits über einen verbotenen Knoten gelaufen sind. Wenn ich hingegen solange Testpakete losschicken würde, bis ich die richtige Konfiguration gefunden habe, kann ich nie sicher sein, dass ein nächstes, richtiges Paket den Umweg über einen der verbotenen Knoten zu nehmen versucht?
    Jeden Router selbst überprüfen zu lassen, ob das Paket verworfen werden soll halte ich für unpraktisch. Außerdem will ich ungern tausende von gewünschten Zwischenroutern angeben, das würde nur unnötig das Netzwerk überlasten. Vielmehr suche ich nach einer geschickten Lösung.
  • in: Knoten verbieten im Internetprotokoll

    geschrieben von toolz

    Ich habe mich gerade mit der Spezifikation des Internetprotokolls IPv6 beschäftigt und dabei eine interessante Option entdeckt: Man kann offenbar Zwischenziele für die Nachricht definieren, also Knoten, die auf dem Weg vom Absender zum Addressat unbedingt (in vorgegebener Reihenfolge) erreicht werden müssen.
    Mir kommt die Frage, ob es da nicht irgendwo auch die Möglichkeit versteckt gibt, bestimmte Knoten zu verbieten, also Router vom Nachrichtentransfer auszuschließen (etwa weil die Informationspolitik des Staates, auf dessen Boden sich besagter Router befindet, völlig unannehmbar ist). Dafür infrage kämen vielleicht die so benannten Hop-by-Hop Header, welche von jedem Knoten ausgelesen und befolgt werden müssen.
    Weiß jemand, wie ein solcher Ausschluss von Netzwerkknoten realisierbar ist?
  • in: Rechnen mit Vergleichswerten

    geschrieben von toolz

    Die bedingte Anweisung
    if
    erwartet nicht zwingend einen Vergleich, sondern einfach allgemein einen Boolean. Auch wenn deine Anweisung etwas kürzer ist, so kann ich sie dennoch nicht unbedingt empfehlen, da sie wohl kaum schneller ausgeführt wird. Man sollte sich angewöhnen, ausführlicheren Code zu schreiben, der auch im Nachhinein mit wenigen Blicken sofort wieder einleuchtet; das erleichtert die Fehlersuche ungemein. Ich empfehle auch nicht mit einem Wert undurchsichtige Rechnungen durchzuführen: Im vorliegenden Fall halte ich statt dessen eine
    case
    -Anweisung in Kombination mit einer Enumeration für sinnvoll.
    Enum Monat
        Januar
        Februar
        März
        April
        Mai
        Juni
        Juli
        August
        September
        Oktober
        November
        Dezember
    End Enum
    
    Dim M As Monat = aktueller Monat
    Dim Tage As Integer
    
    Select Case M
        Case Februar
            Print "Hier müsste die Jahreszahl bekannt sein."
        Case April, Juni, September, November
            Tage = 30
        Case Januar, März, Mai, Juli, August, Oktober, Dezember
            Tage = 31
        Case Else
            Print "Einen Monat " + Monat + " gibt es nicht!"
    End Select
    
    Print Tage
    Achtung: Dies ist nur Pseudocode.

    Gleich ersichtlich ist, dass dieser Code sehr viel länger ist, als das von dir aufgeführte Beispiel. Dafür ist es aber ebenso sehr viel einfacher möglich, hieran Erweiterungen vorzunehmen, oder in einem späteren Stadium auf Fehlersuche zu gehen. Außerdem kann man sofort erkennen, worum es hierbei geht; es lassen sich sogar sehr bequem Informationen über die einzelnen Monate extrahieren. Die eigentliche Berechnungsdauer dürfte allerdings obgleich des längeren Codes bei guten Compilern absolut gleichwertig sein. Viel wichtiger jedoch: Aus Sicht der Hochsprache finden hier keine Berechnungen statt, dadurch entfallen lästige Verknüpfungen von Variablen.


    Während deine erste Lösung dieses Problemes wegen seiner Zweckmäßigkeit annehmbar ist, sollte man vor allem aber auf solche starken Verkürzungen verzichten, wenn man nicht vollständig ausschließen kann, dass:
    - der Ausdruck für jede mögliche Eingabe korrekt arbeitet.
    - nachträgliche Änderungen vollzogen werden müssen.
    - die Problemstellung von externen Parametern abhängt.
    Im Fall der Tage eines Monats sehr unwahrscheinlich, aber es könnte ja sein, dass irgendwann gesetzlich festgelegt wird, dass der März künftig nur noch aus 30 Tagen bestehen solle. In diesem Fall muss man die stark verkürzte Version entweder sehr aufwendig bearbeiten und am Resultat erneut eine Fehleranalyse durchführen, oder ein ganz neuen Ausdruck finden, was nicht weniger zusätzliche Arbeit bedeutet.

    Ich hoffe ich konnte meinen Standpunkt ausführlich genug beleuchten und rate dir, lieber ebenso einfach zu programmieren, denn kompliziert komprimiert.


    Nach ein letzter Verbesserungsvorschlag, der jedoch nur mit objektorientierten Sprachen durchgeführt werden kann:
    class Monat {
        private final int tage;
        public Monat(int tage) {
            this.tage = tage;
        }
        public int anzahlTage() {
        // Für den Februar diese Methode einfach in einer Subklasse überschreiben.
            return tage;
        }
    }
    Auf diese Weise erspart man sich den ganzen Krempel vollständig und schreibt nur noch
    januar.anzahlTage()
    .
  • in: Vorstellung von mmphotography

    geschrieben von toolz

    Hallo und auch gleich wieder lebe wohl!
  • in: Kommentare System Mit Smiley Aber es geht nicht so richtig.:

    geschrieben von toolz

    Das ist selbst mir ein zu großes Durcheinander. Aber so könnte es funktionieren:
    <?php
    	error_reporting (0);
    	session_start();
    
    	if(!$_SESSION['nutzername']) {
    		header ('location: login.php');
    	}
    
    	else {
    		error_reporting(0);
    		require('connect.php');
    		$name = $_SESSION['nutzername'];
    		$today = date("c");
    		//$today = date("c", strtotime()); 
    		$comment = $_POST['comment'];
    		$submit=isset($_POST['submit']);
    
    		if($submit) {
    			if($name&&$comment) {
    				$query = mysql_query("INSERT INTO comment (name,comment,time) VALUES ('$name','$comment','$today')");
    				header("Location: success.php");
    			}
        
    			else {
    				echo "Please fill out all the fields.";
    			}
    		}
    	}
    ?>
    
    <!DOCTYPE html>
    <html>
    	<head>
    		<title>Comment Box | HelperTuts</title>
    		<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
    		<script src="jquery.timeago.js" type="text/javascript"></script>
    		<script>
    			jQuery(document).ready(function() {
    				jQuery("abbr.timeago").timeago();
    			});
    		</script>
    		<script type="text/javascript">
    			function insertAtCursor(wo, was) {
    				wo = document.getElementById(wo)
                
    				if (document.selection) {
    					wo.focus()
    					sel = document.selection.createRange()
    					sel.text = was
    				}
    				else if (wo.selectionStart || wo.selectionStart == '0') {
    					var startPos = wo.selectionStart
    					var endPos = wo.selectionEnd
    					wo.value = wo.value.substring(0, startPos)
    						+ was
                            + wo.value.substring(endPos, wo.value.length)
    				} 
    				else {
    					wo.value += was
    				}
    				wo.focus()
    			}
        //]]>
    </script>
    		<style>
    			body {
    				background-color: #DFDFDF;
    			}
    		</style>
    	</head>
    	<body>
    		<link type="text/javascript" href="localtime.js" />
    		<p>List of available Smileys:</p>
    		<link rel="stylesheet" type="text/css" href="all.css" media="screen">
    		<p id="editor_buttons">
    
    	<span style="border: 1px solid #CCCCCC; padding: 3px; margin-right: 3px;"><a href="#" onclick="if (document.getElementById(&#39;smilieBox&#39;).style.display == &#39;block&#39;) {document.getElementById(&#39;smilieBox&#39;).style.display = &#39;none&#39;;} else {document.getElementById(&#39;smilieBox&#39;).style.display = &#39;block&#39;;}; return false;"><img src="emoticon_smile.png" alt="Smiley einfügen" title="Smiley einfügen"> Smiley</a></span>
    		</p><div class="smilieBox" id="smilieBox" style="display: none;">
    		<img src="images/smiley_laughing.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':smiley_laughing:');"></img>
    		<img src="images/4.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':1:');"></img>
    		<img src="images/5.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':2:');"></img>
    		<img src="images/008.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':3:');"></img>
    		<img src="images/angel.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':angel:');"></img>
    		<img src="images/bad_03.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':bad1:');"></img>
    		<img src="images/bad_08.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':bad2:');"></img>
    		<img src="images/bad_09.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':bad3:');"></img>
    		<img src="images/kaffee.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':kaffee:');"></img>
    		<img src="images/king.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':king:');"></img>
    		<img src="images/koch.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':koch:');"></img>
    		<img src="images/krank.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':krank:');"></img>
    		<img src="images/lol.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':lol:');"></img>
    		<img src="images/music1.gif" alt="Smiley nutzen" onclick="insertAtCursor('text', ':music1:');"></img>
    		</div><p>
    		<form action="#" method="POST">
    			<label>Name: </label>
    			<br />
    			<input type="text" disabled="disabled" name="name" value="<?php echo "$name" ?>" />
    			<br />
    			<br />
    			<label>Comment: </label>
    			<br />
    			<textarea name="comment" cols="25" rows="7" id="text"></textarea><!--id="text" muss bleiben, sonst kann Smiley nicht eingefügt werden-->
    			<br />
    			<br />
    			<input type="submit" name="submit" value="Comment" />
    			<br />
    		</form>
    		<hr width="1100px" size="5px" />
    	</body>
    <?php
    	require('connect.php');
    	$query=mysql_query("SELECT * FROM comment ORDER BY id DESC");
    	while($rows=mysql_fetch_assoc($query)) {
    		$id=$rows['id'];
    		$dname=$rows['name'];
    		$dcomment=str_replace("\n", "<br>", $rows['comment']);
    		$dcomment=str_replace(":smiley_laughing:", "<img src=\"images/smiley_laughing.gif\"", $dcomment); // Dies für alle Smileys wiederholen
    		$dcomment=str_replace(":1:", "<img src=\"images/4.gif\"></img>", $dcomment); 
    		$dcomment=str_replace(":2:", "<img src=\"images/5.gif\"></img>", $dcomment); 
    		$dcomment=str_replace(":3:", "<img src=\"images/008.gif\"></img>", $dcomment); 
    		$dcomment=str_replace(":angel:", "<img src=\"images/angel.gif\"></img>", $dcomment); 
    		$dcomment=str_replace(":bad1:", "<img src=\"images/bad_03.gif\"></img>", $dcomment); 
    		$dcomment=str_replace(":bad2:", "<img src=\"images/bad_08.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":bad3:", "<img src=\"images/bad_09.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":confused:", "<img src=\"images/confused.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":kaffee:", "<img src=\"images/kaffee.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":king:", "<img src=\"images/king.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":koch:", "<img src=\"images/koch.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":krank:", "<img src=\"images/krank.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":lol:", "<img src=\"images/lol.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":music1:", "<img src=\"images/music1.gif\"></img>", $dcomment);
    		$dcomment=str_replace(":smiley_laughing:", "<img src=\"images/smiley_laughing.gif\"></img>", $dcomment); 
    		$dtime=$rows['time'];
    		$atime="<abbr class='timeago' title='$dtime'></abbr>";
    	 
    		echo '<font color="red">Name:</font>  ' . $dname . '&nbsp; &nbsp;&nbsp;&nbsp;'. $atime  . '<br />' . '<br />' . '<font color="red">Comments:</font>  ' . '<br />' . $dcomment . '&nbsp' . '&nbsp' . '&nbsp' . '&nbsp';
    	  
    		if($_SESSION['nutzername']=="admin"){
    			echo "<a href=\"delete.php?id=" . $rows['id'] . "\">Delete User</a>"; 
    		}
    	
    		else {
    			echo "";
    		}
    	  
    	  
    		echo '<br />' . '<br />' . '<hr size="5px" width="500px" color="blue" />' . '<br />' . '<br />' ;    
    	}
    ?>
    </html>
    Pass immer auf, dass du deine Tags schließt und guck dir doch gleich auch einmal ein paar Tipps zur Übersichtlichkeit beim Programmieren an.
  • in: Vorstellung von dark-destiny

    geschrieben von toolz

    Willkommen! Du hast dir sicher sehr viel Mühe gemacht bei deinen Begründungen. Daran sollten sich andere mal ein Beispiel nehmen...
  • in: Von Kapitälchen und dem ẞ

    geschrieben von toolz

    Gegeben sei ein Wort mit ß darin, beispielsweise Maße. Normalerweise hätte ich nun den unten stehenden Code verwendet, um Kapitälchen zu erreichen.
    font-variant: small-caps;
    Während es die anderen Browser korrekt darstellen erzeugt mir der Firefox dummerweise ein Doppel-S statt dem (großen) ẞ.

    Richtig:
    MAẞE
    Falsch (Firefox):
    MASSE
    Falsch (Verhalten noch nicht entdeckt):
    MAßE

    Natürlich lautet nun meine einfache Frage, wie ich herangehen muss, um das ẞ und nicht das ß oder das Doppel-S angezeigt zu bekommen, will ich ein Wort in Kapitälchen darstellen, welches standardmäßig aber nicht vollständig groß geschrieben wird.
  • in: JavaScript-Simulator

    geschrieben von toolz

    Ich sehe ein, bei Abhängigkeiten wird es schwierig.
    Du sprichst von serverseitigem JavaScript. Ich habe davon aber noch nie gehört. Wie richtet man denn so etwas ein (hier auf Lima)? Also das Skript muss nur auf dem Server laufen, dass ist meine einzige Anforderung. Deshalb versuche ich ja auch mein Bestes, das Skript umzuschreiben :wink:.

    Eine andere Bibliothek kann ich mir nicht suchen, einfach weil es so etwas nicht in PHP gibt... Das hätte ich schon längst gemacht!
  • in: JavaScript-Simulator

    geschrieben von toolz

    Aber das ist ja gerade der Witz! Ein Algorithmus, dummerweise in JavaScript verfasst, soll nun serverseitig laufen. JavaScript gehört aber nicht auf oder zum Server, das ist allen bekannt. Wenn du sagst, ich solle es richtig machen, weiß ich leider nicht was du meinst? Die Funktionen gehören nun mal nicht vom Client ausgeführt.
    Zu den Objekten kann ich nur sagen, dass PHP die ja mittlerweile zum Glück auch unterstützt. Siehe hierzu auch mein jsArray. Vererbung, Kapselung und co. gibt es zwar auch, aber das ist für den Simulator (bestehend aus Parser + JS-Klassen) sogar nicht mal nötig. Ich habe vielleicht vergessen zu erwähnen, dass ich nur Funktionen übersetzen können möchte.

    PS: Compiler habe ich es übrigens deshalb nicht genannt, weil eine semantische Analyse nur überaus beschränkt nötig ist. Es reichen schon ein paar Ersetzungsregeln, da die Syntax beider Sprachen bereits sehr ähnlich ist.

    Oder gehen wir mal anders heran:
    Wie würdest du eine ewig (!) lange JavaScript-Funktion in PHP übersetzen, wenn du genau weißt, dass du erst nach Jahren fertig bist? Und wenn du weißt, dass diese Funktion eben nicht auf die Seite des Clienten gehört.
  • in: JavaScript-Simulator

    geschrieben von toolz

    PHP und JavaScript? Was haben die schon gemeinsam?
    Mehr als man glaubt, beim Durchstöbern diverser Codeschnipsel ist mir in letzter Zeit öfter vorgekommen, dass ich den ein oder anderen JavaScript-Fetzen viel sinnvoller für eine Implementation in PHP gehalten hätte. JavaScript darf meiner Meinung nach keine essenziellen Funktionalitäten bieten, sondern einfach nur die Dynamik einer Internetseite verbessern. Da jetzt aber viele JavaScripte in ihrer Länge auswuchern, hatte ich einfach keine Lust mehr, sie von JS in PHP zu übersetzen.

    Daher nun meine Idee:
    Es muss doch möglich sein, bereits nach einer automatisierten Parserphase, welche aus der JavaScript-Datei eine interpretierbare PHP-Datei macht (siehe unten), diese so in PHP ausführen zu können. Das Simulieren eines Browserfensters soll dabei nicht abgedeckt sein, denn es ergibt keinen Sinn, solche Funktionen in PHP zu übersetzen. Hingegen die grundlegenden JavaScript-Objekte müssten alle in PHP implementiert werden, ich habe bereits die Mühe investiert, das JS-Array in PHP zu implementieren:
    class jsArray {
    	private $feld;
    	public function __construct() {
    		$this->$feld = func_get_args();
    	}
    	public static $constructor = 'jsArray::__construct';
    	public function __set($name, $wert) {
    		if ($name == 'length') {
    			$diff = $wert - count($this->$feld);
    			for ($n = 0; $n < $diff; $n++) array_push($this->$feld, null);
    			for ($n = 0; $n > $diff; $n--) array_pop($this->$feld);
    		}
    	}
    	public function __get($name) {
    		if ($name == 'length') return count($this->$feld);
    	}
    	public function concat() {
    		$neu = clone $this;
    		foreach (func_get_args() as $hinzu) $neu->$feld = array_merge($neu->$feld, $hinzu);
    		return $neu;
    	}
    	public function indexOf($item, $start=0) {
    		$sub = $this->$feld;
    		for($n = $start; $n > 0; $n--) $sub = array_shift($sub);
    		$index = array_search($item, $sub);
    		return $index !== false ? $index : -1;
    	}
    	public function join($separator=',') {
    		return implode($seperator, $this->$feld);
    	}
    	public function lastIndexOf($item, $start=0) {
    		$neu = clone $this;
    		$neu->$feld = array_reverse($neu->$feld);
    		return $neu->indexOf($item, $start);
    	}
    	public function pop() {
    		return array_pop($this->$feld);
    	}
    	public function push() {
    		foreach (func_get_args() as $hinzu) $anz = array_push($this->$feld, $hinzu);
    		return $anz;
    	}
    	public function reverse() {
    		array_reverse($this->$feld);
    		return $this;
    	}
    	public function shift() {
    		return array_shift($this->$feld);
    	}
    	public function slice($start, $end=null) {
    		$neu = clone $this;
    		$neu->$feld = array_slice($neu->$feld, $start, $end);
    		return $neu;
    	}
    	public function sort($sortfunction=null) {
    		if ($sortfunction === null) sort($this->$feld)
    		else usort($this->$feld, $sortfunction);
    		return $this;
    	}
    	public function splice($index, $howmany) {
    		return array_splice($this->$feld, $index, $howmany, array_slice(func_get_args(), 2));
    	}
    	public function toString() {
    		$this = implode(',', $this->$feld);
    		return $this;
    	}
    	public function unshift() {
    		$parameter = array_reverse(func_get_args());
    		foreach ($parameter as $hinzu) $anz = array_unshift($this->$feld, $hinzu);
    		return $anz;
    	}
    	public function valueOf() {
    		return $this->$feld;
    	}
    }
    Neben allen grundlegenden Objekten müssten auch alle grundlegenden Operatoren überladen werden. Hier einmal ein Beispiel, wie der Parser arbeiten müsste:
    // Vorher
    var a = b + 6 + 8.MAX_VALUE,
    // Nachher
    $a = new jsObject($b->typ, $b->valueOf() + 6 + (new jsNumber(8))->$MAX_VALUE);
    - Also alle var entfernen und vor alle Variablen ein $ einfügen.
    - Um jeden Werteblock muss die Umwandlung in jsObject erfolgen, der Einfachheit halber mit dem Typ des ersten Literals.
    - Bei Attributaufrufen müssen direkt angegebene Zahlen, Strings und Arrays zunächst in jsNumber, jsString, bzw. jsArray umgewandelt werden. Alle anderen (über ihren Bezeichner referenzierten) Objekte sind bereits in JavaScript-Form.

    Das Problem:
    Programmieren von JavaScript-Objekten und Parser dauert alleine viel zu lange.

    Deshalb:
    Findet ihr einen JavaScript-Simulator sinnvoll? Und wenn ja, wollt ihr mir dabei helfen? Das Resultat würde übrigens gemeinfrei, für jeden änder- und nutzbar.
  • in: Subversion: Anzahl von Revisions limitieren

    geschrieben von toolz

    So etwas scheint es für SVN nicht nativ zu geben. Es kann sein, dass dein Hoster so etwas unterstützt, aber wenn nicht, oder wenn es sich um dein eigenes Repositorium handelt hilft wohl nur der Umweg über svndump. So erstellst du erst ein Abbild der gewünschten Revisionen des Repositoriums, um es anschließend damit zu überschreiben:

    Zitat von http://www.uni-koblenz-landau.de/koblenz/GHRKO/faq/verschiedenes/repositoryshrink:
    svnrdump dump -r501:1000 https://svn.uni-koblenz.de/Rechnerkennung/Repository > Repository.dump
    Dann Repository auf dem svn-Server löschen und wieder neu anlegen.
    svnrdump load https://svn.uni-koblenz.de/Rechnerkennung/Repository < Repository.dump

    Anstatt der 501 schreibst du dann den Index der ältesten Revision, die du behalten willst und statt 1000 die aktuelle Revisionsnummer. Den Serverpfad musst du natürlich auch anpassen.

    Was immer möglich ist: Das Repositorium einfach ganz neu aufsetzen. Für gewöhnlich sollte das alte noch eine Weile behalten werden, aber bei der nächsten stabilen Programmversion kann man es löschen und spart so Platz. Natürlich im Risiko, Daten zu löschen, die man wiederherstellen möchte. Aber mal ehrlich: Wie oft kommt es vor, dass man eine mehrere Revisionen alte Version wiederherstellen will?

    Zum Glück muss man eine solche Aktion nicht allzu oft ausführen.
  • in: Assembler: Extern sprintf

    geschrieben von toolz

    Danke sehr, das war der Fehler.
    Nach einer etwas aufwändigeren Konvertierung von 32 Bit nach 64 Bit wird die Zahl endlich richtig in eine Zeichenkette konvertiert.
  • in: Assembler: Extern sprintf

    geschrieben von toolz

    Unter Linux x86 versuche ich auf Assemblerebene die Cpp-Funktion sprintf aufuzurufen. Es herrscht unmittelbar vor dem Aufruf folgende Konfiguration vor:
    EAX = 0x3f800000
    EBX = 0x00000001
    ECX = 0x08049624
    EDX = 0x00000001
    EBP = 0xbf8b08d4
    ESI = 0xbf8b08fc
    EDI = 0x08049624
    EIP = 0x08048491
    EFLAGS = 0x00000292
    
    CS = 0x0073
    DS = 0x007b
    ES = 0x007b
    FS = 0x0000
    GS = 0x0033
    SS = 0x007b
    Auf dem Stapel liegt:
    [...]
    0xbf8b08d4:  0x08049624
    0xbf8b08d8:  0x08049608
    0xbf8b08dc:  0x3f800000
    [...]
    Im Speicher liegt unter 0x08049608 "%E" und unter 0x08049624 "\n,854442E-270" (Das ist Rest einer vorherigen Ausführung von sprintf). Genauer:
    [...]
    0x08049608:  25 45 00 00 01 00 00 00 00 00 00 00 00 00 00 00 (hex)
    0x08049618:  00 00 00 00 00 00 00 00 00 00 00 00 0a 2c 38 35 (hex)
    0x08049628:  34 34 34 32 45 2d 32 37 30 00 00 00 00 00 00 00 (hex)
    [...]
    Ich rufe nun sprintf auf, ohne etwas zu verändern:
    call sprintf

    Unmittelbar nach dem Aufruf ist nun unter den Registern:
    EAX = 0x0000000d
    EBX = 0x00000001
    ECX = 0xbf8b07f4
    EDX = 0x00000000
    EBP = 0xbf8b08d4
    ESI = 0xbf8b08fc
    EDI = 0x08049624
    EIP = 0x08048496
    EFLAGS = 0x00000292
    
    CS = 0x0073
    DS = 0x007b
    ES = 0x007b
    FS = 0x0000
    GS = 0x0033
    SS = 0x007b
    Das heißt, nur EAX, ECX, EDX und EIP haben sich geändert. Auf dem Stapel findet man:
    [...]
    0xbf8b08d4:  0x08049624
    0xbf8b08d8:  0x08049608
    0xbf8b08dc:  0x3f800000
    [...]
    Also unverändert, aber im Speicher ist nun:
    [...]
    0x08049608:  25 45 00 00 01 00 00 00 00 00 00 00 00 00 00 00 (hex)
    0x08049618:  00 00 00 00 00 00 00 00 00 00 00 00 34 2c 38 35 (hex)
    0x08049628:  34 34 34 32 45 2d 32 37 30 00 00 00 00 00 00 00 (hex)
    [...]
    Also an Adresse 0x08049624 die Zeichenkette "4,854442E-270". Erwartet hätte man anhand der Referenz von sprintf allerdings die Zeichenkette "1,000000E+0". Allgemeiner eine Darstellung der Gleitkommazahl 1,0 (0x3f800000).

    Ich zerbreche mir schon geraume Zeit den Kopf, was stimmt hier nicht?
  • in: Firefox Plugin entfernen

    geschrieben von toolz

    Danke für deine Bemühungen, aber leider kommen die Vorschläge für mich nicht in Frage:

    Die "*.dll" des plugin löschen
    Das habe ich bereits ausprobiert (klappt natürlich), aber das zugehörige Programm greift selbst auch auf die DLL zu und stürzt beim Start ab, wenn diese nicht mehr vorhanden ist. Auf das Programm möchte ich aber nicht verzichten, sondern nur, dass es kein Firefox-Plugin installiert.

    plugin.expose_full_path -> wert = true setzen
    Das funktioniert seit Firefox 21.0 nicht mehr, es werden weiterhin nur die Pluginnamen angezeigt. Der volle Pfad steht aber immer noch in der pluginreg.dat im persönlichen Anwendungsordner.

    Plugin Toggler 1.2.2 nutzen
    Dieses Addon macht leider auch nicht mehr, als es Firefox selbst kann: Es deaktiviert das Plugin, entfernt es aber nicht.
  • in: Firefox Plugin entfernen

    geschrieben von toolz

    Irgendwie scheint es sonst nirgends eine ähnliche Fragestellung zu geben:
    Ich wünsche, ein Plugin aus Firefox 21.0 unter Windows 7 zu entfernen, ohne die Plugin-DLL löschen zu müssen. Es handelt sich ausdrücklich nicht um ein Addon, sondern ein Plugin! Es existiert unter der Pluginliste keine Möglichkeit überhaubt ein Plugin zu deinstallieren. Ich möchte auch nicht das Plugin nur deaktivieren, sondern entfernen! Ich habe bereits das betroffene Plugin in der pluginreg.dat unter meinen persönlichen AppData entfernt, aber der Eintrag wird dort immer wieder hineingeschrieben, als ob es eine globale pluginreg.dat gäbe, die ich allerdings nicht finden kann. Ich habe auch bereits die betroffene DLL umbenannt: Nach dem Start von Firefox ist das Plugin nicht mehr in der Liste und auch nicht in der pluginreg.dat. Wenn ich die DLL aber wieder herstelle, dann installiert sich das Plugin beim nächsten Start von Firefox selbst.
    (Warum ich das Plugin entfernen möchte: Nach Aktualisierungen einer dazugehörigen Software, welche häufiger vorkommen, neigt das Plugin dazu, sich selbst ohne Vorwarnung wieder zu aktivieren. Ich will aber das Plugin auf keinen Fall aktiv wissen.)
    Weiß jemand, was ich tun kann?
  • in: Windows 7 macht selbstständig, grundlos Reboots

    geschrieben von toolz

    Für mich sieht das so aus, als hättest du es geschafft, dir ein Softwareupdate für eine falsche Architektur zuzulegen. Entferne mal Chrome und FlashPlayer, sowie alle deren Rückstände und versuche es mit einer Neuinstallation derselben.
    Aber noch mal weil du darauf nicht richtig eingegangen bist:
    Was bedeutet, dass "Probleme kamen"?
    Ist der Rechner wirklich jemals selbsttätig heruntergefahren oder einfach nur abgestürzt?
    Hast du manchmal Probleme mit der Internetverbindung?
  • in: Tipps für meine Website

    geschrieben von toolz

    Für Kinder ungeeignet:
    Man stelle sich vor, da rechnet so ein kleines Kind ein paar Minuten die zwei Zahlen zusammen, ehe es das Ergebnis eintippt. Schon steht da riesig (auch etwas besserwisserisch), in depremierendem Rot: FALSCH. Also bitte die Schrift in dem Fall kleiner, das Rot etwas abschwächen (ins Gelbliche) und vor allem die Rechnung noch einmal anzeigen, mit richtigem und angegebenen Ergebnis. Besonders schön wäre auch die Angabe von Rechenschritten. In der Grundschule rechnet man ja nicht umsonst mit untereinander stehenden Summanden.
    Und wo liegen überhaupt die Unterschiede zwischen den Stufen?
    Man könnte zudem noch die Subtraktion, Multiplikation und Division anbieten...

    Zudem: Endet der Test denn auch irgendwann? Eine Fortschrittsanzeige nach dem Muster "7 von 50 Rechnungen" wäre doch schön.
  • in: Abschlussball - Was jetzt?

    geschrieben von toolz

    Ich finde ja, das Wort Abschlussball wird hierzulande oftmals falsch interpretiert, weil man die amerikanischen Filme von Eliteschulen im Kopf hat. Um gleich mal mit den Vorurteilen aufzuräumen:
    1. Auf einem Abschlussball wird nicht getanzt (höchstens gewippt).
    2. Es werden von einigen besonders engagierten Schülern gewisse Beiträge vorgeführt (das können zwar Tänze sein, aber das macht man nur höchst freiwillig)
    3. Man muss dort niemanden mit hinnehmen, denn dabei geht es ausschließlich um einen selbst.
    4. Soweit nicht erkrankt kommt da sowieso jeder Schüler hin (also macht Einladen auch keinen Sinn).
    5. Sofern man sich nicht selbst darum kümmert, gleicht der Abschlussball einer Kabarettveranstaltung.
    6. Es wird dort niemand angeprangert oder vorgeführt.

    Man geht einfach hin, setzt sich an irgendeinen Tisch, bestellt sein Getränk und das wars. Der Rest kommt von ganz alleine.
  • in: Wieso Gulden?

    geschrieben von toolz

    Sofern du weder eine MySQL-Datenbank, noch Download-Volumen, mail()-Kontingent, MySQL-Datenbank oder gar eine .de-Domain kostenlos haben willst, dann sind für dich Gulden in der Tat unnötig :nosmile:
    Aber die Mehrzahl der Benutzer hier ist gerade wegen dieser Angebote bei Lima.
  • in: Linux - Sperrdateien zu groß

    geschrieben von toolz

    Danke, das hat schonmal etwas gebracht:
    toolz@linux:~$ df -h
    Dateisystem            Size  Used Avail Use% Eingehängt auf
    /dev/sda6             6,8G  4,1G  2,4G  64% /
    none                  2,0G  720K  2,0G   1% /dev
    shm                   1,0G  108K  1,0G   1% /dev/shm
    tmpfs                 1,0G   92K  1,0G   1% /var/run
    tmpfs                 1,0G     0  1,0G   0% /var/lock
    /home/toolz/.Private  6,8G  4,1G  2,4G  64% /home/toolz
    Jetzt ist aber doch ein Gigabyte flöten gegangen? Denn obwohl ich drei dieser Dateien um ein Gigabyte verkleinert habe, wurden nur zwei Gigabyte frei... Wird eine der Partitionen etwa in /dev/sda6 mit eingerechnet?
  • in: Linux - Sperrdateien zu groß

    geschrieben von toolz

    cookies schrieb:
    Was genau meinst du mit Sperrdateien?
    Alle diese:
    /dev
    /dev/shm
    /var/run
    /var/lock
    . Deren Speichernutzung liegt im Durchschnitt bei 0,75%, zudem ist mein RAM groß genug. Reduziere ich alle diese Dateien auf eine Größe von 1 GB, so erhöht sich zwar deren Auslastung auf 1,5%, aber die Belegung der Speicherpartition reduziert sich von 95% auf ~59,8%. Das ist doch schon eine ganze Menge!
  • in: Linux - Sperrdateien zu groß

    geschrieben von toolz

    Ich kämpfe auf meinem Linuxsystem um jedes ungenutzte Bit, daher schockt mich die folgende Konsolenausgabe umso mehr:
    toolz@linux:~$ df -h
    Dateisystem            Size  Used Avail Use% Eingehängt auf
    /dev/sda6             6,8G  6,1G  367M  95% /
    none                  2,0G  720K  2,0G   1% /dev
    none                  2,0G  460K  2,0G   1% /dev/shm
    none                  2,0G   92K  2,0G   1% /var/run
    none                  2,0G     0  2,0G   0% /var/lock
    /home/toolz/.Private  6,8G  6,1G  367M  95% /home/toolz
    Seitdem ich einst eine externe Festplatte angeschlossen hatte, verkleinerte sich der Speicherplatz auf /dev/sda6 um ganze 2GB und will nun nicht mehr wiederkehren. Ich vermute, dass die Sperrdateien automatisch vergrößert wurden, sich jetzt aber nicht mehr verkleinern.
    Nun die Frage: Wie kann ich die Sperrdateien reduzieren (sagen wir auf 1GB)?
  • in: Assembler - vor Ausführung negieren

    geschrieben von toolz

    Hallo,
    ich habe mal wieder ein kleineres Assemblerproblem. Und zwar möchte folgenden Ausschnitt optimieren:
    mov eax,2
    neg eax
    and [var],eax
    Etwas leichte Mathematik führte mich schließlich hierzu:
    and [var],0xffFFffFB
    Jedoch bekomme ich jetzt einen Kompilierfehler ausgegeben:
    error: value out of range.


    Natürlich ist meine Frage, warum das nicht funktioniert. Kann man tatsächlich keine 4 Byte großen Zahlen direkt angeben?

    (FASM, Linux x86)



    Addendum:
    Zu dämlich: Ich habe eifrig herumprobiert und mir ist aufgefallen, dass ich die Größenangabe vergessen habe:
    and dword[var],0xffFFffFB
    So funktioniert es nun. Danke, wer mir helfen wollte!
  • in: Ubuntu permanenter Download-Link

    geschrieben von toolz

    Die einzigen offiziellen statischen Links dürften sich wohl hier befinden: http://cdimage.ubuntu.com/daily-live/current/. Wenngleich verständlich ist, dass man versucht, die verschiedenen Versionen zu trennen (es geht ja nicht darum, immer die aktuelle Version zu besitzen, sondern dass eine bestimmte Version den eigenen Anforderungen genügt).
    Das Problem an den Links ist allerdings, dass es sich dabei um Datenträgerabbilder handelt, die man nicht mal eben so entpackt und darin eine Linux-Verzeichnisstruktur vorfindet...
    Vielleicht ist auch das hier etwas für dich: http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/
  • in: Ein Rätsel für Programmierer

    geschrieben von toolz

    mathesoft schrieb:
    Grundsätzlich muss immer der alte Wert irgendwo und -wie zwischengespeichert werden. Selbst wenn die Programmiersprache sowas wie eine Exchange-Funktion hat, läuft das für den Programmierer unsichtbar im Hintergrund ab - gerade bei komplexen Objekten ist das nur mit Zwischenspeicherung möglich (und wenn es nur die Adresse ist, wo sich das Objekt im Speicher befindet).
    Das ist leider nicht korrekt, es geht sehr wohl:
    staymyfriend schrieb:
    Bei INT oder LONGINT geht das mit XOR so...

    a = a^b
    b = a^b
    a = a^b
    Das selbe funktioniert insbesondere auch für Zeiger, also für alle möglichen Datentypen. In Assembler sieht man deutlich, dass auch ohne xchg keine dritte Variable benötigt wird:
    xor eax,ebx
    xor ebx,eax
    xor eax,ebx

    http://de.wikipedia.org/wiki/Dreieckstausch
    http://www.tutego.de/blog/javainsel/2012/05/inselraus-variablen-mit-xor-vertauschen/
  • in: Ein Rätsel für Programmierer

    geschrieben von toolz

    Assembler:
    xchg eax,ebx
    Standard ist natürlich die Anwendung von XOR und in jeder Sprache, die soetwas nicht nativ unterstützt vorzuziehen.

    Ohne XOR auch in Java möglich (es sollte ja für beliebige Datentypen funktionieren):
    Object v1, v2;
    public void xchg(Object v1, Object v2) {
       this.v1 = v2;
       this.v2 = v1;
    }
    Entsprechend für beliebige Variablen (ungetestet):
    public void xchg(Integer alt1, Integer alt2) {
       tauschen(alt1, alt2, alt2);
    }
    private void tauschen(Integer alt1, Integer alt2, int neu1) {
       alt2 = alt1.intValue();
       alt1 = neu1;
    }
    
    public void main() {
       Integer v1, v2;
       // ...
       xchg(v1, v2);
    }
    Letztere Variante auf beliebige Typen zu erweitern ohne for-Schleifen zu benutzen (denn dann wird für den Programmierer sichtlich eine neue Variable erzeugt) ist allerdings etwas aufwändiger.
    In C ist diese Idee übertragbar: Für beliebige Typen müssen einfach die Zeiger z1 und z2 mit XOR behandelt werden:
    z1 = (void*)(*(void*)z1 ^ *(void*)z2)
    z2 = (void*)(*(void*)z1 ^ *(void*)z2)
    z1 = (void*)(*(void*)z1 ^ *(void*)z2)

    Ich will aber auch sagen, dass ich es nicht gutheißen kann, die Minimierung der Varaiblenanzahl als Maxime zu betrachten. Lieber habe ich eine Variable zu viel und lösche sie, sobald ich sie nicht mehr brauche, als dass ich zwei Variablen verschränke und somit unnötige Fehler entstehen. Denn das geht mathematisch sogar so weit, dass man theoretisch nur eine Variable benötigt; wobei man hier das Wort Variable ebenso im rein mathematischen Kontext gesehen werden muss. In der Praxis klappt das nur bei den wenigsten Programmiersprachen (je maschinennäher, desto unwahrscheinlicher).

    Ich hoffe alle Programmausschnitte funktionieren so, wie ich sie angegeben habe...
  • in: Java Compiler API

    geschrieben von toolz

    Das editorForm dieser Seite könnte interessant für dich sein. Am Besten setzt du dich mit dem Autor unter der angegebenen Adresse onlinecompiler.net@gmail.com auseinander.
    Aber ich glaube nicht, dass es einen Dienst gibt, der es anderen Diensten ermöglicht, Dateien automatisch kompilieren zu lassen, denn das wäre zu viel Rechenaufwand für nichts - Wer soll denn dann die Werbung anklicken?
  • in: Suche Mitarbeiter

    geschrieben von toolz

    Das ganze wäre doch sowieso unentgeltlich, weshalb man auch nicht von einer Beschäftigung sprechen könnte. Das heißt hier wäre es sogar einem Kleinkind erlaubt, Artikel zu verfassen.
  • in: Schriftgröße an Font anpassen

    geschrieben von toolz

    Obgleich das nur ein subjektiver Eindruch sein darf erscheinen mir unterschiedliche Schriftarten unterschiedlich groß. Will ich nun eine Alternativschriftart anbieten, dann verändert sich das Aussehen meiner Seite drastisch:
    font-family: 'Nimbus Roman No9 L', Verdana, serif;
    Ich dachte mir, ich könnte für jede angegebene Alternative eine eigene Schriftgröße verwenden, etwa so:
    font: 12px 'Nimbus Roman No9 L', 15px Verdana, 22px serif;
    Allerdings scheint das nicht CSS-konform zu sein, denn nun wird mir der Text immer in 22px und Standardserif angezeigt.
    Also die Frage: Wie kann ich zu jeder Schriftalternative auch eine jeweilige Schriftgröße angeben?
  • in: Suche Mitarbeiter

    geschrieben von toolz

    [...]
    1. Schreibst du eigentlich auch mit?
    2. Warum sollen die Mitarbeiter denn mindestens 16 sein? Warum nicht 18 oder 21? Oder warum sollen sie nicht einfach gut schreiben können? Also was ist an 16 so besonders?
  • in: Wörter, die der deutschen Sprache fehlen

    geschrieben von toolz

    nemoinho schrieb:
    Yakamoz kommt aus dem türkischen und bezeichnet das Spiegelbild des Mondes im Wasser.

    Laut Wikipedia handelt es sich hierbei aber um das Meeresleuchttierchen. Das Spiegelbild des Mondes wäre dann ja einfach nur ein Meeresleuchten.
    http://de.wikipedia.org/wiki/Noctiluca_scintillans

    Allgemein kann ich diese Seiten empfehlen, ehe ihr glaubt etwas gefunden zu haben :wink:
    http://www.aktionlebendigesdeutsch.de/wortarchiv.php
    http://www.oberlehrer.org/vwg.html
  • in: Assembler teilt seltsam

    geschrieben von toolz

    [...]
    mov ebx,10
    teilen:
    div ebx
    push edx
    inc ecx
    test eax,eax
    jnz teilen
    [...]
    Das vorweg. Leicht zu sehen ist, dass ich mich an einer Schleife versuche, in welcher das EAX-Register geteilt wird und der Rest auf dem Stapel landet. Nur ist es leider so, dass die neunte Zeile niemals erreicht wird, dass also EAX die Null nicht erreicht und die Schleife nicht terminiert. Versuche dieses Verhalten mittels Debugger nachzuvollziehen offenbarten mir, dass der Wert von EAX nicht immer kleiner wird, sondern hin und her springt. Z.B. wird aus 0x664D3215 nach einer Division 0xA3D48502...
    Ganz sicher habe ich eine absolute Trivialität übersehen, aber ich muss euch bitten mir zu helfen, denn ich werden nicht schlau hieraus.
  • in: Zu viele Creditpoints im Studium

    geschrieben von toolz

    Mehr CP zu bekommen, als man braucht ist nicht gerade unüblich. In manchen Studiengängen muss man das sogar machen, um am Ball zu bleiben! Es ist nicht verboten mehr Module zu belegen, als man müsste, aber du darfst dein Studium dadurch nicht verlängern. Was das bedeutet entscheidet letztendlich deine Uni, aber niemand wird dir verbieten können nebenher mehr CP zu sammeln.
    Setzt du jedoch ein Semester aus und machst währenddessen nur afK oder sonstige Angebote, dann könntest du vielleicht Ärger bekommen.
    Zum Anrechnen kann man allgemein nichts sagen, dafür musst du schon die Uni nennen, aber generell gilt: Zu viele CP helfen nicht, denn es wird nur die maximale Anzahl angerechnet. Auf jeden Fall werden nur die afK gewertet, mit denen du deine CP voll bekommst, jedoch kann es da unterschiedliche Auswahlkriterien geben - Denkbar ist bspw., dass die afK gerade einmal solang einzählen, bis die Maximalanzahl erreicht ist und danach eine Verbesserung nicht mehr möglich ist, völlig gleich wie gut man ist oder wie viele weitere Module man wählt.
    Und allgemein lässt sich zudem noch sagen, dass der Einfluss von afK-Modulen in die Abschlussnote nicht spürbar ist.
  • in: C#: Sprache ändern

    geschrieben von toolz

    Klicken Sie im Menü Extras auf Optionen.

    Erweitern Sie im Dialogfeld Optionen die Option Umgebung, und klicken Sie dann auf Internationale Einstellungen.

    Wählen Sie in der Dropdownliste Sprache die Sprache aus, die für den Benutzeroberflächen-Text in der Entwicklungsumgebung verwendet werden soll.

    – oder –

    Wählen Sie in der Dropdownliste Sprache die Option Wie in Windows, um den Benutzeroberflächentext in der Entwicklungsumgebung in derselben Sprache wie das Betriebssystem anzeigen zu lassen.

    Zitat: http://msdn.microsoft.com/de-de/library/ms246590%28v=vs.80%29.aspx

    Wenn das nicht geht mal hier das Sprachpaket besorgen:
    http://www.microsoft.com/de-de/download/details.aspx?id=30681

    Nebenbei bemerkt kannst du nicht in C# die Sprache umstellen (was soll denn da passieren?), sondern nur in der Entwicklungsumgebung dazu.
  • in: Noch Bedarf an Lima-CO?

    geschrieben von toolz

    Hallo!
    Mir ist aufgefallen, dass die von mir gegründete Communio Obiurgationibus seit bereits einem Jahr inaktiv ist.
    Nun möchte ich fragen, ob denn noch Bedarf oder Interesse an einer solchen Gruppe besteht, oder ob ich sie nicht vielleicht löschen sollte. Vielleicht habt ihr auch Anregungen, was man anders gestalten könnte, damit die Gruppe bessere Aufmerksamkeit genießt.
    Wie wäre es bspw., wenn wir in Zukunft den Dienst bieten, für unsere Mitglieder selbst nach Verlinkungen zu suchen, anstatt dass diese sich selbst darum kümmern müssen?

    Noch einmal kurz der Überblick über die Lima-CO:
    In dieser Gruppe können Limanutzer nach Verlinkungen auf ihre Seite beten oder selbst Verlinkungen anbieten. Wird eine Verlinkung in die Gruppenliste eingetragen, sollten die Moderatoren hin und wieder diese Liste auf ihre Gültigkeit überprüfen, damit niemand auf die Idee kommt zu schummeln.


    Wenn noch Bedarf besteht, die Gruppe aber einfach ins Unterbewusstsein gerutscht ist, bin ich gerne bereit dieselbe komplett zu überarbeiten.
    Ich bin auf eure Einschätzungen gespannt.
  • in: Assembler - CALL beeinträchtigt Stapelspeicher

    geschrieben von toolz

    Ich habe die Erfahrung gemacht, dass der
    CALL
    Befehl den Stapel beeinflusst. Lege ich beispielsweise eine Zahl darauf ab, rufe eine Prozedur auf und versuche dann in derselben die Zahl vom Stapel zu erhalten, kommt eine andere Zahl zum Vorschein:
    mov ecx,15
    push ecx
    CALL prozedur
    ; ...
    prozedur:
    pop ecx
    cmp ecx,15
    ; ...
    ret
    Hier ist das Register verschieden von 15, im Gegensatz zu:
    mov ecx,15
    push ecx
    JMP prozedur
    ; ...
    prozedur:
    pop ecx
    cmp ecx,15
    Denn hier ist das Register gleich 15.
    Durch etwas Lektüre weiß ich, dass je nach Kontext durch den
    CALL
    Befehl der Befehlszeiger und manchmal auch das Codesegment auf den (?) Stapel gelegt werden, wenn ich jedoch folgendes versuche bricht das Programm ab:
    mov ecx,15
    push ecx
    call prozedur
    ; ...
    prozedur:
    pop si
    pop ecx
    push si
    cmp ecx,15
    ; ...
    ret

    Mir ist immernoch unklar, inwiefern der
    CALL
    Aufruf Einfluss auf den Stapelspeicher nehmen kann, oder ob es dafür einen eigenständigen Befehlsstapel gibt. Und wenn tatsächlich einfach der Befehlszeiger auf den Stapel geschmissen wird, wie kann ich ihn behutsam zwischenspeichern, meine Variablen abholen und den Zeiger dann wieder ablegen?
  • in: Assembler - Zahl in Gleitkommadarstellung

    geschrieben von toolz

    Huch! Danke. Alle TEST X,0 sind falsch gesetzt, da muss TEST X,X hin.
    Gut. Jetzt bleibt allerdings die Mantisse leer. Es sind also noch weitere Fehler drin...

    Kommentare: Ja... Ich dachte das stimmt. Umso blöder als ich das Fehlverhalten bemerkt habe. Die Kommentare nachträglich anzubringen kann in Assembler dauern - Ich bin noch nicht so gut darin. Eventuell kann ich die im neuen Jahr nachreichen.

    Edit: Im Grunde ist mir das zu fehleranfällig. Spricht etwas gegen folgende Methode?
    fild qword[ebx]
    fstp qword[ebx]
    Wenn nicht, dann werde ich wohl dieses verwenden. Aber irgendetwas stimmt selbst da nicht, denn allein diese zwei Zeilen erzeugen einen Speicherzugriffsfehler...
  • in: Assembler - Zahl in Gleitkommadarstellung

    geschrieben von toolz

    Hallo!
    Ich wollte mir eine effiziente Routine schreiben, welche Zahlen (Integer) in deren Gleitkommadarstellung umwandelt. Folgender Auszug sollte diese Identität im EBX-Register vornehmen:
    verbessert:
    elemzr:
        XOR ECX,ECX
        TEST EBX,EBX
        JNZ elemzr0
        RET
    elemzr0:
        ROL EBX,1
        MOV EDX,EBX
        AND EDX,1
        TEST EDX,EDX
        JZ elemzr1
        NEG EBX
    elemzr1:
        INC ECX
        ROL EBX,1
        MOV EAX,EBX
        AND EAX,1
        TEST EAX,EAX
        JNZ elemzr2
        JMP elemzr1
    elemzr2:
        SUB EBX,1
        CMP ECX,256
        JGE elemzr3
        AND EBX,2147483648
        ADD EBX,ECX
        ROR EBX,8
        TEST EDX,EDX
        JZ elemzr5
        JMP elemzr4
    elemzr3:
        MOV EBX,8
    elemzr4:
        ROL EBX,1
        ADD EBX,1
        ROR EBX,1
    elemzr5:
        RET
    Dabei handelt es sich um den FASM-Dialekt, dürfte aber dennoch allgemein verständlich sein.
    Nun mein Problem: Jede Zahl, die ich mit dieser Routine getestet habe kam unverändert wieder heraus...

    Kurze Erklärung: Der Exponent ist 8 Bit breit, die Zahl soll 4 Byte breit sein... Vielleicht habe ich mich auch irgendwo mit den Konstanten verrechnet...

    Wo ist also mein Fehler?
  • in: Einfach vertrackte Liste

    geschrieben von toolz

    In folgender einfach verketteten Liste muss ein (vertrackter) Fehler sein. Ich weiß nur leider nicht, wo...
    Ich kann mich heute damit nicht mehr beschäftigen, also gebe das Vergnügen mal an euch weiter!

    EDIT: OK, beachtet am Besten nur die zweite Variante. Außerdem arbeiten beide nach dem LIFO-Prinzip.

    typedef struct skette {
        char *zeile;
        struct skette *weiter;
    } kette;
    int anz_kette;
    kette test;
    void initkette() {
        anz_kette = sizeof(kette);
        test.zeile = NULL;
        test.weiter = NULL;
    }
    void merken(char* z, kette *anker) {
        kette *kopf = anker;
        while (kopf->weiter != NULL) kopf = kopf->weiter;
        if (kopf != anker) {
            kopf->weiter = malloc(anz_kette);
            kopf = kopf->weiter;
            kopf->weiter = NULL;
        }
        kopf->zeile = z;
    }
    char* erinnern(kette *anker) {
        kette *kopf = anker;
        kette *hals = NULL;
        while (kopf->weiter != NULL) {
            hals = kopf;
            kopf = kopf->weiter;
        }
        char* z = kopf->zeile;
        if (kopf != anker) {
            free(kopf);
            hals->weiter = NULL;
        } else kopf->zeile = NULL;
        return z;
    }

    Funktionsweise:
    Es werden hier Zeilen in einer "kette" genannten Liste (rückwärts) gespeichert oder ausgelesen. Leider scheint es, als ob immer nur ein Element der Liste bestünde (also der Nachfolger des Ankers ist immer NULL) und auch die gespeicherte Zeile beinhaltet nicht das, was sie sollte...


    2. Variante (vorwärts):
    void merken(char *z, kette *anker) {
        kette *rumpf = anker->weiter;
        anker->weiter = malloc(anz_kette);
        kette *kopf = anker->weiter;
        kopf->weiter = rumpf;
        kopf->zeile = z;
    }
    char *erinnern(kette *anker) {
        if (anker->weiter != NULL) {
            kette *rumpf = anker->weiter;
            char *z = rumpf->zeile;
            anker->weiter = rumpf->weiter;
            free(rumpf);
            return z;
        } else return "";
    }

    Hier stimmt anscheinend nur der Inhalt der Elemente nicht - Die Liste hat schonmal die richtige Anzahl an Elementen.

    Vielen Dank im Vorraus und frohe Weihnachten!
  • in: Java - Double klaut mir die letzt 0

    geschrieben von toolz

    Ich würde das nicht mit double lösen, sondern mit zwei ints für Minute und Stunde, aber das sollte dein Problem lösen:
    System.out.print("Der nächste Bus fährt um " + Bus);
    switch (Bus.toString().length()) {
    case 2: System.out.print('.');
    case 3: System.out.print('0');
    case 4: System.out.print('0');
    default:
    }
    System.out.println(" Uhr.");


    Alternativ eben so:
    System.out.print("Der nächste Bus fährt um " + BusStunde + ":"
    + (BusMinute.toString().length() == 1 ? "0" + BusMinute : BusMinute)
    + " Uhr.");


    PS: Entschuldigung für das ofte Korrigieren, ich wollte hier nur keinen falschen Code stehen lassen ;-)
  • in: Links in Forum

    geschrieben von toolz

    Ist ja unvergütet, also mal nebenbei:
    Ich bin dafür, die Möglichkeit neue Tabs oder gar Fenster öffnen zu lassen gänzlich aus dem HTML-Standard zu streichen... Oder zumindest sollte man beides (!) in FF ausschalten können :biggrin:
  • in: Download einbetten + maskieren

    geschrieben von toolz

    Wenn ich nichts übersehen habe handelt es sich dabei lediglich um meinen ersten Ansatz, der jedoch gegen die Bedingung (2) verstößt.
  • in: Download einbetten + maskieren

    geschrieben von toolz

    Vielleicht ist das nicht deutlich genug herausgekommen - Ich will natürlich dynamisch generierte Dateien zum Download anbieten.
    Und selbst, wenn nicht, dann wäre mittels Downloadserver die Bedingung (1) verletzt!
  • in: Download einbetten + maskieren

    geschrieben von toolz

    Hallöchen!
    Gibt es eine Möglichkeit einen Download mittels PHP zu realisieren und dabei die folgenden zwei Dinge einzuhalten?
    1. Pfad maskieren
    2. Download einbetten (d.h. auch HTML-Inhalt übermitteln)

    Ich schaffe irgendwie immer nur eines von beiden...
    Ansätze:
    application/octet-stream
    attachment; filename
    In PHP, wobei hier das Einbetten in HTML nicht funktioniert,
    oder
    <embed>
    In HTML, wobei hier das Maskieren nicht möglich ist.

    (Warum das Forum "HTML, CSS & Javascript": Die Umsetzung ist zwar in PHP, aber hier geht es ja primär um Syntax von HTML)
    Vielen Dank!
  • in: Kleines Browsergame "Akinom"

    geschrieben von toolz

    Nicht schlecht für den Anfang!

    Meine Kritik:
    1. Sind das deine ersten geschriebenen Worte überhaupt? Achte einfach etwas mehr auf Rechtschreibung. Mich, wie bestimmt auch viele andere hier, schreckt sowas ab.
    2. Bei jedem zweiten (?) Angriff (gegen KI) verursache ich keinen Schaden
    3. Wofür ist ein Schild gut?
    4. Natürlich sind die vorhandenen Karten eher unausgeglichen, aber das ist ja nur Kosmetik
  • in: Richtige PC-Spiele auf dem Samsung Ativ Smart PC

    geschrieben von toolz

    So weit ich das weiß (und ich verfolge dieses Thema sehr aufmerksam) gibt es noch keine Windows 8 Pro - Geräte zu kaufen! Es ist auch nicht möglich, Windows 8 Pro auf ein Gerät aufzuspielen, das eine ARM Architektur hat - Gleichzeitig kann Windows 8 RT nur auf ARM Architekturen laufen.

    Noch eine Sache: Selbst Linux kann nicht verhindern, dass für ARM geschriebene Software nicht auf Intelarchitektur läuft. Das liegt ganz einfach an einer unterschiedlichen Befehlsreferenz. Natürlich gibt es hardwareunabhängige Programme (Java), aber die gibt es dann für Windows auch.

    Was ich sagen wollte: "Echte" PC- Spiele sind auf Tablets momentan noch nicht spielbar.
  • in: Onlinedebugger für Assembler

    geschrieben von toolz

    Hallo allerseits!
    Gibt es Onlinedebugger für Assembler? Am Besten für FASM, aber ich nehme auch gerne alle anderen Assemblersprachen, jedoch habe ich noch keinen Debugger entdeckt. Ich suche ausdrücklich nicht nach Compilern!
    Ich möchte den eingegebenen Kode im Browser auf der Internetseite Schritt für Schritt durchgehen können - ich will mir kein Kompilat herunterladen und ausführen müssen.
    Eine bereits erfolglose Suche lieferte lediglich zwei Kompilierer, die sich fälschlicherweise als Debugger auswiesen, also keine Möglichkeit besitzen, den Kode Zeile für Zeile durchzugehen und alle Laufzeitvariablen abfragen zu können.

    Wenn es da wirklich keinen geben sollte, welchen lokal laufenden Debugger könnte man empfehlen (Windows oder Linux)?
  • in: Free Pascal dynamische Arrays

    geschrieben von toolz

    Die einzige Möglichkeit in Pascal dynamische Felder zu erzeugen ist das Verwenden von Listen. Pascal ist eine stark beschränkte Programmiersprache - Was auch immer man mit Pascal programmieren möchte lässt sich von vornherein meist mit begrenzten Feldern abhandeln.

    Schlüsselwörter wie "new" kenne ich aus Pascal nicht - es handelt sich immerhin um keine objektorientierte Programmiersprache.

    Auch wenn die Implementierung einer Liste in Pascal unkonfortabel erscheint, gibt es keine andere Möglichkeit.
  • in: Ist Religion gut, schlecht oder ein zwischending?

    geschrieben von toolz

    bladehunter schrieb:
    Daher werde ich auf der Basis argumentieren, dass ich Religion als etwas bezeichne, das in der öffentlichen Wahrnehmung hauptsächtlich gültig ist: Der Glaube an ein oder mehrere übermenschliches Wesen, das Regeln und Strafen aufstellt, sowie in das Weltgeschehen eingreift, ohne dass es für dessen Existenz einen Beweis gibt.
    Das stimmte noch bis ins späte 19. Jahrhundert, aber mittlerweile ist diese Ansicht überholt, denn Religion ist in der Mehrheit bereits nicht mehr der Glaube an Transzendetes - siehe auch die Religion des Siegmund Freud. Oftmals ordnet man auch irrtümlich den Atheismus nicht als Religion ein, aber wenn man einmal die grundlegenden Schriften des Atheismus (von Ludwig Feuerbach) gelesen hat, versteht man, dass der Atheismus eine selbsablehnende Religion ist. Es wird dabei an allen Grundfesten gezweifelt - Tatsächlich gibt es im Atheismus keine Transzendenz mehr, aber immer noch das Übermenschliche - das die Nationalsozialisten für ihren Führergedanken verwendeten - da schon Freud erkannt hatte, dass man immer an etwas höheres glauben würde.
    Ich sehe hier auch eine gewisse Widerspiegelung der gesellschaftlichen Konflikte. Möglichst alles soll über den Haufen geworfen werden, allerdings gibt es nicht immer einen klaren Gegenpol - es gibt insbesondere keine Antireligion:
    Wer glaubt zu wissen, dass Religion grundlos ist, der verfolgt eben wieder einen Glauben - und somit eine Religion...

    Vielleicht solltet ihr erstmal den Begriff Religion diskutieren, denn ich glaube der ist noch nicht allen ganz klar.
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    Ich glaube jetzt, dass nur wenige Nutzen aus einem solchen Programm ziehen könnten. Ich werde es demnach wohl nicht programmieren, danke für eure Einschätzungen!
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    mlrecords schrieb:
    Ich finde tchabs Idee auch super.

    Ich hätte auch eine Idee, wie du das lösen könntest. Versuch zu zeigen, dass P = NP gilt, dann hast du eine Lösung für tchabs Idee, die effizient läuft.
    Auch wenn wir hier im Spamforum sind, bitte ich das Niveau hoch zu halten...

    Anscheinend ist die Nachfrage nicht besonders hoch. Ich bitte dennoch um weitere Einschätzungen.
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    Das geht jetzt an meiner eigentlichen Idee vorbei, aber ich befürchte, dass es sich bereits ab Halbierung der Datenmenge nicht mehr lohnen würde - Die Zeit, die man braucht, um die restlichen Daten herunterzuladen verschlingt der Probieralgorithmus sicherlich bereits. Von der Laufzeit her würde ich schätzen, der Download ist in Formel: O(n), während die von tchab vorgeschlagene Variante in Formel: O(n * e^n) liegen dürfte...

    Es geht in meinen Fällen aber nur um kleine (1-Bit) Fehler, wo sich soetwas lohnen könnte...
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    hackyourlife schrieb:
    Wenn du diesen Algorithmus entwickelt hast kannst du ihn dir patentieren lassen und wirst bestimmt Millionär ;-)
    Dier Herangehensweise, die ich anstrebe ist einfach: Für jeweils X Byte wird ein eigener Abschnitt im Hash angelegt. Stimmt nun ein Bereich des Hashes nicht mehr mit dem Original überein, ist klar, in welchem Sektor ein Fehler ist.
    Schwieriger wird es natürlich den Fehler zu beheben - Die Sektoren dürfen nicht zu klein sein, denn der Hash sollte bestenfalls selbst bei großen Programmen nicht länger als (schätzungsweise) 100 Zeichen sein, das ließe sich aber machen, indem man für jeden Sektor Untersektoren anlegt, die dann auf selbige Weise behandelt werden, wie das ganze Programm.

    Das ist aber nicht mehr trivial, klar. Ich frage ja auch nur, ob es das braucht, damit sich jemand mit dem Validierer abfindet :thumb:
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    Ja - ich befürchte, dass die Benutzung des Programmes maßgeblich von der Aktualität der Datenbank abhängt...
    Ich habe zwei Erweiterungsideen:

    1. Man könnte die Möglichkeit implementieren, Hashes von fehlerfreien Daten hochzuladen
    2. Durch einen geschickten Hashalgorithmus könnte man kleinere Fehler nach Wunsch korrigieren lassen, indem der schadhafte Sektor (der Algorithmus muss natürlich so konstruiert sein, dass sich ein Fehler lokalisieren lässt) so lange verändert wird, bis die Prüfsumme wieder stimmt.

    Was haltet ihr davon?
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    Nein, es geht um die Überprüfung von Programmen, die man nicht selbst geschrieben hat.

    Ein Beispiel:
    Du lädst die 7zip herunter, installierst es und erhältst beim Start eine Fehlermeldung. Womöglich hatte die heruntergeladene Datei eine Prüfsumme beigelegt, oft jedoch nicht. Jetzt könntest du das fiktive Programm einsetzen und auf 7zip loslassen - Von einer Datenbank wird dann die Prüfsumme angefragt und eine eigene mit den Daten von 7zip angelegt, anschließend beide abgeglichen.
    Gibt das Programm dann aus, dass alles in Ordnung ist liegt das Poblem nicht an fehlerhaften Daten.
  • in: Kleines Validierungsprojekt

    geschrieben von toolz

    Ich habe eine fixe Idee von einem Programm, mit dessen Hilfe man alle möglichen Daten validieren kann. Es würde sich nur unwesentlich von einem Checksummenprogramm unterscheiden, mit dem kleinen Unterschied, dass dahinter eine Datenbank stehen soll, auf der von bekannten Programmen Validierungshashs angelegt wurden (gerade groß genug, um höchstwahrscheinlich alle Fehler zu finden). Je nach Umsetzung könnte man sich auch noch die fehlerhafte Datei ermitteln lassen (ansonsten würde man nur erfahren, dass überhaupt ein Fehler vorliegt)...

    Aber ich verschwende nur ungern meine Energie in ein solches Projekt (auch wenn es abgesehen von der Datenbank halb so wild ist), wenn es niemand benutzen würde. Daher frage ich hier, ob Interesse an einem solchen Programm bestünde?

    Gibt es rechtliche Probleme beim Anlegen der Hashs?

    Würdet ihr mitprogrammieren wollen?
  • in: 19:48 Was macht ihr

    geschrieben von toolz

    Vor mir ein Bildschirm.
    Unter mir ein Stuhl.
    Flankiert von Lautsprechern.
    Hinter mir eine Wand.
    Ich tippe - immer noch - immer noch...
  • in: Sicherheitstest

    geschrieben von toolz

    Ich bin auf Zufall mal wieder auf dieses Thema gestoßen und möchte doch noch einen Kommentar abgeben. Der Quelltext bleibt unveröffentlicht, da alles andere nur zum Kopieren animieren würde. Ich bin bereits zu einigen professionellen Informatikern (bei denen ich sicher bin, dass sie den Code nicht vervielfältigen) gegangen, mit deren Hilfe ich noch letzte Korrekturen vorgenommen habe. Kurz gesagt ist der Algorithmus also mittlerweile (erfolgreich) im Einsatz. JA, ich habe keine neue IDEE umgesetzt, aber der Code ist natürlich auf den Sicherheitsaspekt optimiert. Das heißt ihr erfahrt kaum Neues, wenn ihr ihn sähet und bereits in die sicherheitstheoretische Informatik eingearbeitet habt.
    Ich weiß, dass jetzt wieder viele von euch Dinge interpretieren werden, dich ich niemals ausdrücken wollte, aber ich möchte nur noch auf eines Hinweisen: Wenn ich in diesem Beitrag vom Quelltext gesprochen habe, so meinte ich immer den Sicherheitsrelevanten - Also den Serverseitigen. Warum auch immer hier eine hitzige Diskussion über das UI entstanden ist... darum ging es doch nie.
    Noch immer kam kein Vorschlag, wie man an die php-Dateien hätte kommen können, um zumindest einen Ansatz zum Hacken zu bekommen.
    Vergesst doch für einen Moment eure Vorbehalte und akzeptiert, dass es mir N I E um die Oberfläche, also das JS ging, da es keinen Aufschluss über das System geben K A N N.
  • in: Sicherheitstest

    geschrieben von toolz

    So, das wars!
    Wie erwartet ist zwar niemand auf die Lösung gekommen, aber leier hat mir auch niemand helfen können. Um alles zusammenzufassen möchte ich einmal eine Analogie finden:

    Nehmen wir an, ich hätte euch einen von mir entworfenen Safe vorgestellt und erhoffte mir von euch Schwachstellen zu finden. Klar, da gibt es die Tresortür mit dem Nummernschloss und weil ihr mich so dazu gedrängt habt, habe ich die euch auch gezeigt, aber mit dem deutlichen Verweis, dass die Konstruktion der Tür irrelevant ist - Um sie zu öffnen braucht man eine bestimmte Zahlenkombination, die man kaum herausfinden kann und selbst wenn, wer weiß, was im Safe ist? Der Text zumindest nicht.
    Ihr habt mir nun solche Antworten gegeben:
    "Was macht es für einen Sinn, den Safe zu knacken?"
    "Kann man den Safe automatisch öffnen?"
    "Der Safe könnte sich doch selbst öffnen!"
    "Ich würde alle Kombinationen ausprobieren."
    "Das ist unnötig schwer, kannst du ihn nicht für uns aufmachen?"
    "Die Tür ist zerkratzt!"
    "Du bist schlecht, die Tür geht ja gar nicht auf..."

    Leider bringt mir das nichts. Aber so weiß ich zumindest nun, dass das hier das falsche Forum für Sicherheitsfragen ist.


    Ja, ich hätte die 50€ wirklich gegeben, aber es ist ja nun nicht mehr nötig. Von nun ab gibt es keinen Gewinn mehr! Ich gebe hiermit auch die Lösung bekannt:
    Es tanzen 21 Schlümpfe auf dem Wasser.
    K7 U3 M6



    Ich glaube ich brauche mich nicht zu bedanken.
  • in: Sicherheitstest

    geschrieben von toolz

    sebulon schrieb:
    ich werd mich nciht wiederholen, ich hab dir gesagt, wie man rein kommt... aber wenn du nciht lesen kannst, ist es nciht mein problem...
    Nein.
    Du hast mir gesagt, wie du denkst, dass man reinkommt.
    Allerdings liegt deinem ganzen Geschwafel ein einfachen Fehler zugrunde: Du versuchst mir in sämtlichen Punkten zu widersprechen, aber dabei übersiehst du, dass ich derjenige bin, der alles über das System weiß, während du nichts darüber wissen kannst.
    Ich habe (in diesem Thema) noch keine einzige Fehlinformation herausgegeben und werde das auch in Zukunft nicht tun. Du brauchst dich nicht anstrengen wieder einen ellenlangen, aber besonders inhaltslosen Text zu schreiben, der dann doch nur wieder gegen meine Person gerichtet ist, denn weitere Beiträge von dir werde ich (hier) sicher nicht mehr lesen.

    Edit: Leider schließt du dich so selbst von dem 50€ Gutschein aus, aber ich bezweifle, dass es dir darum geht, denn deine Bemühungen scheinen weniger dem Programmieren, sondern vielmehr dem Diffarmieren gewidmet zu sein.
  • in: Sicherheitstest

    geschrieben von toolz

    sebulon schrieb:
    außerdem hast du nen denkfehler... es sind nur 40^16...
    Danach habe ich aufgehört zu lesen, ich bezweifle, dass du mir helfen kannst, wenn du bereits daran zweifelst...

    OK, nehmen wir an, es gibt nur ein Zeichen. Gibt es dann 40^1 Möglichkeiten das Zeichen mit sich selbst zu kombinieren? Nein! (Wenn du es nicht weißt: Es sind 1^40 = 1)

    Es wäre wirklich besser, wenn du nun endlich aufhörst an meinen Aussagen zu zweifeln. Ich habe nicht vor, euch sinnlos zu beschäftigen. Vielmehr möchte ich euch und mir Zeit ersparen.
  • in: Sicherheitstest

    geschrieben von toolz

    Tatsächlich ist es möglich das System zu automatisieren - Das ist es ja auch bereits. Jedoch ist es in diesem Fall elementar keine Benutzeroberfläche zu bieten - Warum seht ihr, sobald ich den Quelltext veröffentlichen werde (Wenn ich das hier machen sollte und das mache ich nur dann, wenn es hier auch Leute zu geben scheint, die sich sehr gut in dieser Thematik auskennen).
    Hat man sich ersteinmal authentiziert, dann kann man den Text nach belieben ändern. Vielleicht verstehe ich deine Frage auch nicht richtig, aber wenn du meintest: "Geht das auch automatisch?", dann ist meine Antwort: "Ja, und das ist es bereits."

    Weiterhin frage ich mich, wie mein System sich selbst aushebeln könnte. Das ist in der Tat interessant, ich danke dir für diesen Einwurf! Solche Antworten hatte ich mir eigentlich erhofft.
  • in: Sicherheitstest

    geschrieben von toolz

    Das klingt doch jetzt mal interessant!
    Ich bin gespannt, auch wenn ich euren Ansatz noch immer in Frage stelle. Es bringt wirklich nichts das Passwort zu erraten oder zu ändern.

    Ach:
    sebulon schrieb:
    die auswahl schickt man so lange über proxies ab, bis IP gesperrt wird... es ist ein hinderniss, aber eine wirklich sichere sache ist das nicht... vor allem da ich vermute, dass alle user denselben code haben...
    Das finde ich irgendwie sehr unüberlegt. Hast du nicht zuvor selbst herausgefunden, dass es für das Passwort (und da unterstelle ich dir sogar schon etwas, die 0 hast du ausgelassen) 17^40 Kombinationen gibt? IPs gibt es nur 256^4. Das bedeutet, du kannst auf diese Weise 1,65179769 * 10^49 Möglichkeiten nicht testen oder sehe ich das falsch?
    Macht insgesamt eine Wahrscheinlichkeit von 2,60017756 * 10^-40 (für jeden normalen Float-Typ also gleich 0), dass du das Passwort findest... Das dir dann aber nichts nützt :thumb:
  • in: Sicherheitstest

    geschrieben von toolz

    Der Vergleich hinkt. Ich fordere keinen auf, irgendetwas zu machen.
    Ich bitte lediglich diejenigen, die sich damit auch auskennen, mein System auf Sicherheitslücken zu testen. Und da ich dieselben im Code bereits im privaten Umfeld stark ausgemerzt habe geht es nun darum, Türchen, die ich noch nicht erwägt habe aufzufinden. Also alle Wege, die um das System herumführen!
    Ich gebe euch deshalb keinen Code und lasse euch deshalb nicht Brute-Force mäßig herumprobieren, weil diese Variante an den Text zu kommen für mich nicht interessant ist.

    menschle schrieb:
    Um Dir Deine eigene Arbeit abzunehmen: :biggrin:
    http://toolz.lima-city.de/geheim/nakra1.js
    ? Das ist nicht die unkomprimierte Datei und ich würde mich wundern, diese hochgeladen zu haben...
  • in: Sicherheitstest

    geschrieben von toolz

    Mh...
    Komisch. Das ist mir gar nicht aufgefallen, liegt wohl daran, dass ich die Datei noch mit massig Steuerzeichen und Kommentaren habe. Bist du dir sicher, dass du die vollständig entpackt hast? (Bin gerade an einem anderen Rechner und habe sie nicht parat)
    Wenn ja, dann werde ich sie später, sollte ich das System einmal verwenden, wohl einfach so hochladen, wie sie ist.

    So: Wie wärs denn nun nicht andauernd darüber zu meckern, wie schwer ich es euch mache, sondern auch mal produktiv zu sein. Schließlich suche ich nach Sicherheitslücken - Auf gehts!
  • in: Sicherheitstest

    geschrieben von toolz

    philippkern schrieb:
    Adrians ist ein Knight und kann damit auf die Userspaces zugreifen. Er kann sich also einfach den Sourcecode deiner geheim.php ansehen ... ;)
    Das würde ihm aber nichts bringen. Kann er gerne machen, solange er den Quelltext nicht veröffentlicht. Gefragt ist ja nicht nach dem Code, sondern nach dem Text, den ein Benutzer sehen würde, wenn er sich erfolgreich anmeldet!

    bladehunter schrieb:
    Und hast du den JavaScript-Obfuscator, den du verwendet hast, selber geschrieben?
    Ich habe nichts obfuskiert. Ein paar Javascriptdateien sind allerdings etwas zu groß geworden, die musste ich komprimieren.

    thomasba schrieb:
    Du willst, das es jemand probiert, machst ihm aber durch die IP-Sperre das leben unnötig schwer?
    Ja, denn ich suche nicht denjenigen, der mein System hacken kann, sondern nur Schwachstellen darin. Brute-Force zu erlauben wäre eine Schwachstelle.
  • in: Sicherheitstest

    geschrieben von toolz

    adrians schrieb:
    Okay.
    Sehe ich das richtig, wenn ich dir den Code gebe... ohne ihn zu erraten... Dann kriege ich von dir einen 50€ Gutschein? Kann ich das schriftlich haben?
    Wenn du mit "Code" den Text meinst, den ein Benuter nach erfolgreicher Anmeldung sieht, dann ja. Um zu wissen, dass du nicht geraten hast, sollst du dann aber noch eine Information zusätzlich geben, die nur derjenige wissen kann, der sich auch an den Text gehackt hat.

    Und weil ihr alle so darauf drängt:
    Meldet euch an mit http://toolz.lima-city.de/geheim/geheim.php?b=1. Dann habt ihr den ersten Schritt in einem ganzen Marathon gemacht :thumb:
    Aber vorsicht, wer da versucht Brute-Force mäßig etwaige Passwörter zu erraten, dessen IP wird automatisch gesperrt.

    Ach: Ja ein Benutzer kann sich äußert beqeum einloggen... Wenn er weiß, wie...
  • in: Sicherheitstest

    geschrieben von toolz

    Entschuldigung, aber wenn ihr nicht einmal den ersten Schritt schafft, dann wäre es vermessen zu erhoffen, dass ihr Fehler in dem Quelltext findet :lol:

    Aber ich denke nach der Woche werde ich den Quelltext vielleicht wirklich mal hochladen.
    Ich sehe gerade: Wer sich geschickt anstellt kann durch ein Versäumen meinerseits sogar einen Teil davon schon abrufen...
  • in: Sicherheitstest

    geschrieben von toolz

    Den Quelltext möchte ich nicht der Öffentlichkeit preisgeben - das habe ich im privaten Kreis gemacht. Zumindest da wurde keine Möglichkeit entdeckt (mit oder ohne Quelltext) das System auszutricksen.
    Tatsächlich bin ich der Meinung, dass es nicht möglich ist, an den Text zu kommen, sollte er nicht für einen bestimmt sein.
    Außerdem war ich davon überzeugt, dass die Anmeldehürde für euch kein Problem ist, aber es scheint ja bereits an einer simplen Authentifizierung zu scheitern :biggrin:.
    Danke dennoch, mir ist bereits ein kleiner Fehler aufgefallen, den ich aber nur offline korrigieren werde.


    Das mit dem Anreiz ist eine gute Idee! Wer den Text innerhalb der oben angegebenen Frist (21.8.2012 um 18 Uhr) herausfindet, und zwar nicht durch bloßes Erraten, der bekommt einen 50€ Gutschein für Amazon.
    Zum Punkt Erraten: Wer tatsächlich den Text erhackt, der hat eine weitere Information. Ich unterscheide anhand dieser Information, ob geraten wurde, oder nicht.


    Am Ende wird natürlich aufgelöst, welche zusätzlichen Informationen möglich gewesen wären und wie der Text lautet.
  • in: Sicherheitstest

    geschrieben von toolz

    Also gut, ein weiterer Tipp:
    Mann muss sich zunächst anmelden, um den gewünschten Text zu erhalten. Und weil ich so lieb bin: Die ID des einzigen Benutzers des Systems ist: 1.
    Ich will aber nicht mehr verraten, da ich das System bei Erfolg auch einsetzen möchte.

    Aber ganz nebenbei: Natürlich ist das nicht einfach! Ich möchte aber erfahren, ob es überhaupt möglich wäre, den Text zu erhalten.

    fuhnefreak schrieb:
    So, und was soll jetzt falsch sein?
    Gesucht ist natürlich nach dem richtigen Text. Den, den der oben erwähnte Benutzer sieht, wenn er sich anmeldet.
  • in: Sicherheitstest

    geschrieben von toolz

    Ich freue mich zu sehen, dass ihr anscheinend noch ansatzlos seid :cookie:
  • in: Sicherheitstest

    geschrieben von toolz

    Damit es eindeutig wird, von welchem Text die Rede ist:
    Gesucht ist nach einem Satz und anschließend drei Kombinationen aus Buchstaben und Zahlen.

    Und ja: Der ist da tatsächlich irgendwo!
  • in: Sicherheitstest

    geschrieben von toolz

    Hallo :wave:

    Ich habe jetzt mein Sicherheitssystem vervollständigt und erlaube euch, es (die Internetseite) für eine Woche, bis zum 21.8.2012 um 18 Uhr also, es auf Herz und Nieren zu testen. Dabei soll das Ganze aber konstruktiv ablaufen, ich erwarte von euch eine Beschreibung, woran eure Zugriffsversuche gescheitert sind, oder wie ihr es geschafft habt, die Nachricht zu erhalten.
    Bestenfalls könnt ihr mir noch vorschlagen, wie ich das System verbessern kann.

    Drei Hinweise gibts von mir:
    1. Der geschützte Texet befindet sich auf der Seite http://toolz.lima-city.de/geheim/geheim.php
    2. Ich bitte euch die Datenbank und den Server nicht unnötig zu stressen, da sie Lima City gehört!
    3. "Es ist ein Fehler aufgetreten" ist nicht der gesuchte Text.

    Über die Arbeitsweise des Systems möchte ich nichts bekanntgeben - Wenn es gar nicht erst möglich ist, herauszufinden, wie es funktioniert, dann umso besser.
    (Wenn ich alles richtig programmiert habe, dann dürfte es einfacher sein, den Text zu erraten, als das System zu knacken.)

    Wer meint den Text herausgefunden zu haben kann den ebenfalls in seine Antwort schreiben (wird aber meiner Meinung nach nicht passieren).
    Sobald aus irgendwelchen unerfindlichen Gründen der Text hier genannt wurde, gebe ich das bekannt. Alle unkommentierten Lösungsvorschläge sind falsch.


    Viel Spaß!
  • in: Framerate - Homepageranking

    geschrieben von toolz

    Immerhin finde ich die Seite wunderschön!
    Es braucht aber tatsächlich noch ein bisschen mehr, um mich nochmal auf die Seite zu locken. Z.B. irgendwelche Grafiken oder Informationen über den Serverstandort, etc. ...
    Ganz nebenbei: Wieviel hat denn ein 10 Jahre langes Copyright gekostet? Und warum kaufst du dir das, obwohl das in Deutschland sowieso sinnlos ist?
  • in: Suche Designer für Browsergame

    geschrieben von toolz

    Schaut doch auchmal in diese Gruppe rein:
    http://www.lima-city.de/groups/browsergames
  • in: Suche Designer für Browsergame

    geschrieben von toolz

    Um hier die Fronten mal zu klären wäre ich dafür, dass ihr euren Quelltext offen legt, wenn der nicht gerade streng geheim ist. Wir helfen euch sicherlich dann auch einige Fehler zu suchen und auszumerzen. Ganz nebenbei wüssten wir, woran ihr seid.
  • in: Suche Designer für Browsergame

    geschrieben von toolz

    Es sind eben schon viele leere Ordner und Dateien hochgeladen worden...
    :thumb:
  • in: Wahlrecht für den Bundestag verfassungswidrig. Was nun?

    geschrieben von toolz

    batleth schrieb:Ich einfach das Personen in politischen Ämtern die indirekt gewählt worden sind keine berechtigte Vertretung der Interessenten darstellen.
    Und genau das sollen sie auch nicht sein. Ist der Gedanke nicht fabelhaft, dass wir ein Abgeordnetenhaus haben, in dem wir nicht selbst die Verantwortung übernehmen müssen, aber dafür sehr wohl bestimmen, wohin die Reise geht?
    Man stelle sich vor wir würden die politische Entscheidungsebene als vollständig vom Volk legalisiert ansehen. Irrt sich dann einmal die Menge und stellt ein Gesetz auf, dann ist dieses auf sehr lange Zeit durch die bloße Majorität garantiert. Irrt sich jedoch ein Abgeordneter, dann ist das Volk weiterhin in der Lage, ein beschlossenes Gesetz auch wieder ausuhebeln, denn ein Abgeordneter handelt eben nicht vollständig im Sinne des Volkes.
    Direkte Demokratie kann nur in winzigen Gemeinschaften funktionieren (und da mag sie auch ganz gut sein), aber in einem pluralistischem Staat wie Deutschland brauchen wir eine gewisse Garantie, dass nicht sofort alle Gesetzesbeschlusse legalisiert sind.
  • in: Vorstellung und zugleich Info-beschaffung

    geschrieben von toolz

    xcoc schrieb:
    Nun wollte ich doch auch fragen was als gewaltverhärlichend angesehen wird??
    :-o Die Rechtschreibung verherrlicht mich zu Gewaltanwendung...

    Und zu deiner Frage kann ich nur sagen, dass ich es sehr seltsam fände, wenn eine (neutrale !) Internetseite über ein Spiel (egal welchen Inhaltes) als gewaltverherrlichend angesehen wird - Wenn man darauf verzichtet Videos oder Bilder einzufügen kann so gut wie gar nichts passieren. Es sei denn, man schwingt irgendwelche Parolen, aber wer macht das schon?
  • in: Passwort sicher

    geschrieben von toolz

    Also ich würde es mit der Datenbank lösen, weil ich mir ungern den Zugang zu meiner eigenen Seite sperren lasse :wink:
    Pseudo:
    mit Datenbank verbinden
    $nr = {};
    $nr[0] = mysql_request( "SELECT `nr` FROM tabelle WHERE `ip` = " . $_SERVER['REMOTE_ADDR'] );
    if (mysql_num_rows($nr[0]) != 1) $nr[0] = 0;
    else $nr = mysql_fetch_row($nr[0]);
    if ($nr[0]  < 3) {
       if (passwort == richtig) {
          mysql_request( "UPDATE tabelle SET `nr` = 0 WHERE `ip` = " . $_SERVER['REMOTE_ADDR'] );
          Seite anzeigen!
       } else {
          mysql_request( "UPDATE tabelle SET `nr` = " . ($nr[0] + 1) . " WHERE `ip` = " . $_SERVER['REMOTE_ADDR'] );
       }
    }
    Dateiende!
    Cookies würde ich nicht nehmen, da diese einfach vom Benutzer gelöscht werden können...
  • in: Rechtschreibhilfe bei lima und firefox

    geschrieben von toolz

    Weil mein Vorredner das noch nicht erwähnt hat:
    http://support.mozilla.org/de/kb/Rechtschreibpr%C3%BCfung%20nutzen
    Hier findet sich eine sehr genaue Anleitung, wie die Rechtschreibprüfung unter Firefox aktiviert werden kann. Ansonsten empfehle ich dir, dich etwas mehr mit der Sprache auseinanderzusetzen - Es reicht schon, wenn du täglich mal etwas liest, damit deine Rechtschreibfehler (die tatsächlich ausufern) eingeschränkt werden.
  • in: Sims 3

    geschrieben von toolz

    Gibt es wirklich so viele Themen mit der gleichen Überschrift :wow:
  • in: kondensator problem

    geschrieben von toolz

    exklusive-digital-kunst schrieb:
    Bei der Reihenschaltung von Kondensatoren ist die Gesamtkapazität gleich dem Kehrwert der Summe der Kehrwerte der Einzelkapazitäten
    Also!
    Eben keine Reihenschaltung, sondern schön parallel, denn ansonsten ist 1/5 + 1/5 = 2/5 und nicht 5 + 5 = 10...
    Den 20nF kannst du vergessen, der fasst zuviel und dann stimmt die Frequenz in der Schaltung möglicherweise nicht mehr.
  • in: 3 Wort Gedichte

    geschrieben von toolz

    , also blickte ich ...

    :wow:
  • in: Vorschläge, Verbesserungshinweise zu meiner Webseite

    geschrieben von toolz

    php-test1 schrieb:Achso, ich dachte das die Hintergrundmusik die Webseite ein bischen Interessanter macht.
    Wenn überhaupt, dann würde ich dem Besucher es anbieten, Musik zu aktivieren. Niemals aber von selbst abspielen.
    Sehr von Nachteil kann deine Variante nämlich sein, wenn jemand zuvor die Lautstärke voll aufdrehen musste und dann deine Webseite besucht...

    (OK: Ich bin zu langsam im Schreiben)
  • in: Fuhnefreak

    geschrieben von toolz

    Klar, mal abgesehen von dem grünen Etwas:

    Ich habe das Gefühl, dass ich kein Passwort brauche, um mich bei dir anzumelden. Szenario: Ein beliebiger Nutzer meldet sich mit seinem Passwort bei deinem Dienst an und vergisst es, sich auszuloggen. Ich tippe dann einfach http://www.fuhnefreak.lima-city.de/bilder?user=test (Statt "test" steht dann dort der Benutzername) in meine Adressleiste und bin angemeldet?
    Zumindest sagt mir Firefox, dass der Server lediglich die Adresse anfordert und anschließend kann ich mich ins Profil reinklicken (Oben auf "Members")...

    Kann auch sein, dass ich falsch liege, aber besser ich äußere meine Vermutung und sie ist falsch, als dass ich sie verschweige :wink:


    Weitere Nachforschungen: OK, so einfach geht es doch nicht, aber jetzt habe ich das Problem, dass ich mich nicht mehr anmelden kann, wenn ich einmal das Passwort einmal falsch eingegeben habe! (Vlt. liegt es auch daran, dass oben Beschriebenes gerade bei mir nicht mehr geht)
  • in: Diffie Hellman - Austausch

    geschrieben von toolz

    Im Rahmen meines Verschlüsselungsprojektes habe ich bei meinen bisherigen Fortschritten erhebliche Zweifel und bin zu der Meinung gekommen, dass das Verfahren besser in Absprache mit anderen entwickelt werden kann. Zur sicheren Verschlüsselung fehlt mir nun nurnoch ein ebenso sicherer Schlüssel, weshalb ich mich am Diffie-Hellman-Schlüsselaustausch versuche.
    Im Bezug auf große Zahlen habe ich in PHP aber leider kaum Erfahrungen gemacht, möchte aber auch nur äußerst ungerne fremde Bibliotheken auf den Server laden müssen, um mit eben solchen umgehen zu können. Das Speichern der Zahlen schaffe ich noch selbst, aber beim Berechnen einer Potenz mit einem Exponenten, der über 30 Stellen hat bin ich überfragt.

    Weiß jemand, wie ich das am Besten realisiere?
  • in: Linux Elementary - Grafikfehler

    geschrieben von toolz

    Seitdem ich mein neues Elementary OS auf den neuesten Stand gebracht habe sehe ich im File Manager bei der Verzeichnisstruktur hässliche Lücken zwischen den Ordnereinträgen (siehe Anhang). Ganz nebenbei schließt der Letzte auch nicht richtig ab - es sieht aus, als würden dort noch Einträge kommen...
    Zuvor war das allerdings zusammengesetzt, also frage ich mich, wie ich das wieder rückgängig machen kann (ohne auf eine ältere Version umsteigen zu müssen). Hat jemand eine Idee, woran das liegt und was man machen muss, um es zu korrigieren?
    Oben direkt über den Ordnern die weißen Lücken: http://s14.directupload.net/images/120621/chne7dfp.png
  • in: Proportionalität gleichmäßige Verzögerung

    geschrieben von toolz

    Die negative Proportionalität ist zumindest in der Fachliteratur nicht gebräuchlich. Statt dessen verwendet man auch dort die Aussage Formel: a \propto b, selbst wenn Formel: a = -b. Im Sachverhalt der Proportionalität geht es wirklich nur darum, einen Zusammenhang der beiden Größen zu verdeutlichen. Wie genau dieser dann aussieht ist eigentlich egal (Ein Zusatz ist hier die Antiproportionalität). Willst du aber hervorheben, dass a negativ von b abhängt wird es jeder verstehen, wenn du Formel: a \propto -b schreibst.
  • in: Kleines Linux gesucht

    geschrieben von toolz

    Also ich versuche mich momentan an Elementary OS, aber stoße auf ein kleines Problem:
    Bei der Installation habe ich darauf geachtet, dass alles auf die freie Partition kommt (also auch GRUB), was nun dazu führte, dass ich in Windows den Booteintrag nachliefern muss. Lediglich habe ich keine Erfahrung im Umgang mit den Booteinträgen, weshalb ich mir das Programm EasyBCD zu Hilfe genommen habe - Dort kann ich allerdings die gewünschte Partition nicht als Träger von GRUB auswählen (bzw. wenn ich das mache und den Eintrag hinzufüge, steht dort anschließend meine Windowspartition anstatt der Linuxpartition)...
    Hinweis: Windows gibt an, dass die Partition kein Dateiformat hat und 100% unbeschrieben sei.

    Was kann ich also machen?

Login zum Webhosting ohne Werbung!