Since Ondrej is not yet on DelphiFeeds yet:
–jeroen
via: Ondrej Pokorny – Google+ – My second attempt on “AnsiString on mobile”. It features….
Posted by jpluimers on 2014/04/16
Since Ondrej is not yet on DelphiFeeds yet:
–jeroen
via: Ondrej Pokorny – Google+ – My second attempt on “AnsiString on mobile”. It features….
Posted in Delphi, Delphi XE4, Delphi XE5, Delphi XE6, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/04/16
Once every while, one of your StackOverflow answers gets an edit suggestion that is really valuable.
This case it was Edwin Yip who suggested to emphasize the difference between TStringBuilder and TStringList (adding characters versus lines).
Too bad that freshly 10k user Makoto showed he hates bold emphasis, intentional property casing and post signatures by removing the added value (there is so much emphasis he could remove on other answers to warrant at least a day time job).
I know that not all emphasis is welcomed at StackOverflow, but in this case I think it added real value.
So I edited my own answer to add even more value: showing the idioms I use for building strings, and now it is time to quote it: Read the rest of this entry »
Posted in Delphi, Delphi 1, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/04/15
Today I learned that each Google Group has RSS and ATOM feeds. That allows you to add them to Feedly (a great online RSS reader that won a lot of market share when Google Reader got ditched).
This is how you do it (I’m using the Spring4D group as an example).
–jeroen
Posted in Delphi, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Google, GoogleGroups, Power User, Software Development, Spring4D | 7 Comments »
Posted by jpluimers on 2014/04/15
Interesting: didn’t see this on the Embarcadero site yet, so the announcment of Welkom RAD Studio/Delphi/C++Builder XE6! by Barnsten B.V. – Google+ is a bit surprising.
Edit:
Given the XE6 webinar on the 16th (that is tomorrow!), it wasn’t that surprising, but in my memory those webinars usually were before the product became actually available.
Barnsten was a tad bit faster than me picking up these two posts that had the official announcemts:
So here are some of the Embarcadero.com links for XE6: Read the rest of this entry »
Posted in Delphi, Delphi XE6, Development, Software Development | 1 Comment »
Posted by jpluimers on 2014/04/10
On turning W1025 into an error [WayBack] Why is “W1025 Unsupported language feature: ‘custom attribute’ “only a warning?… – mezen – Google+:
+Fabian S. Biehn This question has been answered by Nick already.
However you don’t need to turn it on in ALL projects. You change it in the base configuration, tick the Default checkbox in the bottom left corner of the settings dialog and from then on every new project will have this warning treated as error. However for existing projects you have to change it retrospectively.
You can even pass this option to the commandline compiler as explained here: http://stackoverflow.com/a/360947/587106
[WayBack] compiler construction – Delphi 2009 where is the ‘treat warnings as errors’ option? – Stack Overflow
On a related note, if you are using the command line compiler (DCC32.exe) the switch is-W^to have warnings treated as errors. If you are using this, it’s important to note that the default command shell in Windows (cmd.exe) treats the caret (^) as an escape character, so you have to use-W^^instead if you are executing the compiler directly from the command line, a batch file or even the from the Pre-Build or Post-Build events in the IDE.It’s also worth mentioning that you can have only certain warnings treated as errors. The switch to do this on the command line would look something like this:
-W^^WARNING-NAME. You would substitute the string that is associated with the warning you are wanting to have treated as an error.
The point about
-W^being problematic within BAT files is a good one. Using-W^^works if you are modifying the compile line directly. Otherwise, I found that using surrounding double quotes"-W^"works, for example when building an env var that contains all compiler parameters, that env var being subsequently passed to dcc32.exe. Tested with XE, XE2, XE3, XE4.SET CompilerParams=-B -M "-W^" -U"..\Source;%dcuoutdir%;%DUnitPath%" -I"..\Source\inc" "-N0%dcuoutdir%" -DDebugMode "%dcc%bin\dcc32.exe" %FuTFolder%ADDTests.dpr %CompilerParams% -U"%FuTSource%" %ExtraPath32%>%DCCLogFilename% if errorlevel 1 %Alerter% %DCCLogFilename%
–jeroen
Posted in Delphi, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2014/04/10
I just discovered that almost 2 weeks ago, the FastMM code repository added support for these defines in Mac OS X in Commit [r67].:
This is great news!
Note: this is not a full FastMM release, but since the original change by Sebastian Zierer has been done about half a year ago, the code is pretty stable.
Thanks mnasman for mentioning this on Delphi Redit, and Ralf Stocker for announcing this in the Non-Tech newsgroup.
–jeroen
Posted in Delphi, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, FastMM, Software Development | 2 Comments »
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
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 »