Kategorien
Webdeveloper Tools

Mantis App Update V1.2 mit umfangreichen Funktionen

Für das Projektmanagement Tool Mantis gibt es eine sehr prktisch iOS App für iPhone und iPad für die gerade ein umfangreiches Update zur Verfügung gestellt wurde.

Die Neuerungen umfassen:

  • Performance verbesserungen
  • Login zu Servern mit htaccess Schutz
  • FAQ integriert

Es können auch neue Fragen direkt aus der App gestellt werden. Sobald diese beantwortet sind, werde diese in der FAQ Liste der App angezeigt.

Notizen bearbeiten

Notizen können nun direkt in der App bearbeitet werden.
HINWEIS: Voraussetzung hierfür ist die Verwendung der MantisBT Version 1.2.6 oder neuer, da die entsprechende API erst ab dieser Version bereit steht.

Filter in der Suche integriert

Uber das Suchfeld können nun auch noch Filter ausgewählt werden.

Bearbeiten von Custom Fields

Custom Fields können nun aus der App bearbeit werden.

Dateianhänge

Es können nun aus der App heraus Dateien an Tickets angehängt werden.
Um Dateien Auszuwählen wurden Folgende Möglichkeiten integriert:
– Dropbox
– iPhone/iPad Bibliotek
– App interner Ordner
– iTunes Filesharing (Daten im Ordner „Mantis Documents“ ablegen)

Fazit

Die App ist sehr empfehlenswert und kann im Appstore installiert werden.

Kategorien
Diverses

Die Architektur von Stackoverflow / Skalierung von großen Webseiten mit relationalen Datenbanken

Ein sehr interssanter Artikel über stackoverflow.com, wohl allen Programmierern bekannt ist und die Vor- und Nachteile von NOSQL Datenbanken, allemale lesenswert…. zum Artikel

Kategorien
JavaScript

TinyMCE Focus und Blur Events Javascript

Die TinyMCE focus und blur Events kann man folgendermaßen mit Javascript behandeln:

        <script type="text/javascript">
            $( window ).load(function() {
                tinyMCE.dom.Event.add(tinyMCE.getInstanceById("foo_id").getWin(), "focus", function(){
                    console.log("focus");
                });
                tinyMCE.dom.Event.add(tinyMCE.getInstanceById("foo_id").getWin(), "blur", function(){
                    console.log("blur");
                });
            });
        </script>
Kategorien
MySQL

MySQL Spalte kopieren innerhalb desselben Datensatzes

Wenn man bspw. eine Spalte inserted einfügen will und diese inital mit dem schon vorhandenen last_change Werten ausstatten will, kann man folgenden Code benutzen:

UPDATE table_name dt1, table_name dt2 SET dt1.inserted = dt2.last_change WHERE dt1.id = dt2.id
Kategorien
JavaScript

Bing Maps API Tutorial

Das Einbinden von Bing Maps auf der Webseite gestaltet sich sehr ähnlich wie Google Maps. Die freie jährliche Nutzung liegt bei 10Millionen Requests im Jahr, danach muss gezahlt werden

Als erstes benötigt man einen Key, den man kostenlos mit Hilfe eines Windows-ID Kontos (z.B. per Hotmail Account) anfordern kann und automatisch bekommt hier.

Microsoft bietet 5 verschiedene Bibliotheken mit kombinierbaren Funktionalitäten an, wobei die Map Control Bibliothek die wichtigste für Web Developer mit Javascript ist. U.a. gibt es eine Bibiliothek für Windows Store Apps und auch interessant einen Rest Service für Geocoding Anfragen (auch Reverse Geocoding) sowie Routenberechnung. Einen Überblick über alle Bibliotheken gibt es hier.

Für den Anfang kann man ein Karte schnell mit dem folgenden Code und seinem Key testen:

<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&mkt=de-DE"></script>
<div id='mapDiv' style="position:relative; width:400px; height:400px;"></div>
<script type="text/javascript">
        var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"),
            {credentials: "key_here",
                center: new Microsoft.Maps.Location(45.5, -122.5),
                mapTypeId: Microsoft.Maps.MapTypeId.road,
                zoom: 7});

</script>

oder sauberer als Javascript Klasse:

<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&mkt=de-DE"></script>
<script type="text/javascript" src="bing.js"></script>
<div id='bingmapsDiv' style="position:relative; width:400px; height:400px;"></div>
<script type="text/javascript">
var bingMaps = new BingMaps("bingmapsDiv");
</script>

und mit der bing.js Klasse:

function BingMaps(mapId){
    this.mapId = mapId;
    this.key = "my_key";
    this.initMap = function(){
        var map = new Microsoft.Maps.Map(document.getElementById(this.mapId),
            {credentials: this.key,
                center: new Microsoft.Maps.Location(45.5, -122.5),
                mapTypeId: Microsoft.Maps.MapTypeId.road,
                zoom: 7});
    }
    this.initMap();
}

 

 

Kategorien
PHP Yii Framework

Yii Simple Open Street Map Extension

The Simple Open Street Map Extension for Yii is a fast and comftable was to show multiple markers and a Open Street Map.

Features

  • automatic Zoom Factors, might be adjusted a little bit for street map zooms
  • Html Marker Text with Links etc.
  • Open Street Map License *free*
  • easy to use
open_street_map_yii
Open Street Map Yii Extension for the 10 biggest cities in brasil

 

Kategorien
PHP

PHP performante Array Operationen mit SplFixedArray

Seit PHP 5.3. gibt es Arrays mit fixer Länge names SplFixedArray (wie in Java und anderen Sprachen), die performanter oder gleich performant sind in den meisten Operationen wie

  • lesen
  • einfügen
  • auslesen

Details zu den Performance Vorteilen inklusive Tests gibt es auf diesem Blog.

Im folgendes Beispiel habe ich die neue Datenstruktur benutzt und bin zu enormen Performancegewinnen gekommen:

function  activeRecordAttributeToArrayFastMemory($objects, $attributeName)
{
    $size = count($objects);
        $array = new SplFixedArray($size);
        for($i = 0; $i < $size; $i++)
        {
            $array[$i] = $objects[$i]->$attributeName;
        }
    $returnArray = $array->toArray();
    return $returnArray;
}
Kategorien
Server Administration

E-Mails an Google Mail landen im Spam

Beim Versenden von Mails an Google Mail/Gmail kam es bei mir immer zu einer Bounce E-Mail von Google mit der folgenden Nachricht:

gmail-smtp-in.l.google.com[2a00:1450:4013:c01::1a] said: 550-5.7.1
    [2a01:4f8:160:61b3::2      12] Our system has detected that this 550-5.7.1
    message is likely unsolicited mail. To reduce the amount of spam sent
    550-5.7.1 to Gmail, this message has been blocked. Please visit 550-5.7.1
    http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550
    5.7.1 more information. u49si23102713eef.172 - gsmtp (in reply to end of
    DATA command)

Die Nachricht ist sehr allgemein und unter dem Link findet man keine direkte Lösung. Bei mir hat folgendes geholfen:

Die Nachricht deutete daraufhin das der Absender-Mail von einer IPV6 Adresse gesendet worden ist: 2a01:4f8:160:61b3::2 und deshalb habe ich Postfix umgestellt auf IPV4 und voila, es hat geklappt:

vi /etc/postfix/main.cf

Zeile ändern:  inet_protocols = ipv4 und Postfix neustarten und fetig – keine Boune Mail von Gmail!

Kategorien
Phonegap/Cordova

Phonegap bessere native Performance mit Steroids

Phonegap hat die große Schwachstelle, dass die Peerformance der UIs sehr langsam ist, dagegen gibt es ein Projekt namens Steroids welches es ermöglicht z.B. native Listviews zu benutzen und so die Performance merklich zu steigern, absolut empfehlenswert.

Meiner Meinung nach sollte Phonegap nicht ohne Steorids verwendet werden!

Kategorien
JavaScript PHP

PHP-Funktionen in JS benutzen mit php.js

Wer vermisst es nicht: High Level Funktionen, die einem die einfachsten arbeiten abnehmen in Javscript. Von PHP ist man immer gewöhnt schlanken, gut lesbaren Code zu schreiben, auch dank der vielen eingebauten Hilfsfunktionen, wie z.B. für die String Verarbeitung:

  • strncmp
  • strpbrk
  • strpos
  • strrchr
  • strrev
  • strripos
  • strrpos
  • strspn
  • strstr
  • strtok
  • strtolower
  • strtoupper
  • strtr

Dies ist zeit langem schon möglich durch eine Javascript Library namens php.js, die fast alle PHP Funktionen nach Javascript portiert hat und für PHP Programmierer sicher eine gute Hilfe ist.