Sonntag, 6. November 2011

CyanogenMod on Defy

Da es ja auch nach Googles Motorola-Kauf nicht absehbar ist, dass das Defy weitere Updates erhält, hab ich jetzt doch auf CyanogenMod gewechselt. Motoblur geht mir nicht wirklich ab, ansonsten läuft es deutlich flüssiger, Akkulaufzeit ist etwa gleich... - tendenziell etwas länger, aber mit herumspielen hab ich's auch schon nach einem knappen Tag geleert. War aber davor auch schon in der Größenordnung. Würde mal sagen das Update ist empfehlenswert - und wenn man sich mal über Defy2ndInit, ROMManager usw. orientiert hat, geht's auch recht flott.

In diesem Thread findet man so ziemlich alles was man braucht.

Math.Round() und seine Tücken

Ein nicht unübliches Thema: man rechnet ein wenig mit Fließkommazahlen (double, float, decimal) und da eine leichte Ungenauigkeit in deren Natur liegt, wird vor dem Vergleich gerundet. Schönerweise gibt es in C# dafür die Methode z.B. Math.Round(double). Die Überraschung folgt erst, wenn man etwa in einem Test dann etwas in der folgenden Art schreibt:

Assert.AreEqual(5, Math.Round(4.5, 0));

Also Runden auf ganze Zahlen. Nachdem das fehlgeschlagen hat, wundert sich der Entwickler natürlich. Und schlägt nach. Aha, es gibt also eine Überladung dieser Methode, bei der die Rundungsmethode festgelegt werden kann.

Assert.AreEqual(5, Math.Round(4.5), MidPointRounding.AwayFromZero);

Das funktioniert. Allerdings hätte ich erwartet, dass der Standard das kaufmännische Runden ist...

Dienstag, 21. Juni 2011

Wuala noch umsonster ;)

Wuala hat jetzt seine zuvor der Pro-Version (also ab einem gewissen zur Verfügung gestellten Speicherplatzkontingent oder aber gekaufter Speicherplatz) vorbehaltenen Funktionen (automatisches Backup, Synchronisation, Datei-Versionsverwaltung und Zeitreise) jetzt für alle verfügbar gemacht. Und ein bißchen am Design herumgespielt, schreiben sie. Zeit mal wieder einen Blick drauf zu werfen :)

Dienstag, 7. Juni 2011

Motorola Defy - Update

Endlich hat mein Defy auch sein Update erhalten - wenigstens auf Android 2.2. Erster Eindruck: läuft tatsächlich flüssiger. Und die Bildergalerie schaut auch netter aus. Die Daten sind alle noch da (bis auf ein paar Widgets), bin bis jetzt zufrieden.

Sonntag, 15. Mai 2011

Profil mit wenigen Programmen erstellen

Das Problem: man möchte ein Profil am PC, das nur einige wenige Funktionen anbietet - in diesem speziellen Fall ein Spiel. Dafür gibt es sogar ein Tool von Microsoft:

http://www.microsoft.com/austria/protect/products/family/steadystate.mspx

Mit SteadyState lässt sich für ein Profil steuern was im Startmenü angezeigt wird, Anwendungen können gezielt gesperrt/erlaubt werden und das ganze noch mit einer recht gut bedienbaren Oberfläche.

Freitag, 29. April 2011

Build-Datum im Dateinamen mit Windows Installer XML (WiX-Tools)

Für diejenigen die auch mal in die Verlegenheit kommen, mit WiX-Tools zu arbeiten (bei der Namensgebung hat wohl keiner an uns deutschsprachige gedacht... - andererseits hat das Mitsubishi bei seinem Pajero auch nicht ;) ) und dabei das Bedürfnis verspüren, ihre Dails/Weekly/Whatever-Builds mit einem Timestamp zu versehen:
<target name="AfterBuild">
<createproperty value="$([System.DateTime]::Now.ToString('yyyyMMdd_hhmm'))">
<output taskparameter="Value"
propertyname="DateString"></output>
</createproperty>

<copy skipunchangedfiles="true" sourcefiles="$(TargetPath)"
destinationfiles="\\zielserver\zieldatei\MyApp_Daily_$(DateString).msi">
</copy></target>

Das Target AfterBuild wird nach dem Build ausgeführt (oha!), zunächst wird die Systemfunktion DateTime aufgerufen mittels formatiertem ToString in eine Variable geschrieben. Diese wird schließlich verwendet um beim abschließenden Kopieren einen Datums-behafteten Dateinamen zu erstellen.

Funktioniert prinzipiell auch mit anderen Funktionen wenn sie vom verwendeten MSBuild zur Verfügung gestellt werden - einfach probieren.

Freitag, 22. April 2011

C# Dictionary und LINQ.First()

In C# ist bei Verwendung eines Dictionary und LINQ Vorsicht angesagt - First() liefert nicht immer zuverlässig das als erstes hinzugefügte Element bzw. das nach Key-Sortierung erste... - aber dann gibt es da noch Min(), ebenfalls von LINQ :)

Montag, 11. April 2011

Email mit GMail in C#

Grad vor 3 Tagen kurz nachgegrübelt, da schickt mir grad der CodeProject-Newsletter die Lösung:
Das will getestet werden :)

Dienstag, 15. März 2011

Gmail via Squirrelmail

Nicht von überall ist z.B. GMail erreichbar - Abhilfe kann hier SquirrelMail schaffen. Hierzu muss der IMAP-Zugriff in GMail aktiviert werden.

Man nehme etwas Webspace (mit PHP), lade Squirrelmail hoch und stelle dann fest, dass man keinen shell-Zugriff hat. Zum Glück gibt es auch dafür eine Anleitung, wie die Datei config.php im config-Ordner angepasst werden muss. In der Datei presets.txt im docs-Ordner gibt es sogar bereits Voreinstellungen. Der GMail-support ist noch experimentiell, aber bei mir klappt's eh schon recht gut.

Zum einfacheren finden hier noch die Liste der Einstellungen:
imap_server_type = gmail
default_folder_prefix = (is set to empty string)
trash_folder = [Gmail]/Trash
default_move_to_trash = true
sent_folder = [Gmail]/Sent Mail
draft_folder = [Gmail]/Drafts
auto_create_special = false
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = /
delete_folder = true
force_username_lowercase = false
domain = gmail.com
imapServerAddress = imap.gmail.com
imapPort = 993
use_imap_tls = true
imap_auth_mech = login
smtpServerAddress = smtp.gmail.com
smtpPort = 465
use_smtp_tls = true
smtp_auth_mech = login
pop_before_smtp = false
useSendmail = false
Viel Spaß damit.

Samstag, 12. März 2011

Bayern von oben

Tu felix bajuvaria... - offenbar gibt Bayern die amtlichen Luftbilder zur Verwendung frei. Sehr brav. Ob das wohl bei uns Österreichern auch mal möglich wird???

Mehr Kleinbild-Speicherplatz bei Google für umsonst :)

Interessante Sachen schreiben die bei Google:
http://googlephotos.blogspot.com/2011/03/posted-by-matt-steiner-engineering-lead.html

Sprich wenn das Bild/Video klein genug ist, (kleiner 800px bzw. kürzer als 15 min) wirds nicht vom Speicherplatz abgezogen. Vielleicht sollte ich mal meine Kenntnisse in Sachen Bildbearbeitung (genauer gesagt: klein schneiden und zusammensetzen) wieder ein wenig auffrischen und mal sehen ob sich da nicht ne nette Archivierungslösung basteln lässt.

Vermutlich nicht im Sinne des Erfinders und Google wird wege finden das zu unterbinden, aber ein interessanter Versuch allemal. Mal schau'n ...

Dienstag, 15. Februar 2011

Backup and Migrate für Drupal

Es scheint, als sollte ich das Backup-and-Migrate-Modul für Drupal mal genauer betrachten - könnte einiges vereinfachen. Das könnte doch glatt einen meiner vorigen Posts obsolet machen

Mittwoch, 2. Februar 2011

In WPF an SelectedItems einer Listbox binden und eine Summe darüber machen

Falls jemand versucht im XAML an die SelectedItems einer Listbox zu binden: vergesst es, es geht einfach nicht. Ok, es geht irgendwie mit ListBox ableiten und da was wurschteln, aber im Endeffekt sollte man sich auf alte Zeiten besinnen und sich an das Event OnSelectionChanged hängen. Leider.