iSven

Unwichtiges nach Relevanz sortieren...

Subversion Keywords

Die Versionsverwaltung Subversion bietet durch Keywords die Möglichkeit im SourceCode Metadaten von Subversion selbst einzufügen. Folgende Keywords sind möglich:
Date

This keyword describes the last time the file was known to have been changed in the repository, and looks something like $Date: 2002-07-22 21:42:37 -0700 (Mon, 22 Jul 2002) $. It may also be specified as LastChangedDate.

Revision

This keyword describes the last known revision in which this file changed in the repository, and looks something like $Revision: 144 $. It may also be specified as LastChangedRevision or Rev.

Author

This keyword describes the last known user to change this file in the repository, and looks something like $Author: harry $. It may also be specified as LastChangedBy.

HeadURL

This keyword describes the full URL to the latest version of the file in the repository, and looks something like $HeadURL: http://svn.collab.net/repos/trunk/README $. It may be abbreviated as URL.

Id

This keyword is a compressed combination of the other keywords. Its substitution looks something like $Id: calc.c 148 2002-07-28 21:30:43Z sally $, and is interpreted to mean that the file calc.c was last changed in revision 148 on the evening of July 28, 2002 by the user sally.

Das Setzen der Keywords erfolgt entweder mittels

svn propset svn:keywords "Date Author" weather.txt

oder über TortoiseSVN im Eigenschaftendialog des Explorers (siehe Bild).

Damit auch neue Dateien mit den korrekten Keywords versehen werden, muss die Konfigurationsdatei für Subversion (über TortoiseSVN Settings - Edit configuration file) angepasst werden. Zuerst ist dabei folgende Einstellung zu setzen:

enable-auto-props = yes

und anschliessend können default Eigenschaften für bestimmte Dateitypen definiert werden:

*.cs = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate
*.aspx = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate

Im Source Code selbst müssen an der gewünschten Stelle die entsprechenden Keywords mit $-Zeichen umgeben platziert werden:
$HeadURL$  $LastChangedDate$ $LastChangedRevision$ $LastChangedBy$ 



Die Drähte sind raus!

Endlich nach 6 Wochen Plagerei mit den Drähten im linken Ringfinger kam der ersehnte Tag! In einer kurzen und für mich schmerzlosen OP wurden die Drähte aus dem Knochen rausgezogen und mir in getreuer Obhut überlassen.


Jetzt sind nur noch 10 Tage abzuwarten bis die Fäden gezogen werden, und dann kann endlich die ersehnte Windsurfsaison starten!

Hands-On Lab für MSBuild

Mit .NET 2.0 hat Microsoft den Buildprocess von Visual Studio angepasst und sich mal wieder ein wenig an etablierten Methoden der Java Welt bedient (Ant).

Wem bisher allerdings kein gutes Tutorial in die Hände gekommen ist, so wie mir, sollte sich dies mal näher ansehen.

PatternLayout in log4net

Für das .NET Logging-Framework log4net habe ich immer wieder nach den Konfigurationseinstellungen der PatternLayouts, wie also die Ausgabe formatiert wird, gesucht. Damit die Suche endlich ein Ende hat:

Conversion Character Effect
a Used to output the frienly name of the AppDomain where the logging event was generated.
c

Used to output the logger of the logging event. The logger conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.

If a precision specifier is given, then only the corresponding number of right most components of the logger name will be printed. By default the logger name is printed in full.

For example, for the logger name "a.b.c" the pattern %c{2} will output "b.c".

C

Used to output the fully qualified class name of the caller issuing the logging request. This conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.

If a precision specifier is given, then only the corresponding number of right most components of the class name will be printed. By default the class name is output in fully qualified form.

For example, for the class name "log4net.Layout.PatternLayout", the pattern %C{1} will output "PatternLayout".

WARNING Generating the caller class information is slow. Thus, it's use should be avoided unless execution speed is not an issue.

d

Used to output the date of the logging event. The date conversion specifier may be followed by a date format specifier enclosed between braces. For example, %d{HH:mm:ss,fff} or %d{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is given then ISO8601 format is assumed (ISO8601DateFormatter).

The date format specifier admits the same syntax as the time pattern string of the ToString.

For better results it is recommended to use the log4net date formatters. These can be specified using one of the strings "ABSOLUTE", "DATE" and "ISO8601" for specifying AbsoluteTimeDateFormatter, and respectively ISO8601DateFormatter. For example, %d{ISO8601} or %d{ABSOLUTE}.

These dedicated date formatters perform significantly better than ToString.

F

Used to output the file name where the logging request was issued.

WARNING Generating caller location information is extremely slow. It's use should be avoided unless execution speed is not an issue.

l

Used to output location information of the caller which generated the logging event.

The location information depends on the CLI implementation but usually consists of the fully qualified name of the calling method followed by the callers source the file name and line number between parentheses.

The location information can be very useful. However, it's generation is extremely slow. It's use should be avoided unless execution speed is not an issue.

L

Used to output the line number from where the logging request was issued.

WARNING Generating caller location information is extremely slow. It's use should be avoided unless execution speed is not an issue.

m

Used to output the application supplied message associated with the logging event.

M

Used to output the method name where the logging request was issued.

WARNING Generating caller location information is extremely slow. It's use should be avoided unless execution speed is not an issue.

n

Outputs the platform dependent line separator character or characters.

This conversion character offers practically the same performance as using non-portable line separator strings such as "\n", or "\r\n". Thus, it is the preferred way of specifying a line separator.

p

Used to output the level of the logging event.

P

Used to output the an event specific property. The key to lookup must be specified within braces and directly following the pattern specifier, e.g. %X{user} would include the value from the property that is keyed by the string 'user'. Each property value that is to be included in the log must be specified separately. Properties are added to events by loggers or appenders. By default no properties are defined.

r

Used to output the number of milliseconds elapsed since the start of the application until the creation of the logging event.

t

Used to output the name of the thread that generated the logging event. Uses the thread number if no name is available.

u

Used to output the user name for the currently active user (Principal.Identity.Name).

WARNING Generating caller information is extremely slow. It's use should be avoided unless execution speed is not an issue.

W

Used to output the WindowsIdentity for the currently active user.

WARNING Generating caller WindowsIdentity information is extremely slow. It's use should be avoided unless execution speed is not an issue.

x

Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.

X

Used to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event. The key to lookup must be specified within braces and directly following the pattern specifier, e.g. %X{user} would include the value from the MDC that is keyed by the string 'user'. Each MDC value that is to be included in the log must be specified separately.

%

The sequence %% outputs a single percent sign.

Lösung für ActiveSync 4.1 Probleme mit Qtek 9100

Vor kurzem habe ich mir im Zuge der Verlängerung meines Mobilfunkvertrags einen Qtek 9100 zugelegt.

Schade nur, dass man mit dem Gerät praktisch nicht arbeiten konnte:

  • ActiveSync funktionierte auf diversen PCs nicht
  • Das Gerät wurde merklich langsamer, wenn ein ActiveSync Zugriff gestartet wurde

Die ersehnte Lösung brachte ein Posting bei http://forum.xda-developers.com: Einstellen der TCP Verbindungsparameter der Netzwerkverbindung, welche zum Synchronisieren des Gerätes verwendet wird. Die Einstellungen werden am besten mittels Dr. TCP während des Synchronisierungsversuchs vorgenommen:

  • Tcp Recieve Window: 261360
  • Dial Up (RAS) MTU: 1492
  • Path MTU Discovery: Yes

Kontaktaufnahme - Oracle und SQL Server

Pünktlich zum Erscheinen des Microsoft SQL Server 2005 ist ein Sonderheft des Datenbanken Magazins erschienen: SQL Server Special, in dem ein Artikel von mir veröffentlicht wurde. Thema: Das Zusammenspiel zwischen SQL Server und Oracle. Mögliche interessante Kopplungen der beiden Datenbanken lassen sich wie folgt bewerkstelligen:

  • Linked Server und Replikation (SQL Server Technologien)
  • Generic Connectivity und das Transparent Gateway (Oracle Technologien)
  • .NET Stored Procedures (SQL Server als auch Oracle)

Neugierig auf mehr? Also ab zum Kiosk!