Long story short:
vim /Applications/PhpStorm.app/Contents/Info.plist
Nach JVMVersion suchen. Steht dort 1.6* sollte man – natürlich nur wenn Java 7 installiert ist – auf 1.7* ändern.
<key>JVMVersion</key> <string>1.7*</string>]]>
Da mein Login den Zend\Authentication\AuthenticationService verwendet, kommt man an die Identität und damit in meinem Fall an das User Objekt leicht ran.
$user = $this->getAuthService()->getIdentity()
Nun wollte ich das ganze meinem neuen Ziel-Objekt mitgeben und dann per $orm->persist abspeichern. Nennen wir es einfach kurz $buch.
$buch->setUser($user); $orm->persist($buch); $orm->flush();
Leider resultierte das in einer dicken Fehlermeldung seitens Doctrine:
Doctrine\ORM\ORMInvalidArgumentException: A new entity was found through the relationship
Was war passiert? Doctrine konnte mit dem Objekt nichts mehr anfangen, nach dem es aus der Session geladen wurde, denn der EntityManager weiß bei einem erneuten Seitenaufruf nichts mehr von diesem Objekt.
Zum Glück half die Doctrinehilfe schnell: http://doctrine-orm.readthedocs.org/en/latest/cookbook/entities-in-session.html
Die Lösung in Kurzform: Man muss das Objekt mit der merge() Funktion des EntityManagers neuladen, damit man es benutzen kann. Entgültiger Code ist dann also:
$user = $this->getAuthService()->getIdentity(); //Die obere Zeile kann man natürlich direkt in die Funktion einsetzen! $user = $orm->merge($user); $buch->setUser($user); $orm->persist($buch); $orm->flush();
Am Ende hat man wieder etwas gelernt!
]]>Doch auch abseits der Programmierung habe ich viel neues gelernt. So habe ich durch über 4 Jahre browserlife.de Serverbetrieb viel Probleme umschiffen müssen und habe so manch Eigenheit des Internets schmerzhaft erfahren müssen. Aktuell beschäftige ich mich mit Virtualisierung mit KVM und libvirt, dass ist spannend, aber man findet leider nur mit viel googlen (oder bingen) passende Lösungen…
Damit kommen wir auch dazu warum ich das alles erzähle: Ich verbringe täglich locker 1/5 meiner Arbeitszeit damit das Internet nach Lösungen für meine Probleme zu durchsuchen…ich lese Foren, Blogs, Stackoverflow und Mailinglisten auf der Suche nach so manch Fehler…doch schreiben tu ich nie, dabei lebt das ganze Konzept der Communities von der „Rückgabe“ von Wissen. Dabei ist es das beste was man machen kann- auch für sich selbst! Einfach wenn man ein Problem gelöst hat und es möglicherweise auch für andere oder einen selber nochmal interessant werden könnte es aufzuschreiben. Das muss ja nicht immer eine detailierte Step-By-Step Anleitung sein sondern machnmal einfach nur ein Codeschnipsel.
Lange Rede, relativ kurzer Sinn: Ich werde ab sofort versuchen wieder mehr zu IT Themen hier zu veröffentlichen. Thema wird immer das sein, was mich beim Programmieren oder Administrieren so beschäftigt. Ich hoffe ich schaffe es regelmäßig, denn seien wir mal ehrlich: Jeder Informatiker hat mindestens einmal in der Woche ein Problem was andere vielleicht auch schon geplagt hat!
Auf bessere Zeiten für dieses Blog!
]]>!!!Selbstsignierte SSL Zertifikate sollten niemals für „öffentliche“ Webseiten/Dienste verwendet werden, die von einem großen Nutzerkreis aufgerufen werden, da der Browser stets eine Warnung bringt!!!
Für die eigene Zertifizierungsstelle benötigt man folgendes:
Zunächst legt man sich einen neuen Ordner an (es spielt ansich keine Rolle wo dieser Ordner liegt, sofern er nicht von außen erreichbar ist):
mkdir /root/ownca/ cd /root/ownca/
Nun erstellen wir den privaten Schlüssel für die CA. Dieser muss sicher aufbewahrt werden, denn sollte er in falsche Hände geraten, dann sollte man schleunigst alle Zertifikate ersetzen und von vorn anfangen. Häufig findet man in Anleitungen, dass man 2048 oder 4096 Bit nehmen soll. Das ist oft einfacher, denn zum Beispiel MacOS hat Probleme mit 8192 Bit langen Zertifikaten, dennoch ist es die erhöhte Sicherheit wert.
openssl genrsa -des3 -out ca.key 8192
Nun erstellt man das dazugehörige Zertifikat. Wichtige Angaben sind hier vorallem das Land (DE), die Provinz (Bundesland), die Organisation und der Common Name (CN). Beim CN kann man seine Domain nehmen oder irgendwas anderes, denn es spielt ansich keine Rolle. Land, Provinz und Organisation sollte man ordentlich ausfüllen, da alle anderen Zertifikate die man später damit signieren will diese Attribute gleich haben müssen.
openssl req -new -x509 -extensions v3_ca -key ca.key -out ca.crt -days 3650
Als nächstes erstellen wir ein paar Ordner um etwas Ordnung rein zu bringen, denn sobald man ein paar Zertifikate erstellt hat, liegen schon ordentlich viele Dateien rum. Das -m 0700 stellt sicher, dass niemand außer man selbst auf die vertraulichen Keys zugreifen kann.
mkdir -m 0700 \ /root/ownca/certs \ /root/ownca/crl \ /root/ownca/newcerts \ /root/ownca/private
Nun benötigen wir noch eine serial Datei (diese steuert die Seriennummer für die Zertifikate) und eine index.txt (hier stehen später alle Zertifikate aufgelistet)
echo 1000 >> /root/ownca/serial touch /root/ownca/index.txt
Nun schieben wir den vorhin erstellten Key und das Zertifikat an die richtigen Stellen und ändern gleich noch die Dateiberechtigung des Keys auf eine sichere Einstellung von 400.
mv ca.key private/ chmod 0400 private/ca.key mv ca.crt certs/
Damit man nicht bei jedem Zertifikat viele Parameter für die CA angeben muss, kann man das in der OpenSSL-Config anpassen. Diese liegt unter Debian und vielen anderen Distributionen unter /etc/ssl/openssl.cnf.
Folgende Zeilen im Bereich der CA_DEFAULT müssen angepasst werden:
dir = /root/ownca/ certificate = $dir/certs/ca.crt private_key = $dir/private/ca.key#
Nun ist alles vorbereitet und wir können mit dem Ausstellen von Zertifikaten beginnen. Zunächst benötigt man einen Request in Form einer CSR. Webinterfaces wie Plesk ermöglichen es diesen direkt zu erstellen. In diesem Fall kann der folgende Schritt ignoriert werden und man muss nur sicher stellen, dann die myreq.csr im Hauptordner liegt.
Ein Request + der dazu gehörige Privatekey ist schnell mit folgendem Befehl erstellt:
openssl req -new -nodes -newkey rsa:2048 -keyout mycertkey.key -out myreq.csr -days 365
Dabei immer darauf achten, dass man bei Company, State und Country die gleichen Werte angibt wie bei der CA-Erstellung.
Das Zertifikat wird mit dem folgenden Aufruf erstellt und liegt dann im Unterordner certs/ bereit. Achtet darauf die Dateien ordentlich zu benennen um nicht im Chaos zu versinken!
openssl ca -out certs/server.crt -infiles myreq.csr
Damit ist dieses Tutorial auch schon abgeschlossen und ihr habt nun eure eigene CA. Was ihr damit alles machen könnt, erfahrt ihr in kommenden Posts.
Solltet ihr Probleme mit dem Tutorial haben oder sollte sich ein Fehler eingeschlichen haben, dann schreibt einfach einen Kommentar.
]]>Los ging meine Jagt nach solch einem Gerät vor einer Woche. Ich war trotz der Tatsache, dass das Gerät als nicht verfügbar angezeigt wurde, in die Stadt zu einem – nach einem Planeten des Sonnensystems benannten – Elektronikmarkt gefahren und quatschte nach einer Mahlzeit und einer halben Stunde beschauen des Ausstellungsgerätes den Verkäufer an ob er denn ein Surface RT mit 32 GB da hat (64 GB sind unnötig teuer, da man per MicroSD eh Speicher nachrüsten kann) und ich hatte Glück! Genau ein Gerät hatte er noch!!!! Schnell nach hause und der Spaß begann.
Als erstes musste das Gerät noch konfiguriert werden, dank Microsoft Konto musste ich lediglich mich voher ins W-LAN einklinken und mich dann einloggen und schon sah alles wie auf den anderen Windows 8 Rechnern um mich herum aus. Schon jetzt gefiel mir die Touch-Cover-Tastatur. Zwar muss man sich zunächst daran gewöhnen, dass es keinen richtigen Druckpunkt gibt, aber nach ein paar Sätzen vertippt man sich kaum noch. Einziger Nachteil an dem Ding: Durch die leicht raue Oberfläche sammeln sich Hauptpartikel in der Tastatur und sie sieht dreckig aus. Ein feuchtes Tuch löst dieses Problem aber. Doch auch mit abgebauter oder nach hinten geklappter Tastatur lässt sich das Surface RT klasse bedienen. … Doch das hier soll ja eigentlich kein Review oder Testbericht werden (den bringe ich erst nach 2-4 Wochen raus),
Nachdem ich mit der Bedienung vertraut war begann ich mich durch den App-Marktplatz zu wühlen…mit Erfolg. Auch wenn es noch nicht besonders viele Apps gibt, die wichtigsten sind vertreten. Von Quellcode-Editor bis SSH-Terminal war alles dabei was ein Nerd so braucht. (Links dazu ergänze ich später) Schließlich installierte ich noch ein paar Spiele und schon war ich süchtig nach dem Gerät. Schnell chatten und mal kurz in der viel zu langen Werbepause der Lieblingsserie eine Runde Solitär spielen gefällt mir sehr.
Bisher habe ich auch aus Zeitmangel nur diese „Grundfunktionen“ getestet und werde mich zu Details später auslassen, aber jetzt muss ich erstmal fix meine XBOX updaten und mir die Vorstellung der neuen XBOX ansehen.
]]>So gegen 10 Uhr begann der Tag für mich. Ich suchte mir was zum Frühstück zusammen und traf auf Toastbrot und Nutella. Gut, dass ich gestern schon einen Toaster gekauft habe! Also ab mit dem Toast in den Toaster und schnell ein Messer, Kaffee und ein Brettchen gesucht. Klingt als würde das Frühstück gelingen, doch es gibt ein Problem: Aus Platzgründen hatte ich das Nutella in den Kühlschrank gestellt (da der vor der restlichen Küche da war) und nun war es steinhart… Über Mumble kam ein Lösungsvorschlag: Kurz hinter das PC-Netzteil stellen…das war selbst mir dann zu doof und so versuchte ich das Nutella irgendwie so auf das Brot zu bekommen, was mir schließlich auch gelang. Dann ging es los zum einkaufen…ich habe mich immer gefragt, warum meine Eltern da teilweise so lange brauche…jetzt weiß ich es: In diesen *biiiieeep* Läden sucht man sich aber auch einfach nur blöd. Ich wollte einfach nur Zutaten für Nudeln, Tiefkühlpizza und Backpapier. Allein für das Backpapier lief ich 3 Runden durch den Laden und kaufte auf dem Weg so ziemlich alles, was ich eigentlich nicht brauchte. Marketing funktioniert dort! Völlig erschöpft ging ich nach Hause. Doch zum Mittagessen viel mir auf: Halt das Salz fehlt noch und Öl ist auch nicht da. Also nochmal schnell in nen Discounter gegangen und fertig. Nun war mein Vater da und es ging in ein großes Einkaufscenter, denn ich brauchte noch Töpfe und Geschirr und natürlich darf bei einem Informatiker auch die Mikrowelle nicht fehlen! Bei den Mikrowellen gab es viel zu viel Auswahl, doch das war schnell erledigt. Komplizierter war es da beim Geschirr: Die Farbe sollte da passend zum Rest der Wohnung einfach Grün sein (Insider wissen da evtl. mehr). Die Verkäuferin griff den Gedanken auf und versuchte mir nun wirklich alles in Grün zu verkaufen, doch musste sie wegen Lieferschwierigkeiten dann doch mit Gelb mischen. Irgendwie muss ich derartig hilflos gewirkt haben, denn sie erklärte mir gleich noch, wozu welcher Teller und welche Suppenkelle nun gedacht sei. Bis auf die Pfannen und die Töpfe hatte ich dann alles in passenden Farben.
Zu Hause angekommen nahm ich mir vor: Heute machst du Nudeln. Also schnell das Geschirr erstmal in den Geschirrspüler und die Töpfe schnell von Hand abgewaschen. Das halbe brl-mc.de Adminteam lachte sich schon schlapp über so manch Geräusch, Schrei oder Kommentar. Als endlich alles sauber war, ging das Theater (wie es später Admin bl0ons auf Facebook bezeichnete) los. Schnell etwas Wasser in den Topf, Herdplatte an und los geht’s! Als erstes musste Salz in den Topf, doch bekam ich die Verpackung nicht auf. Eigentlich sollte da an der Seite doch so ein „Hier reindrücken“ Teil sein, doch als ich es auf Anhieb nicht fand und zu bl0ons schon sagte: „Ach scheiß billig Packung“ und es gerade oben aufriss fand ich die Öffnung dann doch noch…zu spät für die Kiste. Schnell mit etwas Klebeband gefixt und weiter ging es. Nachdem das Wasser nun siedete (es gab parallel eine Diskussion über den Unterschied zwischen Kochen und sieden), wollte ich die Nudelpackung nun fachgerecht öffnen, doch das gelang – zur Freude so manch Mumblezuhörer – auch wieder nicht. Also entfernte ich die Nudeln gewaltsam aus der Verpackung. Schnell ein paar Hand voll in den Topf gepackt und 11 Minuten gewartet. Beim Abgießen viel auf: Es sind zu viele, was ich mit: „Da kann ja ne ganze Elchherde von satt werden“ kommentierte. Beim warmmachen der Soße war der Herd zu nächst der Meinung einfach ewig zu brauchen und dann aber plötzlich die Soße aus dem Topf zu schießen, doch das Ergebnis konnte sich am Ende sehen lassen:
Übrigens: Bis auf eine kleine Schüssel wurden alle Nudeln alle!
Dann bis morgen.
Euer Admin im Reallife
malganis93 aka Lars
]]>ich weiß ich war mehr als faul in letzter Zeit, doch da ich jetzt umgezogen bin, werde ich euch ab sofort eine neue Serie von Posts über die Tücken des Alltags präsentieren. Ich hoffe ihr habt Spaß.
Viele Grüße
malganis93
]]>Nun noch schnell ein paar Worte zur neuen Webseite. Ich plane hier eine Newsseite im Zeitungslayout als Hauptseite. Darunter werdet ihr eine Communitypage finden, die vom Aufbau her sehr an Seiten wie Facebook oder SchülerVZ erinnert. Es gibt Statusmeldungen, Gruppen und Foren. Um diese Seite ordentlich aktuell zu halten brauche ich auf jeden Fall noch ein paar Mithelfer, denn pro Tag sollten schon mindestens ein bis zwei Posts veröffentlicht werden. Die Themen sollen vorallem den Technik und Gameingbereich umfassen, aber auch Alltagsthemen mit Relevanz sind erwünscht. Für private Ergüsse (Literarischer Art!) sind auch eigene Blogs für jeden Nutzer möglich.
Ich hoffe ihr freut euch schon auf die neue Seite! Ich werde in den nächsten Tagen einen Newsletter veröffentlichen. Wo ihr euch dafür anmelden könnt schreibe ich im nächsten Beitrag.
Lars
malganis93