Contact

admin

About Me · Send mail to the author(s) E-mail · Twitter

At GROSSWEBER we practice what we preach. We offer trainings for modern software technologies like Behavior Driven Development, Clean Code and Git. Our staff is fluent in a variety of languages, including English.

Feed Icon

Tags

Open Source Projects

Archives

Blogs of friends

Now playing [?]

Error retrieving information from external service.
Audioscrobbler/Last.fm

ClustrMap

Network Outages

Posted in General | Networking at Wednesday, 22 February 2006 23:00 W. Europe Standard Time

DSL ModemThis blog is hosted on a private server located in the lumber room of our apartment¹. Sites are served using a DSL link that's running at 3 Mbit/s downstream and 512 kbit/s upstream speed.

Two months ago we decided to upgrade to a new DSL2+ connection (DSL 16000) provided by Arcor. I ordered the upgrade on January 4th and today Arcor finally was able to switch speeds. I didn't expect any problems as the Arcor salesman (beware!) told me that the physical line is able to manage that speed. I expected the change to happen flawlessly like the last one. Alas, read how it took place:

As you know, DSL speed is limited by the distance from your telephone jack to the next network junction point set up by the telco company. Signals travelling from the router to the carrier's network and back are subject attenuation, which means they get weaker. A piece of hardware (DSL modem) is yet able to tell signals from noise if a certain signal-to-noise ratio is achieved. Attenuation is measured in Dezibel and has to be lower than 25 in our case. Arcor's technical support told me some minutes ago that this not the case for our line which has an attenuation of 27.25 dB.

The result of the bad line quality is that the internet connection remains up for about 20 minutes before Arcor disconnects us. I suspect this is due to numerous data errors they receive. The next login is only possible unless our server is restarted. Pretty neat! The tech folks at Arcor will bring us back online within 48 hours and the new DSL2+ connection will be downgraded to DSL 6000. This is not what I expected, especially since the upstream capabilities of DSL 16000 lie around 800 kbit/s as compared to DSL 6000's 640kbit/s.

Welcome to the world of DSL2+!

¹ I'm speaking of "us" here because I live in a shared appartment.

Now playing: Boozoo Bajou - Dust my Broom - Nine below zero

Office Utensils

Posted in NonTech at Wednesday, 22 February 2006 00:17 W. Europe Standard Time

A colleague of mine asked me today why I had this and that in my office. Ideally, Adam Phillabaum has posted some ideas for proper office accessories two months ago.

Now playing: Anathema - Alternative 4 - Empty

Rezept: Leber mit Soße

Posted in Recipes (German) at Friday, 17 February 2006 19:34 W. Europe Standard Time
  • 400 g Geflügelleber
  • Gewürzgurken (und ein wenig Gurkensud)
  • 1 TL gemahlener Piment
  • 2 Lorbeerblätter
  • 3 Zwiebeln, gewürfelt
  • dunkler Soßenbinder (oder Mehl in Wasser verquirlen)
  • 1 EL Butter
  • 250 ml Wasser
  • Salz, Pfeffer

Leber in kleine Stücke schneiden und ohne Salz und Pfeffer in Butter anbraten. Gewürfelte Zwiebeln hinzugeben und anbraten bis sie glasig werden. Wasser und ein wenig Gurkenbrühe hinzugeben bis die Leber gut mit Flüssigkeit bedeckt ist (und je nachdem wie viel Soße man will). Gemahlenes Piment darüberstäuben, Lorbeerblätter hineingeben, umrühren und 5 bis 10 Minuten kochen lassen. In Scheiben geschnittene Gewürzgurken hinzugeben, kurz aufkochen lassen. Soße würzen, andicken und evtl. noch ein wenig einkochen lassen. Dazu passt am besten selbstgemachter Kartoffelbrei.

Accessing Controls in SharePoint Web Parts using JavaScript on the Client Side

Posted in ASP.NET | Office | SharePoint at Tuesday, 14 February 2006 04:38 W. Europe Standard Time

A rather long title for this post, but that's what it comes down to.

SharePoint WebPartSuppose you want to access controls in the same Web Part on the client side using JavaScript. For instance, you have two DropDownLists placed on a Web Part and you want to fill the second one dynamically based on the selected value of the first DropDownList – a simple master/detail type of control. Postbacks are no option here since a selection change of the upper DropDownList shouldn't bother the server and delay business process by having the user to wait for the result. An Ajaxy approach may also be interesting, but out of the scope of this posting.

I've been struggling with some problems an couldn't find anything about this issue on the web, so I decided to post my findings.

Because it is possible to place a Web Part multiple times on a SharePoint web page, SharePoint Server will assign a unique identifier to each control (that is, a Web Part and some of its child controls¹) to be able to distinguish between Postbacks originating from different Web Parts. The unique ID can be found in the ID attribute of a HTML element and looks similar to this:

TopZone_g_d72e1f89_87e6_4f08_b6c5_165dc560ce8a__ctl1

TopZone defines the location of the Web Part, along with its GUID. The bold part (_ctl1) denotes the ID of the control in question, a SELECT in my case.

The JavaScript code to add an onchange event handler to the master control looks like this:

master.Attributes.Add("onchange",
    String.Format("setDetail(document.getElementById('{0}'));",
    detail.ClientID));

However, this will not work: The location and the GUID of the Web Part is evaluated when the page is rendered. These values then serve as a prefix to the control ID (_ctl1) you set in your own code. You have to retrieve the location/GUID prefix along with the control ID and combine them to the actual HTML ID. Because Web Parts should derive from Microsoft.SharePoint.WebPartPages.WebPart this is pretty easy to achieve.

// Combine the Web Part's ID and the control ID.
master.Attributes.Add("onchange",     String.Format("setDetail(document.getElementById('{0}_{1}'));",     base.ClientID,     detail.ClientID));

¹ Those with an ID or a NAME.

Now playing: Audiomatix - What a day

Rezept: Bratklops mit Dillsauce, Rührei und Kartoffeln

Posted in Recipes (German) at Monday, 13 February 2006 00:01 W. Europe Standard Time

Dillsauce

  • 2 EL Butter
  • 2 EL Mehl
  • 500 ml Milch
  • 2 Päckchen Dillspitzen (z.B. tiefgefroren)
  • 1 Zitrone
  • Salz, Pfeffer, Zucker

Butter in einem Topf zergehen lassen. Mehl hinzugeben und so eine Mehlschwitze herstellen. Die Schwitze zur Bindung unter Rühren ein wenig köcheln lassen. Mit Milch auffüllen und unter ständigem Rühren einkochen bis die Sauce dick wird. Dill hinzugeben, salzen und leicht pfeffern. Mit Zucker und Zitronensaft abschmecken. Warm stellen.

Bratklopse

  • 500 g Schweinehack (gewürzt oder ungewürzt)
  • 2 Zwiebeln
  • 1 EL Senf
  • 1 EL Quark
  • 2 Eier
  • Semmelbrösel
  • 1 TL gemahlenes Piment, 1 TL gemahlener Kümmel
  • Salz, Pfeffer

Schweinehack würzen falls es ungewürzt ist. Kleingewürfelte Zwiebeln hinzugeben und die restlichen Zutaten gut vermengen. Falls die Masse zu feucht ist, mit etwas Semmelbröseln abbinden. Mit der Hand flache Bratklopse (a.k.a. Buletten) formen und in den Semmelbröseln wenden. Margarine in einer Pfanne zerlassen, die Klopse von beiden Seiten braun braten.

Kartoffeln kochen und Rührei nach eigenem Geschmack herstellen. Das ganze zusammen servieren.

Windows Update Woes

Posted in Windows at Sunday, 12 February 2006 03:37 W. Europe Standard Time

Jon Galloway describes how to disable the restart of Windows after automatic Windows Updates. I've been looking for something like this for some time now, but didn't have the idea of inspecting Group Policy. Browse the Group Policy to get a feeling of what can be done with it. It's amazing how comprehensive the list of tweaks is.

Group PolicyUnfortunately there's no built-in shortcut to Group Policy anywhere inside the Control Panel and the Administrative Tools on most versions of Windows. (IIRC there is one on Active Directory-enabled Domain Controllers.) So if you're wondering how to access Group Policy on the workstation and server versions of Windows (2000, XP and 2003) without AD, run gpedit.msc under an administrative session.

Another possibility is to run Microsoft Management Console (mmc.exe) and add the Group Policy Snap-In using the File menu.

Rezept: Bandnudeln mit Zucchini-Huhn-Sahne-Sauce

Posted in Recipes (German) at Saturday, 11 February 2006 23:49 W. Europe Standard Time
  • 4 Zucchini (kleine sind besser da geschmackvoller)
  • 500 g Hühnchenfleisch
  • 2 Becher Sahne
  • Balsamicoessig
  • Salz, Pfeffer
  • Bandnudeln
  • Olivenöl

Zucchini in Scheiben schneiden, Fleisch in kleine Stückchen schneiden. Zucchini in einer Pfanne in Olivenöl anbraten bis die Scheiben leicht bräunlich werden, anschließend herausnehmen. Das Hühnchen ebenfalls anbraten, salzen und pfeffern. Zucchini wieder hinzugeben und die Sahne in die Pfanne geben. Leicht einkochen lassen und mit 5-6 EL Balsamico abschmecken bis sich ein süßlich-säuerlicher Geschmack bildet. Beim Kochen der Sauce verschwindet die Säure mit der Zeit, für den Fall dass man ein wenig zu viel Balsamico verwendet hat. Mit Nudeln servieren.

Chasing LUA Bugs of Media Player Classic

Posted in Tools and Software | Windows at Monday, 06 February 2006 23:59 W. Europe Standard Time

Media Player ClassicI'm a big fan of Limited User Accounts: I'm running inside a LUA almost all the time and try to make every program willing to comply with LUAs using the Application Compatibility Toolkit (ACT) Microsoft provides. I like using an alternative media player for windows, Media Player Classic (MPC), which is distributed with the K-Lite Mega Codec Pack.

I've encountered some issues making MPC LUA-compatible and I would like to share my resolutions here.

Some months ago I created the initial application fix for MPC using the Application Compatiblity Administrator which is a part of ACT. I used the quick method of creating app fixes which is to simply choose the executable, select LUA compatibility mode, do the test run, save the results to a sdb file and install the fix. Everything worked fine... except when I tried to watch streamed RealMedia videos: The video stream was glitched, whereas audio playback rendered fluenty.

Files residing on the local hard disk worked fine. Video streaming inside a browser window also was not a problem, MPC streaming with administrative rights worked smoothly. MPC and/or my appfix was the point of failure.

Today I sat down and chased the bug. Actually it was the application fix that broke RealVideo streaming. The default settings for a LUA application fix contains file system and registry redirects to the fixed application's user-specific portion of the environment. The registry redirect broke RealVideo streaming for some reason I was unable to determine. I suspect the error to happens somewhere buried inside MPC/ActiveX/RealAlternative. Regmon was of no help in this case.

However, everything works fine now and I am happy to watch my RealMedia streams again outside a browser.

DownloadDownload the application fix for Media Player Classic. Install it using sdbinst.exe "Media Player Classic with RealMedia Compatibility.sdb".

Now playing: Yonderboi - Shallow and Profound (Limited Edition) - No answer from Petrograd

Window Snapping Utility

Posted in Tools and Software at Saturday, 04 February 2006 00:24 W. Europe Standard Time

I like having my desktop windows arranged properly, i.e. adjacent to the edge of the screen instead of slightly overlapping the canvas. I've been using WinDock that hooks into Windows to accomplish this behavior for some years.

Today I found a better one! allSnap is even more powerful than the now-retired WinDock, although it leverages the same technique: Besides aligning windows to the screen border it also allows to snap windows to each other. This is especially useful when there are two or more windows and you are comparing or synchronizing content between them. I use it when performing the tedious task of transferring account data (from a browser) to Excel sheets. Yes, this could be automated. Especially since our bank allows CSV export of account statements. It just needs to be done!

Besides that, it's always nice to glue Outlook's reminder window and others to the screen edge without much fiddling around.

allSnap Properties 1 allSnap Properties 2

Note that allSnap also handles child windows inside a MDI parent.

Now playing: Bexar Bexar - Haralambos - Lascruces