Just for my own record, a link clearance of WinRT in relation to Delphi.
I amended this a couple of time already, will try to do so over time: Read the rest of this entry »
Posted by jpluimers on 2012/08/25
Just for my own record, a link clearance of WinRT in relation to Delphi.
I amended this a couple of time already, will try to do so over time: Read the rest of this entry »
Posted in Delphi, Development, Software Development, WinRT-with-Delphi | Tagged: c runtime library, marc hoffman, nick hodges, software, stack overflow, technology | 3 Comments »
Posted by jpluimers on 2012/08/24
Now for some lighter Delphi XE3 related stuff:
These icons seem to go very well with the Metropolis UI Applications that you can create (and convert from VCL!) with Delphi XE3 (see the XE3 video at 0:30).
–jeroen
via:
Posted in Delphi, Delphi XE3, Development, Software Development, UI Design | 2 Comments »
Posted by jpluimers on 2012/08/23
I hope I read these mobile and iOS parts of the XE3 and beyond : A look at mobile post by John Ray “JT” Thomas correctly: Read the rest of this entry »
Posted in Delphi, Delphi XE2, Delphi XE3, Development, Software Development | 7 Comments »
Posted by jpluimers on 2012/08/21
Every so often, I come across a pearl that I hand’t read before. This time I was looking for the source of “nothing is more permanent than a temporary solution”, and somehow came across the book 97 Things Every Programmer Should Know.
It is full of interesting concepts phrased in easy to read chapters on important things like “Code in the Languae of the Domain“, “Don’t Repeat Yourself” and many (95 <g>) others.
For a small introduction, read the PDF presentation extract, and the 97 things website.
–jeroen
via: 97 Things Every Programmer Should Know – Programmer 97-things.
Posted in .NET, Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2012/08/15
A few weeks ago, Bill Karwin did a must watch webinar on the prevention SQL Injection titled “SQL Injection Myths and Fallacies“.
Bill Karwin (twitter, new blog, old blog, Amazon) is famous for much work in the SQL database community, including InterBase/Firebird, mySQL, Oracle and many more.
He also:
Anyway, his webinar is awesome. Be sure to get the slides, watch the replay, and read the questions follow up.
Watching it you’ll get a better understanding of defending against SQL injection.
A few very valuable points he made: Read the rest of this entry »
Posted in .NET, .NET 3.5, .NET 4.5, .NET ORM, ASP.NET, Batch-Files, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C++, Cloud Development, COBOL, CommandLine, Database Development, Delphi, Delphi for PHP, Delphi x64, Delphi XE2, Development, EF Entity Framework, F#, Firebird, FireMonkey, History, InterBase, iSeries, Java, JavaScript/ECMAScript, Jet OLE DB, LINQ, LLBLGen, MEF, Microsoft Surface, Mobile Development, PHP, PowerShell, Prism, Scripting, SharePoint, SilverLight, Software Development, SQL, SQL Server, SQL Server 2000, SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 7, VB.NET, VBS, Visual Studio 11, Visual Studio 2002, Visual Studio 2003, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio and tools, Web Development, Windows Azure, WinForms, WPF, XAML, xCode/Mac/iPad/iPhone/iOS/cocoa | 1 Comment »
Posted by jpluimers on 2012/08/14
Last week I posted an in depth answer on StackOverflow.com about the memory allocation difference in Delphi and Fortran, or more accurately in two different kinds of languages.
You have:
A very important aspect is the order of for optimized loops. For column major order, the optimum is inside out (as the inner arrays/records are in consecutive memory locations), but for row major order, it is the exact inverse.
One of the consequences is that in Fortran it is a very fast operation to pass an array of inner fields as parameter to a method.
This is what I wrote: Read the rest of this entry »
Posted in Delphi, Delphi 2007, Delphi 2009, Delphi 2010, Delphi for PHP, Delphi x64, Delphi XE, Delphi XE2, Development, Fortran, Software Development | 4 Comments »
Posted by jpluimers on 2012/08/07
Now that the there are RadStudio XE3 demos available at SourceForge.net Repository – [radstudiodemos] Index of /branches/RadStudio_XE3, and a post on a Delphi Event in New Zeeland rumours of an eminent Delphi/RAD Studio XE3 version start to raise.
It is fun to watch the activity stats on the SourceForge project RAD Studio Demo Code and correlate them to the Delphi release and update dates.
I made PNG images of two graphs. Click on them to enlarge, or click on the links to get to the statistics pages.
Note that when the span is wide enough, activity gets summed to the start of the month (first picture).
| Project Statistics: RAD Studio Demo Code – from 2009-10-01 until 2012-10-01. |
Project Statistics: RAD Studio Demo Code – from 2012-07-15 until 2012-08-15. |
![]() |
![]() |
The real fun is the correlation with the Delphi Release Dates – Delphi Programming and the Delphi update dates from the Delphi Registered User Downloads.:
| Year-Month | Date | Delphi/ RAD Studio version |
Release/Update |
| 2009-12 | 2009-12-14 | 2010 | Update 4/5 |
| 2010-08 | 2010-08-30 | XE | Release |
| 2011-07;2011-08 | 2011-09-02 | XE2 | Release |
| 2011-11 | 2011-11-01 | XE2 | Update 2 |
| 2012-04 | 2012-05-18 | XE2 | Update 4 + Hotfix |
| 2012-07 | 2012-??-?? | XE3? | Release? |
–jeroen
via: RAD Studio Demo Code | Free software downloads at SourceForge.net.
Posted in Delphi, Delphi 2010, Delphi XE, Delphi XE2, Development, Software Development | 5 Comments »
Posted by jpluimers on 2012/07/31
Just in case you come across this error ([WayBack] QC 108189):
[DCC Error] CompilerAVUnit.pas(26): F2084 Internal Error: AV21BCE0AC-R00000000-0
I had this error in a really complicated unit that I tried to backport from Delphi XE2 to Delphi 2007 (as there was some non-unicode compliant app that needed this).
I could not find it searching for F2084 Internal Error, so I sat down and trimmed it down to the CompilerAVUnit below.
The workaround is simple: remove the static; from method Outer and it compiles fine.
I will post more details on the static keyword in Delphi in a future blog post. For now I’ll keep it at this: Read the rest of this entry »
Posted in Delphi, Delphi 2007, Development, F2084, QC, Software Development | 8 Comments »
Posted by jpluimers on 2012/07/10
Though the sample question is in C#, it applies to almost any language and framework: for relatively simple checks like IsHex(), you can go the RegEx way, or the compound if-statement way.
Which kind of function do you like most?
I’m not only interested in the percentages, so let me know in the comments why.
–jeroen
PS: if you want to use RegEx in .NET, you can compile them to IL, but be very cautious for the compilation overhead.
Posted in .NET, C#, COBOL, Delphi, Development, JavaScript/ECMAScript, PHP, RegEx, Scripting, Software Development, VB.NET | 8 Comments »
Posted by jpluimers on 2012/07/05
Recently I was asked to investigate a performance problem with a certain .NET application.
The first error I got when getting the app to build in Visual Studio 2010, and then run it was like this:
System.ComponentModel.InvalidAsynchronousStateException was caught
Message=An error occurred invoking the method. The destination thread no longer exists.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.Control.WaitForWaitHandle(WaitHandle waitHandle)
at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at UI.Splash.SetStatus(String status) in C:\...\Splash.cs:line 395
at UI.Menu.Main() in C:\...\Menu.cs:line 4275
InnerException:
Someone built their own splash logic with multi-threading.
Funny that today, this got answered on StackOverflow by [WayBack] mgie: [WayBack] multithreading – TMonitor synchronization / Application.ProcessMessages – Stack Overflow.
Though that is a Delphi link (and points to the nice libraries [Archive.is] AsynCalls and [WayBack] OmniThreadLibrary), the most important link it contains is to [WayBack] Borland Newsgroup Archive :: borland.public.delphi.internet.winsock :: Re: Disconnect TIdHttp in thread.
That sounds like a Delphi link too, but the subtitle “‘Ways to get into avoidable trouble with threads, V1.2′” hints the essence: it is a post that describes in an environment-agnostic way how to avoid multi-threading problems.
Recommended reading!
Anyway: Building multi-threaded code is hard. Even harder fleshing out all the corner cases and potential error conditions.
No matter what kind of programming environment: If you have not done lots of multi-threaded programming, then please don’t do it yourself: go ask someone that does know how to do it. Or better, try to avoid it.
I try to let libraries to the handling of multi-threading for me, if I use multi-threading at all, as others are far better at this than I am.
–jeroen
Posted in .NET, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Conference Topics, Conferences, Delphi, Development, Event, Java, Software Development, VB.NET, VBS, Visual Studio 2010, Visual Studio and tools, WinForms | 6 Comments »