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 1,839 other subscribers

Archive for the ‘Development’ Category

Weaving: Source code, IL, ByteCode, Native

Posted by jpluimers on 2011/06/28

Weaving extends your program adding new functionality.

It can be at different levels for difference purposes (AOP, Debugging, Automated Testing, etc).

This .net – What is IL Weaving? question on StackOverflow contains a few pointers to interesting reading material.

–jeroen

Posted in .NET, Debugging, Delphi, Development, Software Development | Leave a Comment »

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.

Summary:

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.

–jeroen

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> :)

–jeroen

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 tohtml.com: 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

--jeroen

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

Top 10 Mobile Internet Trends

Posted by jpluimers on 2011/06/15

I’ve done quite a bit of mobile research development lately, so it was good to come accross the Top 10 Mobile Internet Trends (Feb 2011) slide deck.

Looking into the future is always surrounded with a lot of uncertainty, but that deck has quite some interesting data.

–jeroen

Posted in Development, Mobile Development | Leave a Comment »

c# – Generics and nullable type – Stack Overflow

Posted by jpluimers on 2011/06/14

A while ago, I needed some generic way of parsing data that could result instancef of both regular ordinal and nullable ordinal types.

Luckily there was a nice question about this on StackOverflow, of which I liked this answer (source code below) much more than the accepted answer: concise, elegant, period.

    public static T? Parse(this string text) where T: struct
    {
        object o = null;
        try
        {
            var ttype = typeof(T);
            if (ttype.IsEnum)
            {
                T n = default(T);
                if (Enum.TryParse(text, true, out n))
                    return n;
            }
            else
                o = Convert.ChangeType(text, ttype);
        }
        catch { }

        if (o == null)
            return new Nullable();

        return new Nullable((T)o);
    }

–jeroen

Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, Development, Software Development | 1 Comment »

SVN tree to source code of Marco Cantu’s Delphi Books

Posted by jpluimers on 2011/06/09

If you love the Delphi books by Marco Cantu as much as I do, then you certainly will love that Marco has created a public SVN repository at code.marcocantu.com containing all the samples of his Delphi 6, 7, 2007, 2009, 2010 and XE books.

Way to go Marco!

–jeroen

Posted in Delphi, Development, Software Development | 2 Comments »

GExperts version 1.35 was released on June 5th, 2011

Posted by jpluimers on 2011/06/08

Earlier this week, the new GExperts 1.35 Release got published: a free set of expert extensions supporting Delphi 6 through XE.

It is an incremental release has a few new features of which I like the new subgroup support in the Grep Search extensions most.

Now hopefully, Thomas Müller will release an experimental GExperts build of version 1.35 soon: his experimental builds integrate a source code formatter that works across many Delphi versions and often formats better than the one included in Delphi 2010 and up.

–jeroen

Posted in Delphi, Development, Software Development | 4 Comments »

Delphi sorcery – great new blog by Stefan Glienke: DataBinding, MEF, Lamda Expressions and more

Posted by jpluimers on 2011/06/07

I just came across the great new Delphi sorcery blog by Stefan Glienke from Soest, NRW, Germany.

He uses some cool new features recently introduced into Delphi for new ways of DataBindingYield-Return, Delphi Lambda Expressions, Delphi Dependency Injection with MEF and more.

Sample code is at his Delphi Sorcery Google Project.

I hoped that somebody would do all that, as this shows the real power of what Delphi can do.

Now it’s there for

–jeroen

Posted in Delphi, Development, Software Development | 2 Comments »

How To Write Unmaintainable Code

Posted by jpluimers on 2011/06/02

I really enjoyed reading the How To Write Unmaintainable Code essay which is mostly a copy of the original materials at the unmaintainable code pages from the MindProd jgloss library.

Whereas the essay is all on one page and really easy to read, the original is not: somehow not only the unmaintainable portion of the MindProd site is unusually hard to navigate around. I’m not sure why: maybe that’s why the content is so good?

Try both sources and let me know what you think.

–jeroen

Posted in Development, Software Development | Leave a Comment »