Weils grad irgendwie dazupasst :shiner:
http://www.oe24.at/oesterreich/po…anner/139152877
Beiträge von Früchtemüsli
-
-
Zitat
wird ein österreichischer Politiker untragbar, zuckt er mit den Schultern und regiert weiter.
Das ist doch ein Blödsinn. In Kärnten wurde gleich die gesamte BZÖ-Spitze in die Wüste geschickt. Gestern musste der EU-Spitzenkandidat der FPÖ abmarschieren. Und es trifft auch immer wieder Politiker anderer Parteien, die ihren Hut nehmen müssenIch bin halt der Meinung, Deutsche und Österreicher passen super zusammen. Aber liegt vielleicht daran, dass ich jahrelang in Deutschland gewohnt habe
-
Ich glaube, da machst du dir viel zu viele Gedanken. Deutsche und Österreicher sind doch eh gleich. Ist in meinen Augen irgendwie absurd, wenn ein Österreicher einen Deutschen als Ausländer ansehen würde :shiner:
Es gibt sicher ein paar, die wegen dem zweiten Weltkrieg noch Probleme haben, aber das sind nur ein paar von der älteren Generation. Ich persönlich bin eigentlich der Meinung, dass man Österreich und Deutschland sowieso zu einem Staat machen sollte, weil Charakter, Kultur, Sprache und Wirtschaft (sogar zu Schillingzeiten hatte sich Österreich immer an die Mark orientiert) sowieso gleich sind Naja ... bzgl. Sprache könnte man diskutieren :shinner: Und Kroatien ist sicher eines der beliebtesten Urlaubsziele der Österreicher (war dort selbst schon mal, und es war toll).
Mit Türken haben deshalb viele Probleme, weil es andere Charaktere sind, und es erwiesen ist, dass es eines jener Völker ist, die am wenigsten dazu bereit sind, sich in eine andere Kultur zu integrieren. Das hat mal irgendwann vor wenigen Jahren eine Statistik so ausgespuckt.
-
Cutlery Pens: http://inhabitat.com/din-ink-cutlery-retools-the-bic-pen/
Das richtige Werkzeug für Schüler und Studenten :shiner: -
Das finde ich interessant.
Also ich finde OnlineShops interessant. Da gibt es ja diverse Sachen zu berücksichtigen. So ein Shop soll nicht nur gut aussehen, sondern auch die Leute zum Einkaufen motivieren (das ist ein ziemliches Problem, wie eine Google-Studie ergab). Er soll nicht nur einigermaßen gut programmiert sein, sondern auch allen gesetzlichen Anforderungen entsprechen (hier muss man von Zeit zu Zeit auch mit Gesetzesänderungen rechnen). Da gibts wirklich eine Unmege Sachen zu beachten, von denen ich sicher noch gar nicht alle kenne.
Gehören OnlineShops auch irgendwie zu deinem Projekt? Falls ja, worauf achtest du denn da ganz besonders?
Suchst du jemanden, der dann zusammen mit dir etwas programmiert? Falls ja, was und in welcher/n Programmiersprache/n?
-
Zitat
Du könntest Visual Express von Microsoft evtl ausprobieren.
Das hatte ich vor einigen Tagen auch schon versucht. Aber bei https://www.microsoft.com/en-us/download/confirmation.aspx?id=40787# gehts einfach nicht weiter. Der Download funktioniert nicht.Darum musste ich leider auf CodeBlocks ausweichen, aber das hängt auf meinem Rechner dauernd.
Dev-C++ kann übrigens kein C++11.
-
Vielleicht noch eine Anmerkung, wie ich auf diese seltsame Idee gekommen bin.
In der iX-Februar-Ausgabe auf Seite 120 werden design patterns für javascript präsentiert. Beim command design pattern werden dort closures für die Kommandos verwendet. Und das wollte ich einfach mal auf PHP ummünzen.
-
Hi
Ihr kennt doch sicher alle das "command" design pattern.
Normalerweise würde ich das in PHP alles objektorientiert machen. Aber ich habe mir jetzt mal den Spaß erlaubt, die Kommandos nicht in Klassen, sondern in Closures zu stecken. Herausgekommen ist folgendes:
PHP
Alles anzeigen<?php error_reporting(~0); class Schaltflaeche { private $command; /** * @param closure $command */ function __construct($command) { //$this->command = Closure::bind($command, $this, get_class()); $this->command = $command; } function click() { call_user_func($this->command); } } class VideoPlayer { function einschalten() { echo 'ein'; } function ausschalten() { echo 'aus'; } } $fEinschaltenCommand = /** * @param VideoPlayer $oVideoPlayer * @return closure */ function(VideoPlayer $oVideoPlayer) { return function() use ($oVideoPlayer) { $oVideoPlayer->einschalten(); }; }; $fAusschaltenCommand = /** * @param VideoPlayer $oVideoPlayer * @return closure */ function(VideoPlayer $oVideoPlayer) { return function() use ($oVideoPlayer) { $oVideoPlayer->ausschalten(); }; }; $oVideoPlayer = new VideoPlayer(); $oSchaltflaecheEin = new Schaltflaeche($fEinschaltenCommand($oVideoPlayer)); $oSchaltflaecheEin->click(); $oSchaltflaecheAus = new Schaltflaeche($fAusschaltenCommand($oVideoPlayer)); $oSchaltflaecheAus->click(); ?>
Was ist eure Meinung dazu?
-
Hi
Ich habe mir gestern das Design Pattern Flyweight angeschaut. Jetzt frage ich mich, wo man das typischerweise anwendet.
Wäre ein object-relational mapping ein typischer Anwendungsfall für Flyweight?
-
Hi
Mir kommt auf http://www.tutorialspoint.com/design_pattern…ter_pattern.htm etwas seltsam vor, wenn ich das mit http://www.oracle.com/technetwork/ja…ter-142169.html vergleiche.
http://www.tutorialspoint.com/design_pattern…ter_pattern.htm Step 4:
Wenn ich das richtig verstanden habe, führt FilterChain in der execute-Methode nicht nur die Filter, sondern auch die eigentliche Funktion auf Target aus.http://www.oracle.com/technetwork/ja…ter-142169.html Figure 7.2:
Hier ruft FilterChain NICHT die eigentliche Funktion auf Target aus. Statt dessen macht es der FilterManager.Ich würde raten, dass http://www.oracle.com/technetwork/ja…ter-142169.html richtig und http://www.tutorialspoint.com/design_pattern…ter_pattern.htm falsch ist. Seht ihr das auch so?
-
Also ich glaube, die Variante http://www.ccs.neu.edu/home/ada2358/D…phs/IGraph.html gefällt mir am besten.
Sofern ich das richtig verstanden habe, erzeugt ich die Knoten außerhalb und übergebe sie addVertex bzw. danach addEdge.
Das gefällt mir, weil mir das recht flexibel und schön erscheint. Dann sollte es auch möglich sein, eine eigene Vertexklasse zu programmieren, die von Vertex erbt. Die Vertexklassen können also bei jeder Anwendung ganz anders aussehen.
PHP
Alles anzeigen<?php error_reporting(~0); /** * Ganz allgemeine Vertex-Klasse. */ class GraphVertex { private $name; function __construct($name) { $this->name = $name; } function getName() { return $this->name; } } /** * Wird dann einer CityGraphVertex zugewiesen. */ class City { private $sName; private $nArea; private $iPolulation; function __construct($name, $area, $population) { // ... } } /** * Eine eigene Vertex-Klasse für Städte. */ class CityGraphVertex extends GraphVertex { private $oCity; function __construct($name, City $oCity) { parent::__construct($name); $this->oCity = $oCity; } function getCity() { return $this->oCity; } } abstract class AEdge { protected $oU; protected $oV; function __construct(GraphVertex $oU, GraphVertex $oV) { $this->oU = $oU; $this->oV = $oV; } } /** * Gewichtete Kante. */ class UniWeightEdge extends AEdge { private $nWeight; private $bDir; function __construct(GraphVertex $oU, GraphVertex $oV, $weight, $dir) { parent::__construct($oU, $oV); // ... } } /** * Bidirektional gewichtete Kante. */ class BiWeightEdge extends AEdge { private $nWeightUV; private $nWeightVU; private $bDir; function __construct(GraphVertex $oU, GraphVertex $oV, $weightUV, $weightVU, $dir) { parent::__construct($oU, $oV); // ... } } /** * Ausgangsbasis für alle Arten von Graphen. */ abstract class AGraph { protected $aVertex = []; protected $aEdge = []; function addVertex(GraphVertex $oVertex) { $this->aVertex[] = $oVertex; } } /** * Graph mit gewichteten Kanten. */ class UniWeightGraph extends AGraph { function addEdge(GraphVertex $oU, GraphVertex $oV, $weight, $dir = false) { // ... $this->aEdge[] = new UniWeightEdge($oU, $oV, $weight, $dir); } } /** * Graph mit bidirektional gewichteten Kanten. */ class BiWeightGraph extends AGraph { function addEdge(GraphVertex $oU, GraphVertex $oV, $weightUV, $weightVU, $dir = false) { // ... $this->aEdge[] = new BiWeightEdge($oU, $oV, $weightUV, $weightVU, $dir); } } $oG = new BiWeightGraph(); $oCGVParis = new CityGraphVertex('paris', new City('Paris', 17174.4, 12161542)); $oCGVVienna = new CityGraphVertex('vienna', new City('Vienna', 414.87, 1763912)); $oC->addVertex($oCGVParis); $oC->addVertex($oCGVVienna); $oC->addEdge($oCGVParis, $oCGVVienna, 1033, 1033.5); ?>
Wie schaut das aus? OK so?
-
Eine andere Möglichkeit wäre vielleicht, dass insert irgend etwas eindeutiges zurückgibt, das man dann edgeDistance als Parameter übergibt:
id0 = insert(value0)
id1 = insert(value1)
edgeDistance(id0, id1, distance01, distance10)Diese ids könnten vielleicht Node-Objekte sein. Wie wäre diese Variante?
Vielleicht auch möglich, außen Node-Objekte zu erzeugen, und die dann insert und edgeDistance übergeben:
node0 = new Node(value0)
node1 = new Node(value1)
insert(node0)
insert(node1)
edgeDistance(node0, node1, distance01, distance10) -
Hi [Blockierte Grafik: http://www.informatik-forum.at/pics/nb/smilies/smile.gif]
In AlgoDat 2 wird gleich am Anfang eine "Distanzmatrix" erwähnt. Ich suche aktuell den besten Weg, wie man so eine Distanzmatrix anlegen kann.
Warum ich das Thema nicht in AlgoDat 2 aufgemacht habe? Hatte ich. Aber dort bekam ich kein Feedback [Blockierte Grafik: http://www.informatik-forum.at/pics/nb/smilies/shinner.gif]. Aber es gibt noch einen anderen Grund: es geht nämlich darum, wie man so etwas ganz grundsätzlich programmiert. Also darum, ob und wie man Informationen zurückgibt oder als Parameter übergibt. Ich hab damit leider ganz grundsätzlich noch Probleme. Ich weiß immer noch nicht, wo ich eine Zahl oder ein Objekt übergeben soll, wo ich etwas zurückgeben soll, oder nicht. Solange mir das Gespühr dafür fehlt, in welchem Stil man das programmiert, mache ich es vielleicht immer falsch.
Ich hätte jetzt zu diesem konkreten Beispiel 3 unterschiedliche Varianten anzubieten. Hier mal die erste Variante.
Ich hätte die Klassen BranchAndBoundNode und BranchAndBound. Also keine edge-Klasse.
Für BranchAndBound:
insert(key0, value0) // fügt einen Knoten hinzu
insert(key1, value1)
edgeDistances(key0, key1, distance01, distance10) // definiert die Distanzen zwischen 2 Knoten0 entspricht "von" (erster Knoten), 1 entspricht "nach" (zweiter Knoten).
Bei jedem insert wird eine BranchAndBoundNode-Instanz angelegt.
So schaut das bei mir aktuell in PHP aus:
PHP
Alles anzeigen<?php error_reporting(~0); class BranchAndBoundNode { private $iKey; private $value; function __construct($key, $value) { $this->setKey($key); $this->value = $value; } private function setKey($key) { if ( !is_int($key) || $key < 0 ) throw new Exception('key'); $this->iKey = $key; } } class BranchAndBound { private $aNode = []; // Alle Knoten. private $aDistanceMatrix = []; // Für die Werte einer Distanz-Matrix. /** * Einen node hinzufügen. * @param mixed $key * @param mixed $value */ function insert($key, $value) { if(array_key_exists($key, $this->aNode)) throw new Exception('key'); $this->aNode[$key] = new BranchAndBoundNode($key, $value); } /** * Definiert eine asymmetrische Distanz zwischen 2 Knoten. * @param int $key0 key von node 0 * @param int $key1 key von node 1 * @param number $distance01 Distanz von node 0 auf node 1 * @param number $distance10 Distanz von node 1 auf node 0 */ function edgeDistances($key0, $key1, $distance01, $distance10) { if(!array_key_exists($key0, $this->aNode)) throw new Exception('key0'); if(!array_key_exists($key1, $this->aNode)) throw new Exception('key1'); if($key0 == $key1) throw new Exception('keys'); self::checkDistance($distance01); self::checkDistance($distance10); $this->aDistanceMatrix[$key1]/* nach .. x */[$key0]/* von .. y */ = $distance01; /* von 0 nach 1 */ $this->aDistanceMatrix[$key0][$key1] = $distance10; } /** * Distanz prüfen. * @param number $distance * @throws Exception * not typ number */ static private function checkDistance($distance) { if(!is_numeric($distance)) throw new Exception('distance'); } /** * Distanz-Matrix prüfen. * @throws Exception */ private function checkDistanceMatrix() { $iCount = count($this->aNode); for($iTo = 0; $iTo < $iCount; ++$iTo) { for($iFrom = 0; $iFrom < $iCount; ++$iFrom) { if($iFrom == $iTo) { $this->aDistanceMatrix[$iTo][$iFrom] = INF; // unendlich } elseif // Kontrolle, ob das Array-Element existiert: ( !array_key_exists($iTo, $this->aDistanceMatrix) || !array_key_exists($iFrom, $this->aDistanceMatrix[$iTo]) ) throw new Exception('matrix value'); } if(count($this->aDistanceMatrix[$iTo]) != $iCount) throw new Exception('matrix count from'); } if(count($this->aDistanceMatrix) != $iCount) throw new Exception('matrix count to'); } // nur zum Testen: function getMatrix() { return $this->aDistanceMatrix; } function check() { $this->checkDistanceMatrix(); } } $oBAB = new BranchAndBound(); // nodes: $oBAB->insert(0, 0); $oBAB->insert(1, 1); $oBAB->insert(2, 2); $oBAB->insert(3, 3); $oBAB->insert(4, 4); $oBAB->insert(5, 5); // Distanzen: $oBAB->edgeDistances(1, 0, 6, 5); $oBAB->edgeDistances(2, 0, 1, 1); $oBAB->edgeDistances(3, 0, 4, 2); $oBAB->edgeDistances(4, 0, 1, 1); $oBAB->edgeDistances(5, 0, 6, 6); $oBAB->edgeDistances(2, 1, 4, 6); $oBAB->edgeDistances(3, 1, 3, 3); $oBAB->edgeDistances(4, 1, 5, 7); $oBAB->edgeDistances(5, 1, 2, 2); $oBAB->edgeDistances(3, 2, 3, 1); $oBAB->edgeDistances(4, 2, 1, 2); $oBAB->edgeDistances(5, 2, 6, 5); $oBAB->edgeDistances(4, 3, 2, 5); $oBAB->edgeDistances(5, 3, 4, 4); $oBAB->edgeDistances(5, 4, 5, 5); // nur zum Testen: var_dump($oBAB->getMatrix()); $oBAB->check(); ?>
-
Musste grad was ziemlich übles über Thunderbird lesen: http://www.heise.de/newsticker/mel…el-2044405.html
-
Für 200 € nehm ich mir die Zeit und fülle das gewissenhaft aus.
-
-
Raumschiff Voyager
Frasier
The Big Bang Theory
Dexter
Dragon Ball
Dr. House
Dead like me
Hör mal, wer da hämmert
Pushing Daisies
Grimm
Eine schrecklich nette Familieund viele mehr :shinner:
-
thanks für die infos
-
Zitat
Die Frage wäre wohl besser anderswo gestellt, als in einem von zig tausend Threads mit gänzlich anderem Titel und noch dazu in Off-Topic, findest du nicht?
Hast Recht, eigentlich sollte das vor Gericht geklärt werden, ob das rechtens ist, was Google treibt. Und natürlich auch, ob das rechtens ist, was die Daten-Zulieferer treiben Früher oder später wird diese Frage sicher vor einem Gericht behandelt werden. Ist nur eine Frage der Zeit.
ZitatAbgesehen davon hast du die Möglichkeit zum Opt-Out, indem du NoScript installierst und Google Analytics nicht auf die Whitelist setzt
Ich verwend aktuell das Firefox-Addon Ghostery
-
http://futurezone.at/netzpolitik/bi…untu/32.589.061
Da bekommt man echt einen Hass ohne Ende auf diese scheiß Überwachungsfreaks.
Besser Finger weg von Kinect.Eine Frage an die Verantwortlichen dieser Webseite: Warum arbeitet das informatik-forum eigentlich mit Google-Analytics?