Computer-Ag am WvS Blog der Computer-AG am Werner von Siemens Gymnasium Berlin

16. Dezember 2016

16.12.2016

Letzte Mal in diesem Jahr. Michael ist da, Morten und Long Yang. Frau Spyra und Jens waren auch da. Nächste Mal im nächsten Jahr …;

9. Dezember 2016

9.12.2016

Heute vorletzte Mal in diesem Jahr. Erstmal keiner da. Angelo und Moritz wollten kommen. Angelo und Moritz sind da. Wir reden über den Beweis vom Satz von Pythagoras. Angelo und Moritz reden über irgendwas mit Prozessor Emulation (vom letzten Mal, Aufgabe die Michael mitgebracht hatte).

Julian ist auch da. Sie machen was mit HP-Plotter.

Den Schnee mit Parallaxeneffekt angepasst (kleinere Flocken langsamer):

 

 

<?php
error_reporting(E_NOTICE|E_ALL);
//echo $_SERVER["REMOTE_ADDR"];
// echo $_SERVER["HTTP_HOST"];

//~ call_user_func
//~ function_exists


class Request
{
public static $queries = array (
"reset",
//        "addClient",
"startStatus",
"stopStatus",
"checkMyTurn",
"checkIps",
"finished",
"admin"
);

public static function check()  {
foreach(self::$queries as $query) {
if (isset($_GET[$query])) {
$callMethod = array("Data",$query);
if (is_callable($callMethod)) {
call_user_func($callMethod);
}
return $query;
}
}
Data::addClient();
return "showPage";
}
}

abstract class SerializedData
{
protected function _write($filename, $data) {
file_put_contents($filename, serialize($data));
}

protected function _read($filename) {
return unserialize(file_get_contents($filename));
}

}

class Data extends SerializedData
{
private static $_ipsStorageFileName = "xmas_ips.ser";
private static $_statusFileName = "xmas_status.ser";


private function _writeIps($data) {
self::_write(self::$_ipsStorageFileName, $data);
}

private static function _getNextIp($finishedIp) {
$currentClients = self::readIps();
foreach($currentClients as $key => $clientIp) {
if ($finishedIp == $clientIp) {
$nextKey = $key + 1;
if ($nextKey == count($currentClients)) {
$nextKey = 0;
}
return $currentClients[$nextKey];
}
}
}

private static function _resetStatus() {
self::_write(self::$_statusFileName,array());
}

private static function _setStatus($ip, $startOrStop = "stop") {
$ipStatus = self::_read(self::$_statusFileName);
$ipStatus[$ip] = $startOrStop;
self::_write(self::$_statusFileName,$ipStatus);
}

public static function reset() {
self::_writeIps(array());
self::_resetStatus();
}

public static function readIps() {
return self::_read(self::$_ipsStorageFileName);
}

public function addClient() {
$ip = $_SERVER["REMOTE_ADDR"];
$currentClients = self::readIps();
$currentClients[] = $ip;
$currentClients = array_unique($currentClients);
self::_writeIps($currentClients);
self::_setStatus ($ip, "stop");
}

public static function startStatus() {
$currentClients = self::readIps();
self::_setStatus($currentClients[0], "start");
}

public static function stopStatus() {
$currentClients = self::readIps();
foreach($currentClients as $ip) {
self::_setStatus($ip, "stop");
}
}


public static function getStatus($ip) {
$ipStatus = self::_read(self::$_statusFileName);
return $ipStatus[$ip];
}

public static function getAllStatus() {
$ipStatus = self::_read(self::$_statusFileName);
return $ipStatus;
}

public static function finished()  {
$finishedIp = $_SERVER["REMOTE_ADDR"];
self::_setStatus($finishedIp, "stop");
self::_setStatus(self::_getNextIp($finishedIp), "start");
}

}
?>
<?php switch (Request::check()):
case "admin":?>
<h1>Admin</h1>
<ul>
<?php foreach(Request::$queries as $query):?>
<?php if(in_array($query, array("admin","finished"))) {continue;}?>
<li><a href="?<?=$query?>"><?=$query?></a></li>
<?php endforeach?>
<div style="border:1px solid black;margin-top:3em" id="output">
hier kommt was rein
</div>
<script>
outputDiv = document.getElementById("output");
myAnchors = document.getElementsByTagName("a");
url = new Array;
for (i=0; i < myAnchors.length; i++) {
url[i] = myAnchors[i].href;
myAnchors[i].onclick = function() {
var myAjax=new XMLHttpRequest();
myAjax.open("GET",this.href,true);
myAjax.onreadystatechange=function()  {
if (myAjax.readyState==4 && myAjax.status==200)     {
outputDiv.innerHTML = myAjax.responseText;
}
}
myAjax.send(null);
return false;
}
}
</script>
<?php break;?>
<?php case "reset":?>
<h1>resetialisierung gestartet</h1>
<h2> zum Beweis Ausgabe der Speicherdatei Ips:</h2>
<pre>
<?php var_dump(Data::readIps());?>
</pre>
<pre>
<h2>zum Beweis Ausgabe der Speicherdatei Status:</h2>
<pre>
<?php var_dump(Data::getAllStatus());?>
</pre>
<?php break;?>
<?php case "addClient":?>
<h1><?=htmlentities("Client hinzugefügt");?></h1>
<p> zum Beweis Ausgabe der Speicherdatei:</p>
<pre>
<?php var_dump(Data::readIps());?>
</pre>
<?php break;?>
<?php case "checkMyTurn":?><?php echo Data::getStatus($_SERVER["REMOTE_ADDR"])?><?php break;?>
<?php case "startStatus":?>
<?php case "checkIps":?>
<h1><?=htmlentities("Programm läuft")?></h1>
<h2>Angemeldete Client-Ips</h2>
<?php
$statusPerIp = Data::getAllStatus();
?>
<table>
<?php foreach(Data::readIps() as $ip):?>
<tr><td><?=$ip?></td><td>
<?=$statusPerIp[$ip]?></td>
</tr>
<?php endforeach?>
<pre>
<?php var_dump(Data::readIps())?>
</pre>
<pre>
<?php var_dump(Data::getAllStatus())?>
</pre>
<?php break;?>
<?php case "stopStatus":?>
<h1>Programm gestoppt</h1>
<pre>
<?php var_dump(Data::getAllStatus())?>
</pre>
<?php break;?>
<?php case "showPage":?>
<body style="padding:0;margin:0;background-color:#324;overflow:hidden">
<img id="background" src="gletschermond.jpg" style="position:absolute;top:0px;left:0px;width:1024px;z-index=-1">
<div id="imgdiv" style="padding:0;margin:0;width:1022px;overflow:hidden;height:768px">
<img id="weihnachtsmann" style="position:absolute;right:-150px;top:300px;" src="jens.png"; width="150px";>
<script type="text/javascript">
document.getElementById("background").style.width = screen.width +"px";
document.getElementById("imgdiv").style.width = (screen.width-2) +"px";
document.getElementById("imgdiv").style.height = (screen.height-2) +"px";
myImgStyle = document.getElementById("weihnachtsmann").style;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -150;
//1022;//(-1* screen.width) +50;
//myImgStyle = document.getElementById("weihnachtsmann").style.right = startPosition + "px";
currentPosition = startPosition;
endPosition = 260;
endPosition = screen.width +150;
triggerPosition = endPosition - 150;
status = "stop";
timeOut = 20;
timeOut = 20;
pixelsPerMove = 8;
pixelsPerMove = 15;
finished = 0;
finishedTold = 0;
//alert(screen.width);
move = function() {
if (currentPosition < endPosition) { //&& status == "start"
if (currentPosition > triggerPosition && finishedTold == 0) {
tellFinished();
finishedTold = 1;
}
finished = 0;
myImgStyle.right = currentPosition + "px";
currentPosition += pixelsPerMove;
setTimeout("move()",timeOut);
} else {
currentPosition = startPosition;
myImgStyle.right = currentPosition + "px";
finishedTold = 0;
getStatus();
return;
}
}
getStatus = function() {
var startStopPage = "laufen.js.php?checkMyTurn";
var    myAjax=new XMLHttpRequest();
myAjax.open("GET",startStopPage,true);
myAjax.onreadystatechange=function()  {
if (myAjax.readyState==4 && myAjax.status==200)     {
//~ alert("Testausgabe: "+ myAjax.responseText);
//~ alert("Testausgabe finished: "+ finished);
//~ alert(typeof(myAjax.responseText.toString()));
//~ alert("myAjax.responseText.toString(): "+ myAjax.responseText.toString());
//~ alert(typeof("stop"));
//~ alert("start" == myAjax.responseText.toString());
if ("start" == myAjax.responseText.toString() && finished == 0) {
status = "start";
move();
} else {
status = "stop";
setTimeout("getStatus()",1000);
}
}
}
myAjax.send(null);
}
tellFinished = function() {
var finishedPage = "laufen.js.php?finished";
var    myAjax=new XMLHttpRequest();
myAjax.open("GET",finishedPage,true);
myAjax.onreadystatechange=function()  {
if (myAjax.readyState==4 && myAjax.status==200)     {
if (finished == 0) {
//alert("finished sent to server");
//finished = 1;
status = "stop";
}
return;
}
}
myAjax.send(null);
}
getStatus();

window.onload = function() {
DB=document.getElementsByTagName("body")[0];
//    DB.style.backgroundColor = "#000";
myFontSize = new Array;
for (i = 40; i<screen.width;i += 60) {
window["star"+i]=document.createTextNode("*");
window["div"+i]=document.createElement("div");
window["div"+i].appendChild(window["star"+i]);
DB.appendChild(window["div"+i]);
window["div"+i].style.color="#fff";
myFontSize[i] = Math.ceil(Math.random()*40);
myFontSize[i] = Math.ceil(Math.random()*30) + 10;
window["div"+i].style.fontSize=myFontSize[i] + "px";
window["div"+i].style.position="absolute";
window["div"+i].style.left=10 + i + "px";
window["div"+i].style.top="-"+(myFontSize[i] + 40)+"px";
window["y"+i]=-myFontSize-40;
window["x"+i] = i;
window["snow"+i] = function (j) {
fontSize = myFontSize[j];
//~ console.log(fontSize);
functionCall = 'window["snow'+j+'"]('+j+')';
if (window["y"+j]<screen.height + 20) {
//~ window["y"+j] += 3;
window["y"+j] += fontSize/5;
window["div"+j].style.top = window["y"+j] + "px";
window["div"+j].style.left = window["x"+j] + 2*Math.sin(window["y"+j]/5) + "px";
setTimeout(functionCall,100);
}    else {
window["y"+j]= -myFontSize[j];
setTimeout(functionCall,100);
}
}
functionCallNow = 'window["snow'+i+'"]('+i+')';
setTimeout(functionCallNow,Math.random()*50000);
}
// der eine stern, schlechter code ...;
star=document.createTextNode("*");
div=document.createElement("div");
div.appendChild(star);
//    DB.appendChild(div);
div.style.position="absolute";
div.style.left="10px";
div.style.top="10px";
div.style.color = "white";
y= -10;
x = 10;
snow = function () {
if (y<screen.height + 20) {
y += 1;
div.style.top = y + "px";
div.style.left = x + 2*Math.sin(y/3) + "px";
setTimeout("snow()",10);
}
else {
y= -10;
setTimeout("snow()",10);
}
}
//snow();
void(0);
}
</script>
</div>
<?php break;?>
<?php endswitch;?>


Und mit größenanpassung: 

<?php
error_reporting(E_NOTICE|E_ALL);
//echo $_SERVER["REMOTE_ADDR"];
// echo $_SERVER["HTTP_HOST"];

//~ call_user_func
//~ function_exists


class Request 
{
    public static $queries = array (
        "reset",
//        "addClient",
        "startStatus",
        "stopStatus",
        "checkMyTurn",
        "checkIps",
        "finished",
        "admin"
    );

    public static function check()  {
        foreach(self::$queries as $query) {
            if (isset($_GET[$query])) {
                $callMethod = array("Data",$query);
                if (is_callable($callMethod)) {
                    call_user_func($callMethod);
                }
                return $query;
            } 
        }
        Data::addClient();
        return "showPage";
    }    
}

abstract class SerializedData 
{
    protected function _write($filename, $data) {
        file_put_contents($filename, serialize($data));
    }

    protected function _read($filename) {
        return unserialize(file_get_contents($filename));
    }

}

class Data extends SerializedData
{
    private static $_ipsStorageFileName = "xmas_ips.ser";
    private static $_statusFileName = "xmas_status.ser";


    private function _writeIps($data) {
        self::_write(self::$_ipsStorageFileName, $data);
    }

    private static function _getNextIp($finishedIp) {
        $currentClients = self::readIps();
        foreach($currentClients as $key => $clientIp) {
            if ($finishedIp == $clientIp) {
                $nextKey = $key + 1;
                if ($nextKey == count($currentClients)) { 
                    $nextKey = 0;
                }
                return $currentClients[$nextKey];
            }
        }
    }

    private static function _resetStatus() {
        self::_write(self::$_statusFileName,array());
    }

    private static function _setStatus($ip, $startOrStop = "stop") {
        $ipStatus = self::_read(self::$_statusFileName);
        $ipStatus[$ip] = $startOrStop;
        self::_write(self::$_statusFileName,$ipStatus);
    }

    public static function reset() {
        self::_writeIps(array());
        self::_resetStatus();
    }

    public static function readIps() {
        return self::_read(self::$_ipsStorageFileName);
    }

    public function addClient() {
        $ip = $_SERVER["REMOTE_ADDR"];
        $currentClients = self::readIps();
        $currentClients[] = $ip;
        $currentClients = array_unique($currentClients);
        self::_writeIps($currentClients);
        self::_setStatus ($ip, "stop");
    }
    
    public static function startStatus() {
        $currentClients = self::readIps();
        self::_setStatus($currentClients[0], "start");
    }

    public static function stopStatus() {
        $currentClients = self::readIps();
        foreach($currentClients as $ip) {
            self::_setStatus($ip, "stop");
        }
    }


    public static function getStatus($ip) {
        $ipStatus = self::_read(self::$_statusFileName);
        return $ipStatus[$ip];
    }

    public static function getAllStatus() {
        $ipStatus = self::_read(self::$_statusFileName);
        return $ipStatus;
    }

    public static function finished()  {
        $finishedIp = $_SERVER["REMOTE_ADDR"];
        self::_setStatus($finishedIp, "stop");
        self::_setStatus(self::_getNextIp($finishedIp), "start");
    }

}
?>
<?php switch (Request::check()): 
case "admin":?>
    <h1>Admin</h1>
    <ul>
    <?php foreach(Request::$queries as $query):?>
    <?php if(in_array($query, array("admin","finished"))) {continue;}?>
    <li><a href="?<?=$query?>"><?=$query?></a></li>
    <?php endforeach?>
    <div style="border:1px solid black;margin-top:3em" id="output">
    hier kommt was rein
    </div>
    <script>
    outputDiv = document.getElementById("output");
    myAnchors = document.getElementsByTagName("a");
    url = new Array;
    for (i=0; i < myAnchors.length; i++) {
        url[i] = myAnchors[i].href;
        myAnchors[i].onclick = function() {
            var myAjax=new XMLHttpRequest();
            myAjax.open("GET",this.href,true);
            myAjax.onreadystatechange=function()  {
                if (myAjax.readyState==4 && myAjax.status==200)     {
                    outputDiv.innerHTML = myAjax.responseText;
                }
            }
            myAjax.send(null);
            return false;
        }    
    }
    </script>
<?php break;?>
<?php case "reset":?>
    <h1>resetialisierung gestartet</h1>
    <h2> zum Beweis Ausgabe der Speicherdatei Ips:</h2>
    <pre>
    <?php var_dump(Data::readIps());?>
    </pre>
    <pre>
    <h2>zum Beweis Ausgabe der Speicherdatei Status:</h2>
    <pre>
    <?php var_dump(Data::getAllStatus());?>
    </pre>
<?php break;?>
<?php case "addClient":?>
    <h1><?=htmlentities("Client hinzugefügt");?></h1>
    <p> zum Beweis Ausgabe der Speicherdatei:</p>
    <pre>
    <?php var_dump(Data::readIps());?>
    </pre>
<?php break;?>
<?php case "checkMyTurn":?><?php echo Data::getStatus($_SERVER["REMOTE_ADDR"])?><?php break;?>
<?php case "startStatus":?>
<?php case "checkIps":?>
    <h1><?=htmlentities("Programm läuft")?></h1>
    <h2>Angemeldete Client-Ips</h2>
    <?php 
    $statusPerIp = Data::getAllStatus();
    ?>
    <table>
    <?php foreach(Data::readIps() as $ip):?>
    <tr><td><?=$ip?></td><td>
    <?=$statusPerIp[$ip]?></td>
    </tr>
    <?php endforeach?>
    <pre>
    <?php var_dump(Data::readIps())?>
    </pre>
    <pre>
    <?php var_dump(Data::getAllStatus())?>
    </pre>
<?php break;?>
<?php case "stopStatus":?>
    <h1>Programm gestoppt</h1>
    <pre>
    <?php var_dump(Data::getAllStatus())?>
    </pre>
<?php break;?>
<?php case "showPage":?>
<body style="padding:0;margin:0;background-color:#324;overflow:hidden">
<img id="background" src="gletschermond.jpg" style="position:absolute;top:0px;left:0px;width:1024px;z-index=-1">
<div id="imgdiv" style="padding:0;margin:0;width:1022px;overflow:hidden;height:768px">
<img id="weihnachtsmann" style="position:absolute;right:-150px;top:300px;" src="jens.png"; width="150px";>
<script type="text/javascript">
document.getElementById("background").style.width = screen.width +"px";
document.getElementById("imgdiv").style.width = (screen.width-2) +"px";
document.getElementById("imgdiv").style.height = (screen.height-2) +"px";
myImgStyle = document.getElementById("weihnachtsmann").style;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -screen.width +2;//1022;//(-1* screen.width) +50;
startPosition = -150;
//1022;//(-1* screen.width) +50;
//myImgStyle = document.getElementById("weihnachtsmann").style.right = startPosition + "px";
currentPosition = startPosition;    
endPosition = 260;
endPosition = screen.width +150;
triggerPosition = endPosition - 150;
status = "stop";
timeOut = 20;
timeOut = 20;
pixelsPerMove = 8;
pixelsPerMove = 15;
finished = 0; 
finishedTold = 0;
//alert(screen.width);
move = function() {
    if (currentPosition < endPosition) { //&& status == "start"
        if (currentPosition > triggerPosition && finishedTold == 0) {
            tellFinished();
            finishedTold = 1;
        }
        finished = 0; 
        myImgStyle.right = currentPosition + "px";
        myImgStyle.top = 300 + 20*Math.sin(currentPosition/100) + "px";
        myImgStyle.width = 150 + 20*Math.sin(currentPosition/100) + "px";
        currentPosition += pixelsPerMove;
        setTimeout("move()",timeOut);
    } else {
        currentPosition = startPosition;    
        myImgStyle.right = currentPosition + "px";
        myImgStyle.top = 300 + 100*Math.sin(currentPosition) + "px";
        finishedTold = 0;
        getStatus();
        return; 
    }
}
getStatus = function() {
var startStopPage = "laufen.js.php?checkMyTurn";
var    myAjax=new XMLHttpRequest();
    myAjax.open("GET",startStopPage,true);
    myAjax.onreadystatechange=function()  {
        if (myAjax.readyState==4 && myAjax.status==200)     {
            //~ alert("Testausgabe: "+ myAjax.responseText);
            //~ alert("Testausgabe finished: "+ finished);
            //~ alert(typeof(myAjax.responseText.toString()));
            //~ alert("myAjax.responseText.toString(): "+ myAjax.responseText.toString());
            //~ alert(typeof("stop"));
            //~ alert("start" == myAjax.responseText.toString());
            if ("start" == myAjax.responseText.toString() && finished == 0) {
                status = "start";
                move();
            } else {
                status = "stop";
                setTimeout("getStatus()",1000);
            }
        }
    }
    myAjax.send(null);
}
tellFinished = function() {
    var finishedPage = "laufen.js.php?finished";
    var    myAjax=new XMLHttpRequest();
    myAjax.open("GET",finishedPage,true);
    myAjax.onreadystatechange=function()  {
        if (myAjax.readyState==4 && myAjax.status==200)     {
            if (finished == 0) {
                //alert("finished sent to server");
                //finished = 1;
                status = "stop";
            }
            return;
        }    
    }
    myAjax.send(null);
}
getStatus();

window.onload = function() {
    DB=document.getElementsByTagName("body")[0];
//    DB.style.backgroundColor = "#000";
    myFontSize = new Array;
    for (i = 40; i<screen.width;i += 60) {
        window["star"+i]=document.createTextNode("*");
        window["div"+i]=document.createElement("div");
        window["div"+i].appendChild(window["star"+i]);
        DB.appendChild(window["div"+i]);
        window["div"+i].style.color="#fff";
        //~ myFontSize[i] = Math.ceil(Math.random()*40);
        myFontSize[i] = Math.ceil(Math.random()*30) + 10;
        window["div"+i].style.fontSize=myFontSize[i] + "px";
        window["div"+i].style.position="absolute";
        window["div"+i].style.left=10 + i + "px";
        window["div"+i].style.top="-"+(myFontSize[i] + 40)+"px";
        window["y"+i]=-myFontSize-40;
        window["x"+i] = i;
        window["snow"+i] = function (j) {
            fontSize = myFontSize[j];
            console.log(fontSize);
            functionCall = 'window["snow'+j+'"]('+j+')';
            if (window["y"+j]<screen.height + 20) {
                //~ window["y"+j] += 3;
                window["y"+j] += fontSize/20 ;
                window["div"+j].style.top = window["y"+j] + "px";
                window["div"+j].style.left = window["x"+j] + 2*Math.sin(window["y"+j]/5) + "px";
                setTimeout(functionCall,100);
        }    else {
                window["y"+j]= -myFontSize[j];
                setTimeout(functionCall,100);
            }
        }    
        functionCallNow = 'window["snow'+i+'"]('+i+')';
        setTimeout(functionCallNow,Math.random()*50000);
    }
    // der eine stern, schlechter code ...;
    star=document.createTextNode("*");
    div=document.createElement("div");
    div.appendChild(star);
//    DB.appendChild(div);
    div.style.position="absolute";
    div.style.left="10px";
    div.style.top="10px";
    div.style.color = "white";
    y= -10;
    x = 10;
    snow = function () {
        if (y<screen.height + 20) {
            y += 1;
            div.style.top = y + "px";
            div.style.left = x + 2*Math.sin(y/3) + "px";
            setTimeout("snow()",10);
        }
        else {
            y= -10;
            setTimeout("snow()",10);
        }
    }
    //snow();
void(0);
}
</script>
</div>
<?php break;?>
<?php endswitch;?>

2. Dezember 2016

2.12.2016

Filed under: Allgemein,canvas,Termine,Tisch — admin @ 16:02

Michael ist da, Morten und Angelo. Wir versuchen, Schneeflocken mit Canvas zu machen. Robert baut mit Canvas eine Schneeflocke. S.a. http://localhost/draw_circles.js.html bzw. http://stackoverflow.com/questions/11450030/moving-text-inside-canvas-using-html5. Angelo und Michael machen was mit Logisim.

 

 

   
  
 HTML 5 Animated Text
    <!--script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script-->
<script type="text/javascript">
        var context;
        var text = "";
        var textDirection ="";

        window.onload = function()
        {
        DB=document.getElementsByTagName("body")[0]
       cvs = document.createElement("canvas");
       div = document.createElement("div");
       div.innerHTML = "***";
       DB.appendChild(div);
       DB.appendChild(cvs);
        //~ cvs = document.getElementById("cvs");
        height = screen.height;
        width = screen.width;
        cvs.height = height;
        cvs.width  = width;
            context = cvs.getContext("2d");      
    startY = 5
        startX = 580;
        interval = 50;
        pixelPerMove = 1;
        sinFactor = 5/2;
        textYFactor = 0.5;
            text = "*"; 
            snowFont = '30px _sans';
            snowColor = '#FF0000';
            //~ context.textBaseline = 'top';
        fillColor = '#2fa';
        
    textYpos = startY;
    textXpos = startX;
    textXrunner = 0; 
    textXincrement = 3;
     canvasDrawHeight = height/2;   
        setInterval("animate()", interval);


        //~ alert(height);
        };  

        function animate() {            
            // Clear screen
            context.clearRect(0, 0, width, height);
            context.globalAlpha = 1;
            context.fillStyle = fillColor;
            context.fillRect(0, 0, width, height);    

            var metrics = context.measureText(text);            
        var textWidth = metrics.width;

            //~ if (textDirection == "down") {
                textYpos += pixelPerMove;
        textXpos = textXpos + sinFactor*Math.sin(textYFactor*textYpos);

                if (textYpos > canvasDrawHeight - textWidth) {
                    //textDirection = "left";
                    textYpos  = startY;
                }
            //~ }
            //~ else {
                //~ textYpos -= 10;

                //~ if (textYpos < 10) {
                    //~ textDirection = "down";
                //~ }                    
            //~ }

            context.font = snowFont;
            context.fillStyle = snowColor;
            //~ context.textBaseline = 'top';
            context.fillText  ( text, textXpos, textYpos);    
          }    
          </script>
      
         <!--

<div id="page">
            <canvas id="cvs" width="600" height="600">
               Your browser does not support the HTML 5 Canvas.
            </canvas>
</div>


     -->
      

18. November 2016

18.11.2016

Filed under: Allgemein,C sharp,Lernserver,Termine,Tisch — admin @ 16:01

Heute ist nur Long Yang da. Wir reden über die 3D-Spielengine Unity. Unity läuft leider erst am Windows 7, also hier im Raum 206 gehts nicht. Wir sprechen kurz über C-Sharp. Das läuft angeblich auch ohne .NET …? Und über NetBeans. C-Sharp geht auch unter Linux mit Mono.

 

 

11. November 2016

11.11.2016

Filed under: Allgemein,Tagesberichte,Termine,Tisch,Wordpress — admin @ 16:17

Long Yang und Willi sind da. Morten auch. Beim Verwaltungsserver fixen wir das Backup nochmal. Passwort musste (vermutlich) in den geplanten Tasks eingegeben werden. Mit Remotedesktop und Linux probiert, funzt ;-). Diese Anleitung hier hat das jetzt komplett gemacht.

Ansonsten war keiner hier. Jens aber kurz.

 

 

7. November 2016

7.11.2016

Heute machen wir noch einmal montags. Ab jetzt vermutlich freitags. Probieren wir auf jeden Fall.

Frau Spyra meinte, das Backup vom Verw.Server würde schon wieder nicht laufen. Also Freitag auf der Tagesordnung.

Willi und Long Yang sind da. Wir tunneln und schaffen es, Long Yangs horde-Webmail einzurichten. Long Yang will auch tunneln. Und schafft es direkt über seinen PI. Den er sonst als Entwicklungsumgebung nutzt.

Mit

dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' | grep -v $(uname -r) | xargs sudo apt-get -y purge

gemäß (hatten wir schon mal) dieser Anleitung hoffentlich die alten Linuxkernels auf dem Ubunut-USB-Stick gelöscht. Das Ubuntu muss dann aber wohl eine Menge veranstalten. Hat offenbar auch gleich noch den aktuellsten Kernel istallier. Hier der output:

 

rob@robsau:/boot$ ls -la
insgesamt 127908
drwxr-xr-x  3 root root     4096 Sep 19 16:46 .
drwxr-xr-x 23 root root     4096 Sep 19 16:34 ..
-rw-r--r--  1 root root  1170169 Mär 17  2016 abi-3.13.0-85-generic
-rw-r--r--  1 root root  1170277 Jun  9 00:59 abi-3.13.0-88-generic
-rw-r--r--  1 root root  1170427 Jun 24 20:42 abi-3.13.0-91-generic
-rw-r--r--  1 root root  1170475 Jun 29 00:31 abi-3.13.0-92-generic
-rw-r--r--  1 root root  1170475 Aug 12 21:14 abi-3.13.0-95-generic
-rw-r--r--  1 root root   169988 Mär 17  2016 config-3.13.0-85-generic
-rw-r--r--  1 root root   169999 Jun  9 00:59 config-3.13.0-88-generic
-rw-r--r--  1 root root   169999 Jun 24 20:42 config-3.13.0-91-generic
-rw-r--r--  1 root root   170036 Jun 29 00:31 config-3.13.0-92-generic
-rw-r--r--  1 root root   170036 Aug 12 21:14 config-3.13.0-95-generic
drwxr-xr-x  5 root root     4096 Sep 19 16:43 grub
-rw-r--r--  1 root root 18793006 Jun 27 14:49 initrd.img-3.13.0-85-generic
-rw-r--r--  1 root root 18793170 Jul  4 13:52 initrd.img-3.13.0-88-generic
-rw-r--r--  1 root root 18794997 Jul 11 14:37 initrd.img-3.13.0-91-generic
-rw-r--r--  1 root root  5707723 Sep 19 15:44 initrd.img-3.13.0-92-generic
-rw-r--r--  1 root root 18793698 Sep 19 16:45 initrd.img-3.13.0-95-generic
-rw-r--r--  1 root root   176500 Mär 12  2014 memtest86+.bin
-rw-r--r--  1 root root   178176 Mär 12  2014 memtest86+.elf
-rw-r--r--  1 root root   178680 Mär 12  2014 memtest86+_multiboot.bin
-rw-------  1 root root  2702730 Mär 17  2016 System.map-3.13.0-85-generic
-rw-------  1 root root  2702285 Jun  9 00:59 System.map-3.13.0-88-generic
-rw-------  1 root root  2702322 Jun 24 20:42 System.map-3.13.0-91-generic
-rw-------  1 root root  2702749 Jun 29 00:31 System.map-3.13.0-92-generic
-rw-------  1 root root  2702749 Aug 12 21:14 System.map-3.13.0-95-generic
-rw-------  1 root root  5855472 Mär 17  2016 vmlinuz-3.13.0-85-generic
-rw-------  1 root root  5852688 Jun  9 00:59 vmlinuz-3.13.0-88-generic
-rw-------  1 root root  5852688 Jun 24 20:42 vmlinuz-3.13.0-91-generic
-rw-------  1 root root  5855520 Jun 29 00:31 vmlinuz-3.13.0-92-generic
-rw-------  1 root root  5855520 Aug 12 21:14 vmlinuz-3.13.0-95-generic
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* 
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                                                          Version                             Architektur                         Beschreibung
+++-=============================================================-===================================-===================================-================================================================================================================================
un  linux-headers-3.0                                                                                                       (keine Beschreibung vorhanden)
ii  linux-headers-3.13.0-85                                       3.13.0-85.129                       all                                 Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-85-generic                               3.13.0-85.129                       i386                                Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii  linux-headers-3.13.0-88                                       3.13.0-88.135                       all                                 Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-88-generic                               3.13.0-88.135                       i386                                Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii  linux-headers-3.13.0-91                                       3.13.0-91.138                       all                                 Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-91-generic                               3.13.0-91.138                       i386                                Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
un  linux-headers-3.13.0-92-generic                                                                                         (keine Beschreibung vorhanden)
ii  linux-headers-3.13.0-95                                       3.13.0-95.142                       all                                 Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-95-generic                               3.13.0-95.142                       i386                                Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
ii  linux-headers-generic                                         3.13.0.95.103                       i386                                Generic Linux kernel headers
un  linux-image-3.0                                                                                                         (keine Beschreibung vorhanden)
ii  linux-image-3.13.0-85-generic                                 3.13.0-85.129                       i386                                Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-3.13.0-88-generic                                 3.13.0-88.135                       i386                                Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-3.13.0-91-generic                                 3.13.0-91.138                       i386                                Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-3.13.0-92-generic                                 3.13.0-92.139                       i386                                Linux kernel image for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-3.13.0-95-generic                                 3.13.0-95.142                       i386                                Linux kernel image for version 3.13.0 on 32 bit x86 SMP
in  linux-image-extra-3.13.0-77-generic                                                        i386                                (keine Beschreibung vorhanden)
ii  linux-image-extra-3.13.0-85-generic                           3.13.0-85.129                       i386                                Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-extra-3.13.0-88-generic                           3.13.0-88.135                       i386                                Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-extra-3.13.0-91-generic                           3.13.0-91.138                       i386                                Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-extra-3.13.0-95-generic                           3.13.0-95.142                       i386                                Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
ii  linux-image-generic                                           3.13.0.95.103                       i386                                Generic Linux kernel image
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' 
linux-headers-3.13.0-85
linux-headers-3.13.0-85-generic
linux-headers-3.13.0-88
linux-headers-3.13.0-88-generic
linux-headers-3.13.0-91
linux-headers-3.13.0-91-generic
linux-headers-3.13.0-95
linux-headers-3.13.0-95-generic
linux-headers-generic
linux-image-3.13.0-85-generic
linux-image-3.13.0-88-generic
linux-image-3.13.0-91-generic
linux-image-3.13.0-92-generic
linux-image-3.13.0-95-generic
linux-image-extra-3.13.0-85-generic
linux-image-extra-3.13.0-88-generic
linux-image-extra-3.13.0-91-generic
linux-image-extra-3.13.0-95-generic
linux-image-generic
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' 
linux-headers-3.13.0-85
linux-headers-3.13.0-85-generic
linux-headers-3.13.0-88
linux-headers-3.13.0-88-generic
linux-headers-3.13.0-91
linux-headers-3.13.0-91-generic
linux-headers-3.13.0-95
linux-headers-3.13.0-95-generic
linux-image-3.13.0-85-generic
linux-image-3.13.0-88-generic
linux-image-3.13.0-91-generic
linux-image-3.13.0-92-generic
linux-image-3.13.0-95-generic
linux-image-extra-3.13.0-85-generic
linux-image-extra-3.13.0-88-generic
linux-image-extra-3.13.0-91-generic
linux-image-extra-3.13.0-95-generic
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' | grep -v $(uname -r)
linux-headers-3.13.0-85
linux-headers-3.13.0-85-generic
linux-headers-3.13.0-88
linux-headers-3.13.0-88-generic
linux-headers-3.13.0-91
linux-headers-3.13.0-91-generic
linux-headers-3.13.0-95
linux-image-3.13.0-85-generic
linux-image-3.13.0-88-generic
linux-image-3.13.0-91-generic
linux-image-3.13.0-92-generic
linux-image-extra-3.13.0-85-generic
linux-image-extra-3.13.0-88-generic
linux-image-extra-3.13.0-91-generic
rob@robsau:/boot$ echo $(uname -r)
3.13.0-95-generic
rob@robsau:/boot$ grep -v
Aufruf: grep [OPTION]… MUSTER [DATEI]…
„grep --help“ liefert weitere Informationen.
rob@robsau:/boot$ grep - $(uname -r)
grep: 3.13.0-95-generic: Datei oder Verzeichnis nicht gefunden
rob@robsau:/boot$ dpkg -l linux-{image,headers}-* | awk '/^ii/{print $2}' | egrep '[0-9]+\.[0-9]+\.[0-9]+' | grep -v $(uname -r) | xargs sudo apt-get -y purge
sudo: Hostname robsau kann nicht aufgelöst werden
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  linux-generic linux-headers-4.4.0-45 linux-headers-4.4.0-45-generic
  linux-headers-generic linux-image-4.4.0-45-generic
  linux-image-extra-4.4.0-45-generic linux-image-generic
Vorgeschlagene Pakete:
  fdutils linux-doc-4.4.0 linux-source-4.4.0 linux-tools
Empfohlene Pakete:
  thermald
Die folgenden Pakete werden ENTFERNT:
  linux-headers-3.13.0-85* linux-headers-3.13.0-85-generic*
  linux-headers-3.13.0-88* linux-headers-3.13.0-88-generic*
  linux-headers-3.13.0-91* linux-headers-3.13.0-91-generic*
  linux-headers-3.13.0-95* linux-headers-3.13.0-95-generic*
  linux-image-3.13.0-85-generic* linux-image-3.13.0-88-generic*
  linux-image-3.13.0-91-generic* linux-image-3.13.0-92-generic*
  linux-image-extra-3.13.0-85-generic* linux-image-extra-3.13.0-88-generic*
  linux-image-extra-3.13.0-91-generic*
Die folgenden NEUEN Pakete werden installiert:
  linux-headers-4.4.0-45 linux-headers-4.4.0-45-generic
  linux-image-4.4.0-45-generic linux-image-extra-4.4.0-45-generic
Die folgenden Pakete werden aktualisiert (Upgrade):
  linux-generic linux-headers-generic linux-image-generic
3 aktualisiert, 4 neu installiert, 15 zu entfernen und 1353 nicht aktualisiert.
Es müssen 66,9 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 542 MB Plattenplatz freigegeben.
Holen: 1 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-image-4.4.0-45-generic i386 4.4.0-45.66 [17,5 MB]
Holen: 2 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-image-extra-4.4.0-45-generic i386 4.4.0-45.66 [38,7 MB]
Holen: 3 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-generic i386 4.4.0.45.48 [1.788 B]
Holen: 4 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-image-generic i386 4.4.0.45.48 [2.300 B]
Holen: 5 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-headers-4.4.0-45 all 4.4.0-45.66 [9.988 kB]
Holen: 6 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-headers-4.4.0-45-generic i386 4.4.0-45.66 [766 kB]
Holen: 7 http://ubuntu.lagis.at/ubuntu/ xenial-updates/main linux-headers-generic i386 4.4.0.45.48 [2.272 B]
Es wurden 66,9 MB in 44 s geholt (1.491 kB/s).                                 
(Lese Datenbank ... 254481 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von linux-headers-3.13.0-85-generic (3.13.0-85.129) ...
Entfernen von linux-headers-3.13.0-85 (3.13.0-85.129) ...
Entfernen von linux-headers-3.13.0-88-generic (3.13.0-88.135) ...
Entfernen von linux-headers-3.13.0-88 (3.13.0-88.135) ...
Entfernen von linux-headers-3.13.0-91-generic (3.13.0-91.138) ...
Entfernen von linux-headers-3.13.0-91 (3.13.0-91.138) ...
Vormals nicht ausgewähltes Paket linux-image-4.4.0-45-generic wird gewählt.
(Lese Datenbank ... 179648 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../linux-image-4.4.0-45-generic_4.4.0-45.66_i386.deb ...
Done.
Entpacken von linux-image-4.4.0-45-generic (4.4.0-45.66) ...
Vormals nicht ausgewähltes Paket linux-image-extra-4.4.0-45-generic wird gewählt.
Vorbereitung zum Entpacken von .../linux-image-extra-4.4.0-45-generic_4.4.0-45.66_i386.deb ...
Entpacken von linux-image-extra-4.4.0-45-generic (4.4.0-45.66) ...
Vorbereitung zum Entpacken von .../linux-generic_4.4.0.45.48_i386.deb ...
Entpacken von linux-generic (4.4.0.45.48) über (3.13.0.95.103) ...
Vorbereitung zum Entpacken von .../linux-image-generic_4.4.0.45.48_i386.deb ...
Entpacken von linux-image-generic (4.4.0.45.48) über (3.13.0.95.103) ...
Vormals nicht ausgewähltes Paket linux-headers-4.4.0-45 wird gewählt.
Vorbereitung zum Entpacken von .../linux-headers-4.4.0-45_4.4.0-45.66_all.deb ...
Entpacken von linux-headers-4.4.0-45 (4.4.0-45.66) ...
Vormals nicht ausgewähltes Paket linux-headers-4.4.0-45-generic wird gewählt.
Vorbereitung zum Entpacken von .../linux-headers-4.4.0-45-generic_4.4.0-45.66_i386.deb ...
Entpacken von linux-headers-4.4.0-45-generic (4.4.0-45.66) ...
Vorbereitung zum Entpacken von .../linux-headers-generic_4.4.0.45.48_i386.deb ...
Entpacken von linux-headers-generic (4.4.0.45.48) über (3.13.0.95.103) ...
(Lese Datenbank ... 212068 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von linux-headers-3.13.0-95-generic (3.13.0-95.142) ...
Entfernen von linux-headers-3.13.0-95 (3.13.0-95.142) ...
Entfernen von linux-image-extra-3.13.0-85-generic (3.13.0-85.129) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-88-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-88-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-85-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-85-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-extra-3.13.0-85-generic (3.13.0-85.129) ...
Entfernen von linux-image-3.13.0-85-generic (3.13.0-85.129) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-85-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-88-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-88-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-3.13.0-85-generic (3.13.0-85.129) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-85-generic /boot/vmlinuz-3.13.0-85-generic
Entfernen von linux-image-extra-3.13.0-88-generic (3.13.0-88.135) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-88-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-88-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-extra-3.13.0-88-generic (3.13.0-88.135) ...
Entfernen von linux-image-3.13.0-88-generic (3.13.0-88.135) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-88-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-3.13.0-88-generic (3.13.0-88.135) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-88-generic /boot/vmlinuz-3.13.0-88-generic
Entfernen von linux-image-extra-3.13.0-91-generic (3.13.0-91.138) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-91-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-91-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-extra-3.13.0-91-generic (3.13.0-91.138) ...
Entfernen von linux-image-3.13.0-91-generic (3.13.0-91.138) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-91-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-92-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-92-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
Löschen der Konfigurationsdateien von linux-image-3.13.0-91-generic (3.13.0-91.138) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-91-generic /boot/vmlinuz-3.13.0-91-generic
Entfernen von linux-image-3.13.0-92-generic (3.13.0-92.139) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-92-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old 
 you may need to re-run your boot loader[grub]
The link /initrd.img.old is a damaged link
Removing symbolic link initrd.img.old 
 you may need to re-run your boot loader[grub]
Löschen der Konfigurationsdateien von linux-image-3.13.0-92-generic (3.13.0-92.139) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-92-generic /boot/vmlinuz-3.13.0-92-generic
linux-image-4.4.0-45-generic (4.4.0-45.66) wird eingerichtet ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
initrd-Abbild gefunden: /boot/initrd.img-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
linux-image-extra-4.4.0-45-generic (4.4.0-45.66) wird eingerichtet ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-45-generic /boot/vmlinuz-4.4.0-45-generic
Grub-Konfigurationsdatei wird generiert …
Linux-Abbild gefunden: /boot/vmlinuz-4.4.0-45-generic
initrd-Abbild gefunden: /boot/initrd.img-4.4.0-45-generic
Linux-Abbild gefunden: /boot/vmlinuz-3.13.0-95-generic
initrd-Abbild gefunden: /boot/initrd.img-3.13.0-95-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Microsoft Windows XP Professional auf /dev/sda1 gefunden
erledigt
linux-image-generic (4.4.0.45.48) wird eingerichtet ...
linux-headers-4.4.0-45 (4.4.0-45.66) wird eingerichtet ...
linux-headers-4.4.0-45-generic (4.4.0-45.66) wird eingerichtet ...
linux-headers-generic (4.4.0.45.48) wird eingerichtet ...
linux-generic (4.4.0.45.48) wird eingerichtet ...
rob@robsau:/boot$ 

2. November 2016

2.11.2016

Filed under: Allgemein,Computer,Lernserver,Tagesberichte,Termine,Tisch — admin @ 15:58

Heute mal mittwochs. Morten, Moritz und Angelo sind da. Wir quatschen über Angelos Lenovo ThinkPad T460. Leider ist der Wahlpflichtinformatikkurs am Mittwoch in der 9. Stunde hier drin. Nicht so günstig. Wir müssen wohl Pause machen.

10. Oktober 2016

10.10.2016

Filed under: Allgemein,Computer,Schulnetzwerk,Tagesberichte,Termine,Tisch — admin @ 15:27

Willi und Long Yang sind da. Morten und Moritz auch. Wir quatschen über Tunnel und Ports. Willi bekommt einen eigenen Account auf dem virtuellen wvs-Server.

Moritz und Morten recherchieren über Magnetschwebebahn. Morten wundert sich, wie der Webfilter eine bestimmte URL herausgefiltert hat, nicht aber die ganze Domain.

Nächste und übernächste Woche fällt aus. Herbstferien.

Moritz beschäftigt sich mit Matroska und versucht die Segment-Filenames auszulesen.

Angelo ist auch gekommen. Er muss einen Linker schreiben für die PDP6.

Robert kommt mit Filezilla wieder nicht auf den wvs-berlin.de – Server. Eigentlich sollte die alte Doku da auf der Seite wieder verlinkt werden.

Angelo schlägt den Mittwoch als neuen AG-Tag vor. Robert kann das Filezilla/FTP-Problem mit dem Plesk-Server nicht lösen.

 

26. September 2016

26.9.2016

Nächste Mal fällt aus, weil der Montag Feiertag ist.

Moritz, Morten, Angelo und Julian sind da. Wir reden über die falsch implementierte Linksassoziativität in PHP.

Wir reden über komplizierte und einfach Programmiersprachen. Go ist wohl „einfach“. Hat keinen Ternäroperator. C++ ist kompliziert.

Robert hatte Probleme auf dem Spyraserver mit „unmet dependencies“. g++ konnte nicht installiert werden. Deshalb „aptitude“ installiert.

Hier ein kleiner Code-Teil:

#include <iostream>  

using namespace std;  
     
int main()  
{  
    int z; 
    cout << "Bitte geben Sie eine Zahl ein: " << endl; 
    cin >> z; 
    cout << "z hat den Wert: " << z << endl; 
    return 0;  
}

Angelo will seine Lautgesetztprogrammierung erstmal in Python implementieren. Dabei geht es im Wesentlichen um reguläre Ausdrücke.

Auch auf dem Spyraserver das Apachemodul mod_userdir aktiviert und PHP dafür eingeschaltet.

Dazu in der „/etc/apache2/mods-enabled/userdir.conf“ eingefügt: „php_admin_value engine On“.

 

 

 

19. September 2016

19.9.2016

Filed under: Allgemein,Schulnetzwerk,Tagesberichte,Termine,Tisch — admin @ 16:00

Morten, Willi, Long Yang und Angelo sind hier.

Robert kommt mit seinem Ubuntustick nicht ins Netz. Angelo kommt darauf, dass ein Kernelmodul nicht vorhanden ist. Mit lspci haben wir geschaut, was für Geräte vorhanden sind. Da wurde die Realtek-Karte aufgeführt (ohne Modul). Wir haben geguckt ob in Unterverzeichnissen von /lib/modules irgendwelche Dateien mit r81 drin vorkommen (das Modul für die Realtek-Karte). Dass es r8168 oder r8169 ist hatte Angelo gegooglet. Angelo hatte die DID gegooglet (lcpci -n war dazu nötig). Mit „du -a | grep r81“ haben wir gesehen, dass das Modul nur bei älteren Kernels vorhanden war. Deshalb Rechner einfach mit altem Kernel gestartet.

Julian konnte heute nicht, deshalb kein „Go“ diesmal.

„ls“ heißt übrigens „list“ wohl. Und nicht „list segments“.

Wir haben den Tisch mit dem schiefen Fuß ausgetauscht unter dem Overheadprojektor.

„ls“ steht übrigens wohl für „list“ (gemäß Wikipedia-Talk) (Amprimoz liegt wohl falsch …).

« Newer PostsOlder Posts »