kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: ssd vs hdd

    geschrieben von masysma

    bruchpilotnr1 schrieb:
    Ob es wirklich nötig ist, für Jedes größere Spiel eine eigene SSD zu verwenden ist für mich eher fraglich. Natürlich macht es absolut Sinn, dass Betriebssystem eine eigene SSD zuzuweisen und deine Spiele auf eine andere.

    Für alle deine Spiele ist es ebenfalls zu Empfehlen diese auf eine separate SSD umzulagern. Aber du brauchst nicht für jedes Spiel eine eigene SSD. Eine ist vollkommen Ausreichend.
    Ich würde sogar soweit gehen zu sagen, dass mehrere SSDs zur Trennung Betriebssystem/Spiele auch nicht unbedingt erforderlich sind und bei schnellen (PCIe/NVMe) SSDs auch kein spürbarer Performancevorteil im Anwendungsfall "Spiele" zu erwarten ist, wenn man statt einer gemeinsamen SSD für Betriebssystem+Spiele das auf zwei separate SSDs auftrennt.

    sun5hin3 schrieb:
    Nutzt irgendjemand noch HDD´s?
    ja :) 6TB in diesem Rechner als Ablage für große Datenmengen (aktuell etwas mehr als 50% mit ISO images, Debian mirror, Computerspielen*** und sonstigen Dateien belegt) und 2TB auf einem Mini-PC als Backupziel für die wichtigsten Dateien.

    ***) Bei mir nicht die "Hauptsache" der Computernutzung, daher nicht auf den SSDs untergebracht. Für die meisten Nutzer dürfte es aber Sinn ergeben, Spiele auf SSD zu installieren.
  • in: ssd vs hdd

    geschrieben von masysma

    Vor langer Zeit (als die Windows-Rechner noch per BIOS und nicht per UEFI starteten) gab es mal gewisse Probleme mit Größen > 2 TB.

    Seit UEFI+GPT sind nach oben praktisch keine Grenzen mehr (größtkaufbare SSD sollte keine Probleme machen). Bei 1 TB musste man sich noch nie Sorgen machen. Tatsächlich sollten große SSDs sogar besser funktionieren als kleine, da der Controller dann die Schreibzugriffe parallel auf mehrere Flash-Bausteine verteilen kann. Die Performance hängt aber natürlich auch von der Qualität des verbauten Speichers ab. Und inzwischen sind die Flash-Bausteine so groß geworden, dass 1TB-SSDs auch mit einem einzigen Speicherbaustein gebaut werden können (wenn ich es richtig in Erinnerung habe...).

    Ich nutze schon seit einigen Jahren (irgendwas mit ~2016) SSDs mit 2TB und inzwischen (seit Ende 2020) auch 4 TB ohne Probleme, allerdings alles unter Linux. Lange davor ist mir mal ein 80 GB-Modell ausgefallen; mit den neueren/größeren hatte ich dann aber keine weiteren Ausfälle zu beklagen.
  • in: Sinnvoller Aufbau für einen RSS-Feed?

    geschrieben von masysma

    Hallo zusammen,

    ich bin am überlegen, ob ich meiner Webseite einen RSS-Feed hinzufüge.

    Ich habe online schon herausgefunden, dass das technisch kein Problem sein sollte.

    Allerdings ist noch die Frage offen: Wie gestaltet man einen solchen Feed inhaltlich/strukturell am besten?

    Sollte ich einfach den Inhalt der News-Seite https://masysma.lima-city.de/31/web_news.xhtml reproduzieren?
    Oder nur die Links zu den darin erwähnten Seiten angeben?
    Oder besser jede neu hinzugefügte Seite mit ihrem originären Titel in den Feed aufnehmen und den RSS damit unabhängig von der Newsseite halten?
    Oder versuchen, den kompletten Inhalt neu hinzugefügter Seiten in den Feed mit aufzunehmen, sodass man ggfs. gar nicht mehr die Webseite selbst öffnen muss, um eine Seite zu lesen?

    Was ist eure Meinung? Kennt ihr hilfreiche Ressourcen, wo jemand sich bereits mit diesen Fragen auseinandergesetzt hat? Habt ihr Referenz-RSS-Feeds von Webseiten, die RSS sehr gut umsetzen?
  • in: Cookie-Meldung Interferenz mit SEO und Website Tools

    geschrieben von masysma

    notnamed schrieb:
    masysma schrieb:
    Auch wenn es nicht direkt die Frage beantwortet: Mir fällt auf, dass ich zum Wegklicken des Dialogs erst Cookies aktivieren muss? Ich kenne das von einigen anderen Webseiten, aber viele Seiten bekommen es hin, dass man den Dialog zumindest für die aktuell angezeigte Seite auch ohne Cookies wegklicken kann?
    Hey,
    erstmals danke für die ganzen Antworten, ich verstehe nicht ganz was du meinst, oben rechts gibt es doch ein X zum schließen der Meldung bis zum Reload.
    Danke für den Hinweis -- ich kann bestätigen, dass das "X" funktioniert, also von dieser Seite kein Problem :smile:
  • in: Cookie-Meldung Interferenz mit SEO und Website Tools

    geschrieben von masysma

    notnamed schrieb:ich habe jetzt für meine Website (https://www.timedin.2ix.de) auch ein Cookie-Auswahlsystem gebaut.
    Auch wenn es nicht direkt die Frage beantwortet: Mir fällt auf, dass ich zum Wegklicken des Dialogs erst Cookies aktivieren muss? Ich kenne das von einigen anderen Webseiten, aber viele Seiten bekommen es hin, dass man den Dialog zumindest für die aktuell angezeigte Seite auch ohne Cookies wegklicken kann?

    Meine normale Vorgehensweise im modernen Web ist es, einfach immer "Ja" zu klicken, aber die Cookies per uMatrix abzuweisen. Auf diese Weise kommt man deutlich schneller voran, als jedes Mal das dark-pattern-Spiel durchzuspielen... wenn dann eine Seite kommt, wo der Dialog nicht schnell weggeht, dann versuche ich üblicherweise das nächste Suchergebnis. Das SEO sollte also nicht vor dem Eingang zur Webseite aufhören, sondern der Benutzer sollte den Inhalt auch lesen können :wink:
  • in: Welches Linux (Welcher Unterbau)

    geschrieben von masysma

    sebulon schrieb:
    masysma schrieb:
    Hier nochmal am Ende kurz der Nachteil von Debian (aus meiner Sicht):

    Seltene Releases heißt auch: oft alte Software. [...]


    Das ist nicht unbedingt ein Nachteil.
    [...]
    Wenn du eine Frickelsoftware auf Basis nodejs/mongodb oder andere Experimente hast, hast du mit der Software und der installierten node- oder mongo-version ein Problem, aber nicht mit dem darunter gelagerten Betriebsystem.

    und Treiber für Server? - noch nie Probleme gehabt...
    Es ging hier ja um einen Heim-PC und da haben viele Nutzer Grafikkarten oder WLAN-Adapterchips und da ist es immer so eine Sache mit der Treiberunterstützung unter Linux im allgemeinen, aber nochmal "schlimmer", wenn man nicht den allerneusten Kernel + Mesa + non-free Firmware und ggfs. Herstellergrafikkartentreiber hat.

    Ansonsten stimme ich da natürlich voll zu, schließlich verwende ich als praktisch genutzte Linux-Distribution privat nur Debian :approve:

    Ansonsten eine geile seite, die eigentlich alle Probleme löst, was repos angeht:

    https://debgen.simplylinux.ch/

    und damit sollte es bei debian keine Probleme geben... der Rest ist rein Konfiguration...
    Hier eine kleine Warnung an die Einsteiger (an die sich die Seite richtet? Ich benutze eh meinen eigenen Mirror :smile:). Ich habe das einfach mal mit den Standardeinstellungen aufgerufen und folgendes bekommen:
    #------------------------------------------------------------------------------#
    #                   OFFICIAL DEBIAN REPOS                    
    #------------------------------------------------------------------------------#
    
    ###### Debian Main Repos
    deb http://deb.debian.org/debian/ stable main contrib non-free
    deb-src http://deb.debian.org/debian/ stable main contrib non-free
    
    deb http://deb.debian.org/debian/ stable-updates main contrib non-free
    deb-src http://deb.debian.org/debian/ stable-updates main contrib non-free
    
    deb http://deb.debian.org/debian-security stable/updates main
    deb-src http://deb.debian.org/debian-security stable/updates main
    
    deb http://ftp.debian.org/debian buster-backports main
    deb-src http://ftp.debian.org/debian buster-backports main
    Die Verwendung des Bezeichners `stable` in den Paketquellen führt dazu, dass bei einem neuen Release, was man vielleicht nicht unbedingt mitbekommt, bei einem ganz gewöhnlichen "apt-get upgrade" schonmal das halbe System aufs neue Release aktualisiert wird. Debian-Upgradeprozesse sind sehr stabil, aber ich habe selbst unproblematische (ich sage: falsch konfigurierte, da "stable" in der sources.list und auto-Upgrade aktiviert) Server daran scheitern sehen -- sehr zur Freude des Admins :smile:
  • in: Aufbau Tabelle - MySQL (allgemein)

    geschrieben von masysma

    Also die Variante von tchiarcos sollte auf jeden Fall als Erstes in Betracht gezogen werden!

    Wenn es am Ende doch darum geht, dass man für noch weitere Felder die vorherigen Werte bereithalten muss oder ggfs. sogar ihren genauen Änderungsverlauf nachvollziehen muss, dann kommt man in den Bereich der Historisierung, der Wikipedia-Artikel dazu ist ziemlich ausführlich: https://de.wikipedia.org/wiki/Temporale_Datenhaltung. So etwas ist aber ein großer Implementierungsaufwand (gerade in SQL). Es gibt Datenbanksysteme, die solche Funktionen integriert haben, ich weiß aber nicht, ob man das bei MySQL auch aktivieren kann.
  • in: Welches Linux (Welcher Unterbau)

    geschrieben von masysma

    Ich hatte so eine ähnliche Frage schonmal versucht zu beantworten

    xn--94h schrieb:
    Neben Windows installiert (als Hauptsystem). Ich habe einen leistungsstarken PC.
    Ich nutze bereits seit einiger Zeit Linux, habe daher auch schon Erfahrung.
    Gut, damit sind die Voraussetzungen gegeben, dass jedes von den genannten Systemen laufen sollte :)

    Mir geht es vor allem um Unterstützung von Hardware, damit es schnell geht und ich nicht jeden Treiber selbst installieren muss, sowie um Geschwindigkeit und Stabilität.
    Das sind trotz eines kurzen Satzes eigentlich komplizierte und teils widersprüchliche Anforderungen. In der Auswahl waren ja Arch Linux, Debian und Ubuntu. Ich würde sagen, die verhalten sich so:

    Debian: sehr stabil, da seltene Releases mit eher "alter" Software. Nur freie Software, also etwas aufwändigere Treiberinstallation

    Ubuntu: häufigere Releases, dadurch etwas weniger stabil. Proprietäre Treiber werden in der GUI zur Installation angeboten - also vermutlich das einfachste System im Hinblick auf Treiber.

    Arch: rolling release, dadurch eher instabil. Bzgl. proprietären Treibern bin ich mir nicht sicher, aber man bekommt immer die neuste Software und somit auch den neusten Stand der Hardware-Unterstützung, den die Open-Source-Welt zu bieten hat. Somit auch eine gute Wahl für die Treiberunterstützung.

    Die Oberfläche ist ja schnell geändert.
    Das stimmt meiner Erfahrung nach nur teilweise. Man kann auf allen von den Systemen alles ändern, aber tatsächlich würde ich sagen, dass Arch als auch Debian Distributionen sind, die explizit die Wahlfreiheit der Software/Oberfläche berücksichtigen. Bei Ubuntu hatte ich in der Vergangenheit Schwierigkeiten damit, dass "speziellere" Packages (wie bspw. ausgefallene Window-Manager) nur sehr schlecht ins System integriert waren. Man hatte also mehr Arbeit, um die Oberfläche zu wechseln, auch wenn es eigentlich nur ein Kommando war, sie zu installieren.

    Alle von den genannten drei sind gute Linux Distributionen. Man kann sie auch danach auswählen, wo man mehr Erfahrung mit hat, die Community lieber mag oder Ähnlichem. Ich persönlich bevorzuge ganz klar Debian stable und zwar auf dem Client mit GUI, als auch auf dem Server ohne. Meine Hauptgründe:

    * Ich habe bereits Erfahrung mit dem System (kann es bei Problemen wieder instandsetzen etc.)
    * Portabilität / für beliebiebige Rechnergrößen geeignet: Ich habe Debian sowohl auf einem Mini-Rechner mit 512MiB RAM installiert, als auch auf einem Server mit 32 GiB RAM. Extremere Konfigurationen in beide Richtungen funktionieren ebenfalls (schon auf 128 MiB RAM installiert, als auch auf 128 GiB :) ). Die Kommandos, typischen Konfigurationsdateien, Update-Installationsmethoden etc. sind für alle diese Systeme gleich -- einmal lernen, dann einfach überall anwenden.
    * Gute Verfügbarkeit von Sicherheitsupdates
    * Seltene Release-Updates und somit sowohl eine hohe Stabilität als auch seltene Notwendigkeit, das laufende System zu ändern. Es gehen innerhalb der Releases normalerweise keine Dinge "kaputt" (das hatte ich bei Ubuntu früher eher mal gehabt). Beim Release-Upgrade gibt es dann doch gelegentlich disruptivere Änderungen, aber vor denen wird man über die Release Notes gut vorgewarnt. Durch die Unterteilung in stable/testing/unstable kann man auch jederzeit schonmal vor dem Release gucken, ob die aktuell genutzte Software auf dem neuen Release noch funktionieren wird etc.
    * Hilfreiche Community (kann ich aber für andere Linux-Distributionen nicht bewerten)
    * Sehr gute Anpassbarkeit des Systemes

    Hier nochmal am Ende kurz der Nachteil von Debian (aus meiner Sicht):

    Seltene Releases heißt auch: oft alte Software. Wenn man bspw. neue Versionen von Programmiersprachen braucht, sind diese oft noch nicht im stable-System enthalten. Bei der Hardware-Unterstützung führt das dann auch dazu, dass neue Hardware (bspw. neue Grafikkarten) nicht unbedingt unterstüzt werden. Zusätzlich kann es sein, dass auch alte Hardware nicht out-of-the-box läuft, weil proprietäre Treiber oder Firmware benötigt werden. Diese lassen sich dann aber oft relativ leicht aus den "non-free"-Repositories nachinstallieren.
  • in: HTML zu Bild

    geschrieben von masysma

    Es gibt sicher auch direkte Wege, aber was mir direkt einfällt: Mit `wkhtmltopdf`` ein PDF erzeugen und das mit Ghostscript (`gs`) rendern, etwa so:
    wkhtmltopdf https://masysma.lima-city.de/ test.pdf
    gs -sDEVICE=pngalpha -r200 -o test.png test.pdf

    Btw.: Als ich diesen Beitrag schrieb kam nicht meine Webseite sondern eine Fehlerseite, das liegt aber wohl an einer hoffentlich temporären Lima-City downtime für die kostenlosen Nutzer.
  • in: SQL: Mehrere Zeilen prüfen, gruppieren und zählen

    geschrieben von masysma

    Die INTERSECT-Lösung ist in diesem Falle sicherlich empfehlenswert. Wenn noch eine Alternative getestet werden sollte, dann kann man natürlich auch die Datenbank das mit dem COUNT(*) auswerten lassen:
    SELECT Komponente, COUNT(*) AS anz FROM Ausdruecke WHERE Name = "p001" AND Wert = 88 OR Name = "p002" AND Wert = 45 GROUP BY Komponente HAVING anz = 2;
  • in: Ma_Sys.ma Website 5 / großes Update nach fast 6 Jahren

    geschrieben von masysma

    Heute war es soweit: Ich habe erstmals seit 2018 (!) endlich mal wieder meine Webseite aktualisiert und diese durch eine neue "große" Version ersetzt. Nach wie vor ist die Webseite über die URL erreichbar:

    https://masysma.lima-city.de/

    Wesentliche Verbesserungen:

    * Downloads jetzt über Google Drive oder Github und somit wieder verfügbar (vorherige Download-Seite ist nicht offline gegangen, hat aber nicht-Musik-Downloads mittlerweile gesperrt)
    * Noch weniger Wartungsaufwand meinerseits, somit potenziell häufigere Aktualisierung
    * Komplett statisch, also problemlos herunterladbar etc.
    * Übersichtlichere Darstellung, von jeder Seite zu jeder Seite maximal zwei Klicks

    Ich bin wiedermal mit einem "radikalen" Layout am Start. Während es bei der Vorgängerversion weiße Schrift auf rotem Hintergrund gab, habe ich mich diesmal für ein denkbar minimales CSS entschieden, welches bis auf die automatisch generierten Teile zur Syntaxhervorhebung nur aus zwei Zeilen besteht :wink:

    Ansonsten habe ich getreu der privaten Homepage, die keinen "Service" anbietet, einen Großteil der alten Inhalte über Bord geworfen und dafür neue Inhalte ans Licht gebracht, die teilweise noch nie zuvor online waren. Damit sind Programme wie der Capsblinker (vgl. https://masysma.lima-city.de/11/ma_capsblinker.xhtml) jetzt erstmalig online, toll (für diejenigen, die damit etwas anfangen können zumindest :wink:)

    Auslöser für das große Update war vor allem, dass die erste Version meines D5Man-Programmes, mit dem die Webseite erzeugt worden war, inzwischen aufgegeben wurde (zu kompliziert, das Ding :wink:). Natürlich hat die Arbeit jetzt die weniger komplexe Version D5Man 2 übernommen...

    Die Ziele der Webseite sind immernoch den Alten recht ähnlich, vgl. dazu die Vorstellung der Ma_Website 4. Ich hatte überlegt, den Post dort zu ergänzen, da es thematisch eigentlich noch gepasst hätte, das geht aber nicht wegen "Doppelpost" (obwohl keine Gulden in diesem Forum?) Na gut, vielleicht rechtfertigen fast 6 Jahre Abstand auch einen neuen Post. Gemeinsame Inhalte mit der vorherigen Seite würde ich ohnehin nur bei etwas über der Hälfte sehen.

    Kommentare sind natürlich wieder willkommen :wink:
  • in: cms ohne datenbank

    geschrieben von masysma

    Ich kenne ein CMS ohne Datenbank, welches man nicht bei Google findet.

    .

    .

    .

    .

    ... und was sollte jetzt die Frage?

    "`und nicht die, die man bei Google findet"' (Komma und Groß und Kleinschreibung stammen von mir...). Ich würde vermuten, dass man so ziemlich jedes ernstzunehmende CMS bei Google findet? Wenn es um den Download geht: Mein "`CMS"', das meiner Webseite zu Grunde liegt kann zwar über Google gefunden werden (wohlgemerkt nicht unter dem Stichwort CMS), aber noch nicht auf meiner Webseite heruntergeladen werden. Ist das also eine Antwort auf die Frage?

    Ich würde vorschlagen, die Frage etwas zu konkretisieren, bspw. (1) Warum sollte das CMS nicht bei Google auffindbar sein und/oder (2) Welche Alternativen sind bereits bekannt (eventuell von erfolglosen Google-Suchen) und warum sind sie nicht geeignet? Es könnte sich herausstellen, dass ein bei Google findbares CMS sich doch als Lösung qualifiziert, vielleicht sogar für den Zweck gut geeignet ist und das bei den bisherigen Google-Suchen nur die falschen Stichworte verwendet wurden?

    Ansonsten wie immer in solchen Fällen die Empfehlung: http://www.catb.org/esr/faqs/smart-questions.html :wink:

    (Ich hoffe der Anfang dieses Posts ist als humorvolle Ironie verständlich, ansonsten nicht zu viel drauf geben! :wink:)
  • in: "`Guter Editor für PHP [und Anderes]"' -- Die Umfrage

    geschrieben von masysma

    lorixon schrieb:
    Mir fehlt hier leider auch die Option für Brackets. [...]
    Mir fehlt hier leider auch die Option für VIM, den ich selbst verwende :wink: ... das ist eine Unzulänglichkeit des Lima-City Forums (oder meiner Berechtigung zum Erstellen von Umfragen... ich kann maximal 10 Umfragepunkte angeben und lokal / in der Vorschau konnte ich noch 12 Einträge haben, bei denen dann die letzten beiden verschwanden...).

    Man muss sich also damit behelfen, dass einige der "`Abstimmergebnisse"' nur aus den Beiträgen der jeweiligen Nutzer zu erkennen sind. Eventuell lohnt es sich, am Ende mal ein Diagramm zu machen, in dem alle Optionen mit der Anzahl der Wahlen in diesem Thema und dem Vorgänger aufgeführt sind...

    mein zwischenzeitliches Fazit ist, dass Notepad++ die "`klare Nummer 1"' der Lima-City User ist :wink:
  • in: URL-Shortener, IP-Finder, Chat

    geschrieben von masysma

    Verbesserungsvorschlag: Statische Navigation.

    Ohne JavaScript und Farben/Hintergrundbilder geht da gar nichts... das erschwert die Bedienung unnötig. Selbst wenn man alle Spielereien aktiviert hat, dann muss man immernoch 2x drücken, um auf die Navigation zu kommen. Ich sehe darin keinen Mehrwert, sondern eher eine Blockade gegenüber den Besuchern, sodass mein Verbesserungsvorschlag definitiv wäre, dass die Navigation immer "`ausgeklappt"' sein sollte und dass man auch ohne Javascript zumindest an die Grundfunktionalität der Seite kommt.

    Verbesserungsvorschlag: Übersetzung.

    Ich habe mir abgewöhnt, meine Seiten zu übersetzen, da das sehr aufwendig ist... wie man auch bei dieser Seite sieht:
    Für die Beschreibung des Chats heißt es auf Englisch ``This Chat is simply and easy.'' und auf Deutsch "`Der Chat ist ein simpler und temporärer Chat mit dem du mit jeder Person, die den Link erhält chatten kannst."'
    Die deutsche Beschreibung ist deutlich besser und zeigt sofort, welchen Mehrwert der Chat bietet: Nämlich ein einfaches Setup mit einem Link als Zugang für jeden. Die Englische Beschreibung ist nicht nur grammatikalisch falsch (IMHO müsste es heißen: ``This chat is simple and easy to use.'' oder ähnlich), sondern verschweigt auch den entscheidenden Mehrwert: Das Chatten nach Austausch einer gemeinsamen URL.

    Verbesserungsvorschlag: Bitboard-Generator.

    http://masysma.lima-city.de/experiments/z_bitboard_generator_scr.png
    So sieht der Bitboard-Generator bei mir aus (Firefox 45.8.0, Farben und JavaScript temporär aktiviert)... die Beschreibung hat eine Überraschung angekündigt, aber das wird sie wohl nicht sein, oder...? Diese Funktion muss vielleicht nochmal getestet werden.

    Mein Fazit ist, dass diese Seite in ihrer jetzigen Form nahezu unbenutzbar ist, mit ein bisschen Schliff aber durchaus einen Nutzen bieten kann.

    Bei URL-Shortenern bin ich übrigens immer sehr skeptisch: Die meisten dieser Services verschwinden nach einiger Zeit wieder und man weiß nie so genau, was sich die Betreiber eigentlich davon versprechen bzw. wenn ich da meiner Vorstellungskraft folge, dann kommen nur "krumme" Geschäftsmodelle dabei raus... Gerade die Medien, für die man kurze URLs braucht (ausgedruckte QR-Codes bspw.) leben oft länger als die URL shorteners.
  • in: "`Guter Editor für PHP [und Anderes]"' -- Die Umfrage

    geschrieben von masysma

    Dieser Post bezieht sich auf das alte Thema "`Guter Editor für PHP"', vgl. https://www.lima-city.de/thread/guter-editor-fuer-php. Damals wurde vorgeschlagen, eine Umfrage in Lima-City zu starten.

    Ich habe alle Editor- und IDE-Namen aus dem verlinkten Thread extrahiert und dann aus der Liste diejenigen Elemente gestrichen, die nur selten erwähnt wurden, um die maximale Anzahl an Abstimmungsoptionen nicht zu überschreiten (ich hoffe das ist gelungen).

    Ich würde die Frage nach einem guten Editor von der Programmiersprache unabhängig verallgemeinern und folgendes Abstimmung stellen: Welchen Editor oder welche IDE verwendet ihr hauptsächlich zur Entwicklung?

    Edit: HAHA, das ist direkt schiefgegangen. Wurden mir in der Vorschau noch 12 Abstimmungsmöglichkeiten angezeigt, so wurden die beiden hinteren mit dem Klick auf "`Veröffentlichen"' gelöscht.
  • in: Programm plattformunabhängig machen

    geschrieben von masysma

    xn--94h schrieb:
    slysphotos schrieb:
    @MONO:
    Also die Zeiten in denen ich noch viel .NET programmiert habe sind schon ein paar Tage her, aber wenn ich mich richtig erinnere ist MONO eben keine Vollständige Portierung. Zumindest hatte ich damit schon ein paar mal das Problem, dass etwas unter Windows gepasst hat, unter Linux mit MONO aber nicht (speziell UI-Elemente etc.).
    Ja ein Programm ist nicht von heute auf morgen perfekt. ...
    Die Erfahrung mit .NET-Programmen, die eigentlich portabel geschrieben waren, aber unter Linux dann doch nicht so funktioniert haben, habe ich leidlich schon aus Anwendersicht gemacht :) Ich wollte ein .NET-Programm unter Linux starten und konnte sogar erfolgreich das GUI öffnen, leider hat sich das Programm bereits nach sehr kurzer Zeit von selbst wieder beendet (unter Windows hat es problemlos funktioniert). Daher lautet meine Empfehlung im Bezug auf Plattformunabhängigkeit im Allgemeinen: Testen!

    Das ist natürlich insofern widersprüchlich, als dass ein plattformunabhängiges Programm eigentlich unter allen Plattformen funktionieren müsste, aber immer wenn man mit Dingen arbeitet, die nicht schon Teil der Sprache oder ihrer klar definierten Standard-Library sind (und selbst da kann es Überraschungen geben), dann ist das Risiko sehr hoch, dass man Programme produziert, die zwar portabel gedacht sind, aber dann doch nicht überall funktionieren.

    Ich wollte letztens ein Programm schreiben, welches Daten über eine serielle Schnittstelle liest und schreibt und habe dafür auf eine Compilerspezifische API-Erweiterung (gegenüber dem Standard) zurückgegriffen. Obwohl der Compiler für alle beteiltigten Plattformen zur Verfügung stand und dort problemlos kompilierte, lies sich die Anwendung auf ARM-Systemen (Raspberry Pi 3) nicht ordnungsgemäß verwenden, da das von mir verwendete API anscheinend für ARM nicht implementiert war¹... die Lösung brachte in diesem Falle dann POSIX, was -- obwohl bspw. Debian/GNU Linux nicht dafür zertifiziert ist -- eigentlich ein sehr verlässliches und portables API bereitstellt, das allerdings (leider) nicht so wirklich unter Windows funktioniert (nur mit mehr oder weniger dicken Abstraktionsschichten ala MinGW oder Cygwin...)

    ¹) Das war das erste Mal, dass mir etwas Derartiges passiert ist. Grundsätzlich bin ich der Ansicht, dass wenn man gegen eine Anwendung/ein API entwickelt, die/das auf allen Zielplattformen genau so verfügbar ist, man eigentlich ziemlich sicher sein kann, dass das Ergebnis plattformunabhängig ist. Entwickelt man also für Mono (auch unter Windows), dann sehe ich gute Chancen, dass das Ergebnis überall funktioneirt, solange man auch nur von Mono bereitgestellte Funktionen verwendet. Für "`das richtige"' .NET gibt es aber keine genau so verfügbare Linux-Alternative, also kann ein .NET-Programm auch nicht so wirklich plattformunabhänig sein (das ist so ähnlich wie Oracle Java vs. OpenJDK, auch wenn da die Unterschiede etwas geringer ausfallen und es vom Oracle Java auch eine Linux-Variante gibt...).
  • in: onlineshop - zahlungsmethoden

    geschrieben von masysma

    Spricht irgend etwas gegen die gute alte Rechnung? Wenn ich die Wahl habe, kaufe ich immer auf Rechnung, denn das ist die kundenfreundlichste und sicherste Abwicklung. Mit der Kombination PayPal oder Bitcoin würde man mich übrigens nicht erreichen und in Vorkasse trete ich gegenüber kleinen Unternehmen nur äußerst ungern (so ungern, dass ich mir Produkte auch gerne für 10% mehr bei einem anderen Händler besorge, wenn der auf Rechnung liefert).

    Das ist natürlich eine "`Kundensicht"', ich denke dass man aber aus betrieblicher Sicht auf jeden Fall überlegen sollte, ob das Risiko Rechnung (man liefert ja erst die Ware und bekommt dann erst das Geld) nicht vertretbar ist, insbesondere im Hinblick darauf, dass es tatsächlich noch den ein oder anderen potenziellen Kunden gibt, der auch nach der Zahlungsmethode entscheidet, bei welchem Händler er kauft. Außerdem entstehen dem Händler keine Kosten mit einem Drittanbieter, da die Rechnungen direkt an den Kunden gestellt werden können.
  • in: SSD die günstige Leistungssteigerung?

    geschrieben von masysma

    Ich habe hier eine KINGSTON SHSS37A240G (240 GB) und eine Transcend TS256GSSD370 (256 GB), die seit 2000 Stunden bzw. etwas über einem Jahr problemlos laufen. Jahre davor hatte ich eine OCZ mit 60 GB, die aber urplötzlich den Geist aufgegeben hat (ohne, dass ich besonders viel geschrieben hätte). Im Laptop ist irgend'ne Samsung mit 512 GB, die auch problemlos funktioniert.

    Ich würde SSDs in Laptops auf jeden Fall eine bessere Haltbarkeit attestieren, da sie stoßunempfindlich sind. Im Desktop habe ich immernoch einige HDDs, deren Technik mir etwas "`ausgereifter"' erscheint (ich hab eine Seagate mit 12000 Betriebsstunden und eine mit 10700 und die funktionieren beide sehr gut -- mit SSDs habe ich noch keine darartigen "`Langzeiterfahrungen"')

    Zum Thema etwas beachten: Ich persönlich achte nichtmal auf das TRIM-Zeugs und es funktioniert alles einwandfrei. Prinzipiell ist aber zu empfehlen: TRIM regelmäßig vom System absetzen lassen (bei Software-Vollverschlüsselung übrigens hinfällig) und übermäßig viele Schreibvorgänge vermeiden... wobei man hier eben zwischen Geschwindigkeit (SSDs schreiben schnell) und Haltbarkeit (SSDs nutzen sich durch Schreiben ab) abwägen muss.
  • in: Ubuntu: Bash ufw status abfragen mit ausgabe

    geschrieben von masysma

    Natürlich, aber dann muss man sudo umkonfigurieren.

    Ich habe

    /etc/sudoers.d/00-masysma-main
    #
    # Ma_Sys.ma changed sudoers files
    # 	It is recommended to use sudoedit FILE to edit all sudo configuration
    # 	files to auto-check syntax and preserve attributes.
    #
    # Original /etc/sudoers comment
    #
    # 	This file MUST be edited with the 'visudo' command as root.
    # 	See the man page for details on how to write a sudoers file.
    #
    
    Defaults	env_reset
    
    # Allow root to be come every user he/she wants.
    root		ALL=(ALL) ALL
    
    # Allow members of group sudo to execute any command
    # (Note that later entries override this, so you might need to move
    # it further down)
    %sudo ALL=(ALL) ALL

    und /etc/sudoers.d/41-masysma-mount
    #===========================================================================
    # Ma_Sys.ma Mount Sudo Configuration 1.0.0.0, Copyright (c) 2013 Ma_Sys.ma.
    # For further info send an e-mail to Ma_Sys.ma@web.de.
    #===========================================================================
    
    # Allow linux-fan to use the ma_mount command to mount image files and removable
    # devices. This is risky when being used on servers and machines with many
    # users, but a better solution was not found yet. 07.2013.
    
    Cmnd_Alias	MAMOUNT = /usr/bin/ma_mount
    linux-fan	ALL=NOPASSWD: MAMOUNT


    Statt `masysma-mount` und `ma_mount` muss natürlich der Name des UFW-Statusscripts eingegeben werden. Außerdem muss der Benutzer `linux-fan` natürlich durch den Benutzer ersetzt werden, der das UFW-Statusscript ausführen soll.

    ... und diese Lösung funktioniert so unter Debian, unter Ubuntu könnte es minimal anders aussehen.
  • in: Ubuntu: Bash ufw status abfragen mit ausgabe

    geschrieben von masysma

    Wenn sudo passend konfiguriert ist, würde ich folgendes vorschlagen:
    #!/bin/sh -e
    
    if [ $# = 0 ]; then
            exec sudo "$0" run
    fi
    
    export LC_ALL=C
    export LANG=C
    if ufw status | grep -q inactive; then
    	echo ERROR
    else
    	echo OK
    fi
    ... mal wieder nicht getestet, sollte aber das Richtige tun :)

    Idee dahinter: Das Script wird als User gestartet und startet sich dann selbst mit sudo neu.
  • in: Ubuntu: Bash ufw status abfragen mit ausgabe

    geschrieben von masysma

    Ah... es liegt also an der Sprache. Man könnte jetzt im Script statt ``inactive'' einfach ``Inaktiv'' schreiben, aber dann funktioniert das Script nicht auf allen Systemen. Ich würde daher folgendes vorschlagen
    #!/bin/sh -e
    
    export LC_ALL=C
    export LANG=C
    if ufw status | grep -q inactive; then
    	echo ERROR
    else
    	echo OK
    fi
    (Da mein System auf Englisch ist, konnte ich das nicht testen :smile:)
  • in: Ubuntu: Bash ufw status abfragen mit ausgabe

    geschrieben von masysma

    Was genau heißt "`geht nicht"'? Ich habe sudo nicht für ufw konfiguriert (und bin unter Debian für den Fall, dass es einen Unterschied macht), aber wenn man `sudo` herausnimmt und das Script als root startet, funktioniert es bei mir.

    Ansonsten ist folgendes kürzer:
    #!/bin/sh -e
    
    if ufw status | grep -q inactive; then
    	echo ERROR
    else
    	echo OK
    fi
    Das wäre vielleicht auch mal einen Versuch wert, um zu sehen, ob das auch nicht funktioniert.

    UFW aktiviert heißt bei mir "`In GUFW Status `on` eingestellt"' und deaktiviert heißt bei mir "`IN GUFW Status `off` eingestellt"'... wenn man den Service deaktiviert, wird das wahrscheinlich nicht abgedeckt.
  • in: Linux aus Linux heraus installieren

    geschrieben von masysma

    Thema Virtualisierung:

    stimmbande schrieb:
    spitzei schrieb:
    Je nach dem wie schwach die Hardware ist (gibt es da Details?).
    He, das war mein Satz :smile:
    Der hier mit 'nem Intel Celeron, single core 2,2GHz. 1Gb RAM
    Soweit ich das erkennen kann ein halbwegs "`neuer"' Celeron... achja, 2009 -- neu genug!. Das ist so an der Grenze: Virtualisierung geht auf jeden Fall, nur schnell wird sie nicht sein... aber auf jeden Fall einen Versuch wert. Ich erinnere mich an die Zeit, wo ich mit einem Pentium IV mit 2.8 GHz (laut http://cpubenchmark.net nicht mal halb so schnell wie der Celeron) und 1GiB RAM Windows XP in einer VM unter Linux verwendet habe... das ging gut, solange man sich entscheiden konnte, ob man in der VM oder außerhalb arbeiten wollte. Einen Browser außerhalb der VM zu starten hat das System dann aber schon an seine Grenzen gebracht :smile: Reine Installer brauchen aber nicht so viel RAM, da sollten 512 MiB ausreichen und dann ist auch im "`äußeren"' System noch RAM frei.
    masysma schrieb:
    Weniger allgemein, aber für Debian-basierte Systeme einfacher (für Archlinux gibt es das auch, ich weiß nur nicht, wie es heißt) ist die Verwendung von einem Programm wie `debootstrap`, um ein "`Basissystem"' auf einer zweiten Partition zu installieren. Das spart die Virtualisierung benötigt aber etwas Konfiguration, um das neu eingerichtete System startbar zu machen.
    Debootstrap klingt ganz interessant. Da lese ich mich mal rein.
    Wenn Fragen zur Verwendung bestehen, helfe ich gerne :smile:
    Die offizielle Debian-Installationsanleitung beschäftigt sich auch mit dem Thema und erklärt es umfassend, wenn auch (IMHO) möglicherweise etwas zu kompliziert. ... es gibt sogar eine deutsche Übersetzung :smile:
  • in: Was ist euch wichtiger? Usability oder Funktionalität?

    geschrieben von masysma

    spacetimeshift schrieb:
    Wenn ihr auf eine Webseite o.ä. trefft. Ist es euch eher wichtig, dass diese "schön bunt" ist, oder eher dass die Webseite das tut was sie soll (und das schnell und effizient).
    Effizienz geht vor (sieht man auch an meiner Webseite :smile:). Ich habe in meinem Browser grundsätzlich alle Farben und Schriftarten deaktiviert, außer die, die ich eingestellt habe (eine Hintergrundfarbe, eine Linkfarbe, eine Textfarbe, eine Rahmenfarbe und eine einzige Schriftart). Das kann man im heutigen Web fast gar nicht mehr machen, da dann viele Seiten nicht mehr funktionieren. Insbesondere, wenn wichtige Elemente technisch Hintergrundbilder sind (bspw. der Zitieren-Button im Lima-City-Forum, dafür habe ich extra kurz Farben eingeschaltet :smile:) oder noch schlimmer ("`der neuste Schrei"'): Wenn wichtige Navigationselemente Buchstaben einer von der Webseite selbst ausgedachten Schriftart sind... da ich Schriftarten bis auf eine deaktiviert habe, gibt das dann nur Zeichensalat :smile:

    Zum Thema Usability oder Funktionalität sage ich: Beides ist wichtig, Funktionalität ist mir im Zweifel etwas wichtiger. Usability hat aber nichts mit bunt zu tun, sondern eher mit intuitiver Bedienbarkeit und Barrierefreiheit. Das ist sehr wichtig, aber auf die meisten Webseiten treffe ich per Suchmaschine. Dann lande ich auch meistens direkt auf der gewünschten Seite. Insofern ist mir die Navigation auf der Webseite erstmal egal, da ich wahrscheinlich nur auf dieser einen Seite bleiben werde. Der Inhalt hingegen (gehört für mich zur Funktionalität) ist entscheidend. Denn mir geht es oft so, dass ich Themen suche, zu denen es fast keine Lösungen gibt. Und wenn sie dann doch jemand auf seiner Webseite hat, dann zahle ich im Hinblick auf die Usability "`jeden Preis"' um dranzukommen :smile: Dafür werden dann auch in dieser Reihenfolge Farben und JavaScript (ihh!) aktiviert :smile:
  • in: Linux aus Linux heraus installieren

    geschrieben von masysma

    stimmbande schrieb:
    Wenn ich mich recht entsinne habe ich mal gehört, dass es möglich ist, unter Linux bei laufendem Betrieb ein neues Linux zu installieren.
    Es ist möglich, aber nicht einfach (siehe unten für einige Möglichkeiten unter vielen)

    Da ich damit rechne, verschiedene Installations-Konfigurationen auszuprobieren möchte ich es gerne vermeiden, jedes mal einen Rohling zu verbrennen.
    Wenn das das "`eigentliche"' Problem ist, würde ich empfehlen, einen hinreichend großen USB-Stick (8 GB sollten reichen) zu nehmen und dann einfach Live-Systeme und Installationsprogramme darauf aufzuspielen. Dann muss keine DVD gebrannt werden und man kann einige Systeme installieren (zum ausführlicheren Testen oder wenn es keine Live-Systeme gibt) und andere einfach mal live ausprobieren.

    Hat jemand von euch Erfahrungswerte, ob und wie das am besten funktioniert?
    Zurück zum Thema: Installieren aus einer bestehenden Installation. Der allgemeine Weg funktioniert nur über Virtualisierung (oder etwas Ähnliches). Dazu konfiguriert man mindestens zwei Partitionen (beim 1. Installieren) und verwendet dann KVM, um auf der gerade nicht benutzten Partition ein Linuxsystem zu installieren. Dann konfiguriert man im "`äußeren"' System den Bootloader so um, dass man von der anderen Partition starten kann und nach einem Neustart hat man die Wahl, ob man das alte oder das "`neue"' System verwenden will.

    Weniger allgemein, aber für Debian-basierte Systeme einfacher (für Archlinux gibt es das auch, ich weiß nur nicht, wie es heißt) ist die Verwendung von einem Programm wie `debootstrap`, um ein "`Basissystem"' auf einer zweiten Partition zu installieren. Das spart die Virtualisierung benötigt aber etwas Konfiguration, um das neu eingerichtete System startbar zu machen.

    Generell würde ich empfehlen: Je nach dem wie schwach die Hardware ist (gibt es da Details?) lohnt sich Virtualisierung zum Testen mehr, als direkt auf dem System neuzuinstallieren. Ansonsten würde ich die Variante mit USB-Stick statt Installations-DVD empfehlen -- das kommt der "`richtigen"' Installation am nähesten. Vermutlich spart es wenig Zeit, sich in die komplizierte Methodik des "`Installierens aus einem anderen laufenden System"' einzuarbeiten.
  • in: Netzwerk-Switch mit mindestens GBit

    geschrieben von masysma

    Ich kann den Netgear GS108 auch empfehlen. Lief auch so ca. 3 Jahre bei mir (nicht im Dauereinsatz, sondern "`übliche Bürozeiten"', dafür aber hin und wieder stundenlang Vollauslastung an zwei Ports) und ich habe ihn nur wegen zu wenigen Ports ausgetauscht :smile:

    Ich hatte damit keine Probleme, habe mich aber mal mit jemandem unterhalten, der als Admin viele Switches (verschiedener Marken und Preisklassen) im Einsatz hat und der meinte, dass bei so "`kleinen"' Switches (bzw. denen mit externen Netzteilen) häufig die Netzteile ausfallen. Das sollte man für "`Dauerbetrieb"' noch bedenken. Drei Jahre ohne Probleme (bei hackyourlife) stimmen mich aber zuversichtlich :smile: Und innerhalb des Preislimits (was der GS108 wie angemerkt fast schon sprengt) gibt es vermutlich ohnehin noch keine integrierten Netzteile.

    Noch ein Hinweis zum GS108: Die Aktivitäts-LEDs an den Ports sind sehr hell. Das ist im Rechenzentrum sehr praktisch, aber auf dem Schreibtisch eventuell störend :smile:
  • in: Linux Distributionen - Welche gefällt euch?

    geschrieben von masysma

    DosBox gibt es auch für Linux, ansonsten sind die Virtualisierungslösungen (VirtualBox, KVM oder VMWare) gut geeignet, um viele Windows-Programme laufen zu lassen. Ob es funktioniert, sollte man aber trotzdem im Einzelfall prüfen (und eventuell auch feststellen, mit welcher Virtualisierungslösung es am besten geht: 3D geht traditionellerweise am besten in VMWare, die Integration mit dem Linux-System finde ich bei VirtualBox am besten und KVM macht -- wenn es mal funktioniert -- den wenigsten "`Ärger"', da es in den Kernel integiert ist).

    Btw. Thema "`bekannteste Distributionen"': http://www.distrowatch.com/ ist eigentlich die "`kanonische"' Anlaufstelle dafür und da steht Linux Mint auf Platz 1, dann kommt Debian, dann Ubuntu und dann erst OpenSUSE. Allerdingst ist DistroWatch auch immer ein bisschen mehr Richtung Desktop orientiert. Es kann sein, dass man wenn man Server mitrechnet bei anderen Platzierungen landet :smile:
  • in: Linux Distributionen - Welche gefällt euch?

    geschrieben von masysma

    tchiarcos schrieb:
    Ich werd gern einiges ausprobieren, nur gibt es eben mittlerweile eine solche Vielzahl an Linux Distributionen, die dann doch zu viel wären durchweg auszuprobieren, da wird man nie fertig!

    Derzeit also in Diskussion:
    Archlinux
    Debian
    Suse
    Red Hat
    Ubuntu
    Linux Mint

    Für meinen Teil kenne ich bereits Red Hat Linux (das war mein erstes Linux System) und Suse (mein zweites Linux System) aus alten Tagen von vor mehr als 10 Jahren. Aktuell hab ich Ubuntu in Version 13, also schon ein wenig angestaubt! Red Hat und Suse wollte ich aktuell weniger in Betrachtung ziehen.
    Dann würde ich empfehlen, aus dieser Liste auf jeden Fall Archlinux zu testen, denn Debian und Linux Mint sind von der Administration so ähnlich wie Ubuntu (alle drei verwenden das Debian-Paketsystem)

    An Debian hab ich momentan auch kein zu großes Interesse, das läuft nämlich in einer Minimalversion auf meinem Raspberry Pi. Ich finde für die Umgebung ideal, für den Rechner halte ich Debian nicht für das optimalste System.
    Kann man das an einem bestimmten Grund festmachen? Ich finde das gerade praktisch an Debian: Es läuft auf vielen verschiedenen Geräten (bei mir von 1 GiB RAM + Pentium IV bis 18 GiB RAM + Xeon W3550) und die Administration ist immer einheitlich. Aber zum Vergleichen musst du es natürlich nicht nochmal testen :)

    Zudem denke ich sind Systeme, welche eher als Basis daherkommen, bei denen man dann jedes "Wunschpaket" dann installieren muss ziemlich gut, denn dann werden keine Prozesse oder Leistungen vergeudet für Dinge die ich eh nicht benötige, wie es bei Suse & Ubuntu der Fall ist.
    Also meiner Erfahrung nach "`verschwendet"' Linux Mint ähnlich Ressourcen wie Ubuntu. Archlinux und Debian sind aus der oben angegebenen Liste diejenigen, die man einfach als Minimalsystem installieren kann (wobei "`einfach"' heißt, dass dies ein offiziell unterstzützter Installationsweg ist :) ).

    Um das Thema Windows Programme zu spezifizieren, es geht hier primär um CAD/CAM Programme zur Entwicklung von Schaltungen.
    Ich würde empfehlen zu testen, mit welchen Wine-Versionen diese Programme wie gut funktionieren. Es kann bspw. sein, dass die in Debian verfügbare Wine-Version zu alt ist. Bei Archlinux gibt es bestimmt eine neuere Version, dafür kann es mit dem Update auf eine noch neuere Version aber auch wieder nicht mehr funtkionieren.
  • in: Linux Distributionen - Welche gefällt euch?

    geschrieben von masysma

    davidlw schrieb:
    [...] Es mag zwar mit fast jeder Distribution möglich sein, aber bei *buntu müsste ich z.B. als allererstes einen Großteil der Pakete deinstallieren [...]
    Das stimmt und ist auch einer der Gründe, weshalb ich von Ubuntu weggegangen bin. Von vielen Linux-Distributionen gibt es aber Minimal-Varianten, die man direkt installieren kann (bei Ubuntu heißt das dann Ubuntu Server?)

    1) gar keine vorinstallierte Oberfläche, da ich mir meine Desktopumgebung (i3{status}, dmenu, dunst, compton) selber zusammenbaue
    Das geht mir genauso... (i3, dmenu, i3bar, conky) ist bei mir der Standard :) Aber wohl eher nichts für den Linux-Einsteiger :)

    Ein vierter Punkt, den man allerdings noch hinzuziehen sollte, ist die Dokumentation. Wie gesagt ist ArchLinux mit dem ArchWiki da hervorragend, aber auch zu den *buntus gibt es natürlich sehr viele Resourcen im Netz.
    Stimmt. Für Debian direkt gibt es zwar auch relativ viel, aber die Themen zu denen ich suche, bringen mich oft aufs ArchWiki und das ist auch für Debian-User eine nützliche Ressource :)
  • in: Linux Distributionen - Welche gefällt euch?

    geschrieben von masysma

    Man kann Distributionen nach verschiedenen Kriterien unterscheiden
    1. grafische Oberfläche
    2. Paketsystem
    3. Release-Strategie

    Das erste zählt nicht wirklich (außer man braucht YaST, dafür gibt es tatsächlich "`woanders"' kaum Alternativen), da man auf fast jedem Linux eine GUI installieren kann und umgekehrt auf fast jedes per Kommandozeile konfigurieren kann. Nur deshalb bspw. Arch Linux einzusetzen finde ich keine gute Begründung. Ein perfekt zugeschnittenes System ("`der Traum vieler Linux Nutzer"' -- und auch mein Ziel) kann man auf Basis fast jeder Distribution bekommen. Was man allerdings beachten sollte ist, dass nicht alle Linux-Distributionen gleich viele Pakete haben. So gibt es bei Debian, Ubuntu und Arch Linux sehr viele Pakete, bei Red Hat aber nur sehr wenige.

    Deshalb sind die beiden letzteren Punkte entscheidend. Da es weniger Paketsysteme als Release-Strategien gibt, würde ich zunächst danach entscheiden. Ich bevorzuge Debian-basierte Systeme, einfach deshalb, weil ich die zugehörigen Packaging-Tools kenne. Für einen Neuanfang finde ich das Archlinux-Paketsystem sehr interessant. Mit RPM-basierten Systemen (bspw. SUSE) konnte ich mich nie so recht anfreunden.

    Das Kriterium "`Release-Strategie"' ist auch sehr interessant. Ich würde folgendes überlegen:
    1. Wie ist die Versorgung mit Sicherheitsupdates?
    2. Wie ist die "`Versorgung"' mit neuen Features
    3. Wie lange werden "`alte"' Versionen gewartet?

    Für den 1. Punkt ist enscheidend, wie schnell auf Sicherheitslücken reagiert wird. Das ist unabhängig von 2. und ich bin der Ansicht, dass ein gutes Linux mir sehr schnell Sicherheitsupdates liefert. Ich habe leider keine komplette Übersicht, aber wenn ich mich richtig erinnere, gibt es explizite Sicherheitsupdates nicht bei allen Distributionen (Ubuntu?). Debian ist hier erfahrungsgemäß sehr gut.

    Für den 2. Punkt gibt es die Varianten "`rolling release"' (bspw. Arch Linux) und regelmäßige "`neue Versionen"'. Da es bei "`rolling release"' mit einem Update leicht dazu kommen kann, dass etwas nicht mehr funktioniert (das Gegenteil: "`Etwas funktioniert plötzlich"' gibt es auch), mag ich lieber die Variante mit "`selteneren"' Releases. Insbesondere aus diesem Grunde verwende ich gerne Debian, denn da gibt es nicht so oft neue Releases (CentOS und RedHat sind da aber noch besser, auch wenn dort das Wechseln auf ein neues Release manchmal eine Neuinstallation erfordert, was bei Debian fast nie nötig ist).

    Der 3. Punkt interessiert mich persönlich nicht so sehr, da ich häufig "`zeitnah"' auf das neuste Release aktualisiere, aber wenn man maximale Stabilität benötigt, sollte man darauf achten. Hier sollen CentOS und RedHat sehr gut sein. Ubuntu bietet aber auch sogenannte Long Term Releases und Debian hat das für die Version 6.0 zumindest auch "`angefangen"' -- ob es sich dort bewährt, kann man aber noch nicht sagen.

    Lange Rede kurzer Sinn: Ich bevorzuge Debian. Das ist komplett open source, nichtkommerziell (anders als RedHat) und hat vernünftige Release-Zyklen (etwa alle zwei Jahre) und bietet ein sehr stabiles System mit schnellen Sicherheitsupdates. Nachteil ist, dass die enthaltene Software einem häufig "`alt"' vorkommen mag (bspw. ist Java 7 hier noch der Standard, Java 8 nichtmal verfügbar). Aus diesem Grunde funktioniert Debian auch auf neuster Hardware oft nicht zufriedenstellend (habe ich eh nicht :) ).
    Weiterer Vorteil von Debian: Es gibt drei Varianten: `stable`, `testing` und `unstable`. Dabei ist `stable` das von mir Eingesetzte, `testing` die Vorbereitung aufs nächste Release und `unstable` ein rolling-release. Man kann also ohne das Paktesystem zu wechseln oder sich neues know-how anzueignen auf eine andere Art von System wechseln und so bspw. neuere Software in einer virtuellen Maschine (mit dem gleichen Betriebssystem, aber in der `unstable`-Version) verwenden.

  • in: Guter Editor für PHP

    geschrieben von masysma

    Das finde ich eine interessante Idee, dann wäre aber sofort die Frage: Wie soll man das erfassen?
  • in: Arduino - Eure Projekte

    geschrieben von masysma

    praxis-ding schrieb:
    masysma schrieb:
    Dabei hat es sich momentan als schwierig herausgestellt, die vielen Anzeigen vernünftig mit "`wenigen"' Kabeln anzuschließen... der Arduino hat zwar mehr Anschlüsse, als der alte PC, aber sehr aufwändig ist es dennoch. Ich bin aber entschlossen, das bei Gelegenheit mal zu Ende zu führen und werde dann vermutlich mit einigen vorgefertigten 7-Segment-Modulen ein bisschen Kabelsalat sparen :)
    Da gibts 7 Segmentanzeigen mit SPI-Schnittstelle.
    Du Brauchst da nur 5 Leitungen, 2 für die Versorgung und 3 für die Ansteuerung.
    Ja genau, so ein Modul werde ich sicher verwenden. Da ich aber viele Stellen benötige (und die Uhrzeit größer dargestellt werden soll), werde ich noch ein Modul mit 4x7-Segment Anzeigen und (hoffentlich) ein "`selbstgebautes"' mit 2x7-Segment Anzeigen ergänzen.
  • in: Arduino - Eure Projekte

    geschrieben von masysma

    Zwar noch nicht umgesetzt, aber eine Idee, die ich angefangen habe und irgendwann mal gerne fertigstellen will: Ich will eine Funkuhr mit Datum, Uhrzeit und Sekundenanzeige (und verstellbarer Helligkeit) mit 7-Segmentanzeigen bauen.

    Bevor ich mit dem Arduino loslege, wollte ich aber erstmal einen schon vorhandenen, alten Rechner verwenden (altmodisch einen Parallelport als I/O missbrauchen :) ).

    Dabei hat es sich momentan als schwierig herausgestellt, die vielen Anzeigen vernünftig mit "`wenigen"' Kabeln anzuschließen... der Arduino hat zwar mehr Anschlüsse, als der alte PC, aber sehr aufwändig ist es dennoch. Ich bin aber entschlossen, das bei Gelegenheit mal zu Ende zu führen und werde dann vermutlich mit einigen vorgefertigten 7-Segment-Modulen ein bisschen Kabelsalat sparen :)
  • in: Guter Editor für PHP

    geschrieben von masysma

    Ich kann mich übrigens der Empfehlung für VIM anschließen -- den verwende ich mittlerweile für alle Texteditierarbeiten, von daher lohnt sich für einen "leidensfähigen" Einsteiger IMHO auch die Einarbeitung.

    Übrigens -- da jetzt mehrfach Autovervollständigung erwähnt wurde: In VIM kann man per Tastenkombination die Autovervollständigung aufrufen, wenn man sie haben will -- man kann selbst entscheiden, wann man sie einsetzt. Allerdings ist die Autovervollständigung (standardmäßig) nicht so mächtig, wie in IDEs üblich, da sie sich nur auf die aktuell geöffneten Dateien bezieht.

    Noch ein Vorteil von VIM: Es gibt ihn fast für alle Plattformen. Anders als bspw. Notepad++ kann man VIM auch auf ARM-Rechnern (bspw. Raspberry Pi) einsetzen und VIM ist sowohl für Windows, Linux und Mac, als auch andere Betriebssysteme verfügbar.
  • in: Umstieg auf HTTPs

    geschrieben von masysma

    all-in1 schrieb:
    Das du es für die Besucher, die http gewählt haben anzeigen lassen möchtest ist schon klar, aber das war doch gar nicht mehr das Problem?

    Dein Problem ist doch, dass du es nicht mehr anzeigen lassen möchtest, wenn https gewählt ist. Und dafür musst du dann deine Bedingung etwas anders formulieren. Es ist manchmal sehr schwierig alles abzudecken. Manchmal macht es mehr Sinn, nur seinen Fall abzudecken.
    Naja, mein Problem ist, dass da ein unsichtbarer Cache dazwischen steht, der immer das ausgibt, was er zuletzt auch ausgegeben hat -- unabhängig vom Protokoll. Das heißt: Ruft man die Seite per HTTPS auf und sieht die Warnung nicht und stellt dann die URL auf `http` um, erscheint die Warnung auch nicht!

    Ich habe jetzt den zweiten Teil der Bedingung testweise gestrichen und bekomme immer noch das gleiche Ergebnis.

    Wenn es keine Lösung gibt, werde ich nochmal versuchen, ob man mit passenden Headers den Cache deaktiveren kann und andernfalls werde ich die Warnung eben wieder herausnehmen.
  • in: Umstieg auf HTTPs

    geschrieben von masysma

    all-in1 schrieb:
    Ist eine if Anweisung keine Schleife?
    Hmm... für mich beinhaltet "`Schleife"' immer eine Wiederholung, häufig umgesetzt durch eine Rücksprungaddresse. Beim `if` geht es dagegen doch eher darum, eine Verzweigung (zwei Sprünge typischerweise beide "`nach vorne"') oder zumindest um ein Überspringen (ein Sprung nach vorne). Es sind also beides Anweisungen, die eine Bedingung erwarten... aber das, was sie dann tun ist nicht nur von der Bedingung abhängig, sondern auch davon, ob man eine Schleife oder ein `if` verwendet. :)

    dir wird die Warnung ausgegeben, wenn https im $_Server Array nicht gesetzt ist, wobei es egal ist ob es on oder off ist.

    Ebenfalls wird die Warnung ausgegeben, wenn https gesetzt ist, aber es auf off ist.
    Das ergibt doch eine gute Logik, an der man festmachen kann, ob die Warnung angezeigt werden soll: Es sollen die Benutzer gewarnt werden, die per HTTP kommen -- bei denen also entweder gar kein HTTPS im $_SERVER Array vorkommt oder bei denen der zugehörige Wert off ist (das das natürlich nicht am Benutzer, sondern am Server hängt ist dafür doch irrelevant, oder?). Also ist meine Bedingung richtig formuliert?

    Außerdem "`wenn https im $_SERVER Array nicht gesetzt ist, wobei es egal ist, ob es on oder off ist"' -- wenn es nicht gesetzt ist, kann man ja überhaupt keine Aussagen über den Wert machen. Also verkürzt sich das zu "`wenn es nicht gesetzt ist"' (man also davon ausgeht, dass der Server HTTP erkennt, weil bei HTTPS darin ein Wert sein müsste)?

    Diese Möglichkeiten muss du also einzeln in einer if Schleife/ Bedingung auffangen.
    Ich will ja für beide Situationen effektiv das Gleiche machen, da ich davon ausgehe, dass der zweite Fall nur bei bestimmten Servern auftritt und dann aber das Gleiche signalisiert, wie der erste Fall auf "`gewöhnlichen"' Servern.
  • in: Umstieg auf HTTPs

    geschrieben von masysma

    all-in1 schrieb:
    Es muss aber anstelle von
    !==
    !=
    heissen.

    Dann ist da ein kleiner gedanklicher Fehler.

    Je nach dem was der Server sagt.

    Also wenn SSL empty dann Schleife

    Oder wenn SSL auf off dann Schleife

    In deinem Fall muss also wenn SSL Aufruf erfolgt https in der Uri stehen und der Server muss SSL auf on stellen.

    Laut deinem Link ist letzteres aber nur auf einem IIS der Fall und somit muss er die Schleife zwangsläufig durchlaufen.
    Ich verstehe das nicht ganz. Einerseits befindet sich im relevanten (und hier geposteten) Codeabschnitt keine Schleife? Andererseits habe ich die Bedingung `!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] !== "on"` so aufgestellt, dass sie in Worten lautet "`Falls der Key HTTPS im Array $_SERVER nicht gesetzt ist (IOW: kein HTTPS Aufruf stattfindet) oder der Wert zum Key HTTPS nicht auf "on" steht (für den Fall, dass der Key gesetzt, aber nicht "on" ist), dann wird die Warnung ausgegeben"'

    Leider kann ich das ganze nicht wirklich mal testen, da ich auf Premium bin und kein SSL Zertifikat besitze.

    Da aber bei dir irgendwann die Schleife (also nach einem Reload) nicht durchlaufen wird, wird einer der beiden Fälle erst wahr, wenn einmal eine SSL Verbindung bestanden hat. hängt damit zusammen, wie in der httpd conf die Einträge abgearbeitet werden. Bzw. in einer der ganzen phpVersions Dateien.
    Das heißt, ich könnte das Problem durch Anpassung meines Scriptes beheben? Wenn ja, wie?

    Google ist es völlig egal, ob eine Webseite mit https oder mit http aufgerufen wird.
    http://googlewebmastercentral.blogspot.de/2014/08/https-as-ranking-signal.html

    Du hast jetzt aber ein Problem, denn du hast jetzt doppelten Content. Und das ist weit aus schlechter.
    Das stimmt -- und danke für den Hinweis :) . Ich werde das aber -- sollte sich das Problem mit dem falsch angezeigten Hinweis irgendwie lösen lassen, beheben/lindern, indem ich ein Meta-Tag mit Verweis auf die "`kanonische Seite"' erzeuge, vgl. https://support.google.com/webmasters/answer/139066?hl=en
  • in: Umstieg auf HTTPs

    geschrieben von masysma

    !== gibt es nicht als gültigen Operator.
    != müsste es lauten.
    vgl. http://php.net/manual/de/language.operators.comparison.php

    Allerdings würde ich die if clause abändern, if(empty($_SERVER['HTTPS'])){ deckt alles ab, denn nur wenn https auch aktiviert ist, ist die Variable gesetzt. Dann ist es auch egal welchen Inhalt sie hat.

    Das beschreibt auch die PHP Dokumentation:

    Wird auf einen nicht-leeren Wert gesetzt, wenn das Skript via HTTPS aufgerufen wurde.

    Weiterhin ist die Frage, wieso du 3 Klammern zum öffnen und schließen der if clause nutzt. Verstehe ich nicht, da reicht auch eine am Anfang und eine am Ende.
    Die drei Klammern sind zugegebenermaßen überflüssig :),
    das mit dem `!== "on"` hat jedoch einen gewissen Sinn: http://stackoverflow.com/questions/5100189/use-php-to-check-if-page-was-accessed-with-ssl. Kurz gefasst: Nicht alle Systeme, die PHP unterstützen, halten sich auch an diese Spezifikation. Gewisse Server setzen das Feld wohl einfach auf `no`, wenn kein HTTPs-Aufruf stattfindet. Da ich natürlich nicht nur für Lima-City, sondern für maximale Kompatibilität entwickle, ist es mir wichtig, die "`sicherste"' Variante zu verwenden :)

    Oder doch deine Browser?

    Im Firefox funktioniert es tadellos.
    Ich kann mir nicht vorstellen, wie es am Browser liegen könnte, aber ich habe es mal mit einem Firefox 31 (zugegebenermaßen, der ist alt, aber inwiefern sollte sich da was neuern? / ... auch mit Firefox 41.0.2 tritt das Problem gleichermaßen auf) in einer Windows-VM getestet und das gleiche Problem gesehen:

    1. Aufruf der Startseite mit HTTP
    2. Warnung erscheint
    3. Klick auf den Link in der Warnung
    4. URL mit HTTPS korrekt angezeigt, aber Warnung immernoch vorhanden

    Ich bin mir ziemlich sicher, dass es ein Cache-Problem ist, welches nicht lokal in meinem Browser auftritt (Caches testweise deaktivieren liefert das gleiche Ergebnis). Ich vermute, dass es irgendwo zwischen meinem lokalen Computer und dem remote liegenden PHP-Script einen Cache gibt, der immer das zuletzt ausgegebene Ergebnis liefert -- unabhängig vom Protokoll. Auf diese Weise wird nach einem Aufruf via HTTP einfach das gleiche Ergebnis per HTTPS übermittelt. Die umgekehrte Richtung lässt sich mit einem ähnlichen Vorgehen wie oben beschrieben ebenfalls beschreiten: Ruft man eine Seite, die gerade nicht in diesem ominösen Cache ist per HTTPS auf, erscheint die Warnung nicht. Ruft man sie dann per HTTP auf, erscheint die Warnung auch nicht!

    Edit:
    Aber warum SSL. Deine Besucher geben ja keine Nutzerdaten ein. Ist also nur eine Verschwendung von Ressourcen. Denn SSL verbraucht Rechenleistung seitens des Servers und des Endnutzers.
    Deshalb habe ich dem auch nur untergeordnete Priorität eingeordnet und will HTTPs auf jeden Fall optional lassen (weniger wegen der Rechenleistung, mehr wegen der Kompatiblität). Es gibt verschiedene Gründe warum mich auf einer komplett öffentlich zugänglichen Seite überhaupt HTTPs interessiert:

    1. Wenn ich es richtig in Erinnerung habe, bevorzugt Google Seiten, die verschlüsselt aufgerufen werden können.
    2. Ich sezte mich generell für Verschlüsselung ein, ob es sich nun um verschlüsselnswerte Inhalte handelt, oder nicht. Hintergedanke ist folgendes: Wenn alles verschlüsselt wird, fallen geheimhaltungswerte Daten nicht auf -- wenn nur Wichtiges verschlüsselt wird, dann ist es umso wahrscheinlicher, dass sich ein Angriff lohnt.
    3. HTTPS verschlüsselt nicht nur auf einfache Weise, sondern stellt auf genauso einfache Weise auch die Integrität der Daten wärend der Übertragung sicher. Ich kann also im Idealfall davon ausgehen, dass meine Seite per HTTPS aufgerufen genauso beim Benutzer ankommt, wie der Server sie verschickt hat. Zukünftige Aktionen seitens Providern oder Proxies, die Inhalte blockieren oder zusätzlich Werbung einfügen oder einfache Angriffe, die meine Seite um Spam erweitern oder ähnliche Änderungen am Seiteninhalt werden damit erschwert.

    Das sind alles keine extrem wichtigen Gründe, aber dennoch genug, um für mich den Ausschlag zu geben, HTTPS (gerade wo es jetzt einfach für jeden verfügbar ist) standardmäßig verwenden zu wollen.

    ---

    Edit: Ich habe jetzt einen kleinen Workaround eingebaut, der das Problem etwas besser versteckt (entsprechend ist der Fehler schwieriger zu reproduzieren):

    Ich verwende jetzt folgenden Code
    <?php if(!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] !== "on") {
    							echo(" -->\n"); ?>
    		<div id="https_warning">
    			&#9888; Sie betrachten diese Seite über eine
    			unverschlüsselte HTTP Verbindung.
    			<a href="<?php echo(htmlspecialchars(
    				"https://masysma.lima-city.de".
    				$_SERVER["PHP_SELF"]."?moved_to_https"));
    			?>">Empfehlung: Diese Seite verschlüsselt über
    			HTTPS aufrufen.</a>
    		</div>
    		<hr/>
    <?php echo("\t\t<!-- "); } ?>


    Insbesondere die Änderung in Zeile 8 ist relevant: Ich hänge beim Umleiten auf HTTPs noch einen Parameter an, sodass der Cache verworfen wird und die Seite neu generiert wird.

    Reproduktion des Fehlers geht wie folgt:
    1. Aufruf der Seite http://masysma.lima-city.de/31/web_main.xhtml?aaaa
    (Für `aaaa` einen anderen beliebigen Parameter einsetzen und merken)
    2. Klick auf den HTTPs-Umleitungslink (die Nachricht verschwindet wegen dem Workaround)
    3. Ändern des Parameters `moved_to_https` in `aaaa` (bzw. einen anderen Parameternamen)
    -> Trotz HTTPS-Aufruf erscheint die Nachricht man würde nicht über HTTPs kommen.

    ---

    Nochmal Edit :)

    Ich habe jetzt folgenden Code onlinegestellt
    <?php
    	echo(uniqid("ma_rnd_cache_workaround_", true));
    	if(!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] !== "on") {
    		echo(" -->\n"); ?>
    		<div id="https_warning">
    			&#9888; Sie betrachten diese Seite über eine
    			unverschlüsselte HTTP Verbindung.
    			<a href="<?php echo(htmlspecialchars(
    				"https://masysma.lima-city.de".
    				$_SERVER["PHP_SELF"]."?moved_to_https"));
    			?>">Empfehlung: Diese Seite verschlüsselt über
    			HTTPS aufrufen.</a>
    		</div>
    		<hr/>
    <?php
    		echo("\t\t<!-- EHTTPS");
    	}
    ?>
    Damit tritt das Problem immernoch auf und ich kann im Quelltext der "`fehlerhaft"' gelieferten Seiten die gleiche `uniqid` finden, wie in der davor über https gelieferten Seite.
  • in: Umstieg auf HTTPs

    geschrieben von masysma

    Es gibt bei Lima-City ja seit einiger Zeit die Funktion, dass man Webseiten auch einfach per `https://` aufrufen kann. Ich habe mich über die Vorstellung dieser Funktion sehr gefreut und beschlossen, sie nicht nur einfach "`im Hintergrund aktiv zu wissen"', sondern auch den Webseitenbesuchern vorzuschlagen, auf die HTTPs-Variante zu wechseln.

    Meine erste Idee war dabei, einfach direkt und immer beim Aufruf der HTTP-Seite auf HTTPS umzuleiten -- dafür finden sich online zahlreiche Anleitungen, die aber meistens unberücksichtigt lassen, dass es zwecks Abwärtskompatibilität gut wäre, wenn man die Seite "`notfalls"' auch per HTTP erreichen könnte -- wenn alles auf HTTPS umleitet, geht das jedoch nicht mehr.

    Statt jetzt eine eigene Logik mit einem Formular für den Benutzer zur Entscheidung "`HTTPS ja oder nein"' zu entwickeln, habe ich mich für eine andere Variante entschieden: Ich will einfach auf meiner Webseite beim Aufruf über HTTP eine auffällige Warnung anzeigen lassen und dem Benutzer vorschlagen, aus eigener Kraft auf HTTPS zu wechseln.

    Dazu habe ich folgenden Code in meine Webseite eingefügt (an der Stelle, wo die Warnung später erscheinen soll)
    <!-- <?php include "&d5man_pre;internal/https_warn.php"; ?> -->
    (das Entity &d5man_pre; wird natürlich noch vor dem FTP-Upload durch den korrekten Pfad ersetzt).

    Die interessantere Datei `https_warn.php` enthält dann folgendes:
    <?php if(((!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] !== "on"))) {
    							echo(" -"."-".">\n"); ?>
    		<div id="https_warning">
    			&#9888; Sie betrachten diese Seite über eine
    			unverschlüsselte HTTP Verbindung.
    			<a href="<?php echo(htmlspecialchars(
    					"https://masysma.lima-city.de".
    					$_SERVER["PHP_SELF"])); ?>">Empfehlung:
    			Diese Seite verschlüsselt über HTTPS aufrufen.</a>
    		</div>
    		<hr/>
    <?php echo("\t\t<"."!"."-"."- "); } ?>
    (Vom komischen Zusammensetzen der Strings und den XML-Kommentaren nicht abschrecken lassen -- das liegt daran, dass die Seite auch offline funktioneren soll und dass der Code erst nachrtäglich in eine Datei ausgelagert wurde).

    Prinzipiell (bei mir auf einem lokalen Testsystem) funktioniert das auch, wenn ich die Seite allerdings über Lima-City aufrufe, erhalte ich auch die Warnung auf der HTTP Seite korrekt, wenn ich dann den Link anklicke, ist sie immernoch da. Wenn ich dann die URL testweise mit einem beliebigen Parameter aufrufe, verschwindet die Warnung. Ich vermute, das liegt an einem Cache? Der Browser ist jedenfalls nicht Schuld, das Problem tritt in Chromium und Iceweasel gleichermaßen auf.

    (Zum Testen einfach meine Seite aufrufen -- der Code steht genauso online, wie hier beschrieben).

    Soll ich als Workaround einfach an den Link einen "`überflüssigen"' Parameter anhängen, oder habe ich einen Fehler in meinem PHP? Kann man das Problem anders lösen (oder ist es bereits bekannt und wird schon gelöst? -- Ich hatte kurz mit dem Gedanken gespielt, das hier ins Lima-City Community Support-Forum zu schreiben, mich dann aber dagegen entschieden).

    Ich hoffe ihr könnt mir weiterhelfen.
  • in: Array umformen

    geschrieben von masysma

    <?php
    header("Content-Type: text/plain; charset=UTF-8");
    
    // Eingabe
    $input = array(
    	"Dough" => "30,20",
    	"Ray" => "50,30",
    	"Me" => "40,20",
    	"So" => "25,15",
    	"Far" => "45,25",
    	"Lard" => "45,25",
    );
    
    print_r($input);
    
    function transform($input) {
    	$result = array();
    	foreach($input as $k => $v) {
    		$varr = explode(",", $v);
    		$numel = count($varr);
    		for($i = 0; $i < $numel; $i++)
    			$result[$i][$k] = $varr[$i];
    	}
    	return $result;
    }
    
    // Ausgabe
    $output = transform($input);
    
    print_r($output);
    
    ?>
  • in: Windows XP Update

    geschrieben von masysma

    Ich habe schon häufig gesehen, dass dieses Programm per Windows Update verteilt wird (in allen Windows Versionen ab XP SP 3).

    Mich wundert aber auch, dass es für Windows XP noch aktualisiert wird.
  • in: Welche "sonstige" Programmiersprache sollte man lernen?

    geschrieben von masysma

    Wenn man sich mit der Case-insensitivity von Pascal anfreunden kann, finde ich Ada auch noch eine sehr interessante Sprache. Eine weitere, konzeptuell sehr interessante, wenn auch nicht auf alle Probleme anwendbare Sprache ist Erlang. Beide dieser Sprachen haben integrierte Mechanismen mit Parallelisierung umzugehen, was heutzutage trotz großer Wichtigkeit oft nicht umgesetzt wird -- nicht zuletzt, weil es in den meisten Sprachen etwas umständlich realisiert ist.

    Ansonsten würde ich mich auch der Meinung anschließen, dass man gar nicht so viele "Programmiersprachen" können muss. Man sollte die grundlegenden Konzepte kennen und (falls noch nicht vorhanden) unter Umständen statt Programmiersprachen für große Projekte auch eine oder zwei nützliche Scriptsprachen lernen (unter UNIX oder Linux z.B. Shellscript oder, wenn man mehr Aufwand treiben will, eventuell Perl und unter Windows z.B. VBScript, Windows Power Shell oder AutoIT, mindestens jedoch Batch). Scriptsprachen sind für viele Automatisierungsaufgaben äußerst praktisch und können viel Arbeit sparen.
  • in: Webseite Mehrsprachig machen

    geschrieben von masysma

    Das ist letztendlich nur ein weiteres Textformat...

    Ich würde die unterschiedlichen Ansätze vergleichen und dann den wählen, bei dem man zum Abrufen der übersetzten Texte und zum Verfassen der Texte möglichst wenig Code/Text schreiben muss. Das Beispiel von cannadesign zeigt es sehr gut: Statt "Einloggen" muss man $lang["adminarea"]["login"] schreiben, das ist wesentlich länger und man muss einen ähnlichen Text (Variablenname und Inhalt) an mehreren Stellen schreiben...

    Meine Lösung wäre eine Kombination aus

    1. der Speicherung aller Inhalte in der Datenbank und einer Tabelle cnt(cntid,lang,txt) mit den Inhalten in allen Sprachen und
    2. einer der Lösungen mit Text/XML/PHP Dateien, um die Texte, die von der Webseite automatisch platziert werden, zu übersetzen. Ich würde vermutlich ein "headerloses" INI-Format bevorzugen, JSON oder "normales" INI ist allerdings auch leicht zu parsen.

    Der Grund ist einfach: Eine Text/XML/PHP Datei muss komplett in den Speicher geladen werden -- deshalb sollte sie nur einen Bruchteil der Texte enthalten, während eine Datenbank "on-demand" abgefragt werden kann.

    Statt den Client die rohe Sprachdatei verarbeiten zu lassen, würde ich eine PHP-Gegenstelle verwenden, die dann nur den Teil zurückgibt, der gerade vom Client gefordert wird. Damit kann falls nötig auch transparent zwischen Datenbank und Text/XML/PHP unterschieden werden. Allerdings bin ich ein Java Script Kritiker und daher von der "Sprachänderung ohne Reload" bzw. dem Clientseitigen Nachladen von Texten nicht wirklich überzeugt. Ich kenne nur wenige Fälle, wo Java Script einen echten Mehrwert bietet (teilweise löbliches Beispiel ist die Google-Bildersuche: "Endloses Scrollen" ermöglicht es viel mehr Ergebnisse in kurzer Zeit zu betrachten; das Verhalten eines "Mittleren Mausklicks auf ein Bild" produziert in meiner Konfiguration jedoch ein ziemlich verwirrendes Ergebnis).

    Die bereits angesprochenen negativen Erfahrungen mit XSLT kann ich übrigens teilweise bestätigen: Ich verwende XSLT nur sehr selten und dann nur in möglichst einfachen Fällen, weil es ansonsten oft viel weniger Kopfzerbrechen bereitet, ein Programm zu schreiben, welches die XML Daten parst, verarbeitet und wieder als XML ausgibt, als sich durch kryptisches XSLT zu kämpfen -- auch wenn man womöglich mit 1/4 des Codes auskommt, benötigt man doch doppelt so lange, diesen zu schreiben.
  • in: www wird bei regex net richtig einbezogen

    geschrieben von masysma

    Die Testseite verhält sich etwas seltsam und verwendet für meinen Geschmack zu viel JavaScript. Ich habe lokal einen Test mit meinem eigenen Regex Script durchgeführt und bin zu folgendem Ergebnis gekommen:
    Regex Ausgabe
    
    RECOGNIZED
    RECOGNIZED
    RECOGNIZED www.test.de
    RECOGNIZED
    RECOGNIZED
    RECOGNIZED
    http://127.0.0.1
    lima-city.de
    RECOGNIZED :4096/test
    RECOGNIZED
    RECOGNIZED
    RECOGNIZED
    keine URL
    keine
    
    Eingegebene Daten
    
    Regex : /^(((s?ftp|https?):\/\/)|www\.)[a-z0-9-\.]+([a-z]{2,3})\/?[a-z0-9_\-\.]*(\?.*)?/m
    Replace : RECOGNIZED
    Daten :
    ftp://www.lima-city.de/
    www.gmx.net
    http://test.de www.test.de
    sftp://test.org
    http://test.org
    sftp://localhost
    http://127.0.0.1
    lima-city.de
    http://localhost:4096/test
    www.gmx.net/?lang=de
    www.gmx.net/test.php?lang=de
    http://test.de?das=ist ein text
    keine URL
    keine
    Ich hoffe das hilft weiter

    Edit: Mir ist gerade aufgefallen, dass das hier unter "Sonstige Programmiersprachen" steht. Die "Testseite" suggerierte PHP und nur damit funktioniert auch meine Lösung. Andere Programme haben nämlich immer eine andere Einstellung, welche Zeichen escaped werden müssen -- auch die Symbole selbst sind nicht immer gleich...
  • in: [JAVA] Verschachtelte Elemente vernünftig ein/ausblenden

    geschrieben von masysma

    kozak schrieb:Ich habe mir den CardLayout jetzt nochmals genauer betrachtet. Auf den ersten Blick eignet es sich hervorragend für mein Problem, sofern ich die Vorgehensweise von diesem Layout richtig verstanden habe.
    Wenn ich es stark zusammenfassend beschreiben würde, dann lege ich damit einen Art "Stapel" von "Karten" an und kann mich beliebig zwischen diesen bewegen. Ähnlich wie in der DLL mittels next(), previous() etc.
    Stimmt so? Oder habe ich was wichtiges außen vor gelassen"?


    Auch wenn ich mich mit DLLs nicht auskenne -- das ist genau die Beschreibung. Den Screenshots nach zu urteilen ist es perfekt für diesen Anwendungszweck geeignet (mein Beispiel funktioniert zwar, ist aber hier nicht die richtige Vorgehensweise). Zusätzlich kann man nicht nur die "Karte" über/unter der momentanen Anzeigen, sondern sie per selbst zu vergebendem Namen direkt auswählen.
  • in: [JAVA] Verschachtelte Elemente vernünftig ein/ausblenden

    geschrieben von masysma

    Ich kenne kein allgemeingültiges Muster für diesen Fall, bin aber auch kein Design-Patterns Guru. Das CardLayout ist für einige dieser Probleme bestens geeignet -- für andere weniger. Es würde vielleicht helfen, wenn man mal einen Screenshot von der GUI sehen könnte, um nachzuvollziehen, was überhaupt erreicht werden soll. Ich habe davon immernoch kein klares Bild im Kopf.

    Unter "verschachtelten Elementen" verstehe ich etwa folgendes (ich kenne mich mit Apps nicht aus, das hier ist standard Java):
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Test extends JFrame implements ActionListener {
    
    	private static final int N = 3;
    
    	private JPanel[] p;
    
    	private Test() {
    		super("Test");
    
    		Container cp = getContentPane();
    		cp.setLayout(new BorderLayout());
    		JPanel cpan = new JPanel(new BorderLayout());
    		cp.add("Center", cpan);
    		JPanel btns = new JPanel(new FlowLayout(FlowLayout.LEFT));
    
    		p = new JPanel[N];
    		for(int i = 0; i < N; i++) {
    			JButton btn = new JButton("S" + i);
    			btn.setActionCommand(String.valueOf(i));
    			btn.addActionListener(this);
    			btns.add(btn);
    			p[i] = new JPanel(new BorderLayout(10, 10));
    			p[i].add("North", new JLabel("P " + i + " / N"));
    			p[i].add("South", new JLabel("P " + i + " / S"));
    			cpan.add("Center", p[i]);
    			cpan = p[i];
    		}
    
    		cp.add("South", btns);
    
    		pack();
    		setVisible(true);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    	public void actionPerformed(ActionEvent ev) {
    		int idx = Integer.parseInt(ev.getActionCommand());
    		p[idx].setVisible(!p[idx].isVisible());
    	}
    
    	public static void main(String[] args) {
    		new Test();
    	}
    
    }
    Dafür kann ich auch mit CardLayout keine bessere Lösung finden -- ich weiß aber nicht, ob ich das Problem überhaupt richtig verstanden habe.
  • in: [JAVA] Verschachtelte Elemente vernünftig ein/ausblenden

    geschrieben von masysma

    Wenn es um "Ebenen" von Komponenten geht, bei denen immer eine Ebene angezeigt und der Rest verdeckt wird, verwende ich java.awt.CardLayout. Ob das in diesem Falle anwendbar ist, kann ich weder aus der Beschreibung, noch dem Code entnehmen. Für kompliziertere "Umschaltaktionen" würde ich entweder mehrere CardLayouts anlegen oder die Komponenten in Arrays einsortieren, sodass man sie per Schleife durchgehen und schalten kann.

    Der angegebene Code ist aus meiner Sicht äquivalent zu dieser kürzeren Variante
    public void onOffEb2(Boolean flag) {
            if(flag)
                    lblBild.setIcon(formPic);
    
            lblText.setVisible(flag);
            btnMatrix.setEnabled(flag);
            zeigeDatenTabelle(flag);
            onOffEb1(false);
            onOffEb3(false);
            onOffEb4(false);
    }
  • in: Page Eintrag über DB

    geschrieben von masysma

    Für Frage&Antwort im Internet ist es immer gut, ein Minimum Working Example (auch MWE) anzugeben. Statt also den kompletten Quelltext der Seite zur Verfügung zu stellen, sollte man versuchen, den Teil, der Probleme bereitet als eigenständiges Beispiel zu präsentieren, sodass ein "Fachmann" schneller erkennt woran es liegt.

    Ich vermute aber, dass genau das an dieser Stelle das Problem ist, weil es ja um die Schwierigkeit geht, einen funktionsfähigen Code richtig auf einer funktionsfähigen Seite einzubinden.

    Dennoch könntest du es Hilfsbereiten (wie mir) deutlich einfacher machen, indem du
    1. kein RAR verwendest, weil man dazu ein "non-free" (im Debian Sinne) Programm benötigt, was schwieriger zu bekommen ist, als das in vielen Fällen sowieso überlegene 7-Zip.
    2. die Datei so veröffentlichst, dass man sie ohne JavaScript abrufen kann. Ich habe zwei Minuten versucht, durch "Temporarily Allow All this Page" in NoScript diese komische "file-upload.net" dazu zu kriegen, mir endlich die Datei zu präsentieren, ohne Erfolg zu haben. Man muss damit rechnen, dass Viele nach wenigen Sekunden aufgeben werden, wenn sie die Datei nicht herunterladen können. Eine Seite, von der man ohne JavaScript runterladen kann, ist z.B. Kiwi6.

    Inhaltlich kann ich also noch nichts dazu sagen, außer dass auch die Seite um die es geht ohne JavaScript nicht richtig funktioniert.

    Bezüglich der "Vorschau":
    Das ist auf zweierlei Arten möglich. Man kann entweder mit CSS eine Art "Tooltip" erstellen, oder mit JavaScript. JavaScript ist flexibler, aber CSS funktioniert überall. Heutzutage muss man außerdem beachten, dass viele Effekte beim "Überfahren mit der Maus" nicht auf Mobilgeräten verfügbar sind, weil nicht alle Geräte schon das "dem Display nähern" erkennen.

    mit JavaScript:
    Man plaziert ein DIV mit fester größe Absolut und lässt es nur anzeigen, wenn die Maus "onmouseover" über einem bestimmten Element ist -- bei "onmouseout" versteckt man es wieder. Um es immer am Mauszeiger zu orientieren, kann man etwa folgendes verwenden:
    element.onmousemove = function(e) {       
            cElement.style.left = (e.pageX + 16) + "px";            
            cElement.style.top  = (e.pageY + 16) + "px";            
    }
    Dabei ist "element" das Element, welches alle Einträge mit "Tooltip" enthält und cElement das beschreibende DIV.

    mit CSS:
    <p>Test <span>Beschreibung</span></p>
    p span { display: none; }
    p:hover span { display: inline; }
    (Vorsicht, ich habe diese Codes an die meiner alten Webseite angelehnt, in dieser Vereinfachung aber nicht getestet)
  • in: while & for Schleife kombinieren

    geschrieben von masysma

    Das Problem an dieser Stelle ist, dass bei $i=0 mit $get_msg_data->fetch_array() jeweils der nächste Datensatz ausgewählt wird bis keine Datensätze mehr übrig sind. Dann sind bei $i=1 erst recht keine Daten mehr übrig und genauso bei $i=2.

    Ich würde also erst ein Array erstellen und darein die Ergebnisse der Anfrage laden und es dann dreimal ausgeben. Wenn die Gefahr besteht, dass die Datenmenge für das Array zu groß ist (oder generell als Alternative) könnte man auch versuchen den "Datenbank-Cursor" am Ende der While-Schleife zurückzusetzen, sodass die Daten beim nächsten $i wieder von vorne gelesen werden.
  • in: NSA - Und wie nutze ich jetzt das Internet?

    geschrieben von masysma

    Ich habe nichts geändert, weil es mir von der Sache her schon vorher klar war (in allen ToS/AGB von amerikanischen Anbietern steht immer, dass sich die Geheimdienste legal, umfassend, unbemerkt und uneingeschränkt Informationen von diesen Services beschaffen dürfen). Das die Überwachung (schon) solche Ausmaße angenommen hat und nicht nur in/von den USA sondern weltweit in und von vielen Staaten praktiziert wird, wusste ich noch nicht, aber geändert habe ich deshalb auch nichts.

    Mailverschlüsselung ist zwar prinzipiell möglich, aber auch der Gegenüber muss sie unterstützen, weshalb ich noch keine einzige verschlüsselte Mail verschickt oder erhalten habe -- ein Schlüsselpaar hatte ich mir aber schon vor öffentlichwerden des Skandales zugelegt.

    Ich verwende grundsätzlich kein Facebook, kein Handy (und damit kein Mobilsystem, kein WhatsApp etc.) und deaktiviere grundsätzlich JavaScript um (ähnlich wie mit einem Adblocker, nur noch umfassender) der Überwachung zu entgehen. Sogar HTTP-Referer habe ich deaktiviert, Cookies von Drittanbietern werden abgelehnt, und alle anderen Cookies beim Beenden der Sitzung gelöscht.

    Dennoch kann auch ich der Überwachung nicht vollständig entgehen:
    Als Webmaster ist man sozusagen gezwungen, Google Webmaster Tools einzusetzen, was ich auch tue. Auch das Google Drive verwende ich gerne, dann aber nur, indem ich die Daten mit einem mir im Quelltext bekannten Programm verschlüssele. Außerdem ist mein User-Agent im Internet "meilenweit" einzigartig (Iceweasel, Debian amd64 haben nur Wenige) und natürlich muss JavaScript für manche Seiten temporär erlaubt werden, wobei dann auch immer Tracking-Code geladen wird.

    Fazit: Ich gebe wenige Daten heraus, aber sich vollständig abzuschotten ist nahezu unmöglich. In anderen Worten: Man kann entweder ein sicheres System haben oder arbeiten -- beides gleichermaßen zu erreichen ist nahezu unmöglich.
  • in: Ma_Sys.ma Website 4 / nach drei Monaten endlich online

    geschrieben von masysma

    akashia schrieb:nach dem ich grade mal so deine Seite betrachtet hab
    musste ich erstmal 3mal schauen aus welchem Jahr hier
    die Promo ist, da die Seite so ausschaut als sei sie
    noch aus dem letzten Jahrtausend... (ist zumindest mein entfinden)
    Das könnte daran liegen, dass meine Seite eine Hintergrundfarbe verwendet, was bei modernen Webseiten sehr oft nicht der Fall ist. Außerdem verzichte ich auf jegliche aktive Inhalte, weil sie auf Dauer einfach nur stören. Wenn man das "alte" Erscheinungsbild noch konkreter festmachen könnte, würde ich auch Änderungen in Betracht ziehen -- die Seite soll sich zwar von dem was heute "Web 2.0" heißt abgrenzen, aber dennoch nicht "veraltet" wirken.

    so am rande wo ist auf der Seite eigentlich das Impressum?
    (auch nach längerem schauen fand ich nix was dem entspricht
    was nicht ganz unproblematisch ist)
    Auf der Seite befindet sich kein Impressum, weil ein Impressum nur für kommerzielle Webseiten erforderlich ist. Die Seite bietet keinen dauerhaften "Service" an und macht keine Werbung, sondern ist ausschließlich privater Natur.
  • in: Ma_Sys.ma Website 4 / nach drei Monaten endlich online

    geschrieben von masysma

    Zum Thema "responsive":
    Eigentlich soll die Seite auch jetzt schon mit allen möglichen Auflösungen funktionieren. Ich finde es verwirrt den Benutzer, wenn die Seite je nach Größe unterschiedlich erscheint (mich verwirrt immer das Lima-Menü, welches auf einen Button zusammenschrumpft, wenn das Fenster zu schmal wird). Welches Problem könnte man damit lösen?

    Der rote Hintergrund wurde (wegen der aggressiven Farbe wohl auch zu Recht) schon mehrfach kritisiert. Allerdings wollte ich eine zum Logo passende Hintergrundfarbe und das sonst überall zu findende Hintergrund-Weiß nach Möglichkeit vermeiden.
  • in: Raspberry Pi - Per php emails senden

    geschrieben von masysma

    danielmayer schrieb:Bei der Zweiten Seite werden die mails über google gesendet, auch ein Lösungsansatz, is ja eigentlich auch das was ich will, wenn die emails direkt von meinem raspi gesendet werden können wärs halt cooler, aber ich denke ich probiere mal das über google :)
    Dabei ist übrigens noch zu beachten, dass die meisten Mailprovider eingehende E-Mails von dynamischen IP Addressen, wie man sie als Privatmann hat, grundsätzlich als Spam einstufen, weshalb die Mails oft nicht ankommen. Deshalb ist es sinnvoll, die Mails nicht direkt zu verschicken, sondern dafür einen vorhanden "anerkannten" (oder zumindest mit einer statischen IP versehenen) Mailversender zu verwenden -- die Google Lösung hat also einen weiteren zentralen Vorteil.
  • in: Ma_Sys.ma Website 4 / nach drei Monaten endlich online

    geschrieben von masysma

    Meine Webseite, die Ma_Sys.ma Website 4 ist endlich online.
    Sie entstand etwas unter Zeitdruck (weil Ohost offline war) und ist deshalb noch nicht 100% vollständig, was auf der Startseite bereits erwähnt wird. Dennoch ist die Seite schon voll funktionsfähig und größten Teils fertiggestellt.

    Auf der Webseite finden sich Informationen zu meinen Programmen, sowie meine bisher veröffentlichten Mods. Einige davon werden auf dieser neuen Seite erstmals veröffentlicht. Außerdem kann man (vergleichbar mit einem Blog) einige Gedanken zu zusammenhanglosen Themen abrufen, dieser Abschnitt soll aber noch ausgebaut werden (wenn auch nicht allzu bald, etwaige Updates werden aller Voraussicht nach auch hier bekannt gegeben).

    Es würde mich freuen, wenn der ein oder andere das Design bzw. auch den Aufbau kommentieren würde, damit ich die Seite unter Umständen weiter verbessern kann. Aktuell sind wichtige Designentscheidungen, die ich bereits getroffen und begründet habe auch schon auf der Seite dokumentiert.

    Es gibt auch noch einen Fehler (hier bin ich für weitere Vorschläge offen, obwohl ich meines Erachtens schon die meisten Möglichkeiten erwogen habe): Die Suchergebnisse sollen eigentlich "tabellarisch" so dargestellt werden, dass die Anzahl der Spalten variabel von der Breite der enthaltenen Elemente abhängt. Im Moment wird statt dessen leider eine Festbreite angenommen, was bei langen Seitennamen manchmal zu Fehlern führt.

    Die bereits in einem anderen Thema angesprochene Zeichentabelle ist damit ebenfalls online, das Regex-Script entsprechend nicht.
  • in: Cloud ? - OneDrive ?, Dropbox ? oder doch Telekom

    geschrieben von masysma

    Ich verwende Google Drive, weil es ohne Ärger viel Speicher bietet. Allerdings bin ich nicht 100%-ig zufrieden, weil die Linux-Unterstützung zu Wünschen übrig lässt. Ich werde mir deshalb auch mal dieses copy.com ansehen. Vom Web-Interface sehr schön, aber nur mit 2 GB Speicher ist mydrive.ch, welches ich gerne verwende, wenn ich Dateien zwischen Computern übertragen will und keinen nativen Client erwarten kann. Wenn man mit dem kleinen Speicher hinkommt, bietet es auch WebDav und damit ein Standardinterface, welches man auch automatisiert verwenden kann.

    Für eine mobile Nutzung hat Dropbox wahrscheinlich den Vorteil der größten Unterstützung sowohl vom Betriebssystem, als auch durch Apps -- ich selbst habe es aber noch nie verwendet.
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Genau deshalb hatte ich ja anfangs gefragt, ob man verhindern kann, dass "e" verwendet wird -- dann könnte der Nutzer kein PHP ausführen. Ich war mir nämlich auch sicher, dass es zu Problemen führt, wenn man so etwas online stellt. Danke für die definitive Bestätigung.

    Ich werde auf meiner Seite JS vermeiden, aber generell auch kaum "`aktive"' Inhalte haben, um einfache Wartbarkeit und große Stabilität sicherzustellen. Die einzigen anderen "`Demos"' dieser Art sind tatsächlich auf JavaScript basiert (außer die angesprochene Zeichentabelle, aber da kann der Nutzer ausschließlich Zahlen eingeben).
  • in: Windows 7 vs. Windows 8 vs. Linux

    geschrieben von masysma

    bw5rws schrieb:Ich kann dir einen wichtigen Tipp geben:
    MACHE NIEMALS EIN KERNEL UPDATE.
    Das kann man so nicht sagen. Meines Erachtens sollte man immer Kernel-Updates machen -- als vorsichtiger Mensch kann man ja einfach den vorherigen Kernel auch behalten, um im Zweifel davon starten zu können. Gute Systeme wie Debian (stable) machen bei Kernel Updates immer nur sehr kleine Änderungen, um das beschriebene Problem zu beheben.
  • in: Zeichencodierung schrottet DB-Abfrage

    geschrieben von masysma

    Ich weiß nicht, wie das bei Access ist, aber bei MySQL kann man bei der Erstellung der Tabelle angeben, welche Kodierung die Inhalte haben sollen. Tabellen- und Spaltennamen würde ich generell nicht mit Umlauten angeben (i.e. mich auf [a-z0-9-_]+ beschränken), ansonsten führt es früher oder später garantiert zu Problemen. Wenn die Tabelle wirklich "Schlüssel" heißt, würde ich direkt in Erwägung ziehen, sie nach dem Anlegen von Sicherungskopie(n) der Datenbank in "schluessel" umzubenennen und den zugreifenden Code entsprechend anzupassen.

    Ansonsten könnte man das Problem (meines Erachtens unsauber) möglicherweise damit lösen, dass man die Inhalte der Datenbank als "Binärdaten" speichert, in denen ein UTF-8-codierter String enthalten ist und die Kommunikation mit der Datenbank weiterhin abwickelt, wie gehabt.

    Übrigens: Cp1252 kann sehr wohl Umlaute, zumindest laut Wikipedia, UTF-8 ist aber generell zu empfehlen, weshalb ich nicht nocheinmal alles zurückändern würde.
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Man darf es einfach erweitern. Ich wäre natürlich froh, wenn bei einer modifizierten Version, die online steht (lokal ist es komplett egal) ein kleiner Verweis stünde, dass es auf Code von "Linux-Fan, Ma_Sys.ma <Ma_Sys.ma@web.de>" basiert.

    Bzgl Optimierung für meine Webseite: Das Script existierte schon lange vor meiner Webseite und wäre einfach unverändert verlinkt worden, sozusagen als "`Fremdkörper"' auf der ansonsten viel moderner gestalteten Webseite.

    Auf JavaScript will ich auf meiner Seite generell möglichst verzichten, weil mich mittlerweile sogar die einfachsten Javascripts nerven. Zum Beispiel versuchen viele Seiten das Kopieren von Links einfacher zu machen, indem sie sie in ein Input-Feld schreiben, welches sich automatisch beim loslassen der Maustaste komplett markiert. Wenn man aber nur einen Teil der URL kopieren will, oder das unter Linux übliche Kopieren mit der mittleren Maustaste für die ganze URL verwenden will, funktioniert es nicht, weil man dazu selbst den Text markieren kann, was dank JavaScript aber nicht geht...
  • in: Windows 7 vs. Windows 8 vs. Linux

    geschrieben von masysma

    Auch bei mir hat Ubuntu irgendwann den Geist aufgegeben, weshalb ich jetzt bei Debian gelandet bin.
    Debian ist in vieler Hinsicht Ubuntu ähnlich (Ubuntu verwendet das gleiche Paketsystem) und hat meines Erachtens vor Allem dem Vorteil, dass bestimmte weniger "`normale"' Anwendungszwecke besser abgedeckt sind. Bei Ubuntu hatte ich immer das Gefühl, das manchmal völlig unsinnige Voreinstellungen gegeben sind, die die Arbeit mit einem nicht standardmäßig installierten Programm erheblich behindern.

    Die 10 Sekunden können (unter Debian) in /etc/default/grub angepasst werden (dannach einfach update-grub als root aufrufen) und es gibt eine Möglichkeit (ich weiß sie nicht auswendig) um nicht direkt das Menü anzuzeigen, sondern so etwas wie "`Press ESC to show menu"'. Wartet man dann einfach den Timeout ab, startet der voreingestellte Eintrag. Auf diese Weise könnte es möglich sein, mit einem kurzen Timeout von einer Sekunde und dem Drücken von ESC beim Start, ein Mac-ähnliches Verhalten einzustellen.

    Um nochmal auf die Empfehlung einer Distribution zurückzukommen: Ich habe am Anfang einfach alle Möglichen ausprobiert. Solange man noch keine großartigen Einstellungen vorgenommen hat und noch nicht die ganzen Standardverzeichnisse auswendig weiß, bestehen zwischen den einzelnen Distributionen aus Nutzersicht meines Erachtens nur geringe Unterschiede. Entsprechend würde ich einfach empfehlen, VirtualBox unter Windows zu installieren und dann (je nach Festplattenkapazität) einfach vier oder fünf Distributionen gleichzeitig zu testen und einfach mal zu überlegen, welches sich am besten "`anfühlt"'. Für den normalen Benutzer macht am Anfang vor allem das Fenstersystem einen Unterschied. Unity (Ubuntu), Gnome, KDE und XFCE sind die "`großen"' Fenstersysteme, die es sich auszuprobieren lohnt. Abseits des Mainstream gibt es aber noch viele weitere "`kleine"' Fenstersysteme, die beispielsweise Fenster nicht überlappen (Stichwort Tiling Window Managers) und damit ein komplett anders Modell bieten, für Einsteiger aber normalerweise nicht zu empfehlen sind.

    Hat man dann schon einmal VirtualBox eingerichtet, kann man natürlich auch Windows 8 erstmal in einer virtuellen Maschine testen. Ich verwende selbst kein Windows auf physikalischer Hardware, kann aber sagen, dass mir Windows 8 besser gefällt als Windows 7, weil es, wenn man dann mal den Desktop angeklickt hat, ein äußerst solides und mittlerweile (erstmalig!) um gute Standardprogramme (Windows Explorer und Internet Explorer von Windows 8 sind meines Erachtens OK) erweitertes System ist.
  • in: UPDATE bei MySQL Datenbank funktioniert nicht

    geschrieben von masysma

    Versuch mal mysqli_real_escape_string (mit einem zusätzlichen 'i')
  • in: JFileChooser .xml und Ordner anzeigen

    geschrieben von masysma

    Wenn ich es richtig verstanden habe, geht es darum, die Auflistung der Dateien und Ordner zu filtern, sodass man XML Dateien auch aus Ordnern auswählen kann. Ich verwende dazu folgenden Code, der hier mit dem OpenJDK 1.7 funktioniert wie erwartet:

    public static String finput(JFrame wndowner, String title) {
    	String retu = null;
    	JFileChooser chooser = new JFileChooser();
    	FileNameExtensionFilter filter = new FileNameExtensionFilter("Ma Zentral 11 Einstellungen (*.xml)", "xml");
    	chooser.setFileFilter(filter);
    	int returnVal = chooser.showDialog(wndowner, title);
    	if(returnVal == JFileChooser.APPROVE_OPTION)
    		retu = chooser.getSelectedFile().getAbsolutePath();
    	return retu;
    }
  • in: JComboBox nach Auswahl -> erneuern

    geschrieben von masysma

    Normalerweise kann man aus dem Event auslesen, woher es stammt. Dazu einfach "getSource()" verwenden. Beim ItemEvent gibt es auch "getItemSelectable()" -- teste einfach mal, welches sich in diesem Falle besser eignet.

    In Java wird generell gerne mit vielen Klassen gearbeitet -- man könnte auch einfach zwei Unterklassen erstellen, wenn man beiden Listenern zugriff auf die gleichen Variablen geben möchte.
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Der Link zum Quelltext ist schon online, schließlich wollte ich ja, dass jeder weiß, über welchen Quelltext ich da spreche: http://pastebin.com/nk2LT43A (Ich hoffe ich habe das richtig verstanden und das ist der "Link"). Auf meiner Webseite ist es noch nicht verfügbar, solange man nicht alle meine momentan veröffentlichten Programme herunterladen will, was ich als Übergangslösung eingerichtet habe.

    Bezüglich einer "Offline-Verwendung": So richtig offline geht das ja nicht, weil man wenigstens PHP (für das konkrete Script am Besten auch noch einen Webserver) benötigt. Q&D kann man aber auch von der Kommandozeile testen, ganz ohne extra Script (unter Windows ist das möglicherweise umständlicher):
    ~$ php
    <?php echo preg_replace('/a/', 'b', 'aaffeebb'); ?>
    bbffeebb
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Fehler kann ich auch ohne Checkboxen bekommen, beispielsweise durch fehlerhafte Regex-Eingabe mit geöffneten und nicht geschlossenen Klammern oder Ähnlichem. Und: Es ist zwar nicht viel Arbeit, aber dennoch Verschwendung für so ein kleines Testprogramm noch mehr als 10 Minuten zu investieren.

    Danke trotzdem für die Anregungen.

    Das Script wird Open Source auf meiner Webseite zum Download stehen und damit von Jedem selbst lokal testbar sein und natürlich auch Modifikationen erlauben, sodass der interessierte Nutzer/Programmierer (wenn man sich für PHP Regexes interessiert, will man ja etwas programmieren) das Script nach eigenen Wünschen verbessern kann.
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Ich hatte auch schon daran gedacht, will in ein derart simples und wirklich nicht schönes Script aber nicht so viel Arbeit investieren. Die Zeit stecke ich lieber in die Inhalte meiner Seite, damit diese bald mal fertig wird und qualitativ überzeugen kann. Ich wollte mit meiner Frage vor Allem sichergehen, dass ich keine offensichtliche Lösung übersehen habe und anscheinend habe ich nichts Offensichtliches übersehen.

    Ich stimme aber zu, es sicher die sauberste Lösung ist, getrennte Formularelemente dafür anzulegen. -- Wenn man irgendwo Eingaben zu Sicherheitszwecken prüfen muss ist meistens etwas falsch: Bei SQL gibt es Prepared Statements, bei rohen Benutzereingaben Base64, für Passwörter bcrypt, etc.

    masysma schrieb:
    ...
    In beiden Fällen würde ich die Scripte entweder so oder geringfügig modifiziert hosten. Es lohnt sich nicht, für derart simple Scripte so viel Zeit zu investieren, um die Zeichentabelle mit "Seiten" auszustatten, die man "durchblättern" kann und es lohnt sich ebensowenig, das Formular für "Regex" großartig anzupassen, um Modifier separat zu erfassen.
    ...
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Wenn es keine absolut sichere Lösung gibt, dann bleibt die Regex-Seite eben offline -- ist ja auch nicht tragisch, es gibt schließlich sicher noch Millionen anderer Seiten, wo Leute alle Arten von Regexes testen können...

    Diese beiden Links machen mir jedenfalls keine Hoffnung
    * http://stackoverflow.com/questions/1865020/php-how-to-disable-dangerous-functions
    * http://stackoverflow.com/questions/7243073/how-can-i-disable-the-e-preg-replace-eval-modifier-in-php
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Nicht ganz... Im Moment habe ich (Zeilen 10 und 11 aus http://pastebin.com/nk2LT43A):
    // Workaround to replace an e which could cause php to execute a command
            $regex = stripslashes(str_replace("e", "x", $_POST['regex']));
    Das filtert alle "e"s, man kann einen Regex auch mit Wörtern ohne "e" testen. Allerdings schien es mir etwas plump und möglicherweise nicht sicher genug, wenn jemand das e codiert, sodass es PHP noch versteht, min str_replace aber nicht oder Ähnliches (ich kenne mich da nicht so aus, deshalb frag ich ja...).

    Dass die Funktion gesperrt sein könnte ist sicher gut im Hinterkopf zu behalten, aber ich will meine Seite natürlich "generell" sicher haben, nicht nur aufgrund einer bestimmten Konfiguration weniger anfällig sein.

    Zum Thema Rausschneiden per Regex: Könnte man sicher machen, kann meines erachtens jedoch schnell noch unsicherer werden, als es im Moment ist. Ich würde natürlich den Komfort dazugewinnen, dass der Nutzer auch "e"s in seinen Testdaten verwenden kann. Außerdem: Wie würde man das genau angehen? So (nicht getestet, nur konzeptuell zu verstehen)?
    if(!preg_match('/\/^(.*)\/[^e]*$/', $_POST["regex"]))
            die("E NICHT ERLAUBT");
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    muellerlukas schrieb:
    1) "e" ist eh deprecated. Daher IMHO eh besser eine Alternative zu finden. Braucht man für einen einfachen RegEx-Checker meist eh nicht.
    Das schon, ich will /e ja auch nicht zulassen, sondern verhindern.

    In die Zeichentabelle habe ich jetzt mal ein Limit auf maximal 20000 Zeichen eingebaut, das wird für normale Anwendungszwecke ausreichen.
  • in: Potenzielle Resourcenfresser oder Sicherheitslücken?

    geschrieben von masysma

    Ich arbeite momentan kontinuierlich an meiner neuen Webseite (braucht nicht zu gucken -- ist noch nichts online) und bin gerade bei der Erstellung einer Seite "Experimente", auf der man einige meiner kleineren PHP Scripte direkt ausprobieren können sollte. Bei einigen ist klar, dass sie sich nicht eignen, um sie auf Lima-City zu hosten, bei anderen ist klar, dass sie unbedenklich sind.

    Bei zweien meiner Scripte fällt es mir jedoch schwer, zu entscheiden, ob ich sie hier bedenkenlos hosten kann:

    1. Regex http://pastebin.com/nk2LT43A
    Das Script "Regex" soll es dem Benutzer ermöglichen, die Auswirkungen von regulären Ausdrücken in PHP direkt zu testen. In der PHP Funktion preg_replace ist durch den Modifier /e jedoch eine potenzielle Sicherheitslücke gegeben. Reicht da mein naiver Ansatz, einfach "e" durch "x" zu ersetzen? Gibt es einen besseren Weg, die Daten zu escapen?

    2. Chartable http://pastebin.com/edfAFfAz
    Meine kleine PHP-Zeichentabelle ist zwar vor "bösartigen" Nutzereingaben sicher, jedoch könnte der Benutzer über die Parameter leicht sehr hohe Grenzen angeben, wodurch eine unnötig große Seite generiert und zum Nutzer geschickt wird. Ist es OK, die Seite so zu hosten, oder sollte man ein Limit festlegen, wie: Die Ausgabe darf maximal 20.000 Zeichen umfassen oder Ähnliches?

    In beiden Fällen würde ich die Scripte entweder so oder geringfügig modifiziert hosten. Es lohnt sich nicht, für derart simple Scripte so viel Zeit zu investieren, um die Zeichentabelle mit "Seiten" auszustatten, die man "durchblättern" kann und es lohnt sich ebensowenig, das Formular für "Regex" großartig anzupassen, um Modifier separat zu erfassen.

    Im Zweifel lass ich es lieber bleiben, aber mich interessiert eure Meinung -- vielleicht mache ich mir ja nur unnötig Sorgen.
  • in: JComboBox nach Auswahl -> erneuern

    geschrieben von masysma

    Als einfache Lösung kann man die ComboBoxen auf einem Vector aufbauen und diesen nachrtäglich ändern, um die Einträge der ComboBox zu ändern. Für alles was darüber hinaus geht, ist ein eigenes Datenmodell erforderlich.

    In meinem Beispiel gibt es nur zwei ComboBoxen ... es auf eine dritte zu erweitern sollte (hoffentlich) leicht fallen.
    Die Variablen sind einfach benannt, weil es bei meinem Beispiel nichts konkretes auszuwählen gibt, sondern nur Buchstaben und Zahlen.

    http://pastebin.com/TV3e2ni4
  • in: Mit PHP Quellcode suchen und einfügen?

    geschrieben von masysma

    tecfreak schrieb:
    Es macht doch aber leider niemand! Das ist doch das dumme.
    Ich wollte das man über das Script Sprachen auswählen kann. Also auswahl PHP, dann wird nach GET und POST gefiltert in allen .php Datein und dann wird bei beispielsweise 2 Datein ein htmlspecialchars($...) eingefügt um XSS zu vermeiden. So dachte ich mir das. Das Script wird natürlich mit einem LoginScript abgesichert(LoginScript mit LoginSperre und Bruteforce Schutz).
    Ich behaupte, dass das zu einfach gedacht ist. Wer sagt denn, dass der Programmierer nicht erst den Wert einer $_POST Variablen zwischenspeichert und später htmlspecialchars() anwendet. In einigen Fällen ist htmlspecialchars() nicht ausreichend oder behandelt das falsche Problem. Für SQL reicht htmlspecialchars() nicht, für Zahlen ist der Cast nach int meistens besser etc.

    Echte-Welt Beispiel (Teil meiner neuen Webseite, die leider noch nicht fertig und daher noch nicht online ist):
    // ...
    function msg(...) {
            // ...
            $agent = $this->enc_text_field($_SERVER["HTTP_USER_AGENT"]);
            // ...
    }
    // ... weiter unten dann die Funktion ...
    private function enc_text_field($text) {                                
            return base64_encode(substr($text, 0, mawebsite4_wal::MAX_FIELD_LEN));
    }
    In diesem Falle werden die Eingaben base64 Kodiert und sind damit garantiert sicher, htmlspecialchars() würde die Daten nur unnötig verändern, was hier zwar nicht unbedingt schaden würde, aber in anderen Fällen für Probleme sorgen kann.

    Ein Tutorial kann das Problem natürlich in Zukunft lindern, aber das hilft ja für den bestehenden Code nichts. Ich würde daher vorschlagen, die Seiten nicht automatisch zu bearbeiten, sondern dubiose Stellen einfach per regulären Ausdrücken zu suchen. Da kann dann ja auch meine Codestelle von oben herauskommen -- das Ergebnis muss eben erst interpretiert werden -- erst dannach können Maßnamen zur "Verbesserung" ergriffen werden. Automatisch würde ich es nicht durchführen lassen.
  • in: Klassen und Objektbezeichnung

    geschrieben von masysma

    Ich habe gerade zufälligerweise diesen Thread gefunden und wollte noch folgendes anmerken.

    1. Wenn man Nutzer als Objekte abbilden will, müssen die Daten ja irgendwoher kommen und irgendwohin gehen. Danach richtet sich dann auch, wie ich sie in meinem Programm verwalte. Werden beispielsweise immer Objetke aus einer Datenbank gelesen, verarbeitet und dann sofort ausgegeben, reicht eine Variable, etwa

    $result = mysql_query("...");
    while(($data = mysql_fetch_assoc($result)) !== NULL) {
            $tmp = new Test($data["username"]);
            echo "<li>Nutzer: ".htmlspecialchars($tmp->getUsername())."</li>\n";
    }
    2. Die Technik zum dynamischen Zugriff auf Variablen verwende ich nur äußerst selten. Wenn die Möglichen Werte für $a aus dem Beispiel nicht fest voreingestellt sind, kann das auch ein großes Sicherheitsrisiko bedeuten, insbesondere, wenn die Daten auf irgendeine Weise vom Nutzer eingegeben werden können.

    3. Bezüglich der Frage, ob man Objekte in einer Session speichern kann:
    <?php
    
    session_start();
    
    class Test {
    
    	private $username;
    
    	function Test($username) {
    		$this->username = $username;
    	}
    
    	function getUsername() {
    		return $this->username;
    	}
    
    }
    
    $_SESSION["test"] = array();
    $_SESSION["test"][] = new Test("Linux-Fan");
    $_SESSION["test"][] = new Test("Ma_Sys.ma");
    
    header("Content-Type: text/plain; charset=UTF-8");
    print_r($_SESSION);
    
    ?>
    Kurz gesagt: Geht einfach, wie man es erwartet.

    Ich hoffe das hilft weiter.

Login zum Webhosting ohne Werbung!