.NET User Group Hamburg Treffen am 14.7.

24. Juni 2010

Das nächste .NET User Group Hamburg Treffen findet am 7. Juli (14.Juli) 2010 bei der SinnerSchrader Deutschland GmbH, Völkersstraße 38, Hamburg (http://www.sinnerschrader.de) statt.

Thema: Server-side Javascript mit node.js (http://nodejs.org) von Malte Ubl (http://twitter.com/cramforce, http://www.nonblocking.io)

Der Vortrag wurde auf der Scandinavian Web Developer Conference 2010 (http://swdc-central.com) gehalten.

Eintritt ist wie immer frei und die Anmeldung erfolgt per Xing.

Abstract:
Node.js was easily the most exciting peace of innovation in web technology in 2009. If it wasn't good enough to finally enjoy working in a server side JavaScript environment that just feels right, node.js brought a new paradigm to mainstream web development that has never been this accessible before: Asynchronous non-blocking IO and the event loop.

The realtime web with new protocols for two-sided communication between client and server such as Comet require a whole new approach to scalability. With the traditional request-response paradigm for sending data between client and server we got away with building servers that only allowed a quite small number of simultaneous connections to be open at any given time. This approach no longer works but building scalable servers is harder than it seems. The good thing is: With node.js it is really easy.

This talk will give you an overview in how to build highly scalable network applications with node.js in a matter of minutes and we will take a little detour into what asynchronous programming really is and how it solves many of the scalability problems we face today.

Bio: Malte specializes in web based rocket science for Germany's leading internet agency SinnerSchrader.

Socialized with Smalltalk in the 90s Malte later explored the depth of Perl and most other programming languages until falling in love with JavaScript. He is the creator of the Joose meta object system which transfer concepts from a multitude of programming languages into JavaScript in a way that feels both powerful and native to the core language.

Malte likes to build stuff. You might meet him on the web doing web worker integration for bespin, tracking the one event loop to rule them all, saving the environment or inventing massively parallel crowd-sourced JavaScript app server clouds.

Exception: Der Stapel ist leer.

Erstes .NET Coding Dojo in Hamburg

3. Mai 2010

Die .NET User Group Hamburg veranstaltet das

1. .NET Coding Dojo Hamburg

19.05.2010 – 19 Uhr

Masters of Arts Anwendungsentwicklung GmbH
Johannes Brahms Platz 9
20355 Hamburg

Anmeldung über Xing

Mehr dazu unter Steffens Blog: http://www.navision-blog.de/2010/05/03/erstes-net-coding-dojo-in-hamburg/

 

Exception: Der Stapel ist leer.

.NET, Veranstaltungen

Async WCF calls with impersonation

24. März 2010

I was playing around with impersonated asynchronous WCF calls and discovered a strange behaviour on the WCF server side: most of the time the identity was the correct impersonated identity but sometimes it was only the client process identity (like 'hostname$'). I was looking at all different configuartion hells of WCF but did not find any solution to fix the problem.

After searching the web I found two interesting posts from Micorosft:

http://msdn.microsoft.com/en-us/library/aa738624.aspx

and

http://support.microsoft.com/?scid=kb%3Ben-us%3B976123&x=10&y=14

The first document stated that I am trying to use an unsupported scenario. The second document says that there is a hotfix available for Vista and Windows Server 2008 (SP2 and higher).

Unfortunately my customer is running Windows 2003 SP2. So there seems to be no way to use async WCF calls with impersonation. Very sad.

Exception: Der Stapel ist leer.

.NET, ASP.NET, Development

Reportviewer: The report definition is not valid. Details: Data at the root level is invalid. Line 1, position 1.

20. Januar 2010

Nach dem Deployen (Web Deployment Project) von lokalen rdlc Reports aus Visual Studio 2008 heraus, gab es auf dem IIS folgenden Fehler:

[ReportProcessingException: The report definition is not valid.  
Details: Data at the root level is invalid. Line 1, position 1.]

[DefinitionInvalidException: The definition of the report
'Main Report' is invalid.]

 

Das Problem ist, dass die Reports vorkompliliert werden, was leider kontraproduktiv ist. Durch ergänzen der csproj Datei für das Deploy kann der Fehler umgangen werden:

<Target Name="AfterBuild">
  <Delete Files="$(OutputPath)\Reports\Report.rdlc" />
  <Copy SourceFiles="$(SolutionDir)WebSites\MyWebApp\Reports\Report.rdlc" 
        DestinationFolder="$(OutputPath)\Reports" />
< /Target>

 

.NET, ASP.NET

Mehrere Stored Procedures im SQL Server Management Studio selektieren

7. Januar 2010

Für die Verwaltung und die Entwicklung auf SQL Server stellt Microsoft SQL Server Management Studio zur Verfügung. Ein Problem, das ich schon öfter hatte, ist das Selektieren von mehreren Objekten im Object Explorer, um z.B. mehrere Stored Procedures auf einmal zu löschen. Das geht leider nicht.

Wesley Brown hat mir hierzu einen Tipp gegeben: Object Explorer Details. Dieser kann über View -> Object Explorer Details bzw. F7 erreicht werden.

Damit können dann auch mehrere Stored Procedures auf einmal gelöscht werden.

 

Development

Google Reader Shared Posts

16. Dezember 2009

Blogs und RSS Feeds sind für mich erst so mit Google Reader interessant geworden und ich kann nur jedem empfehlen mal einen Blick darauf zu werfen!

Eine nette Funktion vom Goolge Reader ist, dass man Posts mit anderen Personen sharen kann. Entweder dadurch, dass Personen einem folgen, über eine seperate Webseite wie http://www.google.com/reader/shared/sven.soennichsen oder als Clip in der eigenen Seite:

Einfach cool!

, ,

Line-In Soundkarte auf USB Headset streamen

8. Dezember 2009

Seit kurzem verwende ich ein Logitech Wireless USB Headset, mit dem ich recht zufrieden bin. Zwar ist die Aufnahmequalität des Mikrofons nicht 100% optimal, aber für meine Zwecke reicht es.

Nun wollte ich Podcasts von einem iPod über die Line-In Buchse auf das USB Headset 'übertragen'. Allerdings funktioniert das nicht mit Boardmitteln von Windows. Zumindest nicht bei der von mir verwendeten integrierten Soundkarte. Line-In der Soundkarte lässt sich lediglich auf Line-Out derselbe Soundkarte 'streamen', aber nicht auf eine beliebige andere Soundkarte. Nach Experimenten mit Winamp und der DirectSound-Ausgabe, welches ich nicht zum Laufen bekommen habe, bin ich beim Audiorepeater von http://software.muzychenko.net/eng/vac.html hängen geblieben:

 

 

Damit lassen sich beliebigen Eingänge mit beliebigen Ausgängen verknüpfen. Die Software steht als Trial-Version ohne Funktionseinschränkung zur Verfügung.

Gadgets, Tools

Windows Home Server Power Pack 3 kann nicht installiert werden

30. November 2009

Wer Probleme beim Installieren vom Home Server Power Pack 3 hat, dem empfehle ich mal Windows Search 3.1 vorher vom Home Server zu deinstallieren. Windows Search 4.0 ist Bestandteil vom Power Pack 3, und wird daher automatisch installiert (hier scheint genau das Problem zu liegen). 

Android Phone

29. Oktober 2009

Seit einigen Wochen benutze ich ein Google G1 Handy. Im Großen und Ganzen bin ich recht begeistert von dem Gerät. Es gibt zwar einige Schwächen, zu dem der Akku und die geringe CPU Leistung zählen, doch insgesamt ist das Konzept sehr vielversprechend. Ich denke, daß die Android Plattform eine der Bestimmenden der nächsten Jahre sein wird.

Das grundlegende Kozept, die Hardware und das (offene) Betriebssystem zu trennen und sich wieder auf die jeweiligen Kernkompetenzen zu konzentrieren, wird für reichlich Bewegung auf dem Smartphone Markt sorgen. Ich meine damit, dass Hardwarehersteller wie z.B. Motorola sich wieder voll der Hardware widmen können und sich nicht mit der Erstellung/Anpassung eines Betriebssystems und den entsprechenden Anwendungen dafür rumschlagen müssen.

Android und nicht zuletzt das iPhone, welches die wesentlichen neuen Bedienkonzept etabliert hat, wird noch für ordentlichen Wirbel bei Nokia und Microsoft sorgen.

Da ich nun schon eine Weile mit Android experimentiert habe, werde ich in loser Reihenfolge einige Applikationen vorstellen. Fangen wir mit Evernote an:

Evernote ist ein OnlineTool zur Verwaltung von Notizen, und Dateien bzw. Bildern. Bei den Bildern bezieht sich dies im Wesentlichen auf den darin enthaltenen Text, dem Evernote automatisch einer optischen Zeichenerkennung (OCR) unterzieht. Als Bilder sind also Screenshot, Visitenkarten und Texte jeglicher Art geeignet. Evernote gibt's als Anwendung für diverse Betriebssysteme und Browser.

Seit kurzem gibt es nun eine App für Android unter: http://s.evernote.com/androidbeta und die ist recht übersichtlich aufgebaut:

 

Evernote Hauptmenu

 

Es können Bilder, Dateien, Texte und Audioaufnahmen erfasst und zu Evernote hochgeladen werden. Über das Suchfeld öffnet sich der Browser und zeigt die gefundenen Notizen in einer für Smartphones optimierten Ansicht an. Insgesamt ist Evernote ein hilfreiches Tool, wenn man von überall auf seine Notizen zurückgreifen will.

Tools, Android

Dateien unter Windows suchen

11. September 2009

Welcher Entwickler kennt das nicht: man sucht in einem Verzeichnis samt Unterverzeichnissen nach Dateien, die eine bestimmte Zeichenfolge enthalten. 

Die Windowssuche (zumindest unter XP und Vista) hilft hier selten weiter und noch viel schlimmer: Ich vertraue den Suchergebnissen oft nicht. Unixanwender werden jetzt innerlich lächeln, denn der Befehl "find" bzw. "locate" ist dort ein mächtiges Werkzeug, und die Anwender von cygwin können diese Werkzeuge auch unter Windows nutzen. Doch Windows hat auch ein recht unbekanntes Tool für die Kommandozeile:

findstr

Sucht nach Zeichenfolgen in Dateien.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
        [/F:Datei] [/C:Zeichenfolge] [/G:Datei] [/D:Verzeichnisliste]
        [/A:Farbattribute] [/OFF[LINE]] Zeichenfolgen
        [[Laufwerk:][Pfad]Dateiname[ ...]]

  /B    Sucht am Zeilenanfang.
  /E    Sucht am Zeilenende.
  /L    Sucht nach dem Text buchstabengetreu.
  /R    Sucht nach der Zeichenfolge als regulärem Ausdruck.
  /S    Sucht nach entsprechenden Dateien im aktuellen Verzeichnis
        und allen Unterverzeichnissen.
  /I    Ignoriert Groß-/Kleinschreibung.
  /X    Gibt Zeilen aus, die vollkommen übereinstimmen.
  /V    Gibt Zeilen aus, die die Zeichenfolge nicht enthalten.
  /N    Gibt die Zeilennummer vor jeder Trefferzeile an.
  /M    Gibt nur die Namen der Dateien aus, die die Zeichenfolge enthalten.
  /O    Gibt den Offset des Zeichens vor jeder gefundenen Zeile aus.
  /P    Überspringt Dateien mit Zeichen, die nicht gedruckt werden können.
  /OFF[LINE] Überspringt keine Offlinedateien.
  /A:Attrib         Gibt die Farbattribute als zwei hexadezimale Ziffern an.
                    Siehe "COLOR /?"
  /F:Datei          Liest eine Dateiliste aus der angegebenen Datei ein.
  /C:Zeichenfolge   Sucht nach Zeichenfolge buchstabengetreu.
  /G:Datei          Liest Suchzeichenfolge aus der angegebenen Datei ein.
  /D:Verzeichnis    Durchsucht eine mit Semikolons getrennte Verzeichnisliste.
  Zeichenfolge      Text, nach dem gesucht werden soll.
  [Laufwerk:][Pfad] Dateiname
                    Angabe der zu durchsuchenden Datei(en).

Leerzeichen weisen auf mehrere getrennte Zeichenfolgen hin, außer es wurde /C
als Option angegeben. Zum Beispiel sucht 'FINDSTR "Windows NT" BR.TXT' nach
"Windows" oder "NT" in der Datei BR.TXT.  'FINDSTR /C:"Windows NT" BR.TXT'
hingegen sucht nach "Windows NT" in der Datei BR.TXT.

Schnellübersicht regulärer Ausdrücke:
  .         Platzhalter: beliebiges Zeichen
  *         Wiederholung: keine oder mehrere Wiederholungen
            des/der vorhergehenden Zeichens/Klasse
  ^         Zeilenposition: Anfang der Zeile
  $         Zeilenposition: Ende der Zeile
  [Klasse]  Zeichenklasse: beliebiges Zeichen aus einem Zeichensatz
  [^Klasse] Umgekehrte Klasse: beliebiges Zeichen nicht im Zeichensatz
  [x-y]     Bereich: beliebige Zeichen im angegebenen Bereich
  \x        Escape: direkte Verwendung eines Metazeichens x
  \  xyz\>     Wortposition: am Ende des Wortes

 

Beispiel: findstr /i /s /p ".body" *.*

Sucht ausgehend vom aktuelllen Verzeichnis in allen Unterverzeichnissen nach Dateien, welche die Zeichenfolge ".body" enthalten. Dabei wird Gross/Kleinschreibung nicht beachtet und zusätzlich werden Binärdateien nicht durchsucht.

Tools