|
|
|
|
|
|
|
|
Heute habe ich den Glauben an die "Technischen Cracks" meiner Firma verloren.
Neuer Kollege der im Projekt mitarbeitet und ein weiterer Kollege der Technischer Consultant für unser Framework ist sind gerade am DBUnit Test schreiben.
Beide reagieren plötzlich, als hätten Sie ein bisher unentdecktes Feature von Java/DBUnit whatever entdeckt.
Ich frage Sie interessiert was Sie denn da tolles entdeckt haben.
Sagt der Technische Consultant: "Booleans mit kleinem b haben als Belegung false und nicht null."
Ich:
|
|
|
|
|
|
|
Ich brauch einen günstigen, brauchbaren Laserdrucker. Geht darum die Skripte fürs Studium ständig zu drucken. Tintenstrahl ist so fucking teuer dann.
Kennt jemand da was? Muss echt nichts supertollesn sein, in erster Linie günstig.
|
|
|
|
|
|
|
Kannst du nicht in der Uni drucken? Ist doch meist am billigsten
|
|
|
|
|
|
|
Standardempfehlung: N gebrauchten Kyocera FS 1010 oder ähnliches
|
|
|
|
|
|
|
| Zitat von SkunkyVillage
Ich brauch einen günstigen, brauchbaren Laserdrucker. Geht darum die Skripte fürs Studium ständig zu drucken. Tintenstrahl ist so fucking teuer dann.
Kennt jemand da was? Muss echt nichts supertollesn sein, in erster Linie günstig.
| |
Samsung ml-3xxx-ND Serie auf Ebay kaufen. Gute Drucker für um die 100 Euro.
|
|
|
|
|
|
|
|
|
|
|
Kranker Scheiß!
|
|
|
|
|
|
|
Dazu hab ich mal was gelesen: Eigentlich ging das immer nur mit sehr kalten Materialien, also nahe am absoluten Nullpunkt. Zuletzten hätten die aber Supraleiter gefunden, die das auch bei relativ warmen Temperaturen (-60°C oder so) hinkriegen.
Da steckt jedenfalls noch Potential drin, wenns so weiter geht
|
|
|
|
|
|
|
|
|
|
|
Mal eine Frage an die C#-Leute hier.
Kann ich die Ableitung einer abstrakten Klasse, als Beispiel hier Spitzdach ist von einer abstrakten Klasse Dach abgeleitet, in eine Variable vom Typ Dach stecken?
Beispielcode:
|
Code: |
abstract class Dach
{
public abstract function baueHaus();
}
class Spitzdach extends Dach
{
public function baueHaus()
{
echo 'baubau';
}
public function andereMethode()
{
echo 'joauchda';
}
}
class Haus
{
public $dach;
public function __construct(Dach $dach)
{
$this->dach = $dach;
$this->dach->baueHaus();
}
}
$spitzdach = new Spitzdach();
$haus = new Haus($spitzdach);
|
|
$dach hat ja in PHP keinen Typen, den kann ich aber über den Konstruktor "abfragen". Wie sieht das in C# aus, wenn public $dach eine Typisierung nach Dach hätte, geht das?
|
|
|
|
|
|
|
| Zitat von Gore
Mal eine Frage an die C#-Leute hier.
Kann ich die Ableitung einer abstrakten Klasse, als Beispiel hier Spitzdach ist von einer abstrakten Klasse Dach abgeleitet, in eine Variable vom Typ Dach stecken?
Beispielcode:
|
Code: |
abstract class Dach
{
public abstract function baueHaus();
}
class Spitzdach extends Dach
{
public function baueHaus()
{
echo 'baubau';
}
public function andereMethode()
{
echo 'joauchda';
}
}
class Haus
{
public $dach;
public function __construct(Dach $dach)
{
$this->dach = $dach;
$this->dach->baueHaus();
}
}
$spitzdach = new Spitzdach();
$haus = new Haus($spitzdach);
|
|
$dach hat ja in PHP keinen Typen, den kann ich aber über den Konstruktor "abfragen". Wie sieht das in C# aus, wenn public $dach eine Typisierung nach Dach hätte, geht das?
| |
Geht. Ich hoffe ich hab dich richtig verstanden: Du wolltest wissen, ob du den Konstruktor-Parameter vom Typen der Basisklasse 'Dach' machen kannst und somit die Basis-Klasse Methode 'baueHaus' aufrufen kannst, ja?
|
|
|
|
|
|
|
Jein, ich wollte wissen ob ein Objekt vom Typ Spitzdach in einer Klassenvariable vom Typ Dach abgelegt werden kann. Ich denke das dann die Variable aber nur die Methoden von Dach kennt. Richtig?
|
|
|
|
|
|
|
Genau. Du kannst das ganze aber mittels (SpitzDach ($dach)) unboxen und auf die Methoden von Spitzdach zugreifen. (oder wie auch immer man in C# nochmal castet)
|
|
|
|
|
|
|
Theoretische Grundlagen der Informatik: "Wir werden mehr Beweise als in den vorherigen Fächern machen."
Na super.
|
|
|
|
|
|
|
| Zitat von Smoking
Genau. Du kannst das ganze aber mittels (SpitzDach ($dach)) unboxen und auf die Methoden von Spitzdach zugreifen. (oder wie auch immer man in C# nochmal castet)
| |
Ja, konkrete Implementierungen können einer Variable vom Typ der Basisklasse zugewiesen werden. Tatsächlich ist das ein wichtiges Grundprinzip.
Boxing und Unboxing bezieht sich aber auf etwas anderes. Da in C# eine Unterscheidung zwischen Wertetypen (Strukturen und primitive Datentypen wie int, bool, float) und Referenztypen (Klassen) gemacht wird. Aber:
|
Code: |
// Boxing, da "object" ein Referenztyp ist:
object o = 14;
// Unboxing vom Referenz zum Wertetyp.
int i = (int)o;
|
|
Siehe: http://msdn.microsoft.com/de-de/library/yz2be5wk.aspx
Einen Downcast auf die konkrete Implementierung sollte man aber nicht machen. Das ist aber auch in seinem Beispiel gar nicht notwendig.
|
|
|
|
|
|
|
| Zitat von Smoking
Genau. Du kannst das ganze aber mittels (SpitzDach ($dach)) unboxen und auf die Methoden von Spitzdach zugreifen. (oder wie auch immer man in C# nochmal castet)
| |
Dachte ich mir, aber meine Kollegen wollten mir eben weismachen dass das nicht geht und der Compiler einen Error wirft. Die wollen da lieber eine abstract factory und ein Interface zwischen ziehen die den Aufruf durchleiten. Erscheint mir etwas zu sehr mit Kanonen auf Spatzen für das
|
|
|
|
|
|
|
| Zitat von Daddi89
Kannst du nicht in der Uni drucken? Ist doch meist am billigsten
| |
Ich habs gern zuhause, aber ja, die Möglichkeit besteht.
|
|
|
|
|
|
|
| Zitat von jdo_O
Neuer Kollege der im Projekt mitarbeitet und ein weiterer Kollege der Technischer Consultant für unser Framework ist sind gerade am DBUnit Test schreiben.
Beide reagieren plötzlich, als hätten Sie ein bisher unentdecktes Feature von Java/DBUnit whatever entdeckt.
Ich frage Sie interessiert was Sie denn da tolles entdeckt haben.
Sagt der Technische Consultant: "Booleans mit kleinem b haben als Belegung false und nicht null."
| |
|
|
|
|
|
|
|
| Zitat von [DK]Peacemaker
| Zitat von Smoking
Genau. Du kannst das ganze aber mittels (SpitzDach ($dach)) unboxen und auf die Methoden von Spitzdach zugreifen. (oder wie auch immer man in C# nochmal castet)
| |
Ja, konkrete Implementierungen können einer Variable vom Typ der Basisklasse zugewiesen werden. Tatsächlich ist das ein wichtiges Grundprinzip.
Boxing und Unboxing bezieht sich aber auf etwas anderes. Da in C# eine Unterscheidung zwischen Wertetypen (Strukturen und primitive Datentypen wie int, bool, float) und Referenztypen (Klassen) gemacht wird. Aber:
|
Code: |
// Boxing, da "object" ein Referenztyp ist:
object o = 14;
// Unboxing vom Referenz zum Wertetyp.
int i = (int)o;
|
|
Siehe: http://msdn.microsoft.com/de-de/library/yz2be5wk.aspx
Einen Downcast auf die konkrete Implementierung sollte man aber nicht machen. Das ist aber auch in seinem Beispiel gar nicht notwendig.
| |
Hmm, ok. Ich meine den Begriff unboxing im Zusammenhang mit Collections zu kennen deren Elemente keinen spezifischen Typ haben und die man dann beim Zugriff castet.
|
|
|
|
|
|
|
| Zitat von Smoking
| Zitat von [DK]Peacemaker
| Zitat von Smoking
Genau. Du kannst das ganze aber mittels (SpitzDach ($dach)) unboxen und auf die Methoden von Spitzdach zugreifen. (oder wie auch immer man in C# nochmal castet)
| |
Ja, konkrete Implementierungen können einer Variable vom Typ der Basisklasse zugewiesen werden. Tatsächlich ist das ein wichtiges Grundprinzip.
Boxing und Unboxing bezieht sich aber auf etwas anderes. Da in C# eine Unterscheidung zwischen Wertetypen (Strukturen und primitive Datentypen wie int, bool, float) und Referenztypen (Klassen) gemacht wird. Aber:
|
Code: |
// Boxing, da "object" ein Referenztyp ist:
object o = 14;
// Unboxing vom Referenz zum Wertetyp.
int i = (int)o;
|
|
Siehe: http://msdn.microsoft.com/de-de/library/yz2be5wk.aspx
Einen Downcast auf die konkrete Implementierung sollte man aber nicht machen. Das ist aber auch in seinem Beispiel gar nicht notwendig.
| |
Hmm, ok. Ich meine den Begriff unboxing im Zusammenhang mit Collections zu kennen deren Elemente keinen spezifischen Typ haben und die man dann beim Zugriff castet.
| |
Kann gut sein, diese Werte-Referenz-Typ Unterscheidung ist ja recht .NET spezifisch und (Un)boxing kann man sicher gut auch auf andere Techniken beziehen, weil es als Begriff gut auf vieles passt. Da wir halt gerade im C# Kontext sind, hat Unboxing halt eine sehr spezifische Bedeutung, die aber natürlich im Zusammenhang mit Casten steht.
Ich komm in dem Zusammenhang immer mit Down- und Upcast durcheinander
|
|
|
|
|
|
|
Für eine Semesterarbeit hat jetzt eins meiner neuen Teammitglieder ein git-Repository aufgesetzt. Abgesehen davon dass ich es da wohl tatsächlich mit motivierten und kompetenten Leuten zu tun habe (wir haben noch nicht mal die Aufgaben bekommen), die Authentifizierung soll über public/private-key laufen. Da frage ich mich, lohnt es sich dass ich meinen Homeserver auch dadrauf einrichte?
|
|
|
|
|
|
|
Auf dem GIT-Server?
|
|
|
|
|
|
|
Nein, ich verbinde mich oft per SSH von außen auf meinen Homeserver (E-Mails aus einem Uninetzwerk mit gesperrtem Port 25 rauskriegen oder in offenen WLANs über einen sicheren Kanal surfen) und da frage ich mich ob ich einen Komfort- und Sicherheitsgewinn von public/private-key-Authentifizierung habe.
|
|
|
|
|
|
|
Naja, du brauchst zwei Merkmale um dich anmelden zu können. Das macht das ganze etwas sicherer. Da du aber eh putty portable mit deinem private Key mit dir rumtragen wirst, lohnt sich das für einen einzelnen Login m.E. nicht. Der Vorteil kommt eher dann zu tragen, wenn man sich auf mehreren Systemen mit dem selben Key einloggt.
|
|
|
|
|
|
|
Wirklich sexy wird das Publickey verfahren erst wenn man dinge wie SCP oder Rsync benutzt. Weil dann kann man über Rechner hinwegkopieren als würde man cp benutzen. Kein lästiges Passwort-Eingeben mehr.
Zum reinen einloggen per SSH spart man sich etwas Tipparbeit. Mehr nicht.
Ansonsten, prinzipiell ist Public-Key Authorisation "sicherer" als ein Passwort. Hängt aber davon ab, wie "sicher" dein Passwort ist. Einen entsprechenden Key durch Brute-Force zu erraten ist wohl "ausgeschlossen".
|
|
|
|
|
|
|
Mein Internetserver leider zur Zeit irgendwie. Ist praktisch nur ausgelastet, aber andauernd verliert er Pings und braucht ewig ein paar Webseiten auszuliefern.
Vielleicht liegts ja auch an mir: könnt ihr mal ein wenig die IP 83.169.9.25 testen?
|
|
|
|
|
|
|
Also ein schneller Ping-Flood lässt nichts gutes vermuten...
|
Code: |
# ping -f 83.169.9.25
PING 83.169.9.25 (83.169.9.25) 56(84) bytes of data.
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................^C
--- 83.169.9.25 ping statistics ---
733 packets transmitted, 197 received, 73% packet loss, time 9357ms
rtt min/avg/max/mdev = 52.365/55.755/61.722/1.855 ms, pipe 6, ipg/ewma 12.784/55.695 m
|
|
Außer natürlich, du hast da irgend eine Anti-DoS geschichte am laufen.
|
|
|
|
|
|
|
Ich hab nen Timeout bekommen.
---------
Amazon ist ja mal geil. Die haben mir gerade ne Mail geschickt, dass meine Sendung nicht zugestellt werden konnte und ich sie die nächsten 7 Tage in meiner Postfiliale abholen kann.
|
|
|
|
|
|
|
Jopp, just in dem Moment, wo ich die Nachricht an den Support fertig gemacht habe, kommt die Meldung rein, dass was kaputt ist.
Sehr ärgerlich. Aber danke, Jungs.
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |