Posts

Showing posts with the label Tipps/Tricks

Lumia 930 im Kampf gegen die Schwerkraft

Bei meinem regelmäßigen Kontrollgang durch die User-Reviews meiner Apps ist mir seit einigen Wochen immer wieder aufgefallen, dass sich einige wenige User darüber beschwert haben, dass die Bilder in meinen Apps verdreht dargestellt werden. Erst konnte ich mir dies gar nicht vorstellen, doch als mir dann der Photo-Info Nutzer Jan Sternberg eines seiner Bilder vom Lumia 930 mit Denim-Update gesendet hatte, musste ich feststellen, dass diese Behauptungen wirklich stimmen. Nach einer kurzen Analyse der Bilder ist mir dann aufgefallen, dass das Lumia 930 die Orientierung der Bilder in den EXIF-Daten speichert, alle anderen Windows Phones scheinbar nicht. Dies hat dann den Effekt, dass je nach Orientierung des Handys die Pixel-Daten im Foto anders angeordnet sind. Diese Beschreibung zum EXIF Orientation Tag veranschaulicht dies. Um das Problem zu umgehen, ist nun (leider) ein Workaround notwendig, welcher das Einsehen des EXIF Tags beinhaltet. Je nach Orientierung des Bildes muss das Bi...

Windows Phone Games in Brasilien und Südkorea

Lange Zeit habe ich meine Spiele in allen von Windows Phone unterstützten Ländern angeboten. Mit Ausnahme von Brasilien und Südkorea. Doch warum habe ich oder warum lassen viele Entwickler diese beiden Länder außen vor? Der Grund ist ganz einfach. Im Windows Phone DevCenter wird man für die Veröffentlichung von Spielen in diesen beiden Ländern aufgefordert ein DJCTQ Game Rating (für Brazil) oder ein GRB Game Rating (für South Korea) zu machen. Da ich bisher nicht wusste wie ich ein solches Rating erhalte, habe ich diese einfach schlicht und einfach nicht unterstützt. Doch ab dem heutigen Tage werden all meine Games auch in diesen beiden Ländern angeboten. Wie ich das gemacht habe? Ganz einfach! Durch eine hilfreichen Tipp von @GuilhermoManso habe ich erfahren, dass man für das brasilianische Game Rating ganz einfach das PEGI Game Rating verwenden kann, welches in wenigen Minuten mit dem PEGI Express Online-Tool erstellt werden kann. Der selbe Trick funktioniert genau so gut für Süd...

Speed up your Windows Phone App!

Du hast eine Windows Phone App und bist mit der Performance nicht ganz zufrieden? So ging es mir persönlich zumindest bei einer meiner Apps. Doch keine Sorge! Denn mit nur wenigen einfachen Anpassungen am Code lässt sich die Performance deiner App sichtbar verbessern. Ich zeige euch nun wie das geht… 1. Fast-App-Switching Eine Windows Phone App kann mehrere Zustände einnehmen. Wird eine laufende App beendet, so kann diese entweder “ Dormant ” oder “ Tombstones ” sein. Ersteres bedeutet, dass die Daten der App weiterhin im Arbeitsspeicher des Phones gespeichert sind, wohingegen bei letztem der gesamte Datenbereich im Hauptspeicher freigegeben wurde, um Platz für andere Apps zu schaffen. Wenn eine App nun also vom “ Dormant ” Zustand wieder aktiviert wird, brauchen keine Daten der App geladen vom IsolatedStorage oder aus dem Web geladen werden, da diese schließlich noch vorhanden sind. Daher kommt auch der Name Fast-Application-Switching, da man so ohne Ladezeiten zwischen verschieden...

Windows Phone Apps und Privilegien

Während der Entwicklung meines PhoneKit Frameworks und des Version 3.4 Updates von seeMENSA für Windows Phone 8 bin ich kürzlich auf ein paar Interessante Dinge gestoßen.  Eigentlich hatte ich das Update (ursprünglich sogar mit der Versionsnummer 3.1, also man sieht schon hier das das mehrere Anläufe und Nerven gekostet hat) schon seit mehreren Wochen fertig und auch schon im Windows Store freigegeben. Jedoch wurde mir nach dem ersten Download klar, dass mit der App irgend etwas nicht stimmt. Aber was? Bei der Entwicklung in Visual Studio 2013 lief doch alles glatt? Nach langer Recherche und der Implementierung eines Error-Reporting-Systems in das Framework und somit auch in seeMENSA konnte ich diesem Fehler endlich auf die Spur kommen. Dazu war auch das Beta-App Feature des Windows Stores sehr hilfreich, denn wie schon angesprochen sind diese Probleme lokal in Visual Studio nicht aufgetreten. Mein Reporting-System meldete mir nun, dass ich beim Laden von dem Icon, welches ich i...

Lösung für Init-Problem bei Tessnet2 OCR Wrapper in C#

Tessnet2 ist ein C#-Wrapper für die in C++ geschriebene Tesseract 2.0 OCR Library. OCR steht für Optical Character Recognition und dient zum Umwandeln von Textinhalt aus Bildern zu Klartext. Diese Library werden vermutlich in unserem nächsten Augmented Reality Project am Worcester Polytechnic Institute anwenden. Jedoch gibt es schon beim erstellen der ersten Testanwendung viele Probleme, auf die man stoßen kann, und auch ich darauf gestoßen bin. Es folgen nun die einzelnen Probleme und deren Lösung: 1. BadImageFileException wird geworfen Dieser Fehler wird geworfen, wenn die referenzierte DLL von Tessnet entweder in der falschen Zielplattform kompiliert wurde, oder die verwendete .NET Version neuer als 2.0 ist. Im ersten Fall muss man entweder die DLL der anderen Zielplattform (x64, x86) verwenden, oder in den Compiler-Einstellungen von Visual Studio die Target-Plattform des eigenen Programms entsprechend ändern. 2. Pfadangabe und Version der tessdata Dateien Wichtig zu wissen i...

Easy Apps mit Windows Phone App Studio

Image
Gestern bin ich auf ein neues Beta-Projekt von Microsoft gestoßen. Es nennt sich Windows Phone App Studio und und ermöglich es mit nur wenigen Klicks eine einfache Windows Phone Anwendung zu generieren, welche sich für spezielle Use-Cases wirklich gut eigenen. Nach Angabe von Namen und Logo lassen sich Anwendung bestehend auf vorgegebenen Templates, oder aber allgemeine Apps erstellen. Dabei lassen sich sehr einfach Menüs und Tabs hinzufügen, welche dann im Anschluss mit Datenquellen, wie beispielsweise ein RSS-Feed, verbinden. Die aktuelle Anwendung wird auch gleich ein einer kleinen Vorschau angezeigt, welche jedoch momentan noch nicht ganz korrekt dargestellt wird. Bei einem ersten kleines Test sah die Anwendung bei mir nämlich auf dem Phone sogar deutlich besser aus. Die generierte Anwendung lässt sich im Anschluss dann direkt über ein QR-Code auf das Handy installieren, wozu jedoch erst ein spezielles Zertifikat installiert werden muss. Da dies bei mir leider nicht funktionier...

eBook: Web API Design

Bei der Web-Entwicklung mit beispielsweise dem Play! Web Application Framework ist ein gutes API Design sehr wichtig, damit die bereitgestellten Dienste einheitlich, selbsterklären und einfach zu Verwenden sind. Dies gilt sowohl für das Arbeiten in Teams und vor allem dann, wenn man eine API entwickeln will, welche später frei zugänglich sein soll. Die Best-Practices aus der Industrie werden in dem freien eBook Web API Design: Crafting Interfaces that Developers Love zusammengefasst und auf etwa 30 Seiten kurz und knapp erläutert. Eingegangen wird dabei sowohl auf Grundlagen wie URI-Design und HTTP, aber auch auf wiederkehrende Probleme wie Pagination oder Search. Ich kann euch dieses eBook auf jeden Fall empfehlen.

WAV Sounds in MonoGame

Image
Bei der Portierung meines erstes Games von XNA nach MonoGame machte das Abspielen einiger Soundeffekte etwas Schwierigkeiten. So ließen einige Sounds im WAV-Format ohne Probleme abspielen, einige führten zu massiven Performance-Problemen und andere gaben keinen Ton von sich beziehungsweise warfen eine entsprechende Exception. In XNA dagegen lassen sich diese betroffenen Soundeffekte problemlos abspielen. Beim Blick in die Foren von MonoGame sieht man schnell, dass ich nicht der einzige bin, der mit diesen Problemen zu kämpfen hatte. Nach dem analysieren meiner WAV-Files ist mir dann aufgefallen, dass alle Sounddateien mit einer Bitrate von 705bit keine Probleme lieferten. Somit versuchte ich mit entsprechenden Tools alle anderen Soundeffekte auf diese Bitrate zu konvertieren. Und siehe da: Sie ließen sich plötzlich ohne Probleme abspielen! Wie ich die WAV-Files konvertiert habe, möchte ich im folgenden kurz erläutern. Verwendet habe ich dazu das kostenlose Tool Audacity . WAV-Dat...

Game Ratings und Market Pricing bei Windows Phone

Image
Wer für Windows Phone oder Windows 8 Spiele entwickelt, braucht für einige Länder ein offizielles Game Rating Certificate, um dort vermarkten zu können. Eine Liste mit den jeweiligen Rating Boards findet ihr auf MSDN. Während die meisten Zertifikate sehr zeitaufwändig zu erstellen sind, lässt sich das PEGI-Zertifikat für Windows Phone sehr schnell und einfach mit PEGI Express erstellen. Für Windows 8 und andere Plattformen gibt es PEGI Apps , welches sich aktuell jedoch noch im BETA-Status befindet. Neben dem PEGI-Zertifikat lässt sich auch das CSRR-Zertifikat für Taiwan sehr schnell erstellen, denn hier handelt es sich sich nicht um ein wirkliches Zertifikat, sondern nur um eine grobe Selbsteinschätzung. Viele andere Game Ratings sind dagegen nur optional, mit Ausnahme von den Zertifikaten DJCTQ (Brazil) und GRB (Korea). Kann man von diesen beiden Märkten absehen, so muss man beim Release der Anwendung lediglich diese beiden Länder deselektieren. Andernfalls wirft das DevCenter h...

Automatische Bildschirmskalierung in MonoGame und Windows 8 Store App

So langsam geht die Portierung von VaderpiXX auf Windows 8 dem Ende entgegen. Bei der Anpassung des Viewport beim Wechseln der BIldschirmauflösungen habe ich mir heute etwas die Zähne ausgebissen und möchte nun meine letztliche Implementierung erläutern. In diversen Foren bin ich auf viele Entwickler mit dem selben Problem gestoßen und oft wird ein alternativer Pull angeboten oder ein paar Änderungen in der OpenTK (eine Open-Source C#-Wrapper für OpenGL, OpenAL und OpenCL). Da ich es jedoch bevorzugen wollte den OpenTK-Code nicht zu ändern, habe ich es letztlich wie im folgenden Snippet gelöst: protected override void Initialize() { graphics.IsFullScreen = true; graphics.PreferredBackBufferHeight = 480; graphics.PreferredBackBufferWidth = 800; // ... graphics.ApplyChanges(); ApplicationViewChanged += Game_ApplicationViewChanged; this.Window.ClientSizeChanged += Window_ClientSizeChanged; handleScreenViewState(); base.Initialize(); } void Window_Client...

Windows App Certification Kit: Lösung zum ‘Class Not Registered’ Error

Also ich letztens meine erste Windows 8 App freigeben wollte, bin ich auf einige Probleme beim Testen des generierten Packages mit dem in Visual Studio 2012 mitgelieferten Windows App Certification Kit gestoßen. Damit ihr damit nicht lange aufhaltet möchte ich hier kurz zusammenfassen, wodurch diese Probleme zustande kamen. Avast Anti-Virus : Das Virenprogramm sollte während des Test kurzzeitig deaktiviert werden, weil sonst der Lauch-Test fehlschlägt. Standard-Browser : Der bei mir als Standard-Browser festgelegte Chrome macht ebenfalls Probleme, und zwar ganz am Ende des gesamten Test, wenn die Testergebnisse erstellt werden. Im Detail wird hier eine “Class Not Registered” Exception geworfen, wodurch man nicht in der Lage ist, die Testergebnisse zu betrachten. Eine Lösung ist hier das festlegen des Internet Explorer 10 als Standard-Browser. Seit Ihr auch auf Probleme mit dem Windows App Certification Kit gestoßen?

Lösung für Refresh-Bug beim Windows-Explorer

In den letzten Wochen ist mir beim Arbeiten mit Windows 8 ständig ein sehr merkwürdiges Phänomen aufgetreten. Hin und wieder wollte er Windows-Explorer beim Umbenennen, Kopieren, Verschieben oder Löschen von Dateien einfach die Anzeige nicht aktualisieren. Man war stets gezwungen, manuell die Anzeige mittels F5 zu aktualisieren, was mit der Zeit wirklich lästig wurde. Ich rechnete anfänglich noch mit einer Kinderkrankheit von Windows 8, jedoch konnte kein anderer Windows 8 User meines Freundeskreises dieses Verhalten bestätigen. Nach etwas Recherche im Internet wurde mir auch klar, dass dieses Problem schon mindestens seit Windows XP besteht und es nur bei sehr wenigen Nutzern auftritt. Nach vielen vergeblichen Registry-Anpassungen und Einstellungsänderungen konnte ich jetzt endlich die Fehlerquelle finden. Die Fehlerursache steckt hinter einem eingebundenen Netzwerkfolder , dessen Verbindung durch eine fehlende VPN-Verbindung nicht automatisch hergestellt werden konnte . Anscheinen...

Lenovo: Wireless Status Radio Dialog deaktivieren

Bei allen ThinkPads von Lenovo lassen sich die Funkverbindungen global über einen Hardware-Schalter deaktivieren. Dabei wird jedoch jedes mal ein kleiner und total unnötiger Dialog aufgerufen, das sich soeben der Status der Funkverbindungen geändert haben. Da es leider keine Einstellung gibt, diesen Dialog zu entfernen, muss man selbst ein klein wenig Hand anlegen. Typischerweise befindet sich unter C:\Program Files\Lenovo\HOTKEY die Binary pmev2_1.exe , welche beim betätigen des Schalters ausgeführt wird und den eben genannten Dialog öffnet. Ein einfaches Umbenennen dieser Binary genügt um sich von dem nervigen Dialog zu befreien!

VPN in Windows 8

Image
Das einrichten der VPN Verbindung in Windows 7 war stets eine triviale Angelegenheit. Als ich jedoch heute mal eine solche Verbindung zu meiner Hochschule aufbauen wollte, kam eine kleine Überraschung auf: Error 942: The connection could not be established because the authentication method used by your connection profile is not permitted for use by an access policy configured on the RAS/VPN server. Specifically, this could be due to configuration differences between the authentication method selected on the RAS/VPN server and the access policy configured for it. Der Grund für dieses Problem leuchtet mir noch nicht vollständig ein, jedoch lässt sich dieses Problem durch wenige Klicks bei den Authentication Settings des Security Tabs der Connection Properties beheben. Anschließend lässt sich die Verbindung ohne Probleme aufbauen. Falls jemand noch weitere Einstellungen vornehmen muss, damit eine VPN-Verbindung aufgebaut werden kann oder die Verbindung sogar ganz ohne einen manuel...

WP7, XNA, the GC, and You (and Silverlight too!)

Von Projekt zu Projekt lernt man nicht nur immer mehr dazu, sondern man stößt auch immer wieder auf Code, bei welchen man beim genauere Betrachten denkt: “Wow, was habe ich mir dabei nur gedacht? Das muss beim nächsten Projekt besser gemacht werden!”. Vor allem in der Spieleprogrammierung gibt es extrem viele Dinge, die man falsch machen kann. Und ich müsste lügen, wenn ich behaupten würde, dass nicht auch ich selbst diese Fehler gemacht habe oder immer noch mache. Besonders die Garbage Collection kann sich bei etwas größeren Spielen schnell bemerkbar machen, da beispielsweise die Update() und Draw() Methoden jeweils 60 mal pro Sekunde ausgeführt werden. Wenn dort regemäßig Objekte erzeugt werden, sind einem Performance-Drops während des Spiels garantiert. Um dem ein Ende zu setzten, habe ich mich heute auf die suche nach guten Tipps und Tricks gemacht. Dabei bin ich auf einen sehr interessanten Blog-Eintrag gestoßen, welcher neben extrem nützliche Informationen zum GC auch ein paar...

Feinschliff für den Accelerometer

Bei Anwendungen oder Spielen, die fast ausschließlich über den Beschleunigungssensor gesteuert werden, entscheidet dessen Kalibrierung und Genauigkeit maßgeblich über Fun-Faktor der App. Auch bei SpacepiXX sind einige der schlechten Bewertungen auf den Accelerometer zurückzuführen. Doch leider ist es nicht immer leicht, alle Parameter passend zu wählen, da sich die einzelnen Sensoren von Gerät zu Gerät unterscheiden können. Um dem Problem entgegen zu wirken, bin ich heute auf diesen Post des Windows Phone Developer Blogs gestoßen. Neben etwas Erklärungen bezüglich bekannter Probleme beim Accelerometer wird dort einer Hilfs-Klasse angeboten, welche sich sehr leicht in das eigene Spiel implementieren lässt. Dadurch lassen sich nicht nur die reinen Sensordaten auslesen, sondern auch Durchschnittswerte oder tief- und hochpassveränderte Werte, die sich aus vergangenen Messungen ergeben. Damit wird einem viel Arbeit abgenommen und einer butterweichen Steuerung steht nun nichts mehr im W...

You’ve Been Tombstoned!

Auf AppHub bin ich auf ein sehr wichtiges Dokument gestoßen, in dem der richtige Umgang mit Tombstoning in XNA Spielen erläutert wird. Dabei wird unter anderem auch auf die Unterschiede zwischen den Events von Xna.Framework.Game und Microsoft.Phone.Shell.PhoneApplicationService eingegangen. Tombstoning_WP7_Games.docx Falls Ihr euch schon immer gefragt habt, wie man einen Spielstand am besten sichert, ist dieses Dokument genau richtig für euch!

Windows Marketplace: Registrierung als Student

Image
Um sich beim Windows Marketplace als Student anzumelden, was für die Veröffentlichung und Testen von Apps erforderlich ist, muss man einige Hürden auf sich nehmen. Als ersten beginnt man mit der Registrierung bei DreamSpark und Xbox Live , welche an sich recht unkompliziert verlaufen. Als nächstes benötigt man einen Account bei App Hub , die zentrale Anlaufstelle zum Veröffentlichen von Apps für den Windows Marketplace . Auch bis hier sollte es noch keine Probleme kommen. Wer jetzt jedoch denk, man habe nun einen aktiven Marketplace Account, der irrt. Wenn man sein Phone mit mit dem Windows Phone Developer Registration Tool nun als Entwickler-Phone freischalten will, der wird nun folgende Meldung erhalten… Der Account ist noch inaktiv . Aber warum? Auch wenn man einfach ein paar Tage wartet, wird sich nicht viel ändern (ich spreche aus eigener Erfahrung, denn ich habe knapp einen Monat gewartet). Wenn man sich nun erneut in App Hub einloggt, und unter Dashboard > Windows P...

Shared Folder in VirtualBox einrichten

Image
Beim Arbeiten mit einer virtuellen Maschine ist es oft erforderlich, Daten vom einen OS zum anderen zu kopieren. Bei VirtualBox geschieht dies mit Hilfe eines Shared Folders . Wie man einen solchen einrichtet, wird folgend beschreiben… 1. Installation der Gasterweiterungen Als erstes muss man die Gasterweiterungen von VirtualBox installieren. Diese Option findet man unter Gerät > Gasterweiterungen installieren… Anschließen erscheint ein virtuelles Image der Gasterweiterungen namens VBOXADDITIONS Beim öffnen dieser Image wird diese auch als Unix-Software erkannt und kann installiert werden Bei der Installation sollte in der Regel kein Fehler passieren. Nach der Installation der Gasterweiterungen ist es nun zusätzlich möglich, die Auflösung der von Ubuntu höher als 800x600 zu stellen. Sie wird nun automatisch an die Fenstergröße angepasst. 2. Anlegen der Shared Folder Nun wird es an der Zeit die Tausch-Ordner anzulegen. Als erstes legt man einen Ordner im Host-OS an (in m...

Shortcuts für den Windows Phone 7 Emulator

Um mit dem Windows Phone 7 Emulator, welcher in den Windows Phone Development Tools enthalten ist, besser arbeiten zu können, gibt es einige praktische Shortcuts, welche einem das Entwickeln und vor allem das Testen der Anwendung wesentlich vereinfacht. Key Beschreibung F1 Entspricht dem BACK-Button auf dem Phone F2 Entspricht dem WINDOWS-Button auf dem Phone F3 Entspricht dem BING-SEARCH-Button auf dem Phone F7 Aktiviert die Kamera des Phones F9 Erhöht die Lautstärke F10 Verringert die Lautstärke Break Aktiviert/Deaktiviert die physikalische Tastatur Page up Aktiviert die physikalische Tastatur Page down Deaktiviert die physikalische Tastatur Vor allem das Aktivieren der physikalischen Tastatur bringt einen deutlichen Bedienkomfort mit sich, da so einem das ständige Klicken mit der Maus, Buchstabe für Buchstabe auf der virtuellen Tastatur des Emulators, erspart bleibt.