Delphi

The Inexorable Rise Of The Supercharged Developer

Over time, software development has experienced a major drift not just in implementation, but in terms of the mindset as well. Back in the day, the engineering teams had clear, specific, and defined roles. The individuals in the team were expected to perform their part of the duty with minimalistic involvement and participation in other fields. Now that we are living in an agile world, the engineering mindset has been revamped and every individual is regarded as a full-stack package and should have the knowledge and expertise to execute the end-to-end cycle of software development. In this article, we’ll look at some of the key points of focus for software developers as an all-in-one package, especially when it comes to desktop and native application development. How can I make a full-fledged application using third-party APIs? Nowadays, when we talk of disruption and breakthrough technologies, it is highly dependent on time investment. Disruption in technology comes with effective use and management of time. Therefore, it is useless to recreate the wheel and engineer things from scratch that are already available in the form of open-source projects, SDKs, toolkits, packages, and libraries. When it comes to desktop or native ecosystems, we know that desktop apps are powerful execution tools that can natively run on your local machine to provide holistic application navigation and utilization experiences. With the advancement of modern web technologies, the desktop application development paradigm also experienced a major drift in terms of implementation. Technologies such as JavaScript and Python have inspired the hybrid implementation of desktop apps. Delphi is by far one of the most popular choices for native desktop application development. To develop a full-fledged application, you can easily integrate third-party APIs in your Delphi code and create exciting desktop applications as an all-in-one developer. For instance, you need to create an application that involves some modules related to maps. For this problem statement, you already have Google Maps APIs readily available. You can simply utilize these ready-to-use Google Maps APIs and map them according to your use case. Similarly, there are tons of other APIs, libraries, and SDKs for different use cases that you can use and integrate without starting the development process of these modules from scratch. Leveraging APIs such as those from API Layer among others is the smart way to use other people’s hard work to inject that kind of capable broad-strength modernity into your apps. Supercharged developers employ smart techniques to reach their targets – and there’s nothing smarter than standing on the shoulders of giants who have already done the hard work for you. What is an easy way to develop an end-to-end artificial intelligence-based application? Undoubtedly, artificial intelligence is at a boom right now and there’s every sign that this is a trend which is very much here to stay. There are tons of applications and use cases where AI has proved beneficial. From the technology and development perspective as well, researchers and engineers are actively working on producing dynamic and scalable frameworks that facilitate the development of AI applications. As the AI offerings improve and new techniques are refined many of the things we previously only thought possible in science fiction or would require vast computing resources are becoming available to regular developers at extremely affordable pricing plans and with easy […]

Read More

Do You Know The German Word For “Sauerkraut”?

You know, the hardest part about learning a new language is remembering some of the more esoteric words and phrases. Does that error message say “syntax error” or “successful compilation”? Does that button really say “end” in Danish or has there been some kind of horrible misunderstanding? How do I exit VIM? Just kidding – nobody knows that. But seriously, it’s not just the rote learning of words which are direct equivalents of your own first language, it’s also about noting down phrases which mean something entirely different in the one you are trying to master. My own favorite is the French phrase “il s’offre des fleurs“, literally, “he gives himself flowers” but it actually is used to mean that a particularly vain man thinks a little too highly of himself. Audio notebook to the rescue! This offline Audio Notebook helps you learn a new foreign language. According to the developer, “The own individual vocabulary (words, phrases, idioms) for learning a foreign language is entered from you in your native language (left) and in the foreign language (right). In addition, an audio note (for example, the debate in the foreign language) be included. Thus you can specifically customize the learning to your own needs the new language. Listen to the audio recording on the bus or on the train and thus strengthening your sense of language and your vocabulary. The lyrics and the audio example: you can at any time and thus adapt easily. The detained words, phrases or expressions can be corrected and completed. You can also add or remove new superfluous. For learning a language you put just a new language (language folder) and you add your own lessons. The foreign-language expression can be shown or hidden. This facilitates learning. If you are looking for something, then use the full-text search, so you can browse through all lessons and display the desired text and then edit them as necessary.” Oh, and Sauerkraut? It’s a Chinese invention…. but the word is totally German. Google Play Sprachen Lernen-AudioNotizbuch Screenshot Gallery RAD Studio Delphi can help you turn your great ideas into reality. Why not download a free trial copy today and see what it can do for you?

Read More

Everything You Need To Modernize With RAD Server

In the modern age isn’t it true to say we are completely surrounded and immersed in technology of diverse forms? Much of it now is entirely cloud-based but there’s still a substantial proportion which employs a mix of both cloud and more physical hardware computing resources. However, the common thread amongst all of these technologies, even the most recent ones, is the certainty of them becoming obsolete. After all, even though all technologies evolve rapidly, they are eventually replaced by something which is either an evolutionary step thanks to advances in technological offerings or because new and more potent ways of providing a service or solving a problem emerge. To save a technology or application from fading into oblivion, its makers consistently upgrade it with new features and prepare it in anticipation of future trends and ways of doing things. As simple as this may seem, such a task can become arduous, especially if the application is complex and has a wider codebase. Additionally, many of the libraries and frameworks on which the application is built can go out of service or are superseded and need updates. To tackle the challenge of upgrading and modernizing an application, robust development studio solutions like RAD Server have powerful methods that streamline the process. Such methods help you gain a sense of the kind of changes you will have to implement. Additionally, they also guide you through the modernization tasks themselves. This article dives into what the modernization journey with RAD Server looks like and why can be essential for applications in the first place. Why Would You Need To Modernize Your Applications? The field of software development has a radically different landscape today to that of even five years ago. Applications now use their hardware resources much more efficiently thanks to advances in operating system abstraction and support. The wide range of programming languages enables you to create applications which perform complex tasks better than before and with optimizations in the code creation process thanks to a maturing of the development industry’s tooling providers and the supporting component eco-system. If your application is to survive in such a landscape, it will have to modernize and offer more than before. When it comes to web applications, advancements in what we have come to expect from a web browser and the rendering scaffolding which supports that have come by making them much more dynamic and robust. Developers can now create web applications at remarkable development velocity and, when done right, the same codebase can work on all kinds of devices thanks to the invention of techniques like adaptive rendering of user interfaces and virtualization of hardware differences to provide a generic API or set of properties and methods which address the lowest common denominator of hardware sensors and functionality . Modularity has also been achieved through microservices, and operations have become as serverless as feasible. The question of security and scalability has also become an integral part of the conversation around application development. With a rise in cybersecurity concerns, applications need to be secure throughout and use the best practices. Additionally, the applications also need to be scalable to accommodate a wider user base and deployment when necessary. Without these abilities, your application can lose its competitive edge and be eventually forgotten. What Is […]

Read More

What Is It Like To Be A Developer Brian Barr?

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. Talking to us today we have fellow British Delphi fan Brian Barr. Brian is based in Norfolk, England nestled by the English East Coast which brought back many nostalgic memories to me of driving through the wonderful local countryside since my own late father used to live in that area. Brian has a fascinating background coding Delphi programs for use in the TV and radio industry even before the launch of Delphi 1. His Barrcode application reaches an astounding 50 million listeners and viewers products every week. Thank you for taking part in the interviews Brian! Thanks for the homework! 😂 What would be your brief evening news summary of who you are and what you do? Written Delphi programs for the TV and radio industry before Delphi 1 came out. Started writing in BBC Basic for the BBC Model B. Wrote digital playout systems for the biggest commercial radio stations in the UK. Now writes software for the major TV channels in the UK. How and/or why did you become a developer? I was a radio station engineer working with electronics, I needed to learn programming to write some automation systems to support diversely skilled staff. Do you think you will ever stop being a developer? If so, what would be next? Never Brian is not actually from Florida What made you start using Delphi/C++ Builder? As I recall, I saw Delphi 1 in a magazine. I needed to program on the Windows PC platform and Delphi showed much promise. If you could give some advice to a student who is considering a career as a software developer, what would it be? Research the subject thoroughly. Principles of programming are pretty universal – all languages have an IF statement and various loops. Get used to structuring your code so that when you are old, you can still work out what it does. Tabs… or spaces? Spaces – silly!! Don’t get me started on where the “begin” should be. What’s the best day you ever had as a developer? Too many – getting a major contract for Capital Radio in London – led to many more stations. What’s the worst thing about being a developer? When things go wrong – you feel responsible for the chaos. What’s the coolest development tip you know? When things don’t work – it’s always YOUR fault! 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? Work from home. My time is my own, also the freedom to leave the keyboard when my brain aches. Tell us something interesting you think we might not know. Darth Vader IS Luke’s father!! Have you been to Silicon Valley? If so, how was it? If not, have you ever wanted to? Who wouldn’t want to program in the sunshine? Have you ever met any famous/well known tech figures? Who was it? How did it go? Because I was in a radio station, I met many “famous” people. Once was shown round […]

Read More

How To Create A Super-Fast Pusher Notification App

What is Pusher ? Pusher is a set of bidirectional APIs targeted on real time communication. The main use case of those APIs are : Real time charts (cryptocurrency values) Network games (synchronization of players) In app chat (application support) Real time results (basketball, soccer, baseball) Instant geolocation (products to home delivery) What are the main specifications of Pusher ? Pusher is a publish-subscribe messaging system that allows to exchange messages reliably and effectively. Pusher solves by design the problems of : Scale of number of messages and users The real time constraint of messages delivery. Pusher supports the concept of channels. A channel of communication can have 4 different type : Public Private Encrypted Presence What is a Public Channel in Pusher? Public channels should be used for publicly accessible data as they do not require any form of authorisation in order to be subscribed to. What is a Private Channel in Pusher? Private channels should be used when access to the channel needs to be restricted in some way. In order for a user to subscribe to a private channel permission must be authorized. The authentication occurs via a HTTP Request to a configurable authentication url when the subscribe method is called with a private- channel name. What is an Encrypted Channel in Pusher? An encrypted channel is similar to a private channel. However the content of the message is end-to-end encrypted  This encryption follows the specifications of the Secretbox encryption standard defined in NaCl and the message is encrypted before it leaves the server. Only authorized subscribers have access to the channel specific decryption key. This means that nobody except authorized subscribers can read the payload data, not even Pusher. End-to-end encrypted channels also provide end-to-end authenticity; that is your messages are protected from forgery, and that they are guaranteed to come from someone who holds the encryption master key. What is a Pusher Presence Channel? Presence channels build on the security of Private channels and expose the additional feature of an awareness of who is subscribed to that channel. This makes it extremely easy to build chat room and “who’s online” type functionality to your application. How can I integrate Pusher into my Delphi app? The first step is to create an “application” on Pusher.com First of all users need to subscribe to the Pusher network and create an application. Pusher will generate several ids and keys needed to use the Pusher system as follows: With all this data, the developer will be able to interact with the Pusher system. How do I connect to the Pusher network with the TsgcWSAPI_Pusher component of ESEGECE? The low-level communication with Pusher is based on web socket. As a result you can find a Pusher component in the websocket component suite of ESEGECE. You can download the component suite from here. The component installation is done by the compilation the bpl for the Delphi version. There are full instructions and it’s quite easy to do, even for novices. Now, in RAD Studio Delphi, create a new application and drop on the main form the web socket component TsgcWebSocketClient and the Pusher component TsgcWSAPI_Pusher. In the property of the pusher component we will need to set : sgcPusher.Pusher.Cluster := ‘eu’; sgcPusher.Pusher.AppId := myAppid; sgcPusher.Pusher.Key := myKey; sgcPusher.Pusher.Secret := mySecret; sgcPusher.Pusher.TLS := True; […]

Read More

The 5 Best Reasons Why Security First Is A Good Idea

Balancing data privacy and security with user experience is one of the most complex tasks for software developers.  Many projects have higher priority for business functionality and security-related tasks are lower priority which leads to an insecure system. Here are some reasons why putting security to the forefront of our designs and development are essential. The security by design methodology should be enforced in the product design and development stages to make more secure and reliable software. Rather than applying security at the final stages of the software, it is better to start the project with security awareness. Finding the issues related to the security of the project at the final stage of the development process might force the development team to expend further unplanned time to re-architecture or make dozens of changes.  One of the problems with poor security design on software is the exposure of sensitive data. For instance, the simple scenario is that the user enters his/her account and clicks an image to download it. What if that link is available to others and there is no authentication or resource protection? Something as simple as a compromised linking strategy can be difficult to fix after the fact and could eventually lead to a steep drop-off in user confidence and corresponding plummet in adoption of your app or service. When talking about security by design we need to define several terms. Classic information security usually includes confidentiality, integrity, and availability. Keeping information secret that should not be made known to the public. For instance, your healthcare record – Confidentiality When your information is safe and does not change by any third party, this is Integrity. For instance, votes for election. Availability implies that the information is at hand on time. For example, when there is a call for a hospital, they need to know the location and the address immediately. All 3 factors are mandatory if you are concerned about security by design in your project. Moreover, in recent years many governments and legal bodies have introduced rules which require traceability of data use, access and dissemination. This features in laws such as the European GDPR regulations. Traceability is another factor we must consider to ensure that if the data is accessed, that connection should be traceable. Security by design starts from the approaches that you do with your code. If you ask five developers to design software, you will get five different answers. But only a few of them ask how the objects interact with each other and how the system should be protected.  To create better software you should care about: Design patterns System architecture Activities and connection of classes Even writing if statement or utilizing for loop security These all qualify as part of the software design process. In the traditional software development process, security should be a top priority when developing and write code. So, everyone involved in the process should be trained and experienced in software security. At the very least developers need to know about the cross-site scripting attacks, vulnerabilities in low-level protocols, and the OWASP Top 10. By being aware of these, developers approach the development process differently, for example, they start to care about input sanitization, security configurations, or outdated components in their toolset. Dozens of tools and services are available that protects your entire […]

Read More

5 Ultimate Ways To Modernize Your Apps For Windows 11

Delphi offers a modern, robust & enterprise-grade UI developer environment with Visual Component Library (VCL) for Windows only and FireMonkey (FMX) for cross-platform development. Delphi VCL offers the latest features and modern UI controls for your Windows app development.  Moreover, you can enjoy the native performance in your Delphi app, and accessing to hardware and latest features of Windows is quick with Delphi. In this article, we try to point out five main ways to modernize your apps for Windows 11. Users love when they can easily find what information the app is gathering and easy-to-understand privacy-policy notices. So, informing about all this and giving access to enable or disable telemetry settings is always welcome. The comprehensive design forms a more reliable product and environment for everyone. For instance, if your app is consists of lots of text content, it is more salutary to add an assistive screen reader that is also satisfactory for people with disabilities. Describe the UI controls or menus with beautiful and simple animations. Make your app scalable and responsive as much as you can. Provide font size changing option. Because you never know how your app represents in different sized screens. If your app welcome screen shows different information with several frames, make sure to give the option to redesign the frames. Delphi 11 IDE gives access to alter the layout On Windows 11, you can see most of the icons are updated with shiny and coherent icons. Besides, the new UI font called Segoe UI Variable makes the typography of your app more readable and softer. Src: Windows Docs Delphi VCL provides modern Windows UI controls with native performance.  By bringing beautiful and modern UI controls, your app looks shiny and up-to-date with Windows 11. Since Windows 11 itself has so many UI innovations, your app needs compatible with it! In addition to that, using lightweight and scalable animation in your app can increase user experience. Because everyone loves beautiful things. One of the popular ways of adding animations to the applications is using Lottie animation files.  Do you know how to add Lottie animation files to your Delphi app? Well, it is easy because of community contribution to the Delphi development ecosystem! Skia4Delphi is a cross-platform 2D graphics API for Delphi platforms based on Google’s Skia Graphics Library. Here you can watch the Desktop First session about Lottie and SVG in Delphi by Jim McKeeth Windows 11 introduced a wide array of UI elements and rounded corners to the desktop operating system. The usual sharp edges are now rounded and smooth corners which gives another feeling about desktop apps.  As you utilize Windows 11, the rounded corners on every UI control look great in both dark and light modes.  Here you can learn how to controls Windows 11 rounded corners with code: Delphi VCL has exceptional options to make your app look modern with VCL Styles. With dozens of different and unique styles, you can create modern-looking Windows apps in seconds by just applying styles.  How to design Fluent apps in Delphi – Acrylic material design? If you want to build your app by applying the Fluent design system, you can easily achieve it with the StyleControls VCL package. StyleControls VCL package uses classic drawing, system themes, GDI+, and VCL styles to make unique user interfaces. In recent years, we can see that some apps are designed for touchscreen mode also. For instance, when I use my 2-in-1 laptops, you need bigger […]

Read More

Announcing DelphiCon 2021!

Delphi 11 Alexandria is taking software development to whole new levels, and DelphiCon 2021 is the best way to learn all about your favorite programming language. Sessions are planned around the latest features, as well as general best practices, and emerging technologies that apply to all versions. There are also sessions on integrations with other languages (C++, Python, etc.) and platforms. DelphiCon 2021 is a free online conference the week of November 14th, 2021. It is the official worldwide Delphi conference! If you were registered last year then we saved you the trouble registering again. So if it says you are already registered then you are ready to go! Stay tuned as we announce more session details. Planned sessions topics: Artificial Intelligence, Best Practices, Productivity, APIs, Graphics and Design, Integrations, Tools, Components, Libraries, Windows 11, Low Code, Android, iOS, Linux and Blockchain. We are in the process of working with MVPs, Technology Partners, internal Embarcadero experts, and industry leaders, to build a line-up like no other. Beyond the traditional sessions, there are interactive sessions planned – a chance for you to try new things with immediate feedback. I’d also love to hear from you: What sessions or content would you like to see at DelphiCon 2021? Leave a comment and let me know. FAQ: How much is DelphiCon2021? ➡️ DelphiCon2021 is completely free! What about C++Builder? ➡️ We will look at a C++ specific event during the first part of next year. Will there be replays? ➡️ Sometimes it takes a while to get all the replays online, but you unfortunately miss the opportunity to ask the presenter questions. Is the content in English? ➡️ All content will be in English, but we are looking at options to make the content more accessible to all attendees. Do I need to install Delphi 11 first? ➡️ It isn’t required, but it is highly recommended. Will the content cover Delphi (Insert random version number)? ➡️ Some of the content will be applicable to all Delphi developers, but you increase the odds of things being compatible by being on a recent version. Can I speak at DelphiCon 2021? ➡️ We are currently soliciting sessions from MVPs and Technology Partners, but we are curious to cover a large variety of topics. Leave a comment and let us know what you have in mind. Who is speaking at DelphiCon 2021? ➡️ Close your eyes and imagine the best speakers with the best sessions. That is our goal. Leave a comment with your suggestions and reach out to your dream speakers and encourage them to speak! Be ready for DelphiCon and getting the latest and greatest Delphi! Download RAD Studio 11 Alexandria today!

Read More

How to create a blazing Pusher chat with Delphi ?

Pusher is a set of bidirectional APIs targeted on real time communication. The main use case of those APIs are : real time charts (cryptocurrency values) network games (synchronization of players) in app chat (application support) real time resuts (basketball, soccer, baseball) instant geolocalization (products to home delivery) Pusher is a publish-subscribe messaging system that allows to exchange messages reliably and effectively. Pusher solves by design the problems of : scale of number of messages and users the real time constraint of messages delivery. Pusher distings itself from other publish-subscribe systemby introducing the concept of type of channels. A channel of communication can have 4 differents type : Public Private Encrypted Presence Public Channel Public channels should be used for publicly accessible data as they do not require any form of authorisation in order to be subscribed to. Private Channel Private channels should be used when access to the channel needs to be restricted in some way. In order for a user to subscribe to a private channel permission must be authorized. The authentication occurs via a HTTP Request to a configurable authentication url when the subscribe method is called with a private- channel name. Encrypted Channel Encrypted channel is similar to a private channel. However the content of message is end-to-end encrypted  This encryption follows the specifications of Secretbox encryption standard defined in NaCl and message is encrypted before it leaves the server. Only authorized subscribers have access to the channel specific decryption key. This means that nobody except authorized subscribers can read the payload data, not even Pusher. End-to-end encrypted channels also provide end-to-end authenticity; that is your messages are protected from forgery, and that they are guaranteed to come from someone who holds the encryption master key. Presence Channel Presence channels build on the security of Private channels and expose the additional feature of an awareness of who is subscribed to that channel. This makes it extremely easy to build chat room and “who’s online” type functionality to your application. Create application on Pusher.com First of all as for facebook or telegram, user needs to subscribe to Pusher network and creates an application. Pusher will generate several id and keys needed to used Pusher system as follow : With all these data, the developer will be able to interact with Pusher system. Connect to Pusher network with the TsgcWSAPI_Pusher component of ESEGECE As the low-level communication with Pusher is based on web socket, it’s quiet obvious to find a Pusher component in the websocket component suite of ESEGECE company. Download  the component suite from here. The component installation is done by the compilation of the bpl regarding the Delphi version. Create a new application and drop on the main form the web socket component TsgcWebSocketClient and the pusher component TsgcWSAPI_Pusher. In the property of the pusher component we will need to set : sgcPusher.Pusher.Cluster := ‘eu’; sgcPusher.Pusher.AppId := myAppid; sgcPusher.Pusher.Key := myKey; sgcPusher.Pusher.Secret := mySecret; sgcPusher.Pusher.TLS := True; sgcPusher.Pusher.Version := myVersion; sgcPusher.Pusher.Name := myName; sgcPusher.Pusher.Cluster := ‘eu’; sgcPusher.Pusher.AppId := myAppid; sgcPusher.Pusher.Key := myKey; sgcPusher.Pusher.Secret := mySecret; sgcPusher.Pusher.TLS := True; sgcPusher.Pusher.Version := myVersion; sgcPusher.Pusher.Name := myName; for the websocket component the property will be set a following : wsClient.Port := 443; //means secure because TLS of Pusher component is on wsClient.Host := ‘ws-eu.pusher.com’; wsClient.Port := 443; //means secure because […]

Read More

New in RAD Studio 11: High DPI IDE and Form Designing!

There is a very exciting improvement in Delphi, C++Builder and RAD Studio 11.0 Alexandria: the IDE now fully supports high DPI scaling on high-resolution screens. This means that if you use Windows and have a 4K or similar high-res display, the IDE will render crisply and clearly on your screen. In fact, if you have two screens with different scales, you can have different IDE windows on those multiple displays and each will render perfectly, crisp and clear, on each monitor. This high DPI scaling support using the VCL’s own support for perMonitorv2 scaling, which we introduced a couple of releases ago, plus our own image collection and virtual image list components. In other words, we use the same tools we make available to you. Importantly, high DPI support includes support in the code editor, for crisp text, and when designing forms, both VCL and FMX. (If you’ve started RAD Studio 11 and thought, ‘hey, my form is small!’ read onwards – we have settings controlling the scaling in the VCL form designer and you’re set to unscaled by default.) Let’s dig into how the IDE behaves on both high-res and low-res displays today, some interesting notes about how it was implemented, and look at VCL form designing in particular. High DPI Comparison The best way to see the difference in the IDE is to use it. Using the IDE on a high-res display is like night and day – there are some things that screenshots only half convey, and what the RAD Studio 11 look and feel is like is one of them. In person, it’s an amazing difference. Here is a great image Jim McKeeth created comparing the 10.4.2 and 11.0 IDEs: On the left, the old DPI-unaware IDE in 10.4.2. It draws low-res, so is blurry when scaled up.On the right, the new high-DPI aware IDE in v11. It is crisp and clear no matter how high the scaling. You can see that the image on the right, in v11.0 Alexandria, the text and icons are clear no matter how large the display the IDE is placed on. Background – why High DPI? 2x the pixel density A typical scale set in Windows today is 200%. This is 2x the pixel density, which really means that for each pixel in the past, there are now four pixels (it is divided into two vertically and horizontally.) I am writing this on a 4K monitor, which is 2160 pixels high. That is 2 times 1080, a vertical resolution that before high DPI I used for years. To get everything to appear the same physical size onscreen, I need to scale by 2. If an app doesn’t support high DPI (is ‘DPI unaware’), Windows will scale it up, but upscaling adds blurriness. It is much better if an app is aware of the scaling applied to the screen its window(s) are on and can draw crisply. We added support to the VCL for this in 10.3, supporting perMonitorv2 high DPI scaling (the latest and best of the options Windows provides) and adding in components for high-res icons and image drawing, providing better support for high-res images in toolbars and menus that Windows has inbuilt. The IDE, which is mostly built with the VCL, uses these and is a great demo […]

Read More