DAPUG event in Denmark

Today and tomorrow I’ll be the speaker at the DAPUG event in Denmark. The title of the event is “DELPHI IN THE ENTERPRISE”. What is an enterprise application? Obviously there isn’t a measure to know if an application is enterprise or not, but the following needs usually require and enterprise level application. Critical functionality Large … Read moreRead More

Read More

CodeRage XII

CodeRage XII is coming! Tuesday, Nov 7th to Thursday the 9th

Register Now!

Announcements

Out of the 76 sessions and 58 speakers scheduled for CodeRage XII for 2017, a few notable standouts:

  • Robert C. “Uncle Bob” Martin, author of “Clean Code: A Handbook of Agile Software Craftsmanship”, is speaking on “The Clean Coder – An Introduction to Software Professionalism”
  • Steven McConnell, author of “Code Complete”, is speaking on “Managing Technical Debt”. 
  • Marco Cantu, author of the Mastering Delphi series, is speaking on “Introduction to ExtJS for Delphi Developers “
  • Ray Konopka, author of “Developing Custom Delphi Components”, shares his “IDE Productivity Tips & Tricks”
  • Cary Jensen, author of “Delphi in Depth: FireDAC”, speaks on “FireDAC in Depth: Creating and Using Indexes”

Which sessions are you looking forward to the most?

  • [Watch] On-Demand – Working with TlistView – raouf rahiche
  • [Watch] On-Demand – Some code to start building C++ applications – Francisco Muro A.
  • [Watch] On-Demand – Using templates in IntraWeb – Alexandre Machado
  • [Watch] On-Demand – OpenAPI/Swagger: Document and Test your REST API Server – Wagner Landgraf
  • [Watch] On-Demand – Deep Dive: Hospitality Survey App Template Developer Guide – Eli M
  • [Watch] On-Demand – How to develop a simple recommender system – Daniele Spinetti
  • [Watch] On-Demand – All you need know to developer for Windows 10 – Ricardo Boaro
  • [Watch] On-Demand – CAD with RAD, master your OOP skills for multi-plat development – Vsevolod Leonov (Seva)
  • [Watch] On-Demand – Free SSL certificates with Let’s Encrypt – Wagner Landgraf
  • [Watch] On-Demand – Customising DataSnap Method Output – Bob Swart
  • [Watch] Tue Nov 7th at 6:00 AM CT – Integrating with Amazon DynamoDB using Delphi Enterprise CDATA Connector – Paweł Głowacki
  • [Watch] Tue Nov 7th at 7:00 AM CT – The Clean Coder – Robert C. “Uncle Bob” Martin
  • [Watch] Tue Nov 7th at 9:00 AM CT – InterBase 2017 ToGo Cross-Platform Development and Deployment – Al Mannarino
  • [Watch] Tue Nov 7th at 9:00 AM CT – Product Address – Sarina DuPont
  • [Watch] Tue Nov 7th at 10:00 AM CT – Storing Data in Amazon S3 with Delphi – Paweł Głowacki
  • [Watch] Tue Nov 7th at 10:00 AM CT – Zen and the Art of Software Extensibility – Bob Calco
  • [Watch] Tue Nov 7th at 11:00 AM CT – Introduction to Ext JS for Delphi Developers – Marco Cantu
  • [Watch] Tue Nov 7th at 12:00 PM CT – VCL Layout Techniques – Ray Konopka
  • [Watch] Tue Nov 7th at 12:00 PM CT – Migrating your C++Builder Projects to Unicode – Al Mannarino
  • [Watch] Tue Nov 7th at 1:00 PM CT – IDE Productivity Tips and Tricks – Ray Konopka
  • [Watch] Tue Nov 7th at 1:00 PM CT – Accessing AWS S3 platform from C++ Builder – Luca Zoller
  • [Watch] Tue Nov 7th at 2:00 PM CT – FMX Animations – Ray Konopka
  • [Watch] Tue Nov 7th at 2:00 PM CT – C++ Builder as a REST server, easy way to comunicate with Apps and SCB’s – Dion Mai
  • [Watch] Tue Nov 7th at 3:00 PM CT – Directly Using the Android API – Brian Long
  • [Watch] Tue Nov 7th at 3:00 PM CT – InterBase 2017 Update – Sriram Balasubramanian
  • [Watch] Tue Nov 7th at 4:00 PM CT – FireDAC in Depth: Creating and Using Indexes – Cary Jensen
  • [Watch] Tue Nov 7th at 4:00 PM CT – Docker 101: Introduction to Docker – Jenny Fong, Docker
  • [Watch] Tue Nov 7th at 5:00 PM CT – Preventing and Fixing Coupled Code – Cary Jensen
  • [Watch] Tue Nov 7th at 5:00 PM CT – Matlab/Scilab scripting engine – Janez Makovsek
  • [Watch] Wed Nov 8th at 6:00 AM CT – FmxLinux – FireMonkey for Linux – Eugene Kryukov and Vsevolod Leonov (Seva)
  • [Watch] Wed Nov 8th at 6:00 AM CT – Simplify and speed-up application development with ORM for Delphi – Devart
  • [Watch] Wed Nov 8th at 7:00 AM CT – Creating JSON Wrapper Classes in Delphi – Andrew Sovtsov
  • [Watch] Wed Nov 8th at 7:00 AM CT – Programming Mazes in C++ and Delphi – David Millington
  • [Watch] Wed Nov 8th at 8:00 AM CT – CrossVcl (VCL for Linux and osX) Review – Eugene Kryukov and Vsevolod Leonov (Seva)
  • [Watch] Wed Nov 8th at 8:00 AM CT – Introducing FMXRTL-bringing Right To Left to FireMonkey – Ruhollah Akbarzadeh
  • [Watch] Wed Nov 8th at 9:00 AM CT – TMS Business Showcase: REST Server and ORM (XData and Aurelius) – Wagner Landgraf
  • [Watch] Wed Nov 8th at 9:00 AM CT – Getting Started with Linux using Ubuntu 16.10 , Installing Packages, and Connecting to Servers – Tom Lawrence, Lawrence Systems / PC Pickup
  • [Watch] Wed Nov 8th at 10:00 AM CT – Using PDF Forms as Data Entry User Interfaces in your Delphi Applications – Girish Patil
  • [Watch] Wed Nov 8th at 10:00 AM CT – Bash on Ubuntu on Windows – Kevin Remde
  • [Watch] Wed Nov 8th at 11:00 AM CT – Building mobile apps that connects to Salesforce and SAP/R3 – Fernando Rizzato
  • [Watch] Wed Nov 8th at 11:00 AM CT – Panel: Artificial Intelligence (Davos) – Moderated by Robert F. Smith
  • [Watch] Wed Nov 8th at 12:00 PM CT – Introduction to Sencha Products – Ext JS, Tools, Test, ExtReact, GXT – Sandeep Adwankar
  • [Watch] Wed Nov 8th at 12:00 PM CT – Managing Technical Debt – Steve McConnell
  • [Watch] Wed Nov 8th at 1:00 PM CT – Introduction to Linux Command Line – Steven Gordon
  • [Watch] Wed Nov 8th at 2:00 PM CT – Create SCADA Modbus Industrial Control applications, and Devices with ControlLab, and Visuino Pro – Boian Mitov
  • [Watch] Wed Nov 8th at 3:00 PM CT – Developing Your Own Visuino Components with Delphi – Boian Mitov
  • [Watch] Wed Nov 8th at 4:00 PM CT – Embedding a Chromium browser in a Delphi application – Alex Ruiz
  • [Watch] Wed Nov 8th at 4:00 PM CT – Learning Linux multitasking at the command-line – Tutorials and Training
  • [Watch] Wed Nov 8th at 5:00 PM CT – Integrating the Google Places API into a Delphi application – Alex Ruiz
  • [Watch] Wed Nov 8th at 5:00 PM CT – Create a Business Intelligence (BI) Web Site RAD Style with FireDAC, IntraWeb and UniGUI – Miguel Angel Moreno
  • [Watch] Thu Nov 9th at 6:00 AM CT – Delphi Application Migration  – Al Mannarino
  • [Watch] Thu Nov 9th at 7:00 AM CT – Modernizing your VCL application – Danny Wind
  • [Watch] Thu Nov 9th at 7:00 AM CT – IntraWeb 17 – The Webolution Begins – Chad Hower
  • [Watch] Thu Nov 9th at 8:00 AM CT – CrossTalk – Connecting Delphi and C++ to .NET – Chad Hower
  • [Watch] Thu Nov 9th at 8:00 AM CT – Implementing 2-Step Authentication – Nirav Kaku
  • [Watch] Thu Nov 9th at 9:00 AM CT – Demystifying OOP with RAD Studio and ORMBr – Juliomar Marchetti
  • [Watch] Thu Nov 9th at 9:00 AM CT – Unit Testing and User Interface – Ruhollah Akbarzadeh
  • [Watch] Thu Nov 9th at 10:00 AM CT – FixInsight: Finding Bugs with Static Code Analysis – Roman Yankovsky
  • [Watch] Thu Nov 9th at 10:00 AM CT – GitHub and Git Foundations – GitHub
  • [Watch] Thu Nov 9th at 11:00 AM CT – The Delphi Parser – Automatic Migration Tool – Oren Aviram
  • [Watch] Thu Nov 9th at 11:00 AM CT – Docker for Windows and Windows Containers – Michael Friis and Elton Stoneman, Docker
  • [Watch] Thu Nov 9th at 12:00 PM CT – New feature of Delphi’s reporting with FastReport VCL 6 – Denis
  • [Watch] Thu Nov 9th at 12:00 PM CT – Panel: The Internet of Things Is Here (Davos) – Moderated by Robert F. Smith
  • [Watch] Thu Nov 9th at 1:00 PM CT – Single Sign-On and Two-Factor Authentication with Facebook and Google Authenticator – Olaf Monien
  • [Watch] Thu Nov 9th at 1:00 PM CT – Multi-thread CFD example in C++ Builder – Yilmaz Yoru
  • [Watch] Thu Nov 9th at 2:00 PM CT – Plurals, Genders and Abbreviated Numbers with Delphi – Jaakko Salmenius
  • [Watch] Thu Nov 9th at 2:00 PM CT – Microservices with RAD Server – Andrew Sovtsov
  • [Watch] Thu Nov 9th at 3:00 PM CT – C++ and Physics – Mary Kelly
  • [Watch] Thu Nov 9th at 3:00 PM CT – Design Consideration for Multi-Platform Applications – Sarina DuPont
  • [Watch] Thu Nov 9th at 4:00 PM CT – Fast and Furious IDE Tips and Tricks – Alister Christie
  • [Watch] Thu Nov 9th at 4:00 PM CT – InterBase Tips and Tricks – Mary Kelly
  • [Watch] Thu Nov 9th at 5:00 PM CT – Working with Linux Libraries in Delphi – Craig Chapman
  • [Watch] Thu Nov 9th at 5:00 PM CT – Understanding the BlockChain – Jim McKeeth
  • [Watch] Thu Nov 9th at 6:00 PM CT – OpenGL on Linux – Craig Chapman

 

Replay from last year’s CodeRage XI

 

 

Read More

Read More

Delphi build/install/launch Android app from the command-line

Quite some while back I answered a question on Stack Overflow, which explained how to build a Delphi project from the command line and also how to deploy it. The context of the question was Andriod developmentIn the case of an Android application deploying it has absolutely nothing to do with installing the resultant .apk file onto your Android device, despite what your personal interpretation of the word may be. Oh no, most definitely not.Instead, deployment is about packaging up all your various files - your compiled Android library (a .so file), all the images, splash screens, icons, custom files, databases, application manifest file and so forth – all into an .apk file. In other words as far as the Delphi IDE is concerned, deploying a Delphi project means going from a .so native ARM library to an installable .apk file.Clearly when you press F9 or Ctrl+Shift+F9 to run your application the IDE works out how to install your .apk on the currently connected and selected device, but that is subsequent to the IDE’s notion of the deployment step.So, installation notwithstanding, that SO answer shows how to make/build and deploy a Delphi project, such as an Android project, from a RAD Studio command prompt:To recap on it this does a build:msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:BuildThis does a make, which only compiles files that have changed:msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:MakeThis step, assuming you have done a deployment at least once in the IDE and thereby have had a Foo.deployproj file generated, will do the deployment:msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:DeployIf you have the .deployproj file you can combine the two steps in this one command (excuse any line wrapping this blog theme applies):msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Make;Deploy[Update – 16/10/2-17:I also bumped into the property that controls the Target Configuration, which can be Development or Application Store for Android. The BT_BuildType can either be Debug or AppStore for Android (for iOS there is also AdHoc. So if you want to build a signed app ready for upload to the Google Play store you could run:msbuild Foo.dproj /p:Config=Release /p:Platform=Android /t:Make;Deploy /p:BT_BuildType=AppStoreEnd Update ]So anyway, history to one side, I was wondering if there was another MSBuild target that did the installation, or if this was some custom code in the IDE, not exposed through MSBuild. My investigation suggests the latter to be the case, but I wanted a convenient command-line way to make, deploy and install the Android application (and even possibly launch it!).The best option I could rustle up at short notice was a batch file (or command script, if you prefer). Save the file below as BuildAndInstall.bat or BuildAndInstall.cmd, set up any of the paths etc. that need personalising to your system.Again, please excuse unsolicited line wrapping…. There is probably a nifty way to get this code into a horizontally scrollable div or similar, but I don’t have the time to do the research just now….@echo offrem Syntaxrem  Arg 1 = project namerem  Arg 2 (optional) = build configurationrem  Arg 3 (optional) = package nameset ANDROID_SDK=%PUBLIC%\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windowsset ADB=%ANDROID_SDK%\platform-tools\adb.exeset FQ_PROJECT=%~f1set PROJECT_DIR=%~p1set PROJECT_NAME=%~n1set PACKAGE_NAME=com.embarcadero.%PROJECT_NAME%set CONFIG=Debugif X%1 == X goto syntaxif not exist %1 (  echo Cannot locate project %FQ_PROJECT%  goto :EOF)if not X%2 == X (  if "%2" == "Release" set CONFIG=Release)if not X%3 == X (  set PACKAGE_NAME=%3)pushd %PROJECT_DIR%echo.&echo Building %1&echo.msbuild %PROJECT_NAME%.dproj /p:Config=%CONFIG% /p:Platform=Android /t:Make || goto build_errorecho.&echo Deploying %1&echo.msbuild %PROJECT_NAME%.dproj /p:Config=%CONFIG% /p:Platform=Android /t:Deploy || goto deploy_errorecho.&echo Installing Android package&echo.%ADB% install -r Android\%CONFIG%\%PROJECT_NAME%\bin\%PROJECT_NAME%.apk || goto install_errorecho.&echo Launching Android app&echo.%ADB% -d shell am start -a android.intent.action.MAIN -n %PACKAGE_NAME%/com.embarcadero.firemonkey.FMXNativeActivity || goto launch_errorpopdecho.&echo Done!goto :EOF:syntaxecho BuildAndInstall syntax:echo.echo   BuildAndInstall ^<DelphiProjectFile^> [^<Configuration^> [^<AndroidPackageName^>]]echo.echo where:echo.echo ^<DelphiprojectFile^> is a Delphi project.dproj fileecho ^<Configuration^> is the required build configuration, Release or Debug, which defaults to Debugecho ^<AndroidPackageName^> is the Android package name for the project, in case it is different from com.embarcadero.projectgoto :EOF:build_errorecho Problem encountered while build the Android lib%PROJECT_NAME%.so native librarygoto :EOF:deploy_errorecho Problem encountered while creating the %PROJECT_NAME%.apk Android packagegoto :EOF:install_errorecho Problem encountered while installing %PROJECT_NAME%.apkgoto :EOF:launch_errorecho Problem encountered while launching %PROJECT_NAME%.apkgoto :EOFIf you young pups reading this are all into relatively modern PowerShell scripting or traditional Windows scripting, then this throwback to the world of DOS may fall uneasily on the eye, but it works and there is a lot of power available in DOS scripting commands.[ Update – 16/10/2017: I initially forgot to mention that you’d be wise to run this from a RAD Studio Command Prompt for the version of RAD Studio that you want to build your project. This ensures that the Windows search path is set up to find the correct compilers etc. Alternatively, at the top of my batch file you can do the equivalent of running a RAD Studio Command Prompt by inserting:CALL C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\rsvars.batIf you choose this latter option then you can use any old command prompt you like.End Update ]Now you can install and run an Android project with a command-line of:BuildAndInstall Foo.dprojif you want the release build, use:BuildAndInstall Foo.dproj ReleaseIf you’ve changed the package name (specified as package in the project options Version Info page) from the default com.embarcadero.Foo then to launch the app you’ll need to pass the package name on the command line:BuildAndInstall Foo.dproj Debug com.blong.FooDon’t forget that you will have to choose Project, Deploy libProjectname.so in the IDE menus once before this will work.I hope this is of use to someone….
Read More

EKON 21

I’m delighted to say that later this month I’ll be over in Cologne speaking at EKON 21, which runs from 23rd to 25th October, 2017 and is being held in Cologne in Germany.  I’m doing three Delphi-related talks on some of my favourite subjects: creative debugging, Android API usage and IDE tips/techniques.Unfortunately, though, being as all three talks are in the same day, Tuesday 24th October, I’m not sure I’ll get to see much of the other great talks on offer, which is a shame for me.It’s great to be heading back to EKON – I haven’t been over to Germany for a conference since long ago in 2004 at the joint BorCon Europe 2004 / EKON 8 conference in Frankfurt.In 2004 I was into interoperability between unmanaged code (Win32 and COM) and .NET code, as well as building .NET profiling tools. This year my Android talk is not a million miles from those old interoperability talks, looking at how to reach out from unmanaged Delphi Android ARM code to managed Java code, for various purposes and reasons.The debugging talk continues my efforts to help Delphi developers get better value for money from their debugger and debugging tools. This is a mission I’ve been on since the start of this century after having been inspired after watching Danny Thorpe do an excellent session at a BorCon in the late 90s, showing how to really utilise the CPU window and not see it simply as a source of horror.The IDE tips talk is also an evolution of a session I’ve done on and off over the course of this century, trying to share knowledge of the IDE, code editor and so on that will help you do your job just that bit faster.These talks are all based around Delphi although the concepts (and in some cases the specifics) are equally as applicable to C++Builder. I spend a lot of my working day working with C++Builder with a few regular clients and it is still a goal of mine to start getting more C++Builder information onto this blog.If any readers are going to EKON 21, I hope to see you there and look forward to a great conference![ As seems to usually be the case, it’s been a much longer gap than I would like since I last put pen finger to paper keyboard for this blog. Mea culpa – I will endeavour to allot more time for this sort of thing, or more particularly for posts of general practical value ]
Read More

TMS Analytics for nonlinear multiparametric approximation of surface data

The new version 2.2 of TMS Analytics and Physics pack contains the nonlinear least squares approximation tools. The nonlinear approximation tasks are widely used in statistics to fit experimental data with some random distribution function.

Let us consider the example of surface data fitting with the 2D Gaussian function. The Gaussian distribution of 2 variables x and y (https://en.wikipedia.org/wiki/Gaussian_function) has the following math expression:

Except the amplitude A, the distribution nonlinearly depends on four parameters: center coordinates x0, y0 and deviations sx, sy. The task of fitting data with the Gaussian function is to find optimal values of the four parameters, those minimize the error of the distribution and the experimental data zi(xi,yi), i=1..N.

The approximation task can be solved by the numerical tool with the following code:

var
  variables, coefficients: TArray;
  f: string;
  basis: TNonlinearBasis;
  cValues: TArray;
  appr: TNonlinearApproximator;
  opt: TSolverOptions;
  eValues: TArray;
  eValue: TFloat;
begin
  variables:= TArray.Create('x', 'y'); // 1
  coefficients:= TArray.Create('x0', 'Sx', 'y0', 'Sy'); // 2 
  f:= 'e^-((x-x0)^2/(2*Sx^2)+(y-y0)^2/(2*Sy^2))'; // 3
  basis:= TNonlinearScalarBasis.Create(variables, coefficients, nil, f); // 4 

  appr:= TGaussNewtonLeastSquares.Create; // 5
  appr.C0:= TArray.Create(0.1, 0.1, 0.1, 0.1); // 6
  opt:= TSolverOptions.Create(true);
  opt.MaxIterationCount:= 100;
  opt.Precision:= 0.2;
  appr.Options:= opt; // 7

  cValues:= appr.Approximate(basis, xyData, zData); // 8

  // use basis with optimal coefficients
end;

Line 1: Create array of variable names.
Line 2: Create array of four distribution coefficient names.
Line 3: Set up the approximation function expression.
Line 4: Create the nonlinear basis instance with specified data.
Line 5: Create the appropriate nonlinear approximator instance.
Line 6: Set up initial guess of coefficient values for nonlinear solution.
Line 7: Set up appropriate nonlinear solution options.
Line 8: Solve the problem (finding optimal values).

When optimal values of the Gauss distribution parameters found, they can be used with the basis instance to calculate the distribution function in any specified point (x,y) or for other analysis methods, like derivative calculations and so on.

On the pictures below there are results of the approximation made with some generated noisy data. The result presented as 1D section of the 2D function for two different x values: x=0.0 and x=0.6.

In this sample, we used the TMS FNC Chart to display the values and the approximated function. The advantage of using the TMS FNC Chart is that it can be used both for VCL and FMX applications and we can use the same code to create a VCL Windows application or a FireMonkey cross platform application.
The source code of the example application can be downloaded here.

The TMS Analytics and Physics pack version 2.2 includes also many other useful numerical tools: linear least squares approximation, 1D and 2D integration, ordinary differential equation solution, function analysis. Due to the addition of array and matrix support in version 2.2, many numerical calculations can be implemented in vector form with small and compact formulae. The version can be downloaded from the product page.

Read More

Read More

TMS Analytics for nonlinear multiparametric approximation of surface data

The new version 2.2 of TMS Analytics and Physics pack contains the nonlinear least squares approximation tools. The nonlinear approximation tasks are widely used in statistics to fit experimental data with some random distribution function.

Let us consider the example of surface data fitting with the 2D Gaussian function. The Gaussian distribution of 2 variables x and y (https://en.wikipedia.org/wiki/Gaussian_function) has the following math expression:

Except the amplitude A, the distribution nonlinearly depends on four parameters: center coordinates x0, y0 and deviations sx, sy. The task of fitting data with the Gaussian function is to find optimal values of the four parameters, those minimize the error of the distribution and the experimental data zi(xi,yi), i=1..N.

The approximation task can be solved by the numerical tool with the following code:

var
  variables, coefficients: TArray;
  f: string;
  basis: TNonlinearBasis;
  cValues: TArray;
  appr: TNonlinearApproximator;
  opt: TSolverOptions;
  eValues: TArray;
  eValue: TFloat;
begin
  variables:= TArray.Create('x', 'y'); // 1
  coefficients:= TArray.Create('x0', 'Sx', 'y0', 'Sy'); // 2 
  f:= 'e^-((x-x0)^2/(2*Sx^2)+(y-y0)^2/(2*Sy^2))'; // 3
  basis:= TNonlinearScalarBasis.Create(variables, coefficients, nil, f); // 4 

  appr:= TGaussNewtonLeastSquares.Create; // 5
  appr.C0:= TArray.Create(0.1, 0.1, 0.1, 0.1); // 6
  opt:= TSolverOptions.Create(true);
  opt.MaxIterationCount:= 100;
  opt.Precision:= 0.2;
  appr.Options:= opt; // 7

  cValues:= appr.Approximate(basis, xyData, zData); // 8

  // use basis with optimal coefficients
end;

Line 1: Create array of variable names.
Line 2: Create array of four distribution coefficient names.
Line 3: Set up the approximation function expression.
Line 4: Create the nonlinear basis instance with specified data.
Line 5: Create the appropriate nonlinear approximator instance.
Line 6: Set up initial guess of coefficient values for nonlinear solution.
Line 7: Set up appropriate nonlinear solution options.
Line 8: Solve the problem (finding optimal values).

When optimal values of the Gauss distribution parameters found, they can be used with the basis instance to calculate the distribution function in any specified point (x,y) or for other analysis methods, like derivative calculations and so on.

On the pictures below there are results of the approximation made with some generated noisy data. The result presented as 1D section of the 2D function for two different x values: x=0.0 and x=0.6.

In this sample, we used the TMS FNC Chart to display the values and the approximated function. The advantage of using the TMS FNC Chart is that it can be used both for VCL and FMX applications and we can use the same code to create a VCL Windows application or a FireMonkey cross platform application.
The source code of the example application can be downloaded here.

The TMS Analytics and Physics pack version 2.2 includes also many other useful numerical tools: linear least squares approximation, 1D and 2D integration, ordinary differential equation solution, function analysis. Due to the addition of array and matrix support in version 2.2, many numerical calculations can be implemented in vector form with small and compact formulae. The version can be downloaded from the product page.

Read More

Read More

How I use Linux to write software for multiple target platforms using Wine, Delphi 7, Lazarus and Delphi Berlin

How I use Linux to write software for multiple target platforms:http://kriscode.blogspot.tw/2016/10/how-i-use-linux-to-write-software-for.html – Kris Kamil Jacewicz – Google+ WINE has come a long way. Many things do not have a native look and feel, but so do many Delphi FMX or Lazarus LCL applications. In fact I use quite a few tools (including Mikrotik WinBox) through […] … Read More

Read More

A Busy Summer!

It was a busy summer. There has been so much happening lately that it is difficult to decide where to start.


Earlier this year we launched the milestone RAD Studio 10.2 (aka Tokyo). This August we released Update 10.2.1 that provided a number of highly anticipated quality and feature updates. So, what happened with the BIG September release? As stated before, we are no longer looking for the next BIG release. We want to provide customers the functionality that they need when it is ready and continue to constantly evolve the product ALL the time. We did 10.2.1 in August, but this week you should be looking for the iOS 11 update. We want to make it easier to stay on the latest release and deliver value more often.

 

We do have more work to remove the re-installation requirement altogether, but that is not a small task with almost 70K files involved. The good news is that upgrades today are more seamless and our Product and R&D teams received a lot of acolytes for that. The Linux support is a huge milestone and there is a lot more in 10.2.1 for both mobile and Windows.

 

Our marketing published an awesome magazine to celebrate the progress made with Delphi over the last 22 years I encouraged many of our developers to share this with their supervisors, who think that Delphi is a thing of the past, many were pleasantly surprised. We are running a nice promo for September that goes with the “22” theme, so check-out the site or speak with your partner. It is a great time to upgrade or expand.

 

The VCL framework continues to evolve. I think that with all the technologies out there, we sometimes forget how good it is, and it is only getting better. High DPI support and improved icons make your apps truly stand-out, and we have plenty of more awesome updates in the works. Lately, we’ve spoken a lot with C++ developers, as we try to increase the awareness for C++Builder. It is amazing how much Delphi developers take for granted. While there are OK visual frameworks that support C++, almost nothing comes close to VCL. I am really excited to continue to educate our C++ community on what we can deliver and of course continue to improve the C++ language support.

 

At the end of August, we released Enterprise Connectors. These make integration of applications built with RAD Studio to the most common enterprise applications, such as SAP, Salesforce, Facebook, and many more, very easy. They use a combination of FireDAC, REST, and CData technologies to make user adoption seamless. I think that these give an incredible competitive edge to our developer community, especially considering the speed of development. It is fast development indeed.

 

Just last week we launched the Embarcadero Academy! Making our products more easily accessible for education and making learning easier is a top priority. I feel that a dedicated education site together with a FREE Starter edition that is available for Education purposes are important steps in this direction. I benefit personally… My thirteen-year-old son is learning Delphi and the Academy is making it easy (and inexpensive)! Visit www.embarcaderoacademy.com and find out for yourself.

 

Most importantly, last month we acquired Sencha. This demonstrates again our broader commitment to Developer Tools. Sencha is the home of Ext JS, which is the premier Enterprise framework for JavaScript development. I am super excited for the Ext JS community. Today there are few independent IT organizations with our resources committed to developers. There are also a lot of immediate benefits for our existing Delphi and C++ developers. Over the years RAD Studio provided many Web development options, but none has had the robustness of our core VCL and FMX frameworks. As Web usage exploded, this has contributed for some in the decline of popularity for Delphi. The Ext JS framework is a match to VCL in terms of sophistication and scalability. There are already several good ways to bridge the technologies. As always, we have really smart partners in our technology ecosystems that have developed deeply integrated solutions (e.g. UniGui, Kitto). Developers can also use Ext JS through the REST API connectivity enabled by RAD Server. We will work with our technology partners to make the integration even more seamless.

 

The product team also just published a roadmap updated for September 2017. It includes plans for the upcoming 10.2.2 and 10.3 releases. There are also details on some research areas R&D is exploring. All of this as we continue our commitment to developers in keeping Delphi, C++Builder, and RAD Studio the premier choice for expert developers everywhere.

 

After a busy summer, we are all preparing for a busier fall. The community is full of ideas, Block Chains, more IoT support options, better TFS integration, and as always many ideas for language features. Our PMs are busy evaluating ideas and working with R&D on specs. We are open to technology partners and MVPs to participate and introduce products that expand our capabilities, Woll2Wall made an awesome Beacon Editor with FMX, the much anticipated FMX Linux Clients are out, there are cool FMX designer ideas, so much more to come. We’ll demonstrate a lot of these during CodeRage coming November 7th.

 

This is going to be a productive fall. Get on 10.2.1 and build some awesome apps!

Read More

Read More

Dependency Analysis – Pascal Today

Tools and steps for analysing Delphi or FreePascal code: Dependency Analysis – Pascal Today [WayBack] Used tools: Delphi Unit Dependency Scanner [WayBack] Gephi – The Open Graph Viz Platform [WayBack] yEd – Graph Editor [WayBack] yEd is a free desktop application to quickly create, import, edit, and automatically arrange diagrams. It runs on Windows, Mac OS X, and Unix/Linux. –jeroenFiled […] … Read More

Read More

Delphi and Linux

I'd just like to remind my Slovenian readers that on 28th this month I'll be having a presentation about RAD Studio and Linux in Ljubljana.As the presentation will be given in Slovenian language, the rest of my post containing the description of the presentation is written in that language, too.Vljudno vabljeni na delavnico "RAD Studio in Linux", na kateri si bomo ogledali:Kako namestiti Ubuntu v virtualni računalnik.Kaj storiti, ko namestitev nagaja.Kako pripraviti virtualni računalnik in RAD Studio za delo.Kako napisati konzolno aplikacijo za Windows in Linux, ki streže podatke z uporabo tehnologij FireDAC in DataSnap.Kako napisati grafično aplikacijo za Windows, OS X, iOS, Android, ki prikazuje in spreminja podatke na aplikacijskem strežniku iz prejšnjega koraka.Z nekaj sreče pa še: Kako to grafično aplikacijo pognati na Linuxu inKako konzolno aplikacijo spremeniti v pravi Linux "service".Vstop prost, prosimo vas le, da se vnaprej registrirate, da bomo znali pripraviti zadostno količino kave in prigrizkov ;)--- Published under the Creative Commons Attribution 3.0 license
Read More