Making Sense of the Whole Delphi WinRT Thing

I'm not one of the "Low-Level" "Deep-Inside" Delphi smart guys. I'm just an average software developer who uses Delphi to create simple applications I sell to other average people. Oh, I learn a lot hanging around the smart guys but I seem to get lost when the discussions and comments take a deep dive. It's no doubt that Allen Bauer's post created quite a stir around the community and the new release of XE3. I've tried to make sense of all the buzz going back and forth but at one point it just got way over my head. Since I am just a Micro-ISV, I am looking for a simplistic answer to what this whole Delphi - WinRT crap is all about and I think I have figured it out. I posted this on the Delphi Developer group on Facebook: I've been trying to follow all the talk about what is going on with Delphi and WinRT ever since Allen Bauer's post went viral. I'm not as smart as most of you Delphi guys. Can someone please explain in very simplistic terms what it means when Delphi either can't or is excluded from creating WinRT apps? How does this effect a Micro-ISV like myself in terms of distribution and sales? I received this response... For example, you will probably not be able to sell your app through the MS Application Store, which could really hurt your exposure to prospective new customers. Okay. So I started googling Microsoft App Store and discovered a couple interesting tidbits. I started off reading a post by George Ou called ARM Battery Life Advantage Myth Lives On This lead me to a post by Steven Sinofsky called Collaborating to deliver Windows RT PCs Which lead me to another post by Steven Sinofsky called Building Windows for the ARM processor architecture Here is what I think is going on and how it effects me and you who sell software to the average consumer. Microsoft is leading a push to compete directly with the iPad. So, Microsoft invented a new operating system called WOA or Windows on ARM which in my opinion is a Reduced Instruction Set Computer. This new operating system is a subset of Windows 8 and will be available on the new WinRT PC's soon to be released. It sounds like WinRT PC's (I'd prefer they were called tablets) are a separate line of personal computers designed to compete directly with the iPad market. No disk drive, no expansion slots, one or two USB ports and completely mobile. Which requires a long life battery, hence the first post I sited above. These devices will be RISC (Reduced Instruction Set Computers) running the WOA which includes WinRT. This limits the applications to only those applications that conform to the WinRT subset of instructions. All other Non-WinRT PC's will come with a full blown Windows 8 OS in addition to the scaled down WOA running WinRT. This lets you run all the currently developed Windows Applications (those created using Delphi) and any of the new applications that conform to the WinRT subset of instructions. What does all this mean to you and I... Given that the WinRT PC's (I'd prefer they were called tablets) have a subset of the real Windows 8 OS, the only way to install software on these machines will be through the use of the Microsoft App Store. Since Microsoft controls this store they will make sure that any app in the store will run without problems on the new WinRT machines. The bottom line, we (Delphi developers) will still have a huge user base availabe to us. Not everyone will flock to these new WinRT PC's (I'd prefer they were called tablets). When EMBT finally does get the details worked out and makes it available to us... we can retool, recompile and look forward to a windfall of new WinRT customers. Enjoy - Semper FiGunny Mike
Read More

Flotsam and Jetsam #62

  • Okay, so it looks like the release of Delphi XE3 is imminent.  My friend Tim Del Chiaro (the Delphi Insider) has announce the World Tour for the release.  The official page is here.  Tim also mentions something about a new product “HTML5 Builder”.  That sounds interesting.
  • JT, the Product Manager for RAD Studio, has a blog post with more info. I’ve not dabbled much in mobile development yet, so the most interesting part was “by adding memory management features such as automatic reference counting” – that’s very intriguing.  This could add a whole new dimension to the great FreeAndNil debate
  • I’m always looking to sell stuff on ebay – so when I put in my new ASUS RT-N16 router, I thought I’d sell the old one.  Apparently, I’m not the only one doing that, as the router that Comcast gave me is worth only about 15 dollars, if that.  They are $40 at Amazon. Oh well.    I was hoping it was worth a bit more.  But hey, $15 is a lot of money, right?
  • I think I’ve said at least 453 times how much I love FinalBuilder.  So I’m always happy to pass along good news about what the folks at VSoft are up to.  Their latest is a very intriguing product called Continua CI, recently released in beta.  It’s a follow on to their FinalBuilder Server product.  I say “follow on” and not “upgrade” because it looks to be something quite a bit different and improved. Robert Love has a good write-up on it as well.    We here at Gateway Ticketing currently use Jenkins in concert with FinalBuilder, but if the licensing for Continua is favorable, it might be something for us to consider.  In any event, I always recommend looking at anything at all from the fine folks at vSoft Technologies.

Read More

Read More

Flotsam and Jetsam #61

I’ve never been a hardware or network geek, but after I read this post by Jeff Atwood about how easy it was to set up custom firmware on a router a few notches above the “cheap one they basically give you when you sign up for cable internet”, I thought that I might try it some day.  I put the Atwood-recommended Asus RT-N16 on my Amazon wish list, and lo and behold, my parents kindly gave it to me for my birthday in July.  I actually left it sitting on the shelf for a few weeks, unsure if I really wanted to use it until a friend at work told me about Ooma.  Ooma is a phone service that works over your internet connection.  It’s not true VOIP, but similar.  Once you buy the device and get it set up, you basically get free phone service (I guess you pay some taxes or something each month, but only like $4 or something).  The Ooma should save me $50 a month.  Nice.  Anyway, if you have an Ooma, you really need a router that supports Quality of Service so that your phone calls don’t get aced out when your 13 year old starts downloading some huge game or something.  So today, I broke out the router, and used these instructions to flash the firmware on the Asus router, and now I’m up and running with TomatoUSB.  Very cool.   My next step is to buy the Ooma box and get that set up.  I’ll keep you all posted, as I know that you are eager to be updated on every single little thing I do. You know, I just love all the stuff that the folks at DevJet are doing.  First, they are the impetus behind the Delphi Spring Framework, which as far as I am concerned you should treat like part of the Delphi RTL, as well as the really cool tool Documentation Insight.  Now they have release a new product that is the mirror to Documentation Insight – Documentation Generator.   You can pre-order it for 30% off, too.  What does it do?  Well, it takes all those great /// comments/documentation you wrote using Documentation Insight (which, by the way, is bundled with Delphi XE2) and turns it into online content.  For instance, here is the documentation for my HTMLWriter project.  And of course, all the documentation for the Spring4D project is online as well.  Nice. There are some interesting Delphi book projects in the works: According to Anders, Graeme Chandler is writing a FireMonkey ebook due out at the end of the month.  Not a lot of details, but intriguing. Chris Rolliston has written a book called Delphi XE2 Foundations and it’s for sale right now on Amazon.  There are two different editions, and here’s the Table of Contents.  Nick’s Opinion of the Week:  I think that if someone wants to open source their software, then they should do so.  And if they don’t want to open source their software, then they shouldn’t. And if you have a different opinion than the author of the software, then you should express it respectfully.  If your “advice” isn’t taken, then you should leave it be.  Just sayin’. 
Read More

Native controls for FireMonkey – the KickStarter project needs your help

FireMonkey does not mimic native controls perfectly, especially on OSX.  This is simply because all its controls are implemented fully in FireMonkey, and so all behaviour has to be coded - and it is very unlikely to ever get an implementation that is indistinguishable from the platform-native controls.  Platform-native is important. But, what if there was a library of native FireMonkey
Read More

Flotsam and Jetsam #60

Hey, Flotsam and Jetsam is back!  It’s been a while.  Sorry. The folks at Helpinator are running a Absolutely Insane FireMonkey Demo contest.  I say you should give it a try. Jason Southwell has an interesting project going over at KickStarter – NakeyMonkey.  Cool idea.  I’ve heard about Kickstarter, but never really seen it in action. I love the idea – great way to spread the word about good ideas.  Not all good ideas need $15 million in venture capital.   Perhaps you want to get in on the ground floor of the project? Okay, only like two real items, but we will take what we can get for the first Flotsam and Jetsam in quite a while, eh?
Read More

Embarcadero – Clang and LLVM

Recently Tim Anderson reported that Embarcadero was going to be using the Clang Compiler in the Rad Studio.   When word broke about Embarcadero using LLVM with Delphi I was quite pleased.   I had been playing around with LLVM learning its IR for quite some time and it is a great tool for most any development language.    However, knowing that they have based there C++ work on the the Clang Compiler is very pleasing to me.    Clang is a very nice C/C++/Objective-C Compiler.Benefits of the Clang Compiler  Complete support for C++98 and nearly complete support for C++11 StandardsGood platform for building Source Level Tools The Default Compiler in XCode on Mac OS XCan compile FreeBSD and is the Default CompilerCan compile the Boost C++ LibrariesIt can be easily embedded into any application as it designed to be a libraryThe API is built with tooling and IDE integration in mind.Good Error MessagesBetter performance that GCCUse of the LLVM Core libraries (The Compiler back-end) Some of the Benefits of LLVM (I really don't do it justice with my small list)Target-Independent Code Generator with production level support for the following processors.  (Although not all features are supported on each processor)X86ARMSparcPowerPCHexagonMipsJIT Support with an optional command line tool  (lli) to run LLVM bitcodeOptimizer has many Optimizations with a plug-able infrastructure to add additional optimization'sOptional Support for implementing Garbage CollectionGood set of ToolsIt well documented.All of this makes me wonder how much of other things from LLVM that they may end up using all or part of  as  LLDB, KLEE, or VMKitNow which features of clang and llvm will be exposed in the Embarcadero tool chain is not know yet.   But it's nice to know that there is a good foundation they are building on.    I guess it might be time to sign up for Priority Preview Access to see this in action.
Read More

It’s That Time Again: Gateway Ticketing Needs Delphi Developers

My company, Gateway Ticketing, is hiring again. We are looking for Delphi developers. Actually, having Delphi skills is great, but we are mostly interested in smart people that know what they are doing when developing high-quality software.  We love Delphi and C#, but in the end, those are just languages and we know that it doesn’t ultimately matter what tool you know, but whether you really know how to write clean code. Here are some reasons why you should consider working for Gateway: We are a great place to work.  I love it here.  That this is a great place to work was so obvious to me that I moved my whole family clear across the country to join this team.  We are serious about being serious about software development.  We aren’t messing around here.  While we have a large legacy code base, we are all about doing the right thing the right way with the right tools.  We insist on unit tests for your code.  We insist that you keep up with the latest innovations in writing code.  We insist that you view coding the same way that Rembrandt viewed painting.   We love Delphi, and we live and  breathe it here.  We are doing cool things like using the Delphi Spring Framework, Dependency Injection, Unit Testing, and other fun stuff. We use C# and ASP.NET for our eCommerce solution and all the cool stuff that goes along with that. We are located in beautiful Boyertown, Pennsylvania.  This a great place to live and raise a family.  We are close to everything (including Philadelphia) but have that great small town feel.  I love living here, and you will too. Our customers are some of the greatest and most fun places on earth.  We sell systems to the largest amusement parks, zoos, water parks, and museums all over the world.  This is a cool industry.  Who doesn’t love a good amusement park? Okay, look – everyone says they want to hire “rock-star developers”.  Shoot, even we do it.  That’s all well and good, but the bottom line is that we are setting our standards really high.  And if doing that scares people off, well so be it.  We don’t want people who are scared off by high standards.  We want people who are looking for places with high standards.  We expect and demand your very best – anything less and you should find a job writing VB6 code. ;-) We really are creating a world-class place to build software, and we want folks like you to be a part of it.  You are up for that, right? Relocation assistance is available. And of course, here are the obligatory caveats.  We are definitely looking for people to live and work here in the Eastern Pennsylvania/Greater Philadelphia area.  Please note: we aren’t currently considering remote workers.  Naturally, you must be eligible to work in the United States. I'm sorry but right now we cannot sponsor H1B visas. :-(  We don’t care where you are from or who your parents were or what color your dog is or anything like that.  We are really only interested in what you can do.  And of course, we want you to know what we can do for you, too. If that sounds like something good to you, please contact me.
Read More

Different EurekaLog settings for ‘Debug’ and ‘Release’ profiles

This article is supposed to answer on one common question asked by our customers. They want to use different EurekaLog settings for different compilation profiles. Sometimes even no use EurekaLog at all for some specific profile. This article will explain how to do this. Important Note: please see most recent version of this documentation here. Well, first - unfortunately, there is no IDE solution for certain technical reasons. But this doesn't mean that you can't do this. You can't use automatic solution, but you can perfectly set all options manually. For the purposes of this article I will use EurekaLog 7.0.1 and Delphi XE. The discussed features may be unavailable in older versions. Step 1: get working solution for single profile First, I created a new VCL application and place a button to raise exception. Then I go to Project/EurekaLog options, enabled EurekaLog and specified type of my application (VCL Forms). You can also set other options as you desire. Now run the application and confirm it's working as expected. Step 2: reconfigure project for manual control For the next step you should go to Project/EurekaLog options and use "Export" button to create .eof file. Place it in the same folder as your project (by default "Profiles" folder is suggested). Name it as your project + name of your configuration. For example: Project1_Debug.eof. Now, don't close options dialog, but go to Advanced/Custom/Manual and add "DoNotTouch=1" line (without quotes) in any place (as new line). This will disable any assist for your project from IDE expert. Close settings and save your project. You can confirm if option is taking effect by disabling EurekaLog, saving your project and observing that there are no changes in your .dpr file - all units are still included even if no EurekaLog is enabled. Now, it's time to restore post-processing for your application. Go to Project/Options (not EurekaLog options) and look for build events options. Add the following command as post-build event which is invoked on successful compilation: IF EXIST "$(BDS)\Bin\ecc32.exe" "$(BDS)\Bin\ecc32.exe" --el_alter_exe"$(PROJECTPATH);$(OUTPUTPATH)" --el_config"Project1_$(Config).eof" Replace "Project1" with your real project name or change the whole argument to match your .eof file. The $(Config) is a variable, which will be substituted with the name of build configuration - such as "Debug" or "Release" or any other custom configuration name. So, the resulting command-line may look like this when run: IF EXIST "C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\Bin\ecc32.exe" "C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\Bin\ecc32.exe" --el_alter_exe"C:\Projects\Project1.dproj;C:\Projects\Debug\Win32\Project1.exe" --el_config"Project1_Debug.eof" Note that this is an example of final command as it will be executed by IDE. You should NOT use this form of command (with already expanded variables) - please use the first example with $(Config) variable. Note: you can also find the $(Platform) variable useful. It will be replaced with short name of the platform - such as Win32, Win64, OSX. So you can have file like Project1_Win32_Debug.eof and use --el_config"Project1_$(Platform)_$(Config).eof switch. Now compile your project and run it. If you done everything correctly - the result must be the same as on step 1 - the correct EurekaLog-enabled application with expected behavior as set in external .eof file (even though the EurekaLog was disabled in project). In case of any build errors - take a look at compiler output as shown in "Messages" window. It's docked at the bottom of IDE window by default. "Output" tab is near "Build" tab, which is active by default. If you don't see "Messages" window - use View/Messages command to show it, then switch to output window. The correct compilation will get you such messages: Build started 2012.06.29 16:58:04. __________________________________________________ Project "C:\Projects\Project1.dproj" (Build target(s)): Target _PasCoreCompile: C:\program files (x86)\embarcadero\rad studio\8.0\bin\dcc32.exe //-- options cut to save space --// Project1.dpr Target PostBuildEvent: IF EXIST "C:\program files (x86)\embarcadero\rad studio\8.0\Bin\ecc32.exe" "C:\program files (x86)\embarcadero\rad studio\8.0\Bin\ecc32.exe" --el_alter_exe"C:\Projects\Project1.dproj;.\Debug\Win32\Project1.exe" --el_config"Project1_Debug.eof" EurekaLog Command-Line Compiler v7.0.1.0 for Delphi 15.0 ---------------------------------------------------------------- Loading EurekaLog options... EurekaLog postprocessor start... EurekaLog's code was added EurekaLog's options were added EurekaLog's data was added File size before: 2'159'616 File size after: 2'185'216 File size diff: +25'600 Debug info size: 287'554 Symbols size: 58 Functions size: 4 Stripped size: -138'240 Number of units: 209 Number of procedures: 10'136 Number of lines: 28'124 Total time: 00:00:00.639 Compilation time: 00:00:00.026 Prepare time: 00:00:00.015 Post-process time: 00:00:00.597 Events time: 00:00:00.001 Memory usage: Allocated: 7'576'806 RAM: 29'999'104 Private: 27'066'368 Virtual: 105'299'968 EurekaLog postprocessor end Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:01.91 Step 3: configuring alternative profiles Now it's time to set up configuration of alternative profiles (finally). The first thing you need to do - is to decide if you want EurekaLog for this configuration or not. The difference is that you need different project options set for different cases. As well as different unit set. Let's do this one step at time. First, conditional directives. They are not used by EurekaLog, but it will come in handy for your own purposes. So, go to Project/Options and look to Delphi Compiler/Conditional Defines option. Now, if you want EurekaLog for this profile - add "EL" conditional define. If you don't want EurekaLog for this profile - remove EL conditional define. The name of symbol is any text. You can use other name instead of EL. Repeat this step for each profile of your project that you're going to use. Note: currently 7.0.1 removes conditional define with name of "EUREKALOG". I think this should be fixed in the next minor update. Second, the options of the project. EurekaLog requires certain options to be set in order to work. Also, some option may increase or decrease detalization of EurekaLog. So, if you want to use EurekaLog in certain profile - then you have to setup all required options manually. Please, read this article to know what options must be set. For other profiles (in which EurekaLog will not be used) you can set options as you desire, there are no limitations. Third, the included units. Use Project/View source command to open your .dpr file in code editor. You should see EurekaLog units included. If you don't want EurekaLog for certain configurations - then you (probably) don't need to include EurekaLog code. So, you can make this like this: program Project1; uses {$IFDEF EL} EMemLeaks, EResLeaks, EDialogWinAPIMSClassic, EDialogWinAPIEurekaLogDetailed, EDialogWinAPIStepsToReproduce, EDebugExports, EDebugJCL, EAppVCL, ExceptionLog7, {$ENDIF} Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end. Please note that exact included units depends on your selected options. For example, if you set error dialog to "None" - then EDialogXYZ units may be removed. So if you change original options - you may have to include/remove units manually. If you are not very well familiar with EurekaLog 7 - I recommend to create a new application for testing. Setup EurekaLog options and see which unit will be included. Note: you can skip steps 1 and 3 if you want EurekaLog to be enabled for each profile (just with different settings). Note: you can also use EBase unit to test whenever EurekaLog was enabled for your application or not. This unit is specially designed to be included in any application without including EurekaLog's code. Fourth, you have to create .eof file for each configuration profile and save it with corresponding name (such as Project1_Release.eof in our example, but you may use any other naming scheme). Be aware that you also need to create .eof file for profiles with disabled EurekaLog! You need to disable EurekaLog in such .eof files. You can use IDE options dialog: use Import/Export buttons to open/save settings. Or you can use standalone settings editor tool (you can add it to Tools menu for quick access). Note: the result of using IDE expert and settings editor tool is a bit different. IDE expert only saves settings which are different from defaults. Settings editor saves all options. At last - make sure that post-build event that we set in options at previous step is applied for all profiles (you can do this by entering command to Base profile and checking that it wasn't overwritten by another profiles). Now, do a test - switch to different configuration profiles, make a build, run application and test it. Note: it's recommended to make a full rebuild when changing profiles or target platform. Conclusion This article explained the basics of manual control over configuration of your project. I really hope that it's not that hard and that it answers many questions. As a side note - I want to discuss relation between settings and configuration profile names. In classic application: the debug profile has maximum debug options set, and the release profile has minimum debug options set. For applications with exceptions tracers it's different. Exception tracer requires more info than you usually use for debugging sessions (think about "Use Debug DCUs" option). So typically it's reversed now: you want maximum options for release version of your application and medium (moderate) options for debugging. Therefore, you can either swap profiles (i.e. use "debug" profile for the release version of your application) or to completely re-setup options between profiles.
Read More

EurekaLog 7.0.0 is out

We are pleased to announce the availability of the EurekaLog 7.0.0 stable release

Key EurekaLog 7 features:

  • Win64 support
  • FireMonkey support
  • WER (Windows Error Reporting) support
  • WCT (Wait Chain Traversal) support
  • Resource leaks support
  • Memory leaks and catch handled exceptions for C++ Builder
  • Improved stack tracing
  • Proper Unicode support
  • Improved compatibility with packers and protectors
  • Extensive documentation
  • Easy customization
  • Web-API support for FogBugz, Mantis, BugZilla
  • Improved SSL/TLS
  • Implemented A LOT of your suggestions
  • Full backward compatibility with EurekaLog 6
See full features list here (Help / Introduction / Features). 
Full changelog for EurekaLog 7:
·Improved: Main change – EurekaLog’s core was rewritten (refactored) to allow more easy modification and remove hacks.
·Improved: New plugin-like architecture now allows you to exclude unused code.
·Improved: New plugin-like architecture now allows you to easily extends EurekaLog.
·Improved: Greatly extended documentation.
·Improved: Installer is now localized.
·Improved: Greatly speed ups creation of minimal bug report (with most information disabled).
·Changed: EurekaLog’s root IDE menu was relocated to under Tools and extended with new items.
·Added: New examples.
·Added: New tools (address lookup, error lookup, threads snapshot, standalone settings editor).
·Added: Support for DBG/PDB formats of debug information (including symbol server support and auto-downloading).
·Added: Support for madExcept debug information (experimental).
·Added: WER (Windows Error Reporting) support.
·Added: Full unicode support.
·Added: Professional and Trial editions: added source code (interface sections only)
·Improved: Dialogs – new options and new customization possibilities:
·Added: All GUI dialogs: ability to test dialog directly from configuration dialog by displaying a sample window with currently specified settings.
·Improved: All GUI dialogs: dialogs are DPI-awared now (auto-scale for different DPI).
·Added: MessageBox dialog: added detailed mode (shows a compact call stack).
·Added: MessageBox dialog: added ability for asking a send consent.
·Added: MessageBox dialog: added support to switch to “native” message box for application.
·Added: MS Classic dialog: added control over “user e-mail” edit’s visibility.
·Added: MS Classic dialog: added ability to personalize dialog view with application’s name and icon.
·Added: MS Classic dialog: added ability to show terminate/restart checkbox initially checked.
·Added: EurekaLog dialog: added ability to personalize dialog view with application’s name and icon.
·Added: EurekaLog dialog: added ability to show terminate/restart checkbox initially checked.
·Added: EurekaLog dialog: added ability to switch back to non-detailed view.
·Added: WEB dialog: added new tags to customize bug report page.
·Improved: WEB dialog: improved support for unicode and charset.
·Added: New dialog type: RTL dialog.
·Added: New dialog type: console output.
·Added: New dialog type: system logging.
·Added: New dialog type: Windows Error Reporting.
·Improved: Sending – new options and new customization possibilities:
·Added: All send methods: added ability to setup multiply send methods.
·Added: All send methods: added ability to change send method order.
·Added: All send methods: added separate settings for each send method.
·Added: All send methods: ability to test send method directly from configuration dialog by sending a demo bug report.
·Added: SMTP client send method: added SSL support.
·Added: SMTP client send method: added TLS support.
·Added: SMTP client send method: added option for using real e-mail address.
·Added: SMTP server send method: added option for using real e-mail address.
·Added: HTTP upload send method: added support for custom backward feedback messages.
·Added: FTP upload send method: added creating folders on FTP (like remote ForceDirectories).
·Added: Mantis send method: added API support (MantisConnect, out-of-the-box since Mantis 1.1.0, available as add-on for previous versions).
·Added: Mantis send method: added support for custom “Count” field.
·Added: Mantis send method: added options for controlling duplicates.
·Added: Mantis send method: added support for SSL/TLS.
·Added: FogBugz send method: added API support (out-of-the-box since ForBugz 7, available as add-on for FogBugz 6).
·Added: FogBugz send method: EurekaLog will update “Occurrences” field (count of bugs).
·Added: FogBugz send method: EurekaLog will respect “Stop reporting” option (BugzScout’s setting).
·Added: FogBugz send method: EurekaLog will respect “Scout message” option (BugzScout’s setting).
·Added: FogBugz send method: EurekaLog will store client’s e-mail as issue’s correspondent.
·Added: FogBugz send method: added options for controlling duplicates.
·Added: FogBugz send method: added support for “Area” field.
·Added: FogBugz send method: added support for SSL/TLS.
·Added: BugZilla send method: added API support.
·Added: BugZilla send method: added support for custom “Count” field.
·Added: BugZilla send method: added options for controlling duplicates.
·Added: BugZilla send method: added support for SSL/TLS.
·Added: New send method: Shell (mailto protocol).
·Added: New send method: extended MAPI.
·Added: Support for separate code and debug info injection.
·Added: Ability to use custom units before EurekaLog’s units.
·Added: Support for external configuration file in IDE expert.
·Added: Now EurekaLog stores only those project options which are different from defaults (to save disk space and reduce noise in project file).
·Added: Now EurekaLog stores project options sorted (alphabet order).
·Added: Separate settings for saving modules and processes lists to bug report.
·Added: Support for taking screenshots of multiply monitors.
·Added: More screenshot customization options.
·Added: More control over bug report’s file names.
·Added: New environment variables.
·Added: Deleting .map file after compilation.
·Added: Support for different .dpr and .dproj file names.
·Improved: memory leaks detection feature – new options and new customization possibilities:
·Added: Ability to track memory problems without activation of leaks checking.
·Added: Support for sharing memory manager.
·Added: Support for tracking leaks in applications built with run-time packages.
·Added: Option to zero-fill freed memory.
·Added: Option to enable leaks detection only when running under debugger.
·Added: Option for manual activation control for leaks detection (via command-line switches).
·Added: Option to select stack tracing method for memory problems.
·Added: Option to trigger memory leak reporting only for large leaked memory’s size.
·Added: Option to control limit of number of reported leak.
·Added: CheckHeap function to force check of heap’s consistency.
·Added: DumpAllocationsToFile function to save information about allocated memory to log file.
·Added: Registered leaks feature.
·Added: Run-time control over memory leak registering.
·Added: New recognized leak type: String (both ANSI and Unicode are supported).
·Added: Memory features support for C++ Builder.
·Added: Resource leaks detection feature.
·Improved: Compilation speed increased.
·Added: Support for generics in debug information.
·Added: Chained/nested exceptions support.
·Added: Wait Chain Traversal support.
·Added: Support for named threads.
·Added: Additional information for threads in call stack.
·Improved: EurekaLog Viewer Tool:

·Now Viewer has its own help file
·Viewer now supports a FireBird based database on local file or remote server.
·You can have more that one user account for FireBird based database.
·Viewer now can be launched in View mode (Viewer can be configured to any DB or View mode).
·Viewer’s database now supports storing files, associated with the report (you can also add and remove files manually).
·Viewer supports “Import” and “View” commands for report files.
·Extended support for more log formats (XML, packed ELF, etc).
·Columns in report’s list now can be configured (you can hide and show them).
·There are a plenty of new columns added to report’s list.
·Added ability of auto-download reports from e-mail account.
·Improved printing: now you can print the entire report (including screenshots). Old behaviour of printing just one tab (call stack only, for example) also remains.
·Viewer can now have more that one run-time instance.
·File import status dialog is now configurable (you can disable it, if you want to).
·There is a preview area for screenshots, available in reports.
·Now Viewer is more Vista-friendly (i.e. file associations are managed in HKCU, rather that in HKLM, storing configuration in user’s Application Data, etc, etc).
·Report’s list now supports multi-select, so operations can be performed on many reports at time.
·There are plenty of new command line abilities, like specifying several files and new switches.
·Bunch of minor changes and improvements.

All EurekaLog versions are covered by 60-day money-back guarantee.
If you are not satisfied with your purchase for any reason, just ask for your money back and you will be refunded.

Update Policy.
  • All updates for the same major version are freely downloadable.
  • Updates to a different license type of the same major version are sold at only price difference (example: from Single Professional version to Company Enterprise).
  • Updates between two different major version are sold at 50% discount (free for all customers who have bought a copy in the last 90 days before the release date).

EurekaLog 7 Free License Winners
We’re glad to announce the winners of our “Win Licenses” offer:

  • Alexander Bagel
  • Alexander Mihnevich
  • Ken Schafer
  • Kevin G. McCoy
  • Paul Voelker
  • Salvatore Besso

Each winner will get a free EurekaLog 7 Enterprise Single Developer License. All winners will be contacted by e-mail.
Soon to come
Roadmap for EurekaLog 7.1:
  • JIRA, Redmine, YouTrack support
  • MacOS support
  • Remaining suggestions from our customers

Read More

Read More

EDN Mobile: Maintenant avec la localisation française!

Thanks to a totally unsolicited email from EDN community member Whiler, I am pleased to announce that EDN Mobile now supports the French locale.

I now invite other community members to provide localizations in any of the supported languages. As of Android 4.0.3, this list is available here. The localization process is pretty simple, and involves […] … Read More

Read More