Just in case his blog is not yet on DelphiFeeds, there is this interesting post by Stefan Meisner – Google+ – DDDebug Memory Profiler heading towards 1.0 Version.
–jeroen
Posted by jpluimers on 2014/04/09
Just in case his blog is not yet on DelphiFeeds, there is this interesting post by Stefan Meisner – Google+ – DDDebug Memory Profiler heading towards 1.0 Version.
–jeroen
Posted in Delphi, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/04/09
ASCIIFlow.com: Brilliant!
And from the comments PlantUML which generates UML diagrams from text, of which the sequence diagrams can also be generated as ASCII (the others only as images).
Finally there is ditaa which goes from ASCII diagrams to images. The complete circle is done (:
--jeroen
via: Ilya Grigorik – Google+ – Need to draw an ASCII diagram? ASCIIFlow is awesome:….
Posted in ASCII art / AsciiArt, Development, Diagram, Fun, LifeHacker, PlantUML, Power User, Software Development, UML | 2 Comments »
Posted by jpluimers on 2014/04/09
Just bumped into this Big Ball of Mud article by (another) Jeroen on software (this Jeroen is Jeroen De Dauw).
It is a very nice article with annotations on the (very old, but still very prevalent Big Ball of Mud design pattern of which a lot of software projects suffer).
I didn’t know about the design pattern yet, but have seen it in so many places, and even helped quite a few of them to become less big, and contain less mud. If the article and paper are tool long, you can read a WikiPedia BBM abstract.
I’m glad that the .NET/Delphi based suite of projects I landed on recently – though containing quite a bit of legacy – is different. Still a lot of improvements to be made, but it is very manageable.
–jeroen
Posted in .NET, Delphi, Development, Software Development | Tagged: jeroen | 1 Comment »
Posted by jpluimers on 2014/04/09
Interesting read:
In other words: any language that merges null behaviour in the underlying storage will have a problem somwehere.
So if you want to have true nullable types, your null flag should be stored outside the underlying storage.
The .NET framework 2 and up, most database management systems and many other environment support that.
But most languages don’t support it for pointer types. So there will be portions of address spaces either inaccessible, or only accessible when skipping the null pointer checks.
Note that the thread above contains some very interesting bits, for instance this one:
Matt 28 Mar 2013 5:58 PM #
@MarkY “Dereferencing null is undefined? Cool! I thought it was guaranteed to crash, just like a false assertion or something. So crashing is the OS guarantee, not the language guarantee apparently.”
Nope. It’s not an OS guarantee either. The OS won’t ever normally allocate memory at address zero, but there’s nothing to stop you telling it to. Try doing “VirtualAlloc(1, 4096, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE)” on your pre-Windows8 machine.
In fact, this is the reason why null-dereferences in kernel mode are often exploitable as elevation of privilege attacks. The null-page is mappable and within the user-addressable region of memory, so if the kernel dereferences a null pointer, it reads attacker controllable data.
And btw, this is the reason why on Linux and Windows8+ you can’t map the null-page.
–jeroen
Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, Borland C++, Borland Pascal, C, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C++, C++ Builder, Database Development, Delphi, Development, Pascal, Quick Pascal, Software Development, Turbo Pascal, VB.NET, VB.NET 10.0, VB.NET 11.0, VB.NET 8.0, VB.NET 9.0 | Leave a Comment »
Posted by jpluimers on 2014/04/08
Eric Grange (author of DWS) asked for some interface magic: delphi – Obtaining a sub-interface from an interface – Stack Overflow.
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/04/08
Recently I pushed two sets ofchanges for Spring4D with packages and test projects that support Appmethod. The test projects are configured to use Firemonkey (conditional define FMX) as that is what Appmethod is centered around.
This weekend I filed Appmethod issue AP-64 that prevents Spring4D and other open source projects to automatically build the underlying projects. Since the new Quality site does not (yet?) make reports on public reports visible to the public, the full report is at the end of this post.
The issue comes down to that Embarcadero has intentionally made the command-line compilers dysfunctional. They are there, but – as you see when running this small batch file – they all will display “
This version of the product does not support command line compiling.“. It makes it impossible for open source projects to just distribute the sources, and ship a small build tool that builds and installs the compiled binaries into the available products. So this issue doesn’t only affect Spring4D. The large JCL open source project also requires the command-line compilers.In the past, only some free or trial products came without the command-line compilers, and I personally am anxious why the command-line compilers were crippled. On the other hand – even though the compiler DLLs list themselves as version 19.50, the functionality in Appmethod basically is the same as in RAD Studio XE5.
The Spring4D team regrets the lack of command-line compiler support in Appmethod. We really hope this restriction is removed soon, preferably in this version, but – since the docteam is prepping for XE6, Delphi XE6 is around the corner (the first XE6 webinar is in slightly more than a week from now) and Appmethod is based on the most recent Delphi version – in a future version.
We could go the long path of encapsulating the DLL versions of the compilers, but those do not have a public API. Reverse engineering that would cost a lot of effort, which we’d rather put into enhancing Spring4D.
If Another thing we could do – if we’d get the compilers, or Embarcadero would build the Spring4D sources with them – is provide precompiled packages for every Appmethod version. We’d rather not do that either because of the exact same reason: extra effort that we’d rather spend on other Spring4D things.
So for now, the Spring4D team keeps the Appmethod support as is. If there are people interested, they can manually compile and install the packages and test projects from within the IDE.
–jeroen
| for /f "usebackq tokens=2* delims= " %%c in (`reg query HKEY_CURRENT_USER\Software\Embarcadero\BDS\13.0 /v RootDir`) do ( | |
| dir "%%d\bin\dcc*.exe" | |
| for %%c in ("%%d\bin\dcc*.exe") do %%c | |
| ) |
Full bug report: Read the rest of this entry »
Posted in Appmethod, Delphi, Development, Software Development | 4 Comments »
Posted by jpluimers on 2014/04/08
The fixed OpenSSL 1.01g is already available in source and for many platforms.
When do they become available anyone using OpenSSL 1.01 or 1.02 must deploy the patched version as fast as possible.
You also need to have all your certificates re-issued.
During the vulnerability period, your private keys may have been exposed, and there is no way to tell that they were not exposed.
Note the official binaries for Win32 1.01g are not available for yet (expect them soon), but the Indy team made Win32 and Win64 versions available.
Note that OpenSuSE did a backport of the patch to 1.01e for 12.3 and 13.1. Older openSuSE versions do not have updates for this issue, but you want to upgrade anything lower than 0.98 as they contain serious other vulnerabilities.
–jeroen
via
Posted in *nix, Delphi, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Linux, OpenSSL, openSuSE, Power User, Security, Software Development, SuSE Linux | 7 Comments »
Posted by jpluimers on 2014/04/06
Last week, David M Williams posted a nice question on how can I embed an mp4 video into a Firemonkey app.
The resolution – using the Deployment Manager and TPath – was remarkably simple based on my suggestion:
That depends on your platform. Windows can embed and extract resources in your EXE. On other platforms that is either hard or impossible. I’d just deploy the mp4 with your app. `TPath` has some really nice methods to get you directories (Home, Documents, etc) in a platform neutral way, and to combine directories and filenames to form a full path name.
he went along and this was his solution:
Under Project/Deployment I add the MP4 file, then set the MediaPlayer filename property using TPath.
–jeroen
via: David M Williams – Google+ – Seeking some help – how can I embed an mp4 video into a….
Posted in Delphi, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | Tagged: David M Williams, Deployment Manager, mp4 | Leave a Comment »
Posted by jpluimers on 2014/04/05
A while ago, I had to disable a couple of warnings from legacy code so I could first perform the Unicode conversion, then make time to eliminate the actual warning cause.
This post was much helpful here:
Marc’s Blog: Delphi XE2’s hidden hints and warnings options.
He lists all the W#### and X#### warnings he could find in Delphi XE2 (XE3, XE4 and XE5 more or less have the same), including the mapping to the equivalent directive IDs used inside these blocks:
{$WARN SYMBOL_DEPRECATED ON}
{$WARN SYMBOL_DEPRECATED OFF}
{$WARN SYMBOL_DEPRECATED DEFAULT}
{$WARN SYMBOL_DEPRECATED ERROR}
I also learned that the DEFAULT value restores an option to what you specified in the project settings.
–jeroen
Posted in Delphi, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Encoding, Software Development, Unicode | 11 Comments »