Conclusion:
- Web Installer = new installer, but forgets some Active X parts
- ISO Installer = old installer, but works fine
–jeroen
Source: Anyone that installed D10.1 had the new installation dialogs that Embarcadero…
Posted by jpluimers on 2016/04/22
Conclusion:
–jeroen
Source: Anyone that installed D10.1 had the new installation dialogs that Embarcadero…
Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 10 Comments »
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 »
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
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 »
Posted by jpluimers on 2016/04/21
XSD enumerations are nice as they can be used to restrict simple XSD types to a set of values.
But they can also be hard if the set changes over time: restricting further is not possible, but extending isn’t always easy either.
Some interesting links:
–jeroen
Posted in Development, XML/XSD, XSD | Leave a Comment »
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 »
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 »
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:
- Bug fix list.
- What’s New – RAD Studio.
- From the 10.1 What’s New (thanks David Heffernan):
- To enforce visibility semantics, class and record helpers cannot access private members of the classes or records that they extend.
- Lots of Berlin downloads:
- 30507 RAD Studio 10.1 Berlin Web Install.
- 30522 BDE Installer for RAD Studio, Delphi, C++Builder 10.1 Berlin.
- 30521 RAD Studio 10.1 Berlin FireMonkey Accessibility Pack.
- 30515 GSA accounts: RAD Studio 10.1 Berlin ISO.
- 30514 Delphi and C++Builder 10.1 Berlin ISO:
- 30491 FireMonkey Premium Styles Pack for RAD Studio 10.1 Berlin.
- 30492 VCL Premium Styles Pack for RAD Studio 10.1 Berlin.
- 30510 RAD Studio 10.1 Berlin ISO (incl. Delphi and C++Builder) (same ISOs as above).
- 30509 RAD Studio 10.1 Berlin (incl. Delphi, C++Builder)-30 day trial.
- 30499 IP*Works for C++Builder 10.1 Berlin.
- 30498 IP*Works for Delphi 10.1 Berlin.
- 30500 FastReport VCL 5 for RAD Studio, Delphi, C++Builder 10.1 Berlin.
- 30507 RAD Studio 10.1 Berlin Web Install.
- 30501 FastReport FMX for RAD Studio, Delphi and C++Builder 10.1 Berlin.
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
Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Development, QC, Software Development, Visual Studio 2015, Visual Studio and tools | 6 Comments »
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 »
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 »