Noutați

How To Make A Native Cross-Platform App In 30 Seconds

In the last few years, companies are increasingly seeking the most cost-effective ways to optimize the way they make powerful applications. Cost-effective demands high productivity and a fast app development environment. Moreover, creating Android, iOS, macOS, Windows, and Linux applications within a single code base is helpful to get into the market in the shortest possible time and target a potential audience of millions of users. The Delphi programming language and FireMonkey native and cross-platform framework is absolutely designed to make this kind of thing happen. We never forget, the “RAD” in “RAD Studio” is an acronym for “rapid application development” and always has been. If you have spent time looking through cross-platform development tools, most of them are mobile-centric and do not target desktop audiences. For enterprises, being able to target both mobile and desktop environments is like taking control over everything. But, everything comes with ups and downs. Designing for a mobile framework which is then reused to create a desktop app often results in applications which do not behave like a real native app for the desktop. If we look closer, the fundamental problem is that the native UI controls behave differently depending on which platform they is hosting them. Things that work quite naturally on a mobile platform, such a slide or three-finger swipe, might work with a double-click, right-click or even key combination on the desktop. If you’ve designed your interface mobile-first and focusing on the slide/swipe interaction it’s going to look very broken or act awkwardly when it translates into the desktop click/right-click/keypress user interface interactivity metaphor. Cross-Platform Tools A substantial number of programmers start with web development and, typically, those developers know JavaScript. So, using web technologies to create cross-platform applications is naturally much easier for web developers. Sometimes it is also better for companies that they do not need time to teach other technologies to get into the mobile market. But, FireMonkey (FMX) is by far one of the best “Write Once, Deploy Everywhere” software development systems on the market. The impressive architecture of the framework is leading success stories and businesses around the globe. FireMonkey can tap into the GPU to deal with user interface and work with 3D graphics. The 3D graphics of FMX are built into its very core, that is why all visual components can be used in the 3D space. Moreover, it can also get into the underlying operating system so that you can achieve high performance and platform look and feel. Furthermore, one of the best features of the FMX is that it is easy to access underlying operating system features and device functionalities through just interfaces. The high level of abstractions in the FMX framework provides fast accessibility for developers. To put it in a nutshell, Delphi and C++ Builder with FireMonkey allows you to have a single codebase and yet compile for all the major platforms in seconds. FMX is not limited to mobile and desktop platforms, it offers a wide range of support for IoT, Embedded development and also works with smartwatches. How to create a fully functional native cross-platform app in under 30 seconds with a low-code experience? FireMonkey App Low-Code Wizard – is a tool to create a new fully-functional Delphi mobile application with multiple screens using the Low Code Wizard. Once […]

Read More

How To Make A Powerful Low Code Currency Conversion App

Wouldn’t it be nice to have real-time and historical currency information for your business and be able to instantly retrieve up-to-date exchange rate data for more than 168 world currencies? The currencylayer API is capable of delivering accurate exchange rate with data updates ranging from every 60 minutes down to stunning 60 seconds. In this article we will see how fast and easy it is to use RAD Studio and Delphi to create a Firemonkey multidevice application using the LowCode Wizard in addition to a REST client library to take advantage of currencylayer API API and retrieve a JSON format response for currency exchange rates in real-time. Our RAD Studio and Delphi applications will be able to call the API and request information based on the name of parameters you provide. How do I set up the Currencylayer API? Make sure you refer to Currencylayer API website (https://Currencylayer.com/) and sign up for the free Plan providing only your email and some basic information (no credit card required). Once you are in the website will redirect you to a Quickstart guide dashboard and your API Access Key will be provided. The Access Key unique, personal and is required to authenticate with the API. Keep it safe! How do I call Currencylayer API endpoints? Now all we need to do is to call the API base URL (http://api.currencylayer.com/) via a HTTP POST method with no JSON request body needed and some few requested parameters added to the URL address depending on the endpoint we choose to call. One can do that using REST Client libraries available on several programming languages. Currencylayer offers five API endpoints to choose from live endpoint: request the most recent exchange rate data historical endpoint: request historical rates for a specific day convert endpoint: convert any amount from one currency to another using real-time exchange rates timeframe endpoint: request exchange rates for a specific period of time change endpoint: request any currency’s change parameters (margin and percentage), optionally between two specified dates Our demo will focus on the Live Endpoint but all the others follow similar logic but with different parameters passed. For a complete and detailed list of endpoints and its parameters make sure you refer to Currencylayer Quickstart guide (https://currencylayer.com/quickstart) http://api.currencylayer.com/live ? access_key = YOUR_ACCESS_KEY & source = GBP & currencies = USD,AUD,CAD,PLN,MXN & format = 1 // more parameters available please refer to the API Documentation (https://currencylayer.com/documentation) http://api.currencylayer.com/live ? access_key = YOUR_ACCESS_KEY & source = GBP & currencies = USD,AUD,CAD,PLN,MXN & format = 1 // more parameters available please refer to the API Documentation (https://currencylayer.com/documentation) What does the Currencylayer API endpoint return? After the call the main results will be as shown below. The currencylayer API’s live endpoint is used to get the latest rates for all available or a specific set of currencies. { “success”: true, “terms”: “https://currencylayer.com/terms”, “privacy”: “https://currencylayer.com/privacy”, “timestamp”: 1630324396, “source”: “USD”, “quotes”: { “USDUSD”: 1, “USDAUD”: 1.370567, “USDCAD”: 1.260385, “USDPLN”: 3.87164, “USDMXN”: 20.2166 } { “success”: true, “terms”: “https://currencylayer.com/terms”, “privacy”: “https://currencylayer.com/privacy”, “timestamp”: 1630324396, “source”: “USD”, “quotes”: { “USDUSD”: 1, “USDAUD”: 1.370567, “USDCAD”: 1.260385, “USDPLN”: 3.87164, “USDMXN”: 20.2166 } How do I connect my Delphi applications to Currencylayer API? Once you have followed basic steps to set up the Currencylayer API we need to make sure we are able to connect and […]

Read More

A Guide To Migrating From Legacy .NET Framework To Delphi

The application migration process can be easy or tedious, depending on the technology you are migrating. Moreover, migrating legacy projects to a new development environment might take a vast amount of time because of new software from scratch – re-engineering. Application migration is a broad term for the technological realm. Application migration can be deploying the app to another cloud service provider. Or it can be migration from one technology to another, for instance, .NET to Delphi FireMonkey. It can be migration from legacy to a whole new up-to-date technology from scratch. Moreover, this can be the migration of databases and the migration of platforms to one another. How to know when there is a need for migration? Most of us know that if the UI is not modern and UI controls are like the 2000s, it needs migration to a newer version of the technology.  If your app has problems with new operating systems and new architectures and can not work smoothly, therefore there is a need for migration. If there is no official support for the technology that you are utilizing, you just need to migrate to a newer version or other modern technology on the market. Source: Microsoft Insider How to prevent migration issues? Problems arise all the time – there are always risks of migration for any technology. The migrated source code can work fine as it was, but if there are no good architecture techniques, you still have the same old code. So, having a good and enough knowledge about the technology and being able to apply new modern patterns can be a real and worth migration. Moreover, you also need to think about the components and libraries that you have used in your previous project. If there is no alternative to those libraries you need to spend more time to develop them or port them to a newer version. Why migrate to Delphi? Delphi is one of the market-leading rapid application development environments. You can build native and cross-platform applications several times faster.  Single Code Base for Android, iOS, macOS, Windows, and Linux – Even you can use that logic in web apps using 3rd party tools with Delphi. Cloud aware and a wide range of database components Responsive UI and fast prototyping for mobile apps Enormous component set from hundreds of component creators  Cross-Platform Low Code Wizard to create fully functional apps in under 30 seconds How does migration offer the opportunity to cut dead features? Since you are thinking about migration, you perform business analysis and create new cases and remove unneeded code in your code.  While re-writing and refactoring, you can achieve neat code and even make code work faster by giving tweaks. EmbarcaderoAcademy How to migrate from .NET to Native and Cross-Platform Delphi FireMonkey Since the designer of the C# and Object Pascal is the same distinguished engineer, the languages are similar in several ways. But there are some syntax differences. To be able to successfully re-write in Object Pascal – check out the Object Pascal Handbook by Marco Cantù. From the Delphi language version 10.3, Delphi allows more flexibility in the declaration of local variables and type inference for inlined variables. This gives more flexibility when migrating. Furthermore, if you are utilizing RESTful web services in your project, there […]

Read More

Supercharge Your JavaScript Mobile Apps With Touch

Touchscreens are available on a variety of devices, ranging from smartphones to tablets. They have taken the way we interact with and design our applications to a whole new level. People love to use their phones, tablets and other touch devices. As a result, developers are giving more thought to building quality applications for touch screen devices — it is now a top priority for responsive UX design. A large part of touch UX design is ensuring the apps you design respond intuitively to your user’s needs. One of the best ways to supercharge your Ext JS cross-platform web applications is with Sencha Touch effectively. In this post, we will show how. What is Sencha Touch? Sencha Touch is a JavaScript framework designed for developing applications for mobile devices. It can be used to develop data-intensive web apps for a wide spectrum of platforms including touchscreen laptops, smartphones, and tablets. More importantly, It helps you to develop mobile applications for both Android and iOS easily while maintaining a native look and feel. Once a stand-alone product, Sencha Touch is no longer supported on its own. Instead, its core functionality has merged with Ext JS, which provides you with an even more powerful suite of tools to conveniently develop all of your cross-platform mobile and web applications. How to implement touchscreen support on Ext JS? Implementing Touch is even easier now that it is a part of the Ext JS JavaScript framework for smartphones, tablets, and touchscreen laptops. More than ever, the applications you build with ExtJS run seamlessly a variety of devices — all with little or no modification. Here are three ways to implement touchscreen support: Event Normalization The first way to implement Touch on a device using Ext JS is Event Normalization. Event Normalization refers to the process of translating simple mouse events to their equivalent touch and pointer events. Simply put, it enables your Ext JS application to run flawlessly on touchscreen devices. Here is how it works: If your code requests a listener for a mouse event, Ext JS attaches an equivalent touch or pointer event to the request. For example, here is a scenario where the application attempts to attach a mousedown listener with the following code: myElement.on(‘mousedown’, someFunction); If the device supports touchscreen events, the event system translates mousedown to touchstart: myElement.on(‘touchstart’, someFunction); In cases where your devices support pointer-events, the event system translates mousedown to pointerdown: myElement.on(‘pointerdown’, someFunction); As you can see, you can implement touchscreen support in the form of Event Normalization for your Ext JS web applications is very easy. There is no complexity and very little code you need to write to make it work. Gesture System Gesture systems are another way to implement touchscreen support in ExtJS. From a browser’s perspective, there are three types of events: touch, pointer, and mouse. Upon interpreting their sequence and timing, Ext JS can synthesize more complex events, like drag, swipe, and tap. To enable your Ext JS application to listen for specific gesture events like longpress, you just need to use this single line: Ext.get(‘myElement’).on(‘longpress’, handlerFunction); Origionally, Sencha Touch was specifically designed for touch events. Now, however, Ext JS offers full support for pointer and mouse events using the Gesture System. Gestures respond to any type of input –they can be triggered […]

Read More

How To Make A Native Cross-Platform Apps In 30 Seconds

In the last few years, companies are increasingly seeking the most cost-effective ways to optimize the way they make powerful applications. Cost-effective demands high productivity and a fast app development environment. Moreover, creating Android, iOS, macOS, Windows, and Linux applications within a single code base is helpful to get into the market in the shortest possible time and target a potential audience of millions of users. The Delphi programming language and FireMonkey native and cross-platform framework is absolutely designed to make this kind of thing happen. We never forget, the “RAD” in “RAD Studio” is an acronym for “rapid application development” and always has been. If you have spent time looking through cross-platform development tools, most of them are mobile-centric and do not target desktop audiences. For enterprises, being able to target both mobile and desktop environments is like taking control over everything. But, everything comes with ups and downs. Designing for a mobile framework which is then reused to create a desktop app often results in applications which do not behave like a real native app for the desktop. If we look closer, the fundamental problem is that the native UI controls behave differently depending on which platform they is hosting them. Things that work quite naturally on a mobile platform, such a slide or three-finger swipe, might work with a double-click, right-click or even key combination on the desktop. If you’ve designed your interface mobile-first and focusing on the slide/swipe interaction it’s going to look very broken or act awkwardly when it translates into the desktop click/right-click/keypress user interface interactivity metaphor. Cross-Platform Tools A substantial number of programmers start with web development and, typically, those developers know JavaScript. So, using web technologies to create cross-platform applications is naturally much easier for web developers. Sometimes it is also better for companies that they do not need time to teach other technologies to get into the mobile market. But, FireMonkey (FMX) is by far one of the best “Write Once, Deploy Everywhere” software development systems on the market. The impressive architecture of the framework is leading success stories and businesses around the globe. FireMonkey can tap into the GPU to deal with user interface and work with 3D graphics. The 3D graphics of FMX are built into its very core, that is why all visual components can be used in the 3D space. Moreover, it can also get into the underlying operating system so that you can achieve high performance and platform look and feel. Furthermore, one of the best features of the FMX is that it is easy to access underlying operating system features and device functionalities through just interfaces. The high level of abstractions in the FMX framework provides fast accessibility for developers. To put it in a nutshell, Delphi and C++ Builder with FireMonkey allows you to have a single codebase and yet compile for all the major platforms in seconds. FMX is not limited to mobile and desktop platforms, it offers a wide range of support for IoT, Embedded development and also works with smartwatches. How to create a fully functional native cross-platform app in under 30 seconds with a low-code experience? FireMonkey App Low-Code Wizard – is a tool to create a new fully-functional Delphi mobile application with multiple screens using the Low Code Wizard. Once […]

Read More

What Is It Like To Be A Developer Frank Lauter?

Hello. This article is part of a series where we speak with professional software developers, ask them what it’s like to write code for a living, and perhaps gain a few insights into the software development industry along the way. Today we’re talking to German developer and Embarcadero MVP Frank Lauter. Frank has been a developer for 39 years. He has his own company which sells their own application and have done so for 35 years. He says “I’m, of course a big Delphi fan and I’m using Delphi and Turbo Pascal since version 1.0”. Frank is one of a handful of developers who chats with me fairly regularly on Skype where we swap programming notes, developer gossip and nerdy Star Trek kind of stuff. Hey Frank, thanks for doing the interview, I really appreciate it. You’re welcome! How and/or why did you become a developer? This was the natural progression. Do you think you will ever stop being a developer? If so, what would be next? Never! What made you start using Delphi/C++ Builder? Pascal was the third language I’ve learned, first was Z80 Asm, then BASIC and UCSD-Pascal. So, Turbo Pascal 1.0 was the next way to go on a non-Apple Hardware. The next stage was Delphi. If you could give some advice to a student who is considering a career as a software developer, what would it be? Don’t listen to other people, you have to decide for yourself what is best for you. You don’t have to follow every new trend, just because something is new doesn’t necessarily make it better. Do you want to use a programming language that is supposedly the most widely used, or a language where there are always openings? Tabs… or spaces? Spaces – Tabs are horrible… I don’t agree with Richard. What’s the best day you ever had as a developer? When I reached 1000 customers. What’s the worst thing about being a developer? Frank knows EVERYBODY from the Delphi community! Here he is (left) with David Millington No life! What’s the coolest development tip you know? Threads are your friends. Work from home, work from an office, work in an open plan / shared space? What do you prefer and why? Do you get to choose? I would really like to try to work in a google -like-office space. But I’m in home office since more than 10 years. Tell us something interesting we don’t know. I don’t know what you don’t know. [After Frank’s answer I changed this question to “tell us something interesting you think we might not know”. You can always trust a good developer to be brutally correct about questions and answers! 😂 – IanB] If you could wave a “fix the tech industry” magic wand what would you change? I would remove Java and Python from this world and educate all the Python and Java developers that there is hope at the end of the tunnel, and the name is “Delphi”. Have you ever met any famous/well known tech figures? Who was it? How did it go? David-I – One sentence from him will always remain in my memory: “We are developers, we rule the world” If you could convince someone to consider Delphi or C++ Builder what would your method be, how would […]

Read More

Sencha 2021 / 2022 Roadmap — August Update

In this Sencha roadmap post, you will find a detailed summary of what we’ve planned for the near future. The product team interacts with customers on an everyday basis. Your feedback plays a significant role in driving our overall product direction. Before we get to the details of our updated roadmap, we wanted to recap what we’ve delivered in recent months.   Recent Releases 7.4 Release In May 2021, we released Sencha Ext JS 7.4, and the release was features-focused, addressing some of the customer requests across the modern and classic toolkits. Shortly after the initial 7.4 release, we released ExtReact, ExtAngular, and ExtWebComponents 7.4. Key 7.4 features include: Multi-level Grouping The MultiGrouping grid feature allows the Grid Panel to display the Store data grouped by multiple groupers. Multi-level Grouping Menu Options for Multi-level grouping   Grouping Panel  This plugin lets your end-users drag and drop grid columns to the grouping panel section visible above the grid panel. The user can move the dimensions in the grouping panel in which order they want. Grouping Panel Options for Grouping Panel – Classic   Summaries for groups and total Quickly define functions for aggregation such as sum, min, max count, and more per column. Filterbar This classic and modern toolkit plugin will add a docked bar under the grid headers, and depending on the grid columns configuration, the user will add filter fields. GXT 4.1.0   In February 2021, we announced the availability of a GXT 4.1.0 software release for our customers on maintenance. This release addresses more customer-reported tickets, dependency upgrades, and more. The release is available for customers from the Sencha support portal. Key features included in GXT 4.1.0: GXT support for GWT 2.9.0 GXT should support Java 11 version Fix Archetypes Maven migration from Artifactory to Sencha MyGet Sencha Test 2.4   Since the release of WebTestIt, we’ve received some questions from Sencha Test customers. We don’t have any plans to replace Sencha Test with WebTestIt. The two products will coexist. WebTestIt is used to serve the broader non-Ext JS test automation ecosystem. It isn’t tied with apps built with Ext JS and can test apps built with any framework (React, Angular, etc.).  Recently we released Sencha Test 2.4, which is more focused on keeping it up to date with its dependencies.  Key features included in Sencha Test 2.4 Sencha Test Studio has been upgraded to Electron 11 Sencha Test included Chrome drivers have been updated to 86-90 The Generic Web Driver has been fixed If there are specific features you would like to see added to Sencha Test, please don’t hesitate to reach out to Sencha product management.   Sencha GRUI High-performance, feature-rich grid for react applications GRUI by Sencha is a perfect modern enterprise-grade grid solution for React UI that comes with 100+ unique data grid features. With GRUI, we have re-built the Ext JS grid from the ground up to use modern JavaScript and a whole new architecture that will deliver all the same great features and even better performance in an easy-to-use React API. Key features included in GRUI: Virtual Columns Infinite Scrolling Slider Paging Toolbar Column Drag and Drop Column Editors Click here to Experience an interactive demo of ‘Why use GRUI by Sencha?’ We are excited to receive your feedback on the latest […]

Read More

The Future Of Accessibility Is Desktop First

The advancement of technology over the years has made life more comfortable. Arguably, if we’re to have a truly inclusive society, one of technology’s priorities should be eliminating the lines of race, gender, ability, amongst others.  The same goes for application development. To get your products or services to the largest possible target audience, you must eliminate all usage barriers. This is where accessibility plays an important role.  With the mass adoption of mobile devices, many companies’ focus has shifted towards developing mobile-first applications, when, perhaps, the key to unlocking the treasure pot is accessibility-first. Here, your applications would not only be available to mobile users but to everyone that requires your products or services.  Mobility is not a condition for accessibility. If you’re to follow the accessibility-first initiative, you must aim for desktop-first application development. This is because accessibility support on desktops, especially in native desktop app development platforms like Delphi, is well established. Therefore, not only should the desktop be first, but accessibility should be first and is with native desktop apps! Read on to find out more on why desktop-first rules accessibility. Or you can dive into our Desktop First UX Summit to learn more about building desktop-first applications. What Is Accessibility? Accessibility refers to making your application suitable for use by everyone, including people with disabilities – for example, impaired vision, hearing, cognition, and other ways in which a user may be differently-abled. The world is filled with people of varying physical abilities and sensory challenges. In fact, according to a CNET article, at least 15% of the world’s population suffers from a disability. The Center for Disease Control (CDC) also reports that 25% of Americans are considered disabled;  in other words, one in every four Americans. Of this number of people affected by disability in the United States, the largest group are blind or suffering from a form of visual impairment, or deaf, or hearing impaired. Other challenges included those who suffer from mental disabilities or difficulties with either speech, mobility, or cognition.  Because of these individuals, the Americans with Disabilities Act (ADA) was put in place to ensure that companies offer general application accessibility. With most people still forced to stay indoors in some parts of the world due to the Covid-19 pandemic, accessibility has never been more imperative.  To this end, numerous desktop tools make it easier to access data and navigate through web and native applications. Some of which include; Voice commands Screen readers Alternative or specialized keyboards  Trackpads and other adaptive pointing devices Screen magnifiers Eye-tracking tools.  It’s clear from this list that all these tools have something in common; while voice command is more common on mobile devices, they’re all easier to use and implement on desktop than on mobile devices with a greater variety of vendors from a broad selection of vendors. On the desktop, users are less constrained by the operating system and, in particular, the hardware vendor when reviewing options for assistive technologies.  Desktop Accessibility Features All standard desktop applications, for example, mail app, internet browsers, office applications such as spreadsheets and word processors, photo manipulation software, and so on, are conscious of and are maximizing accessibility today to ensure their widest possible adoption. This has benefits not just for disabled users but any user.  Here are […]

Read More

This Is How To Easily Process CSV Data Using FireDAC

CSV is an abbreviation for a Comma-Separated Value file that enables data to be saved in a loosely-structured text form. Because of its simple format, it is very easy to process the data inside the file and extremely portable too. The great thing about the CSV files is that they are compatible with almost any text editor as well as a large number of popular applications such as Microsoft Excel or Google Sheets, making them easy to create, share, and edit. A CSV file is a type of delimited text file because it typically utilizes a comma to separate values. Some files also use the TAB character (ASCII 8) instead of the comma to break up the fields. Files which use the TAB character in this way are often referred to as Tab-Separated Value TSV files. Fields can also be optionally ‘wrapped’ with double-quotes (“), especially if they might contain commas. However these CSV/TSV files are formatted we can easily read them using Delphi and the FireDAC components. Are CSV files used in professional businesses? The short answer is: yes. CSV files are so easy to use that almost every type of business makes use of them to transfer and exchange data. One example is updating or downloading product data from an application. For example, you can bulk import new products to your system or store web app.  Because of its simplicity and straightforward format, millions of developers utilize CSV files. Often, tech savvy Business owners can quickly read, comprehend, and edit the information without specialist help. Here is an example of a CSV file: How to use CSV files in Delphi applications? Embarcadero RAD Studio provides Delphi & C++ Builder development environment, and they have FireDAC components. FireDAC provides a common API for accessing different database back-ends with high performance. Moreover, FireDAC components provide easy access to CSV files. It abstracts the data into tables, views and stored procedures can be used to process CSV file. In this demonstration, we will utilize TFDBatchMove. We can use the TFDBatchMove component to move data between plain text files and tables using datasets. This demo project shows how to utilize the TFDBatchMove component to move information between different sources. Plain text to Table Table to Text Table to Plain text The TFDBatchMove implements the needed engine to move data between different types of data, and it uses reader and writer components. Here are some of the standard reader and writer components: TFDBatchMoveTextReader – Reader for plain text file TFDBatchMoveDataSetWriter – Writer for TDataSet TFDBatchMoveDataSetReader – Reader for TDataSet TFDBatchMoveTextWriter – Writer for plain text file These components define the data source reader using plain text files. So after establishing a stream from where to move the data using TFDBatchMove, it is easy to work with files. In this code, you can see that there are custom properties adjusted according to the plain text file format. So, the TFDBatchMove can automatically manage the reader instance. <br /> // Text file -> DB table<br /> procedure TfrmMain.btnASCToTabMoveClick(Sender: TObject);<br /> begin<br /> CloseQueries;</p> <p> // Create text reader and set FDBatchMode as owner. Then<br /> // FDBatchMove will automatically manage the reader instance.<br /> with TFDBatchMoveTextReader.Create(FDBatchMove) do<br /> begin<br /> // Set text data file name<br /> FileName := ExtractFilePath(Application.ExeName) + ‘Data.csv’;<br /> // Setup […]

Read More

What Is It Like To Be A Developer Jens Fudge?

Hello. This article is part of a series where we speak with professional software developers, ask them what it’s like to write code for a living, and perhaps gain a few insights into the software development industry along the way. Today we’re talking to Danish developer and MVP Jens Fudge. Apart from being an excellent developer Jens is also a actual genuine Olympic Champion having won a Gold Medal for Denmark in the 1992 Summer Paralympics! As will become clear during the interview, Jens was not content with ‘just’ a gold medal Jens has a broad range of interests, is also a superb motivational speaker and author plus a very decent down-to-Earth guy too. It never ceases to amaze me the wonderful depth and breadth of talent and humanity we are lucky enough to have making up the development community. Hi Jens, thanks so much for taking part, I really appreciate it My pleasure! What would be your brief evening news summary of who you are and what you do? I am a Danish person with lots of interests. My day-job is working as a freelancer with Delphi development, and teaching Delphi. In 2012 Anders Ohlson from Embarcadero at the time, asked me to receive the status of Embarcadero MVP. I really enjoy helping others, which is why I also teach Delphi, and attend conferences as a speaker. I also like to learn, so I attend conferences as an attendee. Which Embarcadero product(s) do you use a) the most b) regularly? RAD Studio – Delphi. How and/or why did you become a developer? Originally I studied biochemistry and molecular biology, but I was distracted doing other things. So I quit that, and later studied Computer Science. Do you think you will ever stop being a developer? If so, what would be next? I will probably never quit being a developer. I at the moment spend almost all my work time as a developer, teaching Delphi is a small part of my worktime, and lately I have found myself working as a mental management coach for elite sports (World Championship and Olympic level). What made you start using Delphi/C++ Builder? Not what, who. Dr. Cary Jensen gave a one-day seminar in Copenhagen around 1995. All attendees received a CD-ROM with Delphi on it. Thanks for that Cary. If you could give some advice to a student who is considering a career as a software developer, what would it be? Take the time to learn the process of building Tests for your code. At least learn the principles of Test Driven Development. Tabs… or spaces? Spaces [Jens was the only developer so far not to take my deliberately baited question and write paragraphs discussing why it should be spaces or tabs!- IanB 😁] What’s the best day you ever had as a developer? Many days, but maybe the first time I saw the main sign in Oslo Railway Station. The sign showed which trains were scheduled for which destinations on which tracks for 20-something tracks. I built the software for that (well, maybe not alone…). What’s the worst thing about being a developer? When the customer calls you and says that there is a bug in the software, costing millions of dollars per hour until it is fixed. Or maybe it is […]

Read More