The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,465 other followers

Archive for June, 2011

StackOverflow C# question: Slight confusion over reference types and value types in the C# spec

Posted by jpluimers on 2011/06/23

Recently there was a nice Slight confusion over reference types and value types in the C# spec on StackOverflow.


When structs are value types, but interfaces are reference types, how can a struct implement an interface and still be a value type?

The answer is boxing: when a reference to a struct is needed, a reference object is automatically created, and the value of the struct is box-wrapped into it.

This automatic boxing is really nice, but be aware that when frequently doing this, it can have a huge performance impact.

Thanks Abhina Basu for blogging about boxing structs having interfaces, and the many volunteers on StackOverflow explaining about boxing.


Posted in .NET, C#, Development | Leave a Comment »

.NET WPF Databinding to Collection Properties » Danny Thorpe

Posted by jpluimers on 2011/06/22

Danny Thorpe recently wrote a very nice post on via Databinding Collection Properties in WPF that sometimes fail without warning.

The short summary is that this fails without warning when binding to properties that do not explicitly implement the IList interface, for instance when binding to a collection that supports only IEnumerable (because of yield return) or IList<T> (for instance when binding to a Dictionary<TKey, TValue>.Values, which implements IList<T>, but not IList).

Thanks Danny for blogging about this (he explains it way better than I can), and putting a warning that the workaround Dictionary<TKey, TValue>.Values.ToList() potentially can have a big impact on memory consumption.

Life would be so much easier if WPF could bind to IEnumerable or IList<T> :)


via: Databinding Collection Properties » Danny Thorpe.

Posted in .NET, Development, Software Development, WPF | 2 Comments »

Delphi and COBOL syntax highlighters

Posted by jpluimers on 2011/06/21

I’ve been working on a project that uses both COBOL and Delphi.

For documentation purposes, Syntax Highlighted code makes your code so much easier to read.

Delphi has GExperts for source code export (in either HTML or RTF), but it took me a while to find a good syntax highlighter for COBOL.

I finally found a COBOL syntax highighter at it exports to HTML.

I’m glad I found that site, as they have a ton of syntax highlighters, divided into groups.

Quite amusing to see COBOL classified as ‘rare’ (given that it has one of the largest code bases in the world).

This is what they support:

  • main: Java
  • main: C
  • main: Visual Basic
  • main: PHP
  • main: C++
  • main: Perl
  • main: Python
  • main: C#
  • main: Ruby
  • main: JS.NET
  • main: VB.NET
  • main: Pascal
  • main: JavaScript
  • inet: html
  • inet: css
  • inet: css for html
  • inet: css for svg
  • inet: jsp
  • inet: xhtml transitional
  • inet: xhtml strict
  • inet: xhtml frameset
  • inet: asp – VBScript
  • inet: asp – JavaScript
  • inet: asp – PerlScript
  • inet: SVG 1.0
  • inet: ColdFusion
  • inet: ActionScript
  • inet: VBScript
  • xml: xml
  • xml: dtd
  • xml: xslt 1.0
  • xml: XML Schema
  • xml: Relax NG
  • xml: xlink
  • database: Clarion
  • database: Clipper
  • database: FoxPro
  • database: SQLJ (Java sql)
  • database: Paradox
  • database: SQL, PL/SQL
  • database: MySQL
  • scripts: Batch/Config.sys/NTcmd
  • scripts: sh/ksh/bash script
  • scripts: Apache httpd.conf
  • scripts: Config, INI and CTL
  • scripts: Colorer HRC
  • scripts: Colorer HRD
  • scripts: Delphi form
  • scripts: Java Compiler Compiler
  • scripts: Java properties
  • scripts: Lex
  • scripts: YACC
  • scripts: makefile
  • scripts: Regedit
  • scripts: Resources
  • scripts: TeX
  • scripts: OpenVMS DCL
  • scripts: VRML
  • scripts.install: RAR Install Script
  • scripts.install: Nullsoft Install Script
  • scripts.install: InnoSetup script
  • scripts.install: IS script
  • rare: ASM
  • rare: 1C
  • rare: Ada
  • rare: ABAP/4
  • rare: AutoIt 2.x
  • rare: AWK
  • rare: Dssp
  • rare: ADSP-21xx Asm
  • rare: Baan
  • rare: Cache/Open-M
  • rare: Cobol
  • rare: Eiffel
  • rare: Forth
  • rare: Fortran
  • rare: Haskell
  • rare: Icon
  • rare: IDL
  • rare: Lisp
  • rare: MatLab
  • rare: Modula2 and Oberon2
  • rare: PicAsm
  • rare: Rexx
  • rare: Standard ML
  • rare: OCaml
  • rare: Tcl/Tk
  • rare: Sicstus Prolog
  • rare: Turbo Prolog
  • rare: Verilog HDL
  • rare: VHDL
  • rare: z80asm
  • rare: asm80
  • rare: 8051 asm
  • rare: AVR asm
  • other: files.bbs
  • other: Diff/Patch
  • other: message
  • other: plain text
  • other: default type


Posted in COBOL, Delphi, Development, Software Development | 6 Comments »

Get All Angry Birds Levels in Chrome HTML5 Version with a quick hackWes Bos | Wes Bos

Posted by jpluimers on 2011/06/20

Don’t you love open software: Get All Angry Birds Levels in Chrome HTML5 Version with a quick hackWes Bos | Wes Bos.


Posted in Power User | Leave a Comment »

Uninstalling stray SoundMAX remnants

Posted by jpluimers on 2011/06/17

Recently, I upgraded from a T61p laptop to a W701.

Moving the HDD to the new system was relatively straight forward: you get a 0xC000000E error during boot because the BIOS HDD setup by default is in RAID mode; switching it to AHCI lets you boot fine.

I installed the drivers needed for the new hardware and uninstalled all the unneeded drivers.

Still the system kept complaining with this message from:

The SoundMAX audio driver did not load. You may need to reinstall SoundMAX.
[ ] Do not show this message again

Disabling is not a good solution: it is a per user setting in the Registry, so logging in as a different user will still bring up the same message.

The real solution is to remove the remnants that the uninstall of the SoundMAX driver package left around.

Process Explorer from SysInternals has a nice “Find Window’s Process” feature to find out which process did show the message, and the executable started for that process:  “C:\Program Files (x86)\Analog Devices\Core\smax4pnp.exe

Then I used autoruns from SysInternals to find where smax4pnp.exe was started from: a Registry entry under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run:  SoundMAXPnP containing the above path.

I deleted that registry key from within autoruns, moved the “C:\Program Files (x86)\Analog Devices” directory tree to the recycle bin using Windows explorer, then rebooted: problem solved.


Posted in BIOS, Boot, Power User | Leave a Comment »

%d bloggers like this: