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 ‘Software Development’ Category

Hacking is Important — Medium

Posted by jpluimers on 2016/04/22

“We’re barbarians, not bureaucrats!”

Source: Hacking is Important — Medium

On hacking vs processes, being disruptive and how people think. Short stories about Borland, Apple, FaceBook and others.

–jeroen

via: Hacking is Important — Medium – David Berneda – Google+

Posted in Apple, Delphi, Development, Facebook, LifeHacker, Power User, SocialMedia, Software Development | Leave a Comment »

Internal version numbers for conditional defines etc

Posted by jpluimers on 2016/04/21

Thanks Daniel Jackson for posting (the DocWiki hasn’t been update yet):

Version Conditional: VER310
Product Version: 24
Package Version: 240
IDE Version: 18.0
Compiler Version: 31

Source: I had expected Embarcadero would have updated the documentation to reflect the…

–jeroen

Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 2 Comments »

RubyMania has reached Delphi – Times helper method implementation for integers – from Asbjørn Heid

Posted by jpluimers on 2016/04/21

The below fragment is one of the favourite kinds of examples in the Ruby world:

5.times { |i| print i, " " }

It uses the times method on Integer and prints:

0 1 2 3 4

There are many implementations of this in other languages, for instance Ruby’s ‘times()’ function in C# | Of Code and Me (which the WordPress.com editor fucked up as it replaced Action<int> with Action which is a totally different thing, so the gist with code is below.

public static class IntExtensions
{
    public static void Times(this int i, Action func)
    {
        for(int j = 0; j < i; j++)
        {
            func(j);
        }
    }
}

Which you use as

5.Times(i => Console.Write(i));

It’s slightly off as it prints:

01234

I know; nitpicking, but this code works (did I ever tell I love .NET fiddle?):

5.Times(i => Console.Write("{0} ", i));

Well, Mason Wheeler encouraged Asbjørn Heid for the below Ruby Mania in Delphi; just read the comments at In C# nearly everything is an object, so when writing a unit test for a string…

Since the WordPress.com editor fucks up TProc<Integer> into TProc and TProc behaves differently from TProc<Integer>, I’ve included a gist link with the actual code below.

program RubyManiaConsoleProject;

uses
  System.SysUtils;

type
  TRubyMania = record helper for ShortInt
    procedure times(const IterBody: TProc);
  end;

procedure TRubyMania.times(const IterBody: TProc);
var
  i: Integer;
begin
  for i := 0 to Self-1 do
    IterBody(i);
end;

begin
  5.times(
    procedure(i: Integer)
    begin
      Write(i, ' ');
    end
  );
end.

It also shows why I hardly use anonymous methods in Delphi: they’re way too verbose.

–jeroen

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Event, Software Development | 1 Comment »

Detecting the use of “curl | bash” server side | Application Security

Posted by jpluimers on 2016/04/20

From the “let people know when they are stupid” department:

Another reason not to pipe from curl to bash. Detecting curl | bash serverside.

Source: Detecting the use of “curl | bash” server side | Application Security

–jeroen

Posted in Development, Python, Scripting, Software Development | 1 Comment »

Support of import in xsd.exe – Jose Luis Calvo Salanova – Site Home – MSDN Blogs

Posted by jpluimers on 2016/04/20

I tend to forget this: xsd.exe can resolve xs:include, but not xs:import. When using xs:import it will complain about missing types.

Simple solution: reference all imported XSDs (but not included XSDs) on the same command-line:

I was trying to create a C# class with xsd.exe from an schema that imports others schemas like that xsd.exe /c schema.xsd and it fails miserably reporting an error like “The datatype ‘xxx’ is missing.”. Basically xsd.exe doesn’t resolve the schemaLocation attribute.

Dare Obasanjo’s article addresses the problem, and Scott Hanselman had the same problem -and solved it-.

The solution isn’t very nice, but at least it’s simple. You have to tell xsd.exe all the schema referenced, xsd.exe /c schema.xsd importedSchema1.xsd importedSchema2.xsd

Be aware that the C# filename is sometimes generated from all XSD filenames on the command-line (I’ve noticed this when the import is specified before the actual XSD file, if the import is at the end, the name of the import is used.

If my memory serves me right, older versions of XSD.exe could not resolve unix-style relative paths on the command-line, but newer versions do.

–jeroen

via: Support of import in xsd.exe – Jose Luis Calvo Salanova – Site Home – MSDN Blogs.

Posted in .NET, C#, Development, Software Development, XML/XSD, XSD | Leave a Comment »

Positive: Delphi 10.1 Berlin is out; negative all Embarcadero HTTPS sites still vulnerable to DROWN attack

Posted by jpluimers on 2016/04/19

The good news: Delphi 10.1 Berlin is out and released in Berlin (note: you might want to rename Delphi 10 Seattle into Delphi 10.0 Seattle).

Some links:

The not so good thing: I won’t be using it for a while as now for like 6 weeks or so, all the embarcadero HTTPS sites have been vulnerable to the DROWN man-in-the-middle attack that has been discovered 20160301.

Which means that even without going around the non-HTTPS partner site, I won’t be able to make a secure connection and install it.

Which gives me more time to play with the Xamarin Visual Studio 2015 integration, the cool stuff that MvvmCross offers and some of the other .NET Goodness at BUILD 2016 – .NET ALL THE THINGS! | Beth Massi

Read the rest of this entry »

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Development, QC, Software Development, Visual Studio 2015, Visual Studio and tools | 6 Comments »

existing complex XSD types: use xs:complexContent in combination with xs:extension

Posted by jpluimers on 2016/04/19

I tend to forget how to extend existing complex XSD types. It is by using xs:complexContent in combination with xs:extension: Element (complexContent).

A cool thing: xsd.exe supports this when generating .NET code (for instance C#).

More at XSD Tutorial – Part 3/5 – Extending Existing ComplexTypes and SimpleTypes.

–jeroen

Posted in Development, Software Development, XML/XSD, XSD | Leave a Comment »

Continua CI Version 1.8 History – the new features

Posted by jpluimers on 2016/04/14

A new version 1.8 of Continua CI was released earlier this month.

The most interesting tid-bits are at the bottom of the version 1.8 history page, so I post them here as I’m lazy.

New Version 1.8 Features

Dashboard Filtering

We’ve added a new filter box to the dashboard so you can quickly find the configuration that you are looking for as you type.

Shared Resources

You can now limit the number of builds or stages which can access the same named shared resource concurrently. This can be useful if you wish to restrict the number of times a particular tool is run due to a license or memory limit, or to prevent concurrency issues with multiple build stages simultaneously writing to the same file, folder or network resource.

Shared resources can be associated with the server or an agent in the Administration pages. They can have a quota or multiple labelled quotas. Builds can be set up to require server shared resource locks in the Configuration Conditions. Stages can be setup to require agent or server shared resource locks in a new Shared Resource Locks tab on the Stage Options dialog.

Shared resource locks are automatically released at the end of the build or stage which acquired the lock.

Requeue Build

A new Requeue button has been added to the Build view page. This allows you to requeue an existing build using the same changesets, variables and queue options. The build will run for the latest configuration with any changes to stage actions, repositories etc.

A “Build Requeue Options” menu item opens dialog allowing you to change priority, comment and variables before requeuing the build.

Persist Build Variables

Continua CI takes a copy of configuration and project variables at the start of each build. Any changes to these build variables are discarded when the build finishes and cannot be used by other builds. A new Persist Build Variable build event handler allows you to store the value of the build variables as the default value of the configuration variable. The next build will then pick up the revised value for the build variable.

You can specify which build event triggers the variable persistence. You can also specify that the variable should not be persisted if the configuration variable was modified since a particular event. This is important as Continua allows multiple builds to run concurrently and you may otherwise get unpredictable results. We also recommended using shared resource locks in conjunction with this feature with prevent concurrency issues.

Additional Improvements

  • Variable prompt ordering. Variables now have a display order property allowing you to specify the order of variable prompts on the Queue Options dialog.
  • Clone buttons for Triggers, Repositories and Build Event Handlers.
  • Configuration Conditions can now be disabled.
  • Cake build action.

Note : You will need to update your agents after upgrading the server to this build.

Source: Version 1.8 History | Continua CI

–jeroen

Posted in Continua CI, Continuous Integration, Development, Software Development | Leave a Comment »

Visual Studio 2015 Frequently Asked Questions – install size

Posted by jpluimers on 2016/04/14

Visual Studio is a pretty big product and will take over 30GB of disk space after installation

Source: Visual Studio Frequently Asked Questions

LOL. It’s about half the size of recent Delphi versions.

–jeroen

Posted in .NET, .NET 4.0, .NET 4.5, C#, C# 5.0, C# 6 (Roslyn), Delphi, Delphi 10 Seattle, Delphi XE8, Development, Software Development, VB.NET, Visual Studio 2015, Visual Studio and tools, Xamarin Studio | 4 Comments »

Annoying: Visual Studio 2010+ by default open XSD files in a Designer view

Posted by jpluimers on 2016/04/14

It is pretty easy to switch from the XSD Designer to the Code view: c# – Viewing XSD as code – Stack Overflow.

 

But I got a bit fed up of doing this each and every time after opening an XSD file in Visual Studio.

It turns out there is a default for that which is a bit hidden away: in the File Open dialog. There,

right click on an XSD file, choose “Open with…” and select the appropriate option – then click on “Set as Default” before you actually open it.

via Stop Visual Studio 2010 opening XSDs in design mode – Stack Overflow.

–jeroen

Posted in Development, Software Development, Visual Studio 11, Visual Studio 2010, Visual Studio 2013, Visual Studio 2014, Visual Studio 2015, Visual Studio and tools, XML/XSD, XSD | 1 Comment »