Page 5 of 59

Learn something every day

Früher gab es mal einen Blog (http://www. learnsomethingeveryday .co.uk/), welcher jeden Tag ein farbiges Comic veröffentlicht hat aus der Kategorie unnützes Wissen, mal mehr mal weniger. Mittlerweile ist der Blog die Seite nur noch ein Reklame für das Buch, in welchem alle Beiträge gebunden sind. Als Geschenkidee ganz schön zum durchblättern, besonders für Menschen die Spaß an Englisch haben:

[asa]0399536663[/asa]

Grundsätzlich finde ich die Idee, jeden Tag etwas Neues zu lernen und sich dessen auch bewußt zu sein, sehr schön. Gut, rückblickend auf die Anzahl meiner Beiträge hier im Blog ist jeden Tag vielleicht etwas hoch gegriffen, aber vielleicht jede Woche oder auch nur jeden Monat, würde doch schon ausreichen. Die ersten zwei Schritte habe ich schon mal gemacht, sprich eine Kategorie dafür angelegt und einen initial Beitrag verfasst. Mal schauen wie es sich weiter entwickelt.

Git Checkout – Clone – Fetch wie SVN – Checkout

Da ich es immer wieder vergesse und aufs Neue suchen muss, verfasse ich einen entsprechenden Blogeintrag bzgl. dem Auschecken von Projekten aus einem Git bzw. Bigbucket Repository. Aufgrund der großen Anzahl ähnlicher Posts, gehe ich davon aus, dass es dem Einen oder Anderen auch hilft besser mit Git zurecht zu kommen.

Ausgangssituation ein Git Repository

Es gibt eine lokale Entwicklungsumgebung, auf der ich mit Netbeans den Code erstelle, und einen Web-Server, der die Produktivumgebung darstellt. Bevor ich jetzt die einzelnen Dateien mittels FTP und SCP kopiere, möchte ich sie lieber mittels Git bzw. Bitbucket einchecken bzw. auschecken, damit ich eine entsprechende Versionierung der Änderungen habe.

Git Konsole vs. GUI

Ursprünglich hatte ich mir für Windows die Git-Konsole heruntergeladen, da ich jedoch keine großen Branches etc. betreiben wollte und es auch immer etwas umständlich fand, nacheinander add, commit und push einzugeben, bin ich jetzt auf SourceTree umgestiegen. Auf dem Produktivsystem verwende ich natürlich weiterhin die Konsole, wobei ich dort auch eigentlich den Code nur wieder Pullen, Fetch bzw. auschecken will.

Der einfachste Weg

Auch wenn es im Internet viele Tutorials und Beiträge gibt, der einfachste Weg für mich ist:


git clone https://@bitbucket.org//repo.git

Die Url kann einfach aus Bitbucket kopiert werden. Bei der HTTPS Variante wird auch kein SSH-Key gebraucht. Es kann nur etwas verwirrend sein, das die Dateien in einem Unterordner landen.

BASE: Passwort size matters

Als ich heute auf der BASE-Seite mein Passwort ändern mußte, ein Initial-Passwort wird einem per SMS zugeschickt, war ich etwas überrascht über die Angabe der Passwortlänge bzw. erinnerte mich das an ein Gif, welches bestimmt schon etwas älter ist, aber deshalb nicht weniger wichtig, ganz im Gegenteil, denn mit steigender Rechner-Power bzw. dem Cloud Computing stehen heute für vergleichswenig wenig Geld fast unendliche Ressourcen zur Verfügung.

Zunächst der Ausschnitt aus der BASE-Webseite:

BASE Passwort Richtlinie

BASE Passwort Richtlinie

Wie auf dem Ausschnitt zu sehen, soll das Passwort genau 8 (in Worten acht) Zeichen lang sein. Erwartet hätte ich eine Angabe wie “mehr als 8 Zeichen”.

Intel Passwort Komplixität

Intel Passwort Komplixität

Basierend auf der Grafik werden für ein 8 stelliges Passwort nur ca. 15 Stunden benötigt. Mich würde wirklich mal der Grund interessieren, warum das Passwort auf acht Stellen begrenzt ist. Ich hoffe das Passwort wird nicht im Klartext gespeichert und das entsprechende Datenbankfeld ist nur 8 Zeichen lang.

Anbieter SSL Zertifikate wie Sand am Meer

Ganz zu Beginn meines Server-Wechsels zu Hetzner hatte ich mir ein signiertes SSL Zertifikat mit einer Laufzeit von zwei Jahre gegönnt. Nach Ablauf der zwei Jahre habe ich es nicht wieder erneuert, da mir auch irgendwo der Mehrwert gefehlt hat. Ich benutzte es damals zum Aufruf einer Administrationsoberfläche, die rote Seite im Chrome Browser mit dem entsprechenden Hinweis, bzgl. dem abgelaufenen SSL-Zertifikat, hat mich nicht weiter gestört, denn die Verbinung war weiterhin verschlüsselt. Nachdem Google jetzt bekannt gegeben hat, die Verbindungsverschlüsselung einer Seite zukünftig als Ranking-Faktor heranzuziehen, bin ich am überlegen wieder ein SSL Zertifikat zu kaufen.

Anforderungen an ein SSL-Zertifikat

Sowohl Anbieter als auch die SSL-Zertifikate selbst, scheint es mittlerweile, wie Sand am Meer zu geben, daher ist eine genaue Definition der Anforderungen wichtig um später besser abzuschätzen zu können, welche Eigenschaften benötigt werden:

  • Verschlüsselung: Die scheint bei allen Anbietern ähnlich zu sein, von daher gibt es hier keine besonderen Anforderungen. Der Unterschied zwischen der “Verschlüsselungstiefe” und der “Tiefe des Root-Zertifikats” ist im folgenden Artikel erklärt: http://security.stackexchange.com/questions/19473/understanding-2048-bit-ssl-and-256-bit-encryption.
  • Browser-Kompatibilität: Abhängig vom jeweiligen SSL-Zertifikat kann es besonders bei mobilen Browsern trotz gültigem Zertifikat zu einer Warnmeldung kommen, da die Trusted Autority dem Browser nicht bekannt ist. Es empfiehlt sich die Möglichkeit zu nutzen vorher ein Testzertifikat zu erstellen und auf mögliche Inkompatibilitäten vorab zu testen
  • Grüne Adresszeile: Beim Aufruf von bspw. https://www.ing-diba.de erscheint in der Adresszeile der Hinweis “ING-DiBa AG [DE]” im Vergleich dazu wird beim Aufruf von https://www.google.de nur das “https” grün. Interssant wäre zu wissen, wie viele Leute auf die grüne Adresszeile achten bzw. entsprechend handeln wenn dort nicht der Name der erwarteten Organisation erscheint. Für mich bietet die Funktion derzeit keinen Mehrwert, weshalb ich die Kosten und den zusätzlichen Aufwand bei der Beantragung einspare
  • Sub- und Multi-Domains: Theoretisch kann hinter einer IP-Adresse nur ein SSL-Zertifikat, was nur für eine Domain gültig ist, hinterlegt werden. Bei mehreren Web-Projekten, auf einem Server und der begrenzten Anzahl an IPv4-Adressen kann dies schnell teuer werden, wenn weitere IP-Adresse dazu gebucht werden müssen. Auch Subdomains sind eine zweite Domains, weshalb bei der Bestellung darauf geachtet werden sollte, ob bspw. mit oder ohne “www” der Standard ist, welcher abgesichert werden soll.
  • Laufzeit: I.d.R. beträgt die Laufzeit zwischen 1 und 3 Jahren. Auf jeden Fall empfiehlt es sich im Kalender eine entsprechende Erinnerung bzgl. dem Ablauftermin einzurichten und die initiale Bestellung nicht zwischen Weihnachten und Neujahr zu erledigen, damit einem “Unsere Internetseite funktioniert nicht mehr”-Anrufe erspart bleiben.
  • Preis: Die Preise variieren stark abhängig von den jeweiligen Eigenschaften, der Laufzeit und dem Anbieter bzw. der Certification Authority.

Anbieter SSL Zertifikate

Folgende SSL Zertifikats Anbieter werde ich mir näher anschauen:

  • PSW Group (https://www.psw.net)
  • GoDaddy (https://de.godaddy.com)
  • Speed IT (https://www.speedit.org)
  • Force SSL (http://forcessl.com/)
  • SSL Market (https://www.sslmarket.de)
  • icertificate (https://icertificate.eu/)
  • Trustico (http://www.trustico.de/)
  • GlobalProtec (http://globalprotec.com/de/)
  • SSL Point (https://www.sslpoint.com/de/)
  • Namecheap (https://www.namecheap.com)

Für welchen Anbieter ich mich entschieden habe, schreibe ich in einem späteren Artikel.

Online PHP IDE mit Smart Code Completion

Berufsbedingt arbeite ich derzeit an zwei verschiedenen Laptops, wobei ich auf einem keine Administratorenrechte besitze. Da nicht immer beide Laptops mitnehmen möchte, bzw. grundsätzlich angehalten bin, auf dem Laptop ohne Administratorenrechte keine fremde Software zu installieren, suche ich nach einer passenden Online IDE. Nachdem ich jetzt ein paar Sachen ausprobiert habe, eine Zusammenfassung meiner Erfahrungen im Bereich Online PHP IDE mit Smart Code Completion.

Arten von Online IDEs

Grundsätzlich gibt es zwei verschiedene Arten von Online IDEs:

  • Cloud IDE: Unter einer Cloud IDE verstehe ich Angebote wie bspw. Cloud9 (https://c9.io/) oder Codio (https://codio.com).
  • Self-Hosted IDE: Es finden sich im Internet auch eine Reihe von Download-Paketen für den eigenen Server wie bspw. Codiad (http://codiad.com/) oder ICEcoders (https://icecoder.net/).

Unabhängig ob online Cloud IDE oder online Self-Hosted IDE im Gegensatz zu offline IDEs wie bspw. Eclipse oder Netbeans sind die online Varianten oft kostenpflichtig bzw. gibt es verschiedene Pakete.

Außerdem bin ich noch auf eine dritte Art von “Online IDE” gestoßen, die ich bisher jedoch noch nicht getestet habe. Bei TheNextWeb (http://thenextweb.com/google/2013/11/21/google-building-chrome-app-based-development-environment-using-dart-polymer/) wird über ein IDE-Plugin berichtet, welches direkt im Chrome Browser läuft – Chromedeveditor (https://github.com/dart-lang/chromedeveditor). Aus der Beschreibung wird nicht ganz klar ob damit nur JavaScript und Dart Anwendungen geschrieben werden können oder ob auch andere Sprachen unterstützt werden.

Code Completion vs. Code Intelligence

Zunächst hatte ich geglaubt, dass mein gesuchtes Feature unter dem Begriff “Code Completion” existiert. Jedoch bezeichnet Code Completion nur das Feature, das bereits bekannte PHP-Funktionen, wie bspw. “substr” und “substr_count” bei der Eingabe von “sub” und dem gleichzeitigem Drücken von “STRG” + “Leertaste” entsprechend vorgeschlagen werden.

Code Completion in Netbeans

Code Completion in Netbeans für PHP Standardfunktionen

Dies wird oftmals einfach über eine zuvor definierte XML-Datei erreicht und erfordert kein Code Verständnis.

Durch einen Artikel bei StackOverflow (http://stackoverflow.com/questions/1738696/php-ide-with-best-code-completion) habe ich dann gemerkt, dass ich mindestens nach “Smart Code Completion” bzw. “Code Assistance” oder auch “IntelliSense” suchen muss.

Online PHP IDE mit Smart Code Completion aka Code Assistance aka IntelliSense

Verwöhnt von den offline IDEs Eclipse PDT (https://eclipse.org/pdt/) und Netbeans (https://netbeans.org) bin ich auf der Suche nach einer Online IDE, die neben Code Completion, auch Smart Code Completion aka Code Assistance aka IntelliSense beherrscht.

In praktischen Tests mit c9, Codio und ICEcoders war keine der Online IDEs in der Lage mir die passenden zugehörigen Methoden eines selbst definierten Objektes vorzuschlagen. Entweder es gibt grundsätzlich keine Vorschläge oder nur die Standard-PHP-Funktionen oder einfach alle Funktionen unabhängig ob sie zum jeweiligen Objekt gehören. Besonders bei der Objektorientierten Programmierung (OOP) ist das Vorschlagen der passenden Methoden besonders hilfreich für eine schnelle und fehlerfreie Programmierung. Außerdem wird neben dem reinen Methodennamen, wenn entsprechend angegeben, auch die Dokumentation zu den jeweiligen Variablen angezeigt und auf korrektes Type Hinting (http://php.net/manual/de/language.oop5.typehinting.php) geachtet.

Online PHP IDE mit Smart Code Completion gesucht wie in Netbeans für selbst definierte Methoden

Smart Code Completion

Weitere Links

Für weitere Informationen bzgl. Online PHP IDE mit Smart Code Completion ist der englischsprache Wikipedia-Artikel Comparison of JavaScript-based source code editors lesenswert. In diesem wird nochmals dargestellt, welche Editoren hinter den oben genannten Online IDE Diensten stecken und über welche Funktionen diese verfügen. Die Smart Code Completion aka Code Assistance aka IntelliSense ist in der Features-Liste bisher noch nicht erwähnt, wodurch es immer auf den konkreten Einzeltest ankommt.

Für Hinweise in den Kommentare bzgl. weiterer möglicher Kandidaten von Online PHP IDE mit Smart Code Completion würde ich mich wirklich freuen, gerne auch kostenpflichtige Angebote.