Plain-Text Username Password Authentification with WCF

If you got it, it’s easy. If you’re starting from scratch it ain’t as easy. We were in need of such a Username+Password Authentification so I started googling around.

I found several articles but had to mash it all together in a trial-and-error session. Now that I am enlightened I want to share my knowledge:

Step 1: Implement an UserNamePasswordValidator class and override the Validate method.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IdentityModel.Tokens;
using System.IdentityModel.Selectors;

namespace sones.Pandora.Database.Hosting
{
    public class UserNamePasswordAuthentification: UserNamePasswordValidator
    {

        public override void Validate(string userName, string password)
        {
            if ((userName != "Username") || (password != "Password"))
            {
                throw new SecurityTokenException("Validation Failed!");
            }
        }
    }
}

Step 2: Edit the App.config file to enable the previously implemented UsernamePasswordValidator.

    <bindings>
      <basicHttpBinding>
        <binding name="CustomAuthentication">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic" proxyCredentialType="Basic"/>
          security>
        binding>
      basicHttpBinding>
    bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SecurityBehavior">
          <serviceCredentials>
            <userNameAuthentication
            userNamePasswordValidationMode="Custom"
            customUserNamePasswordValidatorType="sones.Pandora.Database.Hosting.UserNamePasswordAuthentification, PandoraDB_WebServiceHost_UsernamePasswordAuth"/>
          serviceCredentials>
        behavior>
      serviceBehaviors>
    behaviors>
    <services>
      <service behaviorConfiguration="SecurityBehavior" name="sones.Pandora.Database.Hosting.PandoraDatabaseHost">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="CustomAuthentication"
          name="ep1" contract="sones.Pandora.Database.Hosting.IPandoraDatabaseHost" />
      service>
    services>

In this example the ServiceHost will use no server SSL certificate and therefor allow normal http access instead of just using https ssl. You can configure that behavior with the <security mode=”TransportCredentialOnly”> line. Just change there and define an apropriate certificate and you’re good to go with https / ssl.

Allowing Web Service host to run locally without Administrator rights

If you’re writing WCF Web Services you maybe came to the point when you needed Administrator rights to start the Web ServiceHost. As a matter of fact the only thing you need is the right to use a that URL space.

So for  a WCF Web Service running on http://localhost:80/TestService/Ep2 you would use the netsh command line tool to set the correct rights.

Step 1: Start an Administrator-Commandline

Step 2: run “netsh http add urlacl url=http://+80/TestService/Ep2 user=SONES\bietiekay

(SONES\bietiekay = the Domain+User to grant the right)

netsh

finally faster internet

QSC just delivered a second DSL line to our office – now even faster – 16 Mbits downstream should be enough for now. Since the german telecom could not deliver more than 3 Mbit/s we had to ask QSC for their service… overall a very good customer experience so far.

If you order a DSL line in germany from a reseller like QSC it means that a technical guy from the german telecom is sent to your place and he is doing the last mile connect – in our case the guy thought it would be enough to drop the TAE socket inside the wall… means we have to get another company to do the cabling afterwards… well.

006

Using Jabber to monitor Windows EventLogs

Like every company we also got several machines working just for our infrastructural needs like Sharepoints, Activedirectory, Databases, Backup-Servers and so on.

To monitor many machines we came across the idea to use Jabber Instant Messaging to monitor the machines. For example the VPN should drop a line to specified jabber adresses if someone connects or disconnects. Every single machine is maintaining it’s own log – which means you would have to consolidate them in some ways. And since consolidation is not the masterplan – since you would need an event alarm system which sends out alarm calls if something weird is happening, you would need that alarm system too.

So we wrote (while waiting for the machines to install) several small tools which provide a gateway between syslog-ng, windows event logs and Jabber.

Since we are using this productively my Jabber Client Window looks something like this:

psi 

As you can see there are 3 machines online right now – and since these are Linux machines they also provide some status information like load averages and free memory. The Linux version was written by ahzf in perl – and obviously his library can handle the presence and status information much better than the one I used for the Windows version :-) – So there are no presence and status informations for the Windows machines right now.

The Windows version is written in C# and relies on the Jabber.NET library. It comes with a small setup and runs as a windows service.

jabbereventlog_windows

In the setup you have to enter the username+password of a user that can access the local Windows Event Log. After the successful setup you need to edit the config file:

editconfig

It’s XML and quite easy to understand (I think) – so you define the jabber server, the user, the password, the Users that you want to receive the messages and the EventLog you want to monitor.

After starting the service you get the startup message via the jabber server and from now on everything that is written into the Windows Event Log is sent to the accounts you specified. Easy eh?

P.S.: sourcecode release will be after we packaged everything.

Source: http://code.google.com/p/jabber-net/

Linksys: Epic FAIL! – AVM: Epic WIN!

We wanted to have a separate Office wireless network and a separate guest wireless network in our new Office here at sones. So it was decided to take the old and working wireless router and dedicate him as the guest wirless network base station and buy a new one with 802.11n capabilities to work as the brand new office wireless network base station.

Since we had great experiences with older Linksys WLAN routers we first decided to buy this one:

l_00736975

Linksys WRT160N

This one was promised to work as a 802.11n capable router but it just did not. There’s nothing more to say about this thing besides: horrible UI, not working, no 5ghz capabilities – we returned this router immediately to the dealer and ordered a new one. This time:

fritzbox1

AVM Fritz!Box 3270

And this one is a winner! Not only was our network up and running within 45 minutes – it also is faster than anything I’ve seen so far. There are even some very very cool frequency monitoring capabilities:

fritzbox

Not to mention the energy saving functionalities:

energy

elastic windows

Amazon has done it’s thing and you can now order Windows based machinery based on EC2. That’s great news for us since we’re definitly planning to make our software also available on EC2.

“Amazon EC2 running Microsoft Windows Server® 2003 is a fast and dependable environment for deploying applications using the Microsoft Web Platform, including ASP.NET, ASP.NET AJAX, Silverlight™, and Internet Information Server (IIS). Amazon EC2 enables you to run any compatible Windows-based solution on AWS’ high-performance, reliable, cost-effective, cloud computing platform. Common Windows use cases include website and web-service hosting, high-performance computing (HPC) and data processing, media transcoding, distributed testing, ASP.NET application hosting, and any other application requiring Windows software. Amazon EC2 also now supports the SQL Server® Express and SQL Server Standard databases, and makes those offerings available to customers on an hourly basis.”

Source: http://aws.amazon.com/windows/

DIY PMR Gateway

In my case it’s just partly do-it-yourself: Michael and Peter did the cable soldering and I wrote the software that controls the serial interface to the PMR sender/receiver.

My gateway is on PMR channel 5 with no CTCSS configured in the Campus area of the TU-Ilmenau. A gateway is only just a PMR radio connected to a PC which is logged into a Teamspeak server which is connected to several other gateways (citizen radio / PMR / …)

So if you talk within the range of my gateway you’ll be heard in more than 24 areas across germany over PMR and citizen radio.

Capture

One toolset which was particularly useful is the VU-Meter tools. You can use them to monitor your input/output ports and tune them for perfect modulation. You can get them here and they look like this:

vumeter

Since the cable soldering was one piece of craftsmanship a picture of the radio and the cable:

IMG_3316
the computer side of the interface

IMG_3318
the radio side of the interface

If you want to connect from outside the range of the PMR you should go to the homepage of Freies Funknetz and get all the necessary information there.

Source 1: http://www.darkwood.demon.co.uk/PC/meter.html
Source 2: http://en.wikipedia.org/wiki/PMR446
Source 3: http://www.freiesfunknetz.de/index.html

I finally got my low latency network audio solution

In May 2005 I wrote about a wish I had for years:

“As usual I’ve got a very strange wish what nobody else seems to have on this planet. I have several computers of different platforms. And on one of this machines there are speakers attached…I want to have the possibility to output from any of the machines to the speakers. And please loss-less and low latency!”

It took more than 3 years to fulfill this particular wish. But now it’s done. In 2005 I mentioned the Airfoil software that could run on MacOS X and forward sound from almost every application to an AirTunes compatible device. As it turns out Rogue Amoeba did their homework and created a free “Airfoil Speakers” application which can be used on Windows and MacOS X.

So the things are simple: Start the speaker application on a machine that is in the same network/subnet as the Airfoil master. The virtual speaker is then displayed on the master machine and you can assign a sound source from that machine to the speaker. Hmm… Simple Setup sample: One machine is in my kitchen (Windows XP machine) and one machine is on my desk – an iMac. In the kitchen only the speaker application is started and the iMac instantly “sees” the speaker. One click and the sound output of my desk machine is forwarded through the network to the kitchen… Easy and cool. One can think of any other combination of Speaker/Master application – even multiple speakers can be powered by one master…oh joy!

So here is what the master looks like:

airfoil

and this is what it looks like on a client (speaker):

airfoil2

Source 1: nerd wish of 2005
Source 2: http://rogueamoeba.com/airfoil/

how to push an INN NNTP newsserver dump to a new newsserver…

I happen to have this ginormous archive from a local newsserver – more than 14 gigabytes of text and more than 8 years of history. Now this archive is a dump from the INN NNTP server that was previously used. It’s one folder per newsgroup and one file per article.

So I now want to integrate that archive into my own new newsserver – so what I am going to do is: Writing a small client application that can push all the articles from the folders to the new newsserver via nntp procotol.

Since the NNTP protocol is trivial to code and to explain I won’t reimplement it once again – instead I am going to use Randy Charles Morins nice article about accessing NNTP servers with C#:

“NNTP is an older fading protocol in the Internet protocol family. The protocol is used to retrieve news from news server, a.k.a. NetNews servers. The protocol works by posting messages into various forums, a.k.a. newsgroups. Then other end-users can read the recent posts in the forums. There also exist protocols for distributing NetNews contents amongst various NetNews servers, allowing thousands of servers to share news and forums. The most popular news server is of course Microsoft’s [nntp://news.microsoft.com]. More often than not, you can launch your NetNews client by typing the nntp URL in your browser’s address bar.”

I just made a quick-n-dirty addition of NNTP USER/PASS Authentification because my new server needs a username/password authentification. (NNTP Authentification is specified in RFC 4643)

The tool is easy to use since it’s command line and only takes simple parameters:

pushtonntp

Grab the source and compiled binary here: PushToNNTP.zip (32,82 KB)

I release all of this under cc-by-nc-sa license.

Source 1: http://www.developerfusion.co.uk/show/4472/1/
Source 2: http://www.rfc-archive.org/getrfc.php?rfc=4643
Source 3: PushToNNTP.zip (32,82 KB)

a concept map of everything “distributed systems”

Apparently someone had some time to kill:

“The other day I had this idea, what if I were to take all the concepts I write, speak, and consult about and turn them into a concept map. That might help me explain how things like messaging, unit of work, and exception management work together and why. It also shouldn’t be too much work. Or so I thought.

I started out with a blank piece of paper, and this is what happened:”

concept-map

Source: http://www.udidahan.com/2008/08/04/distributed-systems-concept-map/

Version 2 (final) of my Dropbox Tool

Some days ago I wrote about a 10 minute hack of a tool I always wanted to have – now I was using it quite often so I decided to upgrade it a bit – besides of the usual bugfixing I added these features:

  • unlimited filesize – if the file is >4 Megabyte it’ll split into smaller portions and uploaded one by one
  • Progressbar :-) When uploading severel hundred Mbytes you just want a progress indicator.
  • new Icon (curtesy of my wife – she did not like the old icon…)

dropboxv2

You can grab the source here.

Source 1: DropBox-v2.zip (92,77 KB)
Source 2: a selfmade web drop box in 10 minutes

a selfmade web drop box in 10 minutes

I often have to share files with people – files which most of the time can be publically accessible – the problem is though that it’s far to much copy-n-paste involved to get the file uploaded and the URL of the file put together. I just made my life a bit easier and invested some minutes to write a small “DropBox” application that uses a custom webservice hosted on one of my machines to upload, list and delete files and to allow users that have the correct URL to download files.

paths

The path scheme is obviously just that I added a dropped folder in which the files will be stored and the webservice itself – that’s all on the webserver machine (having this folder setup as a website using ASP.NET 2.0)

For the client I wrote this little app:

dropboxapp

It’s no rocket science but it’s a good example for a small app that utilizes a webservice. If you want to use it you have to configure the webservice and the Client Application:

for the webservice:

wsconfig

You have to adjust the paths, URLs and the Password.

for the application:

appconfig

You just have to set the right Password.

If you’re set everything up correctly you should be able to drop files onto the Client Application window and get them uploaded to your webserver – the URL is automatically in your clipboard when everything worked.

If you click on the “Manage” tab in the Client Application you can get a list of all files on the server – clicking on the name of the file will automatically add the url to that file to your clipboard – if you want to delete a file – just click on it and click “delete selected file”.

The code can be considered public-domain and can be downloaded here.

I used the open-source icons from the Tango Desktop project to make a simple icon for the client application.

Source 1: DropBoxService-v1.rar (94,09 KB)
Source 2: http://tango.freedesktop.org/Tango_Desktop_Project

Windows Communication Foundation (WCF) Improvements for .NET 3.5 SP1

Servicepack 1 for the .NET Framework 3.5 is coming out so there are many new features and improvements… like this list of WCF Improvements:

  • New Hosting Wizard for WCF Service projects.
  • Enhancements in Test Client such as support for RM Sessions, Message Contract and Nullable types enables testing of broader set of WCF-based services.
  • Expanding reach of DataContract Serializer by relaxing the need of having [DataContract]/ [DataMember] on types and by supporting an interoperable mechanism for dealing with object references.
  • Improved Partial Trust Debugging Experience with support for Event Log.
  • Support for ADO.NET Entity Framework entities in WCF contracts.
  • Improvements in writing REST based services ranging from easily supporting ServiceDocuments publication and consumption to providing greater control and usability of UriTemplate.
  • Significant performance improvements on large workflow-based projects in Visual Studio.
  • Considerable scalability increases for hosted WCF services in IIS7-integrated mode.

Source: http://hyperthink.net/blog/we-are-pleased-to-bring-you-new-features-in-net-3-5-sp1/

A .net web debugging proxy tool

If you’re frequently debugging web traffic (http/https) you may want to take a look at Fiddler:

“Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and “fiddle” with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.

Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more.”

fiddler

Source: http://www.fiddler2.com

YAPS progress (epg, sap / sdp, asp.net integration,…)

It’s been some time since I wrote about my little digital video disk recorder project and I think it’s time to wrap up some things. First of all I am using this software myself on a daily basis, having recorded about 1000 recordings in the last 4 months alone tells something. YAPS now is capable of handling multiple users – with each one having their own recordings and play-stop-positions.

Here are the new features in a short list:

  • Electronic Program Guide (EPG) Integration (multiple transponders/streams if you like)
  • Session Announcement Protocol / Session Description Protocol Integration
  • Multi-User support with capability checking
  • Cassini / ASP.NET Integration to allow ASP.NET web applications to run on YAPS
  • WCF Webservice interface to expose video disk recorder internal data (recordings list, event list,…)
  • Automatic and Reoccuring recordings
  • several new graphics
yaps_frontpage

yaps_add_recording

The daily-build system is broken as of now but you can always grab the latest sourcecode from here.

For a complete changelog hit the jump.

Here’s the complete changelog since the last article about yaps:

13.04.2008

  • added %render_automatic_and_reoccuring_recording_table% keyword; the other recording table keywords don’t display automatic/reoccuring events
  • added canAccessOthersRecordings capability and capability handling
  • added %holdingtime%, %comment% and %elapsed_holdingtime% to the Recording/Recorded/AutomaticReoccuringRecording table
  • added %render_currently_running_epg_events_table% keyword

06.04.2008

  • added Session Description Protocol parser
  • added Session Announcement Protocol setting data (SAP_IPAdress, SAP_Port)
  • added Session Announcement Protocol processor
  • bugfix attempt to fix a race condition that leads to no RecordingList rendering and no more recordings…

03.04.2008

  • added WCF Service Host to allow self hosting of data
  • switched to .NET Framework 3.5

23.03.2008

  • added feature that automatic EPG recordings end when they do end on the channel – Event EndTime is used now
  • rewrote Cassini Webserver integration
  • fixed a bug in the Template Processor that caused a display of the runtime as fraction of minutes…

15.03.2008

  • automatic epg recordings are now looking at the channel id and if it’s set they only record events on that channel
  • automatig epg recordings are now looking for a timespan in which they are active
  • recorded listing template processor is now aware of automatic recordings (icon, time rendering)
  • added automatic epg wait icon on recordingslist html page
  • changed automatic epg recording to take the real name from the epg instead of the one that was entered

14.03.2008

  • Recording data structure changed to reflect new “automatic epg based recording” feature
  • added automatic EPG recording feature; based on “AutomaticEPGRecordingKeywords”
  • changed Tuxbox Implementation to show channel ID on Xbox Media Center
  • changed addrecording.html and http vcr command handling (addrecording) to reflect automatic epg recording feature
  • implemented automatic epg based recording; just enter keywords + recordingtime + name + isAutomatic=true –> Automatic recording

13.03.2008

  • changed EPG error handling to only stop listening to EPG events when 25 errors in a row occur
  • changed EPG handling to display new events on unknown service ids

14.01.2008

  • fixed holding-time bug

13.01.2008

  • updated neu.png
  • added Holding-Time Handling

12.01.2008

  • added reoccuring event handling in VCRScheduler
  • added reoccuring event handling in HTML page AddRecordings
  • updated years and version numbers
  • bugfixed RecordingsPlayed statistics
  • updated Recordings-Table to reflect status if recording is reoccuring or not
  • added SVG Files for all YAPS graphics

03.01.2008

  • updated solutions to Visual Studio 2008

17.11.2007

  • Added HoldingTime to make “forget to delete a recording” impossible; HoldingTime of 0 is indefinite, everything else means hold n+1 days
  • Changed behaviour of Recordings Streaming: The StopPosition Counter is updated in realtime which means: You don’t have to close a recording to watch it from the current Position
  • added Cassini Wrapper

8.11.2007

  • integration of Cassini v2 into YAPS
  • added some statistics

22.10.2007

  • added a new management data structure to the data structures/Recording.cs that holds a list of UserStopPosition; Each User now has his own LastStoppedPosition for each recording.

08.05.2007

  • added RecordingsThumbnail class to generate a Thumbnail picture for a recording
  • added generateThumbnailFilename to XBMCPlaylistFilesHelper
  • added thumbnail creation and deletion routines to multicast_vcr and others
  • udpating thumbnail when playcounter/position is updated…
  • added “Updating recording…” console output
  • added isRTP property to channelist (default value is false); you can determine if RTP header should be stripped or not for a specific channel

07.05.2007

  • fixed a bug in the /xml/CurrentServiceData section that caused an exception when no EPG data was known
  • added error handling to the EPG Processor Thread; after 25 errors a thread will be shut down

06.05.2007

  • added /cgi-bin/zapto to http handling
  • added /xml/streaminfo to http handling
  • added Name2ServiceID to ChannelAndStationMapper
  • added TuxboxCurrentServiceData structure and handling
  • added /xml/currentservicedata method to http server
  • added /xml/boxinfo method to http server
  • added boxinfo data structure

05.05.2007

  • several changes for debugging purposes to the YAPS multicast processor to debug a specific problem
  • fixed a thread unsafe bug in multicast processor
  • fixed several more thread unsafe things in multicast processor and vcrscheduler
  • changed behaviour: If a streaming client now refuses to accept data packets he will be disconnected after 1 second (until timeshift is implemented)

01.05.2007

  • fixed a bug in VCRScheduler that could lead to a crash on startup (was not threadsafe)

24.04.2007

  • added %rendertransformation($input_url,$xslt_url)% keyword to the TemplateProcessor

21.04.2007

  • fixed a memory leak in the rss generator
  • added TuxBoxServices data structure
  • added tuxbox /xml/services call handler to http processor
  • changed the MulticastEPG source data handling so that the multicastEPG Sources are now stored in the settings.dat.xml (misc settings) file
  • fixed a bug in the EPGProcessor that caused an empty CurrentlyPlayingList
  • added small testing portion
  • fixed some bugs in http server
  • rewrote tuxbox services data structure and handling (helping hand: Andreas Heil)

18.04.2007

  • reimplemented the whole Channel-Name-Picture-ServiceID-MulticastIP-MulticastPort Mapping and created a new data structure and XML file that holds that data
  • added filtering functionality to the EPG Processor that filters only known channel EPG data and discards data for unkown channels
  • fixed the XBMCSyncProcessor bug; I had the file deletion functionality disabled….

17.04.2007

  • added the multicastedEPGProcessor Implementation, does maintain a CurrentlyRunning List but is not used yet (Implementation just for leak and stability testing)
  • added new Channel/StationID mapping data structure

13.04.2007

  • removed JMS/DVB subproject
  • several changes to the JMS/EPG subproject to make JMS/DVB obsolete
  • working EPG implementation (not yet activated) — need to get working

02.04.2007

  • now displaying associated username instead of IP address in the http logfile
  • added EPG Processor startup to YAPS.cs

01.04.2007

30.03.2007

  • fixed a bug in the XBMC Playlist File branch; XBMC Playlistfiles respect now a port number setting != default port 80

29.03.2007

  • changed multicast behaviour: we don’t use RTP from now on; there’s just plain UDP
  • added new EPG test data
  • fixed a bug in multicast_vcr
  • fixed DeleteRecordings; did not work for several versions – you can now delete scheduled recordings
  • fixed a bug in the ConsoleOutputLogger that leads to a “Collection was modified after the enumerator was instantiated.” exception when the logoutput is accessed while it’s written

Source 1: http://www.dotnetcommunity.de/yaps/yaps_daily_source.zip
Source 2: http://www.schrankmonster.de/PermaLink,guid,71a24ec5-8576-4fe6-b5f5-8607017e5f00.aspx

publish your iTunes library on your network without actually using iTunes on the client

There’s a new version of Dot.Tunes out which is now available for free. That’s good news and if you ever wanted to access your iTunes Library and you were not in Bonjour range…try this great tool!

Bild 1

“DOT.TUNES is not some lightweight iTunes utility. It’s a fully developed web server application that supports MP3, AAC, AIFF, WAV, MPEG, MP4, and MOV files, allowing you to share your iTunes library contents with your friends in other cities, your classmates across the dorm or the coworkers scattered throughout the building. DOT.TUNES contains a custom web server designed specifically to serve the audio tracks from your iTunes at lightning fast speeds. Through seamless integration with your iTunes base, DOT.TUNES easily handles large libraries without missing a beat.”

I tried it and it’s working quite well – especially if you consider that there’s a bunch of plugins available.(which you have to pay for)

Source: http://www.dottunes.net

when you think you’re invulnerable by using Amazon services

Oh last year I worked with many different companies that thought that the best thing they could do to increase their availability is to outsource their complete webserver and storage infrastructure to Amazon.

Now last week there was this 2 hour black out of parts of the Amazon S3 infrastructure which should have this “wake up call” effect for most of those hype-believers.

S3 is great for all sorts of applications but you – like in everything IT – really shouldn’t depend on just one service provider.

Source: http://www.amazon.com/gp/browse.html?node=3435361

a replacement software for your UMTS/3G card…

With every UMTS/3G card comes a tool that tracks your connection information, your traffic and everything… and it looks like this for a Vodafone UMTS card:

That’s not even close to cute and well useable. So someone took the task and created this:

screenshot3

A small tool that is compatible with almost any available UMTS/3G hardware on earth and has these features:

tiny executable: 0.3 MB, very little CPU load

  • permanently displaying:
    • up- and download speed in kBytes/s, used data volume in kByte (with round option), used online time (with round option), mode of operation UMTS(3G)/GPRS, signal strength in percent and dBm, network name and cell id (if provided by pc card), homezone status
  • movable mini window with information display:
    • sitting on the task bar, at upper screen border, in front of the start button, as dynamic tray icon with gauges
  • warning when exceeding data volume or online time
  • optional beep output for signal strength,network change and cell change
  • manual or automatic selection of network and mode
  • optional warning when using not listet networks
  • determination of receivable networks
  • retrieve and charge prepaid credit
  • automatics:
    • start/terminate connections,start extern programs such as Browser or Ping, reconnect after errors/freezes, generate network entry, dynamic com port determination
  • adjustable connection error tolerance
  • connection test by “smart Ping”
  • SMS reception can be activated
  • PC remote-control by SMS
  • SMS transmission by batch job
  • logging of data volume and connection information
  • connection statistics as semigraphics
  • timer for program end or shutdown
  • deactivate graphics compression (some networks)
  • scriptable
  • service terminal for data card commands
  • shows data card netlocks
  • service log for data card control communication
  • for Windows 2000/XP/Vista/embedded

And the best of all is that this is a freeware tool. Unfortunately it’s not available for OSX.

Source: http://www.mwconn.com

WLAN’s Labyrinth

So the Telekom finally managed to bring DSL to my home region. Immediately new stuff was bought to establish a WLAN-network inside the house. When I went home of course I wanted to add my laptop ( a Medion MD 41100, 4 years old) to the net to gain access. But after never having used the WLAN-functions before (yes, there are such people…) no one could know that this would end up in such tremendous trial and error.

The router was a Speedport W 900V and working. It took me about an hour to find the add-new-user-option in the router-menu. After filling in the MAC of my Intel PRO/Wireless LAN 2100 card and creating a new WLAN-connection I was ready to go but nothing happened (yet).

Speedport W 900V

From now I tried several ways to get it done:

1. Get your drivers updated

This was strongly recommended because my card didn’t know the WPA-coding yet, only the older WEP-standard. OK, done. Now I was able to type in some data required by the router. But still no connection.

2. Get your Windows updated

Somewhere I read that there is a support-patch for WPA by Microsoft. Downloaded and installed. Still no access.

3. Use the cards firmware

Intel programmed a software called Intel PROSet for doing some adjustments if needed and adding a new connection which I did. But again without any success.

Here an important thought crossed my mind: Maybe the card is deactivated (The problem had to be clearly somewhere in my laptop because I was using another one for researching in the Internet, so there was a WLAN available and it was working.).

Some clues:

PROSet-configuration (hardware deactivated)

Tray-icon (no network, no connection, transmitter OFF)

Good! So I narrowed down the problem. But how to activate the transmitter?

4. Try the Windows-network-configuration

Many options but nowhere the one I was looking for.

5. Try the firmware

Look above to the PROSet-configuration image: The option to activate the transmitter is simply disabled. Hmm…

6. Try the tray-icon

No, not here.

7. Check your BIOS

Yes, there is a WLAN-entry. But my Phoenix-BIOS has only two modes: card always deactivated on every start or card activated only if activated prior to the system shut-down. So no solution here.

8. Remove the card from your profile

Done and the same as before.

9. Deep-looking in windows

As you know there is a life under the desktop. Typing in %systemroot%\system32\services.msc brought up a nice menu about the systems local services. Here you look for network-connections as follows:

The way to start already has been “automatic”. OK.

10. Look for a hardware-button

Some of you might mention here that this could have happened much earlier: simply looking for an activation-button. And you are right, this button exists. However, pressing it changed nothing.

The solution:

The hardware-button proved to be a good hint. Next I checked the program for controlling the programmable buttons (EzSystem).

Hey, there is an option for WLAN. Activated and one system restart later it was like it was before: the card still deactivated. Then I checked out the directory of this EzSystem-Software.

wbutton.exe –> nothing happened

wirelesscontrol.exe –> peng! WLAN activated and access to the Internet.

Finally it worked. Let’s review it: Obviously you cannot activate WLAN neither through Windows nor the cards firmware; you need a third party’s software. This is (in my opinion) a very weird way.

So I guess that simply some links between components got lost and you have to re-engineer that. A hard task, especially if you have formatted the harddisc right after the purchase, do not knowing anything anymore about the original state and with the support disc hundreds of kilometers away.

Jens Heymann

Windows Eventlog Client/Server Application to monitor your servers…

When I first saw a review of “Microsoft Windows Home Server” I was impressed by several features. One that I never thought about is that little icon on each Home Server client that shows you the overall status of your home network:

128073458_b451f2821f

This little icon can look like this, depending on the status:

128073457_f5531306fb

As you can see – it’ll give you a clean and fast status by telling you that everything is okay on your network or that anything needs your, maybe immediate, attention.

I am administrating round about 12 Windows servers and I always looked for a clean and easy to use tool to monitor them. So I came up with a plan: Build my own tool.

Since I am extensivly using Windows Communication Foundation in the last weeks I was intrigued to try it on that matter. So I built a WCF selfhosting service that makes the eventlog of the machine it is running on available. Then I built a small client that fits nicely in your tray. I am not quite done yet but it’s a good start.

vs_overview_eventlog

As you can see. There is the Host, running on the server and making all Eventlogs of this machine available. Then there is “SmallClient” – being exactly this: a small client for testing purposes only. And thirdly there’s the EventLogClient – giving you the full blown user interface…

This is how it looks when you add a server to the client:

eventlog_sources

And this is how it looks when you configure a filter:

eventlog_filters

I thought it would be nice to have this workflow:

  1. configure/add the server and select the eventlog that you want to monitor
  2. create and configure a filter that is matched upon the particular eventlog source

For the icons (see above) I used one of the icons from the Tango Icon Gallery as a starting point and added some color and stuff.

So why do I even talk about all this? I want YOU to take the code and use it…add more functionality…I am releasing the code(except the icons) under the BSD license. So you can do almost whatever you want with it – but I would love to hear about the things you’re doing with my code and idea.

You can download the sourcecode of my little project here. (200 Kbytes)

Source 1: Home Server Homepage
Source 2: http://tango.freedesktop.org/Tango_Icon_Gallery
Source 3: Sourcecode.

sitting on the Roundtable…

FeM is in need of a decent conferencing system for years now. And it seems that there’s something really cool showing up in the next days. As of now Microsoft is going to put it’s Roundtable on sale.

“Microsoft RoundTable is a very cool videoconferencing system featuring 360° panoramic views powered by its 5 built-in cameras.”

“The RoundTable actually installs two USB camera devices. The first is the Active Speaker which uses the RoundTable’s 6 microphones to locate where in the room the active speaker is and then focus one of the 5 cameras onto that person. I suspect it may actually use 2 cameras to focus on a person, since it always appears that the speaker is “centered” which probably would require at least 2 camera images and then the images are “spliced” together, processed, and then transmitted over the USB cable. The second USB camera device is the panoramic camera which combines the 5 camera images into a single panoramic image.”

Source: Roundtable Review

If you have dropped connections in Vista…

… you’ll probably can solve this problem by activating your integrated Firewall.

It seems that Vista just like Windows XP SP2 enforces the same stupid so called “worm restricting measure”. To make it short: If you disabled the integrated Windows Vista Firewall you’ll have a connection limit. And you probably will run into this limit resulting in strange network behaviours, dropping VPN connections and so on.

Beside activating the integrated Windows Firewall you can disable the TCP/IP “Autotuning” feature:

Click on the Start menu and type cmd in the search box. Type CTR+SHIFT+ENTER to tell the command prompt to open with elevated privileges.
In the command prompt window, type netsh int tcp set global autotuninglevel=disable and hit Enter
After getting the OK returned in the command prompt window, restart to activate the change.

Way to go when it comes to networking :-/

how (almost) everything works at ISWIsion

Namenlos wrote about how almost everything is held together at this years ISWI technically. Well he even draw something neat to look at and say “Look, that we did!”

“Die Audiostrecke wird mittels 6 Behringer Ultragain Pro-8 Digital ADA8000 aufgebaut. Diese Geräte nehmen 8 Kanäle Audio via XLR entgegen und setzen die auf eine ADAT-Verbindung über ein TOS-Link-Kabel um. Da die TOS-Links nur 10m weit gehen hängt an jedem Behringer ein ADAT-Extender, der das ganze gleich auf Glasfaser umsetzt. So kommt der Ton vom Studio zur Regie und zurück. Zusätzlich liegen noch 5 Strecken Video (so ein Fernsehsender ganz ohne Bild is ja auch nix.). Zum Abschluss verteilt in der Fischerhütte nochmal ein HP Procurve 2524 ein bischen Netz an die Surfterminals und die Leute vom ebenfalls dort beheimateten L.i.g.h.t. Projekt.”

And then deka came and created another drawing of the Live Streaming infrastructure:

Source: http://blog.slash-me.net/archives/225-ISWISION-2007-hat-begonnen.html

Attention: no VLAN settings with Intel Network Interface Cards

When you’re using Windows Server 2003 R2 64bit Edition with SP2/IE7 you will most likely not be able to access the advanced settings of an Intel Network Interface card (Teaming, VLAN settings). Instead you get the simple dialog:

Damn it. I don’t have a solution for this right now and it does corrupt my plan using one of the servers for VLAN games….

Anyone reading this got a solution how to get the VLAN settings tabs back?

rewire the web…

The internet comes up with new ideas of information transformation and management every day. Yahoo now came up with a great idea of how the users could almost freely transform syndicateable data to anything they like.

Yahoo says this about it’s new baby:

“Pipes is an interactive feed aggregator and manipulator. Using Pipes, you can create feeds that are more powerful, useful and relevant.”

If you ever wanted to connect NY Times articles to Flickr, you can do this and many other things now. You even get a decent editor:


(yes, that’s in a webbrowser…)

Go and give it a try.

Source: http://pipes.yahoo.com/

low latency network audio…JACK

It’s been some days when I wrote about my wish and need for low latency network audio solutions. And now it seems that there is something to help the situation: JACK.

“Have you ever wanted to take the audio output of one piece of software and send it to another? How about taking the output of that same program and send it to two others, then record the result in the first program? If so, JACK may be what you’ve been looking for.

JACK is a low-latency audio server, written for POSIX conformant operating systems such as GNU/Linux and Apple’s OS X. It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. Its clients can run in their own processes (ie. as normal applications), or can they can run within the JACK server (ie. as a “plugin”).”

This alone isn’t what I was searching for…but there is NetJack – the network extension for JACK.

Netjack is a Realtime Audio Transport over a generic IP Network. It is fully integrated into JACK.”

Source 1: another nerd wish- low latency network audio
Source 2: http://jackaudio.org
Source 3: http://jackosx.com
Source 4: http://netjack.sf.net
Source 5: http://www.grame.fr/~letz/jackdmp.html

Xbox live connection ?

“Most broadband routers use Network Address Translation (NAT). Windows Internet Connection Sharing also uses NAT.

For most devices that use NAT, port forwarding is not required to connect to Xbox Live. This is especially true if you use an Xbox Live certified device. Port forwarding should only be needed if you use a proxy server or a true firewall device instead of, or in addition to a NAT. Sometimes, you may have to configure port settings on a non Xbox Live certified router or gateway.
If there is a firewall device between the Xbox console and the network device, you may have to configure the firewall to enable communication on specific network ports. If the NAT status in the Network Status area of the Dashboard is “moderate” or “strict,” you may have to configure port settings.”

The following ports must be available for Xbox Live to operate correctly:

  • UDP 88
  • UDP 3074
  • TCP 3074

Source: http://support.microsoft.com/kb/908874/en-us

Thinstuff releases RDP Server…for Linux’n’stuff

Thinstuff released it’s RDP Server version 1.0 recently. Some of the features:

  • RDP server for Linux
    • RLE compression
    • RDP protocol compression
    • Data encryption
    • Client selected resolutions and bits per pixel
    • Fullscreen mode
    • RDP Bitmap Cache
    • RDP Orders
    • Compatible Clients: RDP 5.0, 5.1, 5.2, Windows CE, rdesktop
  • Optimized for many kinds of X11 applications for optimal performance
  • Change resolution while clients are connected
  • Very low bandwidth consumption
  • Shadowing support to view a session multiple times
  • Terminal Server
    • Database or passwd/shadow user management
    • Passwd/shadow or PAM authentication
    • Management through Java Client
    • Authentication by specifying username and password in the RDP client or at a login window within the RDP session

Obviously the RDP server is a X Server on the linux side with a RDP interface to the rest of the world…very cool indeed. As soon as I have some time I’ll give it a try…

Source: http://www.thinstuff.com/company/news/