Hauptmenü

Werkzeuge

Kategorien

Archiv

Einhell

Makro für doppelte Unterstreichung in MathJax

Erstellt in Allgemein am 10. Dezember 2015 vom Daschmi

Um einen Text doppelt zu unterstreichen kann man in MathJax folgendes Makro definieren um sich die Arbeit zu vereinfachen:

MathJax.Hub.Config({
  TeX: {
    Macros: {
      du: ["\\underline{\\underline{#1}}", 1]
    }
  }
} );

WordPress Menü Reihenfolge drehen

Erstellt in Wordpress am 6. Dezember 2015 vom Daschmi

Hat man im WordPress ein Menü, welches man mittels wp_nav_menu anzeigt und möchte die Elemente drehen. So kann man folgenden Filter verwenden:

function daschmi_reverse_menu($menu, $options)
{

  return array_reverse($menu);

}

Das Menü bindet man dann wie folgt ein:

add_filter('wp_nav_menu_objects', 'daschmi_reverse_menu');
wp_nav_menu(array('theme_location' => 'header-menu'));
remove_filter('wp_nav_menu_objects', 'daschmi_reverse_menu');

PDFs automatisch aus Ordner drucken mit C#

Erstellt in C# am 26. November 2015 vom Daschmi

Aufgabenstellung war das Drucken von PDF Dokumenten die automatisiert auf einem Netzlaufwerk abgelegt werden. Letztendlich habe ich es über ein kleines C# Programm gelöst welches den Acrobat aufruft, das Dokument druckt und anschließend löscht.

Im Beispiel werden alle Dokumente gedruckt, die im Ordner „U:\PRINT\“ abgelegt werden. Dem Programm können zwei Parameter übergeben werden, einmal der Pfad zum Acrobat Reader und einmal der Ordner der überwacht werden soll.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using System.Diagnostics;

namespace ConsoleApplication1
{

    class Program
    {

        static void Main(string[] args)
        {

            String strAcrobat = @"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe";
            String strPath = @"C:\Users\Daniel\Desktop\PRINT\";

            if (args.Length == 2 && !String.IsNullOrEmpty(args[0])) strAcrobat = args[0];
            if (args.Length == 2 && !String.IsNullOrEmpty(args[1])) strPath = args[1];

            do
            {

                while (!Console.KeyAvailable)
                {

                    string[] arFiles = Directory.GetFiles(strPath);

                    foreach (String strFile in arFiles)
                    {

                        Console.WriteLine("Drucke :" + strFile);

                        ProcessStartInfo procStartInfo = new ProcessStartInfo(strAcrobat, " /p /h " + strFile);

                        procStartInfo.RedirectStandardOutput = true;
                        procStartInfo.UseShellExecute = false;
                        procStartInfo.CreateNoWindow = true;

                        System.Diagnostics.Process proc = new System.Diagnostics.Process();
                        proc.StartInfo = procStartInfo;
                        proc.Start();
                        proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

                        if (proc.HasExited == false)
                        {
                            proc.WaitForExit(10000);
                        }

                        proc.EnableRaisingEvents = true;

                        proc.Close();
                        KillAdobe("AcroRd32");

                        Console.WriteLine("Lösche :" + strFile);
                        Console.WriteLine("");

                        File.Delete(strFile);

                    }

                }

            } while (Console.ReadKey(true).Key != ConsoleKey.Escape);

        } // static void Main(string[] args)

        private static bool KillAdobe(string name)
        {

            foreach (Process clsProcess in Process.GetProcesses().Where(clsProcess => clsProcess.ProcessName.StartsWith(name)))
            {

                clsProcess.Kill();

                return true;

            }

            return false;

        } // private static bool KillAdobe(string name)

    }

}

Zertifikat für den Apple Push Server erstellen

Erstellt in IPhone SDK am 10. November 2015 vom Daschmi

Damit man mit dem Apple Notification Server kommunizieren kann, muss man jedes Jahr ein Zertifikat erstellen. Dazu muss man den Privaten Schlüssel und das Zertifikat exportieren und wie folgt umwandeln.

Exportierte .p12 Dateien in .pem Dateien umwandeln:

openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12

Passwort aus Key entfernen:

openssl rsa -in key.pem -out key-nopwd.pem

Dateien kombinieren:

cat cert.pem key-nopwd.pem > apn.pem

Kommunikation testen:

openssl s_client -connect gateway.push.apple.com:2195 -cert cert.pem -key key-nopwd.pem

HTTP in iOS 9.0 standardmäßig deaktiviert.

Erstellt in IPhone SDK am 21. Oktober 2015 vom Daschmi

Apple hat das unverschlüsselte HTTP Protokoll mit dem Update auf iOS 9.0 standardmäßig deaktiviert und es sind nur noch HTTPS Anfragen zulässig. Weiterhin werden nur noch bestimmte Verschlüsselungsalgorithmen von Apple als sicher eingestuft und erlaubt.

Apple erläutert diesen Schritt hier.

Mittels folgendem Eintrag in der plist Datei eines XCode Projektes sind aber weiterhin HTTP Anfragen möglich:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key><true/>
</dict>

Title in Link (a) und Image (img) Tag für Content Elemente

Erstellt in TS Schnipsel, TYPO3 am 4. August 2015 vom Daschmi

Möchte man im TYPO3 ein Bild verlinken und gibt einen ALT und TITLE Text an, so wird der TITLE Text auf den Link gesetzt und der Image Tag erhält den ALT Text. In meinen Augen ist dies korrekt, aber manche SEO Optimierer wünschen sich den TITLE Text auf dem Link Tag und dem Image Tag. Dies kann über folgende Variable in den Typoscript Konstanten gesteuert werden:

styles.content.imgtext.titleInLinkAndImg = 1

Das richtige Shop System

Erstellt in Allgemein am 8. Juli 2015 vom Daschmi

Das richtige Shopsystem auswählen

Bei der Einrichtung eines Onlineshops spielen viele Faktoren eine Rolle. Nur wenn das Design des Webshops ansprechend wirkt, lässt sich ein Gewinn aus Verkäufen von Waren oder Dienstleistungen erwarten. Darauf weisen die Fachleute auf homepage-erstellen.de hin. Die Gestaltung muss den Käufer einladen, sich auf der Seite umzusehen, und ihm alle notwendigen Informationen auf Klick zur Verfügung stellen. Wer erst lange nach den gesetzlichen Widerrufregelungen, dem Impressum oder den Zahlungsbedingungen suchen muss, wird den Shop schnell wieder verlassen, ohne eine Bestellung aufzugeben.

Seriöses Erscheinungsbild

Nicht nur die Gestaltung der Benutzeroberfläche, auch die Wahl der Farben trägt dazu bei, dass der Onlineshop seriös wirkt. Ein Beerdigungsunternehmen, dessen Seite mit knalligen Farben wirbt, wirkt ebenso unseriös wie ein Reinigungsunternehmen, das auf schmutzig wirkende Farbtöne setzt. Die Schrift muss gut lesbar sein, ohne die Augen zu überanstrengen. Bei der Einbindung von Videos ist weniger oft mehr. Kunden schätzen einfache Designs, die sich auf das Wesentliche konzentrieren.

Kriterien für die Auswahl des Shopsystems

Shops, die viele Artikel oder Dienstleistungen anbieten, sollten für ihre Produkte Kategorien anlegen, sodass der Käufer schneller fündig wird. Eine einfach zu bedienende Suchfunktion ist ein Muss für einen guten Onlineshop. Bei der Auswahl der Software sollte auf diese Punkte besonderer Wert gelegt werden. Shopsysteme im Vergleich zeigen, dass nicht alle Angebote die individuell erforderlichen Funktionen bieten. Bei der Entscheidung sollte deshalb nicht nur der Preis berücksichtigt werden, sondern die Frage, ob das Gesamtpaket alles Notwendige bietet. Eine falsche Wahl rächt sich später, wenn der Shop auf ein anderes System umgestellt werden muss.

PhP GiroCode Version 1.1

Erstellt in Allgemein am 7. Juni 2015 vom Daschmi

Mit Version 1.1 wurde ein kleiner Fehler bei der Speicherung des GiroCodes als Bildgrafik korrigiert. Folgendes Beispiel verdeutlicht die Speicherung als Grafik:

require_once 'phpgirocode-1.1/phpqrcode/qrlib.php';

require_once 'phpgirocode-1.1/phpgirocode.class.php';

$phpGiroCode = new PhpGirocode();

$phpGiroCode->setBIC("HELADEF1WEM");
$phpGiroCode->setIBAN("DE68820510001163220970");
$phpGiroCode->setAmount(100.14);
$phpGiroCode->setText("Beschreibung");
$phpGiroCode->setReciver("Max Mustermann");

// Pfad und Dateiname
$out_file = dirname(__FILE__).'/out.png';

// GiroCode als Datei speichern
$phpGiroCode->generate(PhpGirocode::OUTPUT_FILE, $out_file);

Sollte es Probleme bei der Generierung der GiroCodes geben, so kann man jetzt den Pfad für temporäre Dateien anpassen:

$phpGiroCode->setTmpPath('/tmp');

Standardmäßig wird der Pfad mittels sys_get_temp_dir ermittelt.

Mehr über PhPGiroCode erhalten Sie hier.

Ebenen (THREE.PlaneGeometry) nur von einer Seite sichtbar

Erstellt in Allgemein am 17. April 2015 vom Daschmi

Wer bei Threejs das Problem hat, dass seine Ebenen nur von einer Seite sichtbar sind sollte beim Material den Parameter side beachten.

Beispiel:

...
material = new THREE.MeshLambertMaterial( { color: color, side: THREE.DoubleSide } );

this.objects[oi] = new THREE.Mesh(
new THREE.PlaneGeometry(
this.planes[i][0],
this.planes[i][1]
),
material
);
...

PhpGiroCode

Erstellt in PHP am 1. März 2015 vom Daschmi

GiroCode für QR – Code Überweisung generieren

Mit Hilfe dieser Bibliothek ist es möglich QR Codes zu generieren, die das überweisen z.B. mit der Sparkassen App erleichtert. Die Funktion generiert dabei aus IBAN/BIC oder Kontonummer/BLZ einen QR-Code der für Überweisungen innerhalb Deutschlands genutzt werden kann.

Funktionen:

  • Generierung eines QR-Codes (GiroCode) für Überweisungen innerhalb Deutschlands
  • Ermittlung von IBAN/BIC aus Kontonummer und BLZ (BLZ Stand Januar 2015)
  • Validierung von IBAN mittels Prüfziffer
  • Rückgabe von Bankdaten aus BLZ oder BIC
  • Rückgabe an Browser oder Speicherung in Datei

Beispiel:


IBAN
BIC
Empfänger
Betrag
Betreff
QR - GiroCode



PhpGiroCode PHP Klassenbibliothek

Stückpreis: 10,00 EUR