Just because it's:

Archive for the ‘Quickies’ Category

Strip it Baby!

Wednesday, August 13th, 2008

Ich habe mich gerade gewundert, warum die Mail App auf Mac OS X rund 380 MB groß ist? Oder iWeb ganze 223 MB? Ich habe mir da auch gleich einen guten Trick zeigen lassen, wie man die App Files um einiges schlanker machen kann.

Es klingt zwar erstmal seltsam, aber es scheint an den Sprachen einer App zu liegen. Lässt man sich nämlich die Informationen zu einer App Datei anzeigen (CNTRL + Maustaste -> Informationen) und öffnet den Folder “Sprachen”, findet man eine ganze Menge anderer Sprachenkonfigurationen, als der die man gerade verwendet.

Um das App File von unnötigem Balast zu befreien, kann man mit CMD+a alle Sprachen markieren und anschließend löschen. Man sollte logischer Weise mindestens eine Sprache behalten, sonst könnte man einige Probleme geben.

So habe ich z.B. aus 380MB rund 260MB machen können. In Zeiten von Giga Byte natürlich irgendwie Mist vom Kleinvieh, aber dennoch faszinierend. Vor allem wenn man mal bedenkt wie viele Apps man sich mit der Zeit installiert.

Danke nochmal an Jörg für diesen Tip.

UTF Byte Order Mark entfernen

Thursday, August 7th, 2008

Ja, richtig. Es geht wieder um Zeichensatz-Hassle. Neulich habe ich im Office UTF-8 kodierte XML Templates zugeschickt bekommen, die durch PHP ans Tageslicht gebracht werden sollten. Dabei ergab sich das Problem, dass das Byte Order Mark nicht ordentlich im Browser ankam.

Ich habe nach einer Lösung für Linux gesucht, um Dateien vom den sogenannten BOM zu befreien. Fündig geworden bin ich hier. Das Perl Script erledigt den Job quick & dirty aber dafür effektiv.

Es funktioniert im übrigen nur mit UTF-8 BOMs. Aber anhand der Tabelle unter “Bytefolgen der BOM in verschiedenen Zeichenkodierungen” auf http://de.wikipedia.org/wiki/Byte_Order_Mark lässt sich das Script recht schnell auch für andere UTF Varianten umschreiben.

Ein Hack für MySQL um Umlaute zu konvertieren

Friday, July 25th, 2008

Noch immer konnte sich die Welt nicht auf einen gemeinsamen Zeichensatz einigen. Das wird wohl auch noch eine ganze Weile dauern. Falls es überhaupt nochmal dazu kommen sollte. Bis dahin werden wir alle immer mal wieder Spass mit dem konvertieren von Zeichensatz A nach Zeichensatz B haben.

Just beim Upgrade dieses Blogs, bin ich schon wieder in die Zeichensatzfalle getappt. Um mir mittelfristig die Nerven zu schonen und akut so schnell wie Möglich die häßlichen Zeichen aus der Datenbank zu schmeissen, habe ich ein kleines Ruby Skript geschrieben, dass mir die Umlaute bestimmter Tabellenfelder, durch HTML Entities ersetzt.

Einen Preis gewinne ich damit nicht, aber es tut seinen Job. Hier das Skript unverhüllt und häßlich wie es ist. Die Konfiguration sollte einfach nachzuvollziehen sein. Ansonsten einfach mal melden, gell?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/ruby -w
# Konvertiere Umlaute der 
# Textfelder verschiedener MySQL 
# Tabellen
 
require "mysql"
 
@umlauts = {
 'ü' => 'ü',
 'ä' => 'ä',
 'ö' => 'ö',
 'Ü' => 'Ü',
 'Ä' => 'Ä',
 'Ö' => 'Ö',
 'ß' => 'ß',
 "'" => '''
}
 
# Hier beliebige Eintraege im Format 
# :tabellen_name => [:id_feld, :feld_1, :feld_2, :feld_n]
# ergaenzen
 
@targets = {
  :wp_comments => [:comment_id, :comment_content],
  :wp_posts => [:id, :post_content, :post_title]
}
 
begin
  dbh = Mysql.real_connect("hostname", "username", "password", "db_name")
 
  @targets.each_pair do |table, fields|
    query = "SELECT #{fields.join(',')} FROM #{table}"
    puts query
    res = dbh.query(query)
    while row = res.fetch_row do
      values = {}
      row.each_index do |i|
        if i > 0
          values[fields[i]] = row[i];
          @umlauts.each_pair do |umlaut,entity|
            values[fields[i]].gsub!(umlaut,entity)
          end
        end
      end
      blah = []
      values.each_pair do |key,value|
        blah << "#{key}='#{value}'"
      end
 
      update_query = "UPDATE #{table} SET #{blah.join(',')} WHERE #{fields[0]}=#{row[0]}"
      res2 = dbh.query(update_query)
      puts update_query
    end
  end
 
rescue Mysql::Error => e
  puts "Error code: #{e.errno}"
  puts "Error message: #{e.error}"
  puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
  dbh.close if dbh
end

PokerTH 0.4 veröffentlicht

Wednesday, April 4th, 2007

Noch ein kurzer Nachtrag zu meinem Artikel über PokerTH. Heute am 04.04.2007 wurde endlich die lang erwartete Version 0.04 veröffentlicht. Nicht nur optisch hat sich einiges getan. Es wurden diverse Features implementiert, die bereits durscheinen lassen, dass es mit der Multiplayer Version nicht mehr weit her sein kann. So kann man Beispielsweise Avatare für Computergegener einstellen, Nicknames vergeben und das Spiel mit Shortcuts bedienen. Das Ganze nach wie vor für Linux und Windows. Viel Spass!