Subscribe: marcocantu.blog
http://blog.marcocantu.com/blog_rss.xmldata
Added By: Feedage Forager Feedage Grade B rated
Language: English
Tags:
at https  berlin  bit  blog  code  community embarcadero  compiler  delphi  embarcadero  linux  rad studio  rad  windows 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: marcocantu.blog

marcocantu.blog



Techie Italian Blogging on Delphi and More



Updated: 2017-02-17T17:32:06.782Z

 



Key Traits of the Coming Delphi For Linux Compiler

2017-02-17T17:32:06.782Z

Embarcadero is about to release a new Delphi compiler for the Linux platform. Here are some of the key technical elements of this compiler, and the few differences compared to Delphi compilers for other platforms. Embarcadero is about to release a new Delphi compiler for the Linux platform. Here are some of the key technical elements of this compiler, and the few differences compared to Delphi compilers for other platforms. Linux Intel 64-bit Before we get to language specific features, let me clarify once more the target platform, as Delphi for Linux is a bit vague. The compiler produces Intel 64-bit executables for Linux. This is a key difference, for example, compared to the old Kylix project compiler, that was 32-bit. The new compiler does not include Linux ARM platforms, which we are considering for the future. Another related element is that the compiler is based on the LLVM compilers architecture, like all the most recent new Delphi compilers (iOS 32 bit, Android 32 bit, and iOS 64-bit). The advantage is that it will provide some significant optimization on the generated code. The disadvantage is that compiling and linking an application takes considerable more time than when using the Windows compilers. In the rare case you need platform specific code and when calling platform APIs, you can use the {IFDEF LINUX64}. Object Pascal Language Compatibility Getting to the language specifics, the level of language compatibility is going to be very high. Almost all of the classic Pascal-based languages features, OOP features, RAD support capabilities, modern Pascal features (generics, anonymous methods, reflection, attributes) are going to work the same. Some beta testers have been able to port significantly complex libraries in a fairly smooth way. What you might find a little more trouble in is porting some "older" code, like code that is not Unicode enabled or relies heavily on Windows-ism. Below are some of the specific differences. The only area that is not meant to be fully compatible is memory management, given the new compiler is based on Automatic Reference Counting, as explained later. Core Data Types and LongWord Blues I'm not going to list all of the core data types that remain the same, as the list is very long, but let's look at what's specific to this compiler. Being a 64-bit compiler, all pointers are going to be 64-bit, while Integer stay 32-bit -- this is the behavior of all other Delphi 64-bit compilers (and most other programming languages, BTW). The only caveat is for the LongWord type. This is a data type often used when making operating system calls, so the decision that was taken some time ago was to keep it matching the underlying OS. So, for example, on iOS the same API declaration with LongWord compiles to a 32-bit or 64-bit data type depending on the compiler you are using. On Windows, however, Microsoft made a non-standard decision to keep LongWord the same size of an Integer. This implies the Windows 64-bit platforms works differently from the Linux 64-bit platform in regard of this data type. For reference, among other sources, see the long type in C language on different platforms at https://en.wikipedia.org/wiki/Integer_(computer_science)#Long_integer and the first answer at http://stackoverflow.com/questions/384502/what-is-the-bit-size-of-long-on-64-bit-windows. You might have to revisit you code using LongWord and decide to keep that data type or use a different one (Integer, UInt32, NativeUInt...) depending on your goal. We have done and are still doing a significant revision of the RTL to make sure we are not misusing this type. In same cases, however, we are going to keep code that behaves differently depending on the platform, particularly when changing core RTL classes would cause a lot of legitimate Windows code working for 20 years not to compile any more. Strings and Encodings Since Delphi 2009 the Object Pascal language string type has defaulted to UTF-16 Unicode and 2-byte Char data type. Needless to [...]



22 Years of Delphi and it Still Rocks

2017-02-14T11:04:15.346Z

To celebrate another year of success for Delphi. I dug a bit in my archive. Here are a few old images, mostly ads from Borland, before and after the product release. To celebrate another year of success for Delphi. I dug a bit in my archive. Here are a few old images, mostly ads from Borland, before and after the product release. You can find a higher resolution version of these images at https://goo.gl/photos/WeWa3wEL9xDYAp179. Here are smaller versions, with some comments. It is interesting to notice how the original business value (increased productivity for developers) is still true today with a totally changed landscape, mobile, and all. We could re-use some of the original ads, as they make sense today. The other things I noticed is that most of the other tools that were popular back than, have long been forgotten. Delphi, on the other hand, is still popular. The Original Product Box The Trio of the Thickest Delphi 1 Books Mine, Charlie's and Pacheco/Teixeira where the 3 classic books covering Delphi in all of its angles, and became classic books, all with many editions for following versions. I guess I have them all... Before Delphi, Was Turbo Pascal Before Delphi came along, the language, its earlier (and different) OOP model and Windows integration were already there. But Delphi had a new object model in the language, the concept of components, and a new library, including strong database access, and it was a breaking change from previous Turbo Pascal products. And Borland had a magazine, here you can see the editor: Here Comes Delphi Delphi RAD to ROI. We should use this more today! Visual Basic done Right... The RADical performance... ready for Windows 95. Development got easier (with the family of Borland tools). Even if the product was a bit simpler (with the product matrix fitting a single page) it was powerful. And magazines focused to it, for which I occasionally wrote articles. Delphi Prizes And Delphi won many prices, celebrated when Delphi 2 shipped. See the Jolt Award announcement ("Borland is back") and description: Delphi 2 and Delphi 3 The easy of VB with the power of C++. On Time and on Budget. Power and performance. And some reviews.   Delphi and a Duck: an anticipation of things to come... More "Recent" Versions Delphi 4 (pushing rocks?), Delphi 5 and the Net (meaning Internet... but kind of cryptic), Delphi 6, Kylix (Linux we are coming back real soon!), Delphi 7, Delphi 8 and .NET (ugh!). And a big push towards modeling! Delphi BirthDay Page I still and always have Delphi 1 launch information at a page of my regular web site, http://www.marcocantu.com/delphibirth/. But enough of history, I'll start blogging on the Delphi language coming back to Linux tomorrow!   [...]



RAD Studio and Natively Compiled Code

2017-02-06T10:38:25.343Z

In today's development landscape, natively compiled code is making a significant comeback. RAD Studio has always been focused on it. In today's development landscape, natively compiled code is making a significant comeback, even if in a fairly different variety of scenarios. RAD Studio has always been focused on it and developers using Delphi and C++Builder probably experience its advantages without even noticing them. Natively Compiled Code: A Comeback? Let me clarify the terms first. I refer to natively compiled code as code that is compiled (at some time of the process) into machine code the target CPU can execute. As you start your application, there i no further conversion to take place. I mean, like the output of a traditional compiler producing a binary executable, but not only. For several years most of the focus has been on execution environments (.NET, Java, the various JavaScript engines) that would either interpret and execute the source code or most often an intermediate optimized format (ByteCode, IL, etc). Most of these systems benefit from some JIT (just-in-time) compiler so that each method is executed and compiled only once after loading the application. Now while this model is still extremely popular (and it is going to remain mainstream, I'm not suggesting the opposite), there are many signs of a significant comeback of natively compiled code: Apple platforms and iOS in particular have been pushing the "native only" mantra, basically disallowing execution environments other than JavaScript. Odd drawback is pushing developers to package two versions of their applications (32-bit and 64-bit) into a IPA package. Their alternative model is allowing for compilation of bitcode into binary on their own backend systems -- so you are submitting BitCode and Apple converts it to binary before the users download the app. Android has started implementing an "installation-time" compilation (ART), compiling Java ByteCode to binary when the application is downloaded. This "compilation" happens on the user devices, depending on the device CPU and OS version. Beside making it very time consuming to do a system update (as all apps needs to be recompiled), this is making Java apps execution faster. Also on Android it might come to a surprise but most of the best-selling apps are not written mostly in Java, but in C++ using the NDK. Which is the same model Delphi and C++Builder use. If you don't believe me, read for example Microsoft as they said (one year ago): "Platform defining, cross-platform, new trendy applications such as Facebook Moments, Dropbox, Office, Skype, popular games (e.g. Fruit Ninja, Clash of Clans, EA Sports titles) are all written in cross-platform C++.  Talking more numbers if you take a look at the top 50 android applications a vast chunk of them (~75%) of them leverage C++." On the Windows platform, most applications have always been native, despite Microsoft pushing .NET for a long time even Office and their mainstream applications are natively compiled and likely mostly written in Visual C++, even if there are exceptions in which Delphi is used ;-). But the trend to opening more native apps has become even more significant after Microsoft opened the Windows Desktop Bridge, with many companies previously trying to build native WinRT apps and now back the business as usual to support Windows 10 with traditional applications -- although to be honest some of them are actually .NET-based. A good example is Telegram, written in C++, which seems to have scrapped UWP WinRT plans in favor of a Desktop Bridge approach. We are witnessing a large number of Delphi (and C++Builder) applications landing to the Windows Store via the bridge. Web services space is also seeing significant migration from scripting (PHP, Ruby) to more efficient solutions in terms of processing. The original idea of "let's throw more hardware at it" doesn't always scale as expected. If you need to 2x machine[...]



Delphi Blogs of the Week #50

2017-01-30T21:40:17.157Z

Another review of announcements, news, blog post, webinars, and anything else related to Delphi that I feel important to share. Another review of announcements, news, blog post, webinars, and anything else related to Delphi that I feel important to share. Embarcadero News Embarcadero competition, Delphi 10.2 T-Shirt Graphic Contest: Read more at https://community.embarcadero.com/competitions/11-delphi-10-2-t-shirt-challenge ​Rebooting the Podcast with Nick Hodges at https://community.embarcadero.com/blogs/entry/rebooting-the-podcast-with-nick-hodges Events and Webinars An Internet of Things (IoT) BootCamp 2017 by Embarcadero is scheduled for next week, see https://community.embarcadero.com/blogs/entry/iot-bootcamp-2017. This is a 4 days event, with webinars each day, covering a set of diverse topics, from interfacing with IoT devices to communicating with Arduino boards, from creating federated IoT systems to collecting data in a central database, from creating custom Arduino boards to using Visuino for programming them. The subtitle "Build a RESTful Network of IoT Devices with Arduino and RAD Server" gives a technical overview of what will be included. Dates are February 6th to 9th. The webinar "Migrating Delphi - Case Studies" is scheduled for tomorrow, January 31st. Register at https://attendee.gotowebinar.com/rt/6553483306659174913 Notable Blog Posts Windows Media Player in Delphi by Craig at http://chapmanworld.com/windows-media-player-in-delphi/ DprojNormalizer by Uwe at http://www.uweraabe.de/Blog/2017/01/24/dprojnormalizer-for-xe7-and-xe8/ Using Facebook SDK native framework for iOS and Android for Social Login and more (Part 1), a long and extremely interesting blog post from a technical point of view by Allen Drennan at https://blog.grijjy.com/2017/01/23/using-facebook-sdk-native-framework-for-ios-and-android-for-social-login-and-more-part-1/ And by the same author, Using the Google Cloud Platform APIs at https://blog.grijjy.com/2017/01/13/using-the-google-cloud-platform-apis/ And on a similar tone, FireBase Cloud Messaging with Delphi 10.1 Berlin update 2 by Jordi at http://thundaxsoftware.blogspot.it/2017/01/firebase-cloud-messaging-with-delphi.html Delphi Code Monkey: One month after Diving Back into Delphi... http://delphicodemonkey.blogspot.it/2017/01/one-month-after-diving-back-into-delphi.html Podcast Streaming - FireMonkey Demo by Sarina at https://community.embarcadero.com/blogs/entry/streaming-your-podcast-firemonkey-demo TCalendarView Custom Painting by Pawel at https://community.embarcadero.com/blogs/entry/tcalendarview-custom-painting 50 Posts in This "Weekly" Series Even if I'm not keeping this with a weekly schedule, the series of post has been ongoing with some regularity (every 2 or 3 weeks) and I got to the 50th installment. I plan continuing, as I think the fast paced flow of social media is hard ot keep up with, and all of us end up missing notable news like those I summarize here. Let me know what's your take. [...]



January Updates in RAD Studio GetIt Package Manager

2017-01-25T11:11:42.838Z

I guess I should turn this into a regular blog post, here are some more updates in GetIt package manager, after those in December. More are coming shortly.

I guess I should turn this into a regular blog post, here are some more updates in GetIt package manager, after those in December. I'm listing updates for Berlin, only some of them are also in older versions. More are coming shortly.

RAD & Installer

There is now a second tool to build installations, beside InstallAware, called RAD & Installer. This tool is an expert for creating installation script from the IDE, more than an installation tool in itself. This is the "Installer" category in GetIt now:

(image)

TMS IDE Plugin Pack

After a nice collection of trial version of their component packages (see last blog post), TMS has added to GetIt a free collection of IDE enhancements. This is not a trial, but free working software. Quite nice, I have to say.

(image)

Updates and More

Updates to TurboPack libraries including VirtualTreeView, SysTools, Mustangpeak Virtual Shell Tools and other packages. Also, there are 2 or 3 additional submissions begin worked on, so keep an eye to GetIt (and possibly to an update of this blog post).

As you can see above, there are currently 114 entries in GetIt for RAD Studio Berlin, as the system has been growing in content over time.

Jan 25h Update 

We now have also an additional Trial component, JAM Software ShellBrowser, the 115th entry.

(image)

(image)



Fun with Delphi Contest: NASA API Mashup

2017-01-20T08:20:27.975Z

Embarcadero is promoting a contest for applications that leverage OpenData, in particular the NASA API. Given the large amount of data available, there is room for building many different applications.

Embarcadero is promoting a contest for applications that leverage OpenData, in particular the NASA API (available at https://api.nasa.gov/index.html). Given the large amount of data available, there is room for building many different applications. Also, you can submit Windows or Mobile applications, as long as it is built with RAD Studio.

Full announcement and competition details are at:

https://community.embarcadero.com/competitions/8-fun-with-delphi-nasa-api-mashup

We have a sample application on GitHub at https://github.com/EmbarcaderoPublic/FunWithRADStudio/ with a video at https://youtu.be/pARtydMW_GQ and accept submissions on GitHub and with a companion video. All of the information is at the page above.

(image)

While this isn't strictly tied to my "Fun Side of Delphi" old material, there is a clear relationship in terms of thinking out of the box and coming up with amusing demos, which also include some technical challenge.

We are waiting for your submission, a nice prize, and visibility in the Delphi community. So, start browsing the APIs and get to coding... submissions are due by the end of the month.

(image)



Delphi Blogs of the Week/Month #49

2017-01-22T10:35:04.194Z

The first list of interesting links and blog post of 2017, focused on Delphi development.

The first list of interesting links and blog post of 2017, focused on Delphi development.

Embarcadero Updates

Press release "Embarcadero Announces RAD Studio Desktop Bridge Support for Windows 10 Deployments" including a comment by Kevin Gallo, corporate vice president for the Windows developer platform at Microsoft at http://www.businesswire.com/news/home/20170110005908/en

This press release got also referenced by SD Times at http://sdtimes.com/swift-announces-new-project-lead-embarcadero-updates-rad-studio-and-spare5-relaunches-as-mighty-ai-sd-times-news-digest-jan-11-2017/

There is Debugger Hotfix for macOS Sierra and the iOS Simulator for 10.1 Berlin. Information at https://community.embarcadero.com/blogs/entry/debugger-hotfix-for-macos-sierra-and-the-ios-simulator and download at http://cc.embarcadero.com/item/30680

Blog Posts

World First! A Linux web service written in Delphi by Craig at http://chapmanworld.com/2017/01/12/world-first-a-linux-web-service-written-in-delphi/

Got a link to this fairly interesting blog on Delphi: https://blog.grijjy.com/

Did you ever use Bold? Check out http://boldfordelphi.blogspot.it/2017/01/help-me-to-make-bold-open-source-project.html

I don't know who write this and don't agree in full (and it stirred some discussion), but I found it interesting: https://medium.com/@srcstorm/pascal-independent-language-for-2017-a5a25f7c62d8#.n88868sta

A Delphi wrapper for Slack API by Andrea at https://blog.andreamagni.eu/2017/01/introducing-sdriver-a-delphi-wrapper-for-slack-api/

Integrating with you favorite CRM/ERP web based client -- or poor mans integration? -- by Steffen at http://fixedbycode.blogspot.it/2017/01/integrating-with-you-favorite-crmerp.html

Webinars and More

Check out 2017 upcoming Delphi webinars at https://community.embarcadero.com/article/16466-upcoming-2017-webinars

In particular, there is a new BootCamp focused on Arduino and IoT early February, that looks pretty interesting. More information to come.

 

(image)



Answering the Question: Do I have Berlin Update 2?

2017-01-09T08:44:17.271Z

There is a glitch in RAD Studio Berlin Update 2: For some users the About Box indicates the wrong update number.

There is a glitch in RAD Studio Berlin Update 2: For some users the About Box indicates the wrong version number in the "Installed Updates" field.

An example is below:

(image)

So how do you know if you actually have Update 2 installed? An easy way is to keep an eye to the Splash Screen, which was updated with the fireworks:

(image)

The more official way is to check in the About Box the actual version number. As you can see in the first image above:

Berlin Update 2 has version number 24.0.25048.9432

Berlin Update 1, instead, had version number 24.0.24468.8770

The first release (RTM) of Berlin was 24.0.22858.6822

 

(image)



My Year in Cities 2016

2016-12-31T10:36:57.048Z

Following a long tradition of this blog, dating back to 2006 (and continued in each of the following years), here is my year 2016 seen through the cities I've been to.

Following a long tradition of this blog, dating back to 2006 (and continued in each of the following years), here is my year 2016 seen through the cities I've been to. The rule is: Places I've visited in 2016 for at least one night (plus some relevant daily trips), in chronological order. At times, the reason for the trip is listed. In bold are cities or countries I've been to for the first time.

  • Piacenza, Italy, is where I live
  • Assisi, Perugia, Italy
  • Berlin, Germany (RAD Studio Berlin Launch)
  • Cannes, France (Film Festival)
  • Courmayeur Mont Blanc, Italy
  • Trip to Germany and Denmark
    • Zurich, Switzerland
    • Erfurt, Germany
    • Berlin, Germany
    • Hamburg, Germany
    • Middelfart, Denmark
    • Billund (Legoland) Denmark
    • Bad Salzschlirf, Germany
  • Courmayeur Mont Blanc, Italy
  • Koeln, Germany (Delphi Tage)
  • Rome, Italy (ITDevCon)
  • Viareggio, Italy (Lucca Comics)
  • Duesseldorf, Germany (EKON)
  • Frankfurt, Germany (Delphi Developer Days)
  • Zeist, Netherlands (SDN Event)

While I've been traveling quite a bit, my trips this year have been limited to Europe. Hope to be able to get back to the US to meet my coworkers next year, and I already have some other long trips planned for 2017. Stay tuned. 

Have a great 2017 full of happiness (and traveling!).

(image)



Delphi Blogs of the Week/Month #48

2016-12-30T09:08:47.157Z

It has been a long time, but here is another roundup of notable blog posts in the Delphi space. It has been a long time, but here is another roundup of notable blog posts in the Delphi space. Updates Debugger Hotfix for iOS32 (for RAD Studio 10.1 Berlin) at https://community.embarcadero.com/blogs/entry/debugger-hotfix-for-ios32 Technical Blogs Optical Barcode Recognition Library For FireMonkey In Delphi 10 Berlin On Android at http://www.fmxexpress.com/optical-barcode-recognition-library-for-firemonkey-in-delphi-10-berlin-on-android/ Conditional Uses Clause Considered Harmful at http://www.uweraabe.de/Blog/2016/11/06/conditional-uses-clause-considered-harmful/ Changing the color scheme of an Android style at https://community.embarcadero.com/blogs/entry/changing-the-color-scheme-of-an-android-style The Best Windows Support RAD Studio 10.1.2 Berlin at https://community.embarcadero.com/article/news/16448-rad-studio-berlin-anniversary-edition-support-for-windows-10-anniversary-update-and-the-windows-store Running Delphi applications on Raspberry Pi 3 at https://fixedbycode.blogspot.it/2016/12/running-delphi-applications-on.html Introducing SubHub (a complete, real world Delphi + RAD Server project): https://www.code-partners.com/introducing-subhub/ Towards Linux Running Delphi VCL code on Linux via Wine, at http://kriscode.blogspot.it/2016/10/how-i-use-linux-to-write-software-for.html Preparing for Linux at https://community.embarcadero.com/blogs/entry/preparing-for-linux Configure Delphi and RedHat or Ubuntu for Linux Development at: https://community.embarcadero.com/blogs/entry/configure-delphi-and-redhat-or-ubuntu-for-linux-development InterBase on Linux at https://delphiaball.co.uk/2016/12/13/interbase-on-linux/ Setting up SUSE Linux Enterprise Server/openSUSE Server for the Delphi on Linux Beta at http://fixedbycode.blogspot.it/2016/12/setting-up-suse-linux-enterprise.html (with some beta info shared under permission) Open Source Projects and Libraries Interfacing with Slack from Delphi: https://github.com/andrea-magni/SlackDriver/tree/master/Source Some CodeRage 2016 code at https://github.com/EmbarcaderoPublic/CodeRage2016 Delphi LeakCheck at https://bitbucket.org/shadow_cs/delphi-leakcheck/ FireMonkey snow effect: https://github.com/thachngopl/SnowFallEffect And finally a video with this effect on YouTube, as a way to celebrate the winter season and wish you a great 2017: width="560" height="315" src="https://www.youtube.com/embed/Nj8Bb883FpI" frameborder="0"> [...]