Noutați

Supercharge Your User Interface with Skia4Delphi

What do Google Chrome, Mozilla Firefox, Chrome OS, Android, Flutter, and Delphi all have in common? They have accelerated graphics thanks to Skia. This high-performance, cross-platform 2D graphics library is taking the development world by storm. It works with VCL and FireMonkey on every platform Delphi supports. One line of code can make your existing FireMonkey applications faster, or take it further and unlock new features for breathtaking user interfaces. Skia4Delphi is an open source project by Spirit of Delphi Award winners and brothers, Paulo César Botelho Barbosa & Vinícius Felipe Botelho Barbosa. So how do you use Skia4Delphi and take your application development to the next level? Register now and join Jim McKeeth and Ian Barker in this webinar to find out! Come back after the webinar for details on the contest, more links, and the replay. Here are a few shorter videos while we work on getting the full replay. What is Skia, You Want to Ask? Imagine you are a software developer who needs to reach all the major platforms today. Your traditional choices are: Native Direct access to hardware Separate code for each platform Web/Cloud Mostly shared code Detached from hardware But Now We Have… FireMonkey Native Compiled – direct access to the platform hardware Multi-Platform – one code base for all platforms Component Based Visual Designer – maximize developer productivity How Does Skia Fit in Here? Introducing… Google Skia Google Skia is the open source graphics engine for Google Chrome, Android, Flutter, Xamarin, Firefox, and many others. It provides common 2D APIs that work on a variety of platforms, abstracting complexities in implementing low-level libraries it uses behind it, such as Vulkan, DirectX, Metal and others, implementing many optimizations and new features. Skia Platforms: All the most popular platforms in the world, such as: iOS (including simulator) Android (including simulator) Linux (main distributions) Skia Features About Skia4Delphi OpenSource Uses a modified fork of Google’s Skia Cross-Platform & Multi-Framework 2D graphics library for Delphi Drawing Focus on Quality & Performance The Brains Behind Skia4Delphi Two brothers from Brazil 2021 Spirit of Delphi Winners Paulo César Botelho Barbosa Vinícius Felipe Botelho Barbosa With the encouragement and suggestions of Ian and Jim Skia for Delphi ECONOMY – Open-source project, completely free EASY TO USE – Easy to install, simple code Compatibility Delphi 11+: All platforms Delphi 10.3+: Windows & Android Delphi XE7+: Windows Available via… Skia4Delphi Library The library conceptually exists in 3 parts: Skia API (Console, VCL, FMX) Access to the pure Google Skia library, through a single unit: Skia.pas Controls (VCL, FMX) TSkAnimatedImage: Play Lottie, Telegram stickers, animated GIF and animated WebP TSkLabel: Multiple styles in text, font weight, justify alignment, limit max lines, background color on parts of the text, auto size width and height, advanced decorations and more TSkPaintBox: use OnDraw event to draw with Skia API directly on control TSkSvg: load icons svgs, change colors and wrap mode App rendering (FMX) Optional feature that when enabled, the FMX graphics engine will be replaced by Skia4Delphi’s graphics engine, that is, the entire app, all the controls on the screen, will be painted internally by the Skia-based canvas. That is, by adding just 1 line of code to enable it, your entire app will automatically: Improve the quality of drawings; smoothing of jagged edges Gain […]

Read More

7 Undeniable Reasons To Love Your Python GUI

Python is a high-level programming language that may be used to create a wide range of applications, such as online applications, software and game development, network programming, graphical user interfaces (GUIs), scientific and quantitative applications, and more. It also has a long list of success stories, demonstrating that it assists a wide range of businesses in accomplishing their objectives. This article will be looking at unquestionable reasons to love Python GUI. What are Python GUIs and the main reasons to love them? GUI stands for Graphical User Interface, and it refers to computer applications that allow users to interact with an underlying application or system through a visual interface. For example, our smartphones’ graphical user interfaces (GUIs) will enable us to engage with many functionalities via the display, which we can touch, tap and swipe on. In simple words, a Python GUI is a graphical user interface created in the Python programming language. Python is a widely-used programming language due to its ease of use, widespread adoption, and, most significantly, its beginner friendliness. Python is wonderful for creating graphical user interfaces, as well as being extremely valuable in the disciplines of data science and machine learning. It even provides a number of frameworks that beginners can utilize to get started with GUI development. What Makes Python Unique? Python’s codebase is clean and well-structured, making it easy for developers to update and maintain the software. In addition, they don’t require developers to write any more code, which saves them both time and effort. As a result, they may devote their time to something more beneficial for the company. Python’s syntax consists primarily of English keywords, emphasizing code readability. During the development of the application, the readability of the code is crucial. When the software is used in the real world, the customers’ needs may change. You won’t have to worry about shifting needs with Python. Even if the developers who designed the program earlier have left the company, the new developers will be able to read and comprehend the old code and apply the new requirements accordingly. Why is PyScripter the best IDE for Python GUIs? PyScripter originated as a simple IDE to supplement the excellent Python for Delphi (P4D) components by providing a reliable scripting solution for Delphi applications. Because it is written in a compiled language, it has a more current user interface and is faster than some other IDEs. It also has several features that make it a good Python development environment. This fantastic IDE seeks to create a Python IDE that can compete with other languages’ traditional Windows-based IDEs. PyScripter is an excellent program. Lightweight, versatile, and extendable with a lot of features. Because it was built from the ground up for Windows, it is substantially faster and more responsive than cumbersome text editors, general-purpose IDEs, or other Python cross-platform IDEs, making it a perfect match for Python GUI programming and application How does Delphi supercharge Python development? Python’s versatility as a programming language stems from the fact that it can be used to create for all major platforms. You can develop programs for not only Windows but also Android, macOS, and Linux with the right Python tools. Using development tools that allow you to do so opens up a whole new universe of possibilities for your […]

Read More

How To Achieve High Performance In Cross Platform Apps

Whether you are working on a small or large development project that requires you to deal with an overwhelming amount of code, you surely want everything to be as responsive as possible, especially if you’re developing cross platform apps where every single byte of code counts and memory is often tight. Everyone desires to achieve and experience high performance; in fact, this is often one of the reasons people choose Delphi due to its ability to produce truly native apps which operate without any intervening compatibility layer to slow things down. Interestingly, in this video, Primož Gabrijelčič will share some useful tips and tricks on how to achieve high performance in Delphi. What are some great tips and tricks for improving performance in our apps? Performance to people has different meanings. For some, it may mean programs are running just fast enough. For instance, if you are typing your codes in RAD Studio, you want the development environment to be responsive enough for every action you make. In other cases, some people simply aim for the raw speed of the program while others expect servers to respond to queries in a reasonable amount of time. In this video, Primoz will list down all the possible ways you can do to improve performance in Delphi. The first step is to always confirm the problem and measure the code. Once you have figured out where the problem is, the best way you can approach is to fix the algorithm to get the best performance enhancement. Another equally useful option is to fine-tune the code or add the so-called parallelism to your code. You can also take advantage of the external libraries which might solve your problem faster or you can also rewrite your code in assembler as your last resort. The video will also provide actual demonstrations of how these techniques are being applied to Delphi. Primoz will also show how running less code can impact the performance and some important things to consider when executing the program. To learn more about how you can effectively improve your performance in Delphi, feel free to watch the video below.  

Read More

Visualize your own data structure in Delphi

In April, we did a blog on how to retrieve Google Analytics results, and display them in a TMS FNC Chart instance. The data, coming from the request, was displayed in a points collection. Did you know that you can also map your own data structure? TMS FNC Chart is designed to easily integrate your own data with a couple of lines of code. This blog will cover this, but first, let’s take a look at a general introduction video on what TMS FNC Chart has to offer.  Introduction Data mapping For the purpose of this sample, we take our CARS.csv file, shipped with a couple of our FNC demos. The file contains a list of cars, with useful info such as the power, cylinder capacity and price. First of all, we load our csv data in a TTMSFNCGrid. TMSFNCGrid1.IOOffset := Point(1,1); TMSFNCGrid1.LoadFromCSV(‘CARS.CSV’); TMSFNCGrid1.SortData(1, sdAscending); TMSFNCGrid1.Cells[1,0] := ‘Brand’; TMSFNCGrid1.Cells[2,0] := ‘Type’; TMSFNCGrid1.Cells[3,0] := ‘CC’; TMSFNCGrid1.Cells[4,0] := ‘Hp’; TMSFNCGrid1.Cells[5,0] := ‘Cyl’; TMSFNCGrid1.Cells[6,0] := ‘Kw’; TMSFNCGrid1.Cells[7,0] := ‘Price’; TMSFNCGrid1.Cells[8,0] := ‘Country’; Next, we want to visualize the price for each car in a bar chart. First, we add a new series, and set the type. var s: TTMSFNCChartSerie; begin TMSFNCChart1.Series.Clear; s := TMSFNCChart1.Series.Add; s.ChartType := ctBar; s.XValues.Angle := 90; end; To visualize the data in the chart, we can loop through the rows in the grid, and manually add a point for each row, pointing to the data. But there is an easier way. To load data in the chart, mapping directly on the grid data, we begin by implementing the OnGetNumberOfPoints event. procedure TForm1.TMSFNCChart1GetNumberOfPoints(Sender: TObject; ASerie: TTMSFNCChartSerie; var ANumberOfPoints: Integer); begin ANumberOfPoints := TMSFNCGrid1.RowCount – 1; end; The data is requested for each index between 0 & ANumberOfPoints through the OnGetPoint event. In this event, we can map the index on the series data. procedure TForm1.TMSFNCChart1GetPoint(Sender: TObject; ASerie: TTMSFNCChartSerie; AIndex: Integer; var APoint: TTMSFNCChartPointVirtual); var v: Integer; begin v := 0; if TryStrToInt(TMSFNCGrid1.Cells[7, AIndex + 1], v) then APoint.YValue := v; APoint.XValueText := TMSFNCGrid1.Cells[1, AIndex + 1] + ‘ ‘ + TMSFNCGrid1.Cells[2, AIndex + 1]; end; As you can see, a couple of lines of code immediately gives you a first impression of your data. Further customizations can be done, but the chart will map on the data, even if it refreshes the next time your app starts. CSV is a small sample and of course, the data delivered to TMS FNC Chart can be of any source type. v2.0 Our team is working hard on the next version which will include a significant amount of new features and improvements related to data import, look & feel and out of the box experience. Stay tuned for more! Want to explore the capabilities of TMS FNC Chart, go ahead and download it from our product page.

Read More

Meet Deputy, the new IDE expert, part of RunTime ToolKit

Developing in Delphi sometime presents a frustrating work-flow, experts allow us to alter some behaviors and Deputy targets the one that I disagree with the most, prompt for overwrite. This post will focus on the developers daily tasks and introduce Deputy, a part of RunTime ToolKit, and explain integration of Marshal and Caddie. Introducing Deputy Deputy, an IDE expert, remediates orphaned processes to avoid the prompt for overwrite. By default the IDE does not check before running a compile, it runs a few seconds of precompile then prompts that it can not overwrite the target. This expert watches before that compile starts and clears out the old process before the compile starts. See it in action: Availability: Deputy is available in GetIt for Delphi 11, 10.4 and 10.3. RunTime ToolKit integration Deputy provides the ability to download and launch Caddie, as well as the Marshal demos for VCL and FMX. Future releases will integrate specific items from Caddie and Marshal to make the experience more seamless. Marshal Highlights Marshal, an instrumentation SDK, enables runtime inspection of VCL and FMX applications via inspectors that are assigned by class type. Marshal provides navigation of your applications forms, datamodules and components. Marshal is built with the FNC UI Pack. Explore how easy it is to inspect your application with Marshal.  Explore your components with Object Plus, an integration of the FNC Object Inspector that captures the detail of your changes along with before and after screen shots. TDatasets get an extended analysis by attaching an FNC Grid with an export to csv. FireDAC connections get the ability to run adhoc SQL. Caddie is the offline analysis and organization component of RunTime ToolKit. Inspection generates a lot of data and Caddie gives you the ability to review a runtime session at a later date. Additional image analysis is executed as part of session collection to provide more visual clues on before and after images. Summary Deputy connects the circle of processes that RunTime ToolKit is tailored to provide for you as the developer. Making your tasks easier via inspection, data collection and analysis is the focus of RunTime ToolKit. Learn more here  Request for Feedback Your comments are essential for improving these tools and I am listening for feedback.  Please leave a comment below, contact me via email ( web@swiftexpat.com ) , open an issue on GitHub (https://github.com/SwiftExpat/Deputy ), or reach out on Delphi Praxis. Neil Laskowski 

Read More

10 Signs You Work With The Best JS Framework

Nowadays, most web developers prefer to use frameworks for their developments as they provide a more reliable and efficient way to build modern JavaScript-based web applications. However, it will be best if you can find the most suitable and user-friendly framework before starting. Sencha Ext JS is one of the best JS frameworks you can find on the internet. In this post, let’s discuss ten signs of a good JS framework. Is It Easy to Set Up and Use? The framework you select should be easy to set up and use. Another essential fact is that the framework should be cross-platform compatible as you have to share your code across multiple devices and developers who use different operating systems. Furthermore, if the framework has documentation, it is easy for developers to go through and refer to when they struggle with something or need to find out new features. Sencha Ext JS is easy to set up and use. This framework is appropriate for JavaScript-based development as it supports numerous popular libraries such as Angular, React, and Next.js. Does Your JS Framework Auto-Generate Code? Whatever the JS library you use, you have to implement different components using HTML5. In that case, developers have to put some effort into constructing HTML forms, components such as login, registration, dashboards, and contact pages. However, auto-generating code instead of coding manually will save time in the development phase and reduce human errors. Sencha provides that feature for busy developers. As the best JS framework, Sencha comes with a visual app builder called Sencha Architect. It lets you generate excellent user interfaces by dragging and dropping different UI components. How do I Debug the JS Code? Developers have to put considerable effort into debugging during the development and maintenance phases of SDLC. The reason is that you have to analyze the code step by step once you overcome an incident or issue. That process will be fast and effective if the JS framework you use supports debugging. Sencha Inspector provides debugging and troubleshooting features in the ExtJS framework. It equips smart debugging features, such as direct access to classes, objects, and components. Thus, you can analyze the JS code for issues and identify problems such as over nesting components and the number of layouts required to operate the JS app in optimal performance. Furthermore, you can use Sencha Inspector to perform unit testing and end-to-end testing of apps built using ExtAngular, Angular, and ExtReact on different operating systems and cross-browser platforms. Can I Share Code Snippets? You will have to share code snippets with your colleagues and other developers during the implementation of your JavaScript application. So developers use different techniques to share code, such as sharing code via GitHub or GitLab and pair programming. Now you can easily create & share code using Sencha Fiddle, which is an online platform. You don’t have to set up anything locally. Yet it brings you the look and feels of a local development environment. It also supports all the browsers and works on any operating system. You have to log in with Sencha forum user credentials and share the code using the fiddle URL to share code snippets. Can You Use GraphQL with Your JS Framework? Today most developers use GraphQL to control the data required through an […]

Read More

Unity Awards 2021: The results are in

Whether you’re creating massive modular environments, cool visual effects, or fun and exciting characters, these asset packs will bring your ideas to life. “Wow this is fantastic news for everyone at Synty Studios. It’s a huge honor to get recognition for our hard work from our peers, and we gladly accept this award. POLYGON – Dungeon Realms is the much anticipated sequel to our popular POLYGON – Dungeons pack. There was a lot of drive from the team to go above and beyond what we had done previously and the team brought its best when it came to the design of the world. We want to specifically thank the art team who worked on Dungeon Realms including Justin, Jason, Andrew, Cameron, and Mike for their hard work; it wouldn’t have been possible without the teamwork and passion each of you have for your craft.  Synty Studios prides itself on creating artwork for developers around the world, and we love seeing the cool stuff that gets created with our assets. It really is special to be a part of such an awesome community. Again thank you for this award.” – Synty Studios

Read More

How a DevOps platform can help solve 5 key SMB frustrations

Start-ups and small or medium-sized businesses (SMBs) face plenty of challenges, but several of those hurdles can be eased by adopting a DevOps platform. A DevOps platform can help not only address the issue at hand but the benefits can spread across the company, helping it grow in a competitive and unpredictable market. The United States alone is home to 32.5 million small businesses, making up 99.9 percent of all companies in the country, according to a 2021 report from the Small Business Administration’s Office of Advocacy. And all of these companies have a tough road to travel – so tough that 20 percent of U.S. small businesses fail within the first year, according to the U.S. Bureau of Labor Statistics. By the end of the fifth year, about 50 percent are shuttered. Stressed with common problems like worker overload, finding time for collaboration, and meeting customer and market needs, smaller businesses are under a lot of pressure. With SMBs and small or medium-sized enterprises (SMEs) facing such significant challenges, it only makes sense to streamline software development, speed up deployments, automate repetitive tasks and foster collaboration. Taking all those steps can greatly improve an SMB’s odds of success. Here’s how a DevOps platform can help take on some major SMB frustrations: Ease worker fatigue and improve work/life balance SMBs, by definition, have fewer employees than their larger, more-established competitors. That means there are fewer people to take on all the tasks that need to be done. And that’s no different for the software development team, which could very well be a team of one. With everyone in an SMB having to wear so many hats and take on so many different jobs, it can be exhausting. That’s not only hard on productivity, it’s hard on employees’ work/life balance, and therefore not good for the business or the workforce. A DevOps platform offers an environment that fosters communication, collaboration and automation, which help ease the burdens on the IT staff. This will help get work done more efficiently and faster, leaving employees with more time for other projects. Satisfy customers How can you find new customers when you’re not a household name? You do it by keeping the buyers you have and pulling in more by satisfying, and even delighting, your customer base. Satisfied consumers stick around, buy more, and give free word-of-mouth marketing. A DevOps platform helps SMBs create customer satisfaction by automating the customer feedback process and accelerating software development and deployment. Increase communication and collaboration Workers in start-ups and small businesses often take on a multitude of projects, and try to chip away at their burgeoning workflows. Meetings – within a department or cross-functional – may be either low priority or tough to arrange. A “heads’ down” attitude is understandable, but means different demographics and perspectives often won’t come together to better innovate and create more well-rounded products for a wider range of consumers. A DevOps platform promotes collaboration by eliminating barriers not just between IT workers but within an entire company. And that leads to more innovative features and products, improves productivity, and keeps employees happier and more engaged. Collaborative workers also are continuously learning from each other. Adapt to the market with speed and agility Every market can be unpredictable. New competitors appear. Customer expectations […]

Read More

DevOps careers: SRE, engineer, and platform engineer

Even if you’re totally happy in your current position, it pays to keep an eye on your DevOps career path and learn about emerging roles, especially given the way the DevOps space evolves so rapidly. For example, you might be wondering about the role of site reliability engineer (SRE) as opposed to DevOps engineer (and the totally new position called DevOps platform engineer, more on that later). These are all engineering positions requiring tech expertise and coding chops, but they play distinct roles on the DevOps team. Here’s what you need to know: SRE: A seasoned role As the title suggests, at a high level, SREs focus primarily on reliability, solving operational, scale, and uptime problems. In 2003, Google originated the SRE role to safeguard the uptime of its site, but it has evolved considerably since the advent of cloud native applications and platforms. Today, SREs concentrate on minimizing the frequency and impact of failures that can impact the overall reliability of a cloud application. According to Glassdoor, SREs typically require a Bachelor’s or graduate engineering or computer science degree. Salaries range widely, according to Glassdoor, hitting about $120,000 after 2 to 4 years of experience but can reach up to $300,000 and higher at the senior level. At least one blogger feels the SRE title carries more prestige and earning potential than DevOps engineers. Typical SRE responsibilities include everything from designing, developing, installing, and maintaining software solutions to working with engineering teams to refine deployment and release processes. Collaboration and communication are important job skills for the SRE role, as they need to work closely with multiple roles across the organization. At the time of this blog’s publication, there were 4,000 SRE jobs on Glassdoor. Indeed had more than 5,000 SRE postings and ZipRecruiter showed nearly 12,000 posts for remote SRE jobs. Python, Go, and Java were the most sought-after SRE skills listed on Indeed. According to Indeed, SREs transition to “DevOps engineer” at a high rate. DevOps engineers bridge the gap DevOps engineers, on the other hand, concentrate on removing obstacles to production and automation and making development and IT work well together. Like SREs, DevOps engineers need to be good at working and communicating with others, eliminating barriers to increase speed and quality of code delivery. With typically less need to be on call, the DevOps engineer may have a more favorable work-life balance than an SRE, who can have around-the-clock call. DevOps engineer work responsibilities include such things as analysis of technology utilized within the company and then developing steps and processes to improve and expand upon them. Project management is another key function, establishing milestones for departmental contributions and establishing processes to facilitate collaboration. The educational requirements for the two roles are comparable, with a Bachelor’s degree in computer science or engineering or higher as the usual price of admission. According to Glassdoor, the salary range for DevOps engineers is slightly lower than that of SREs, from a low of about $63,000 up to a high of $234,000 for someone with 2 to 4 years of experience. DevOps engineer positions are easier to find than SREs. Glassdoor has more than 6,000 DevOps engineer job posts. Indeed has more than 17,000. And ZipRecruiter has more than 81,000 remote DevOps engineer listings. New to the game Cloud […]

Read More

GitLab Heroes unmasked: How a difficult start in coding led to being a valued contributor

A key to GitLab’s success is our vast community of advocates. Here at GitLab, we call these active contributors “GitLab Heroes”. Each hero contributes to GitLab in numerous ways, including elevating releases, sharing best practices, speaking at events, and more.  Niklas van Schrick, who currently works as a Developer trainee, has been an active GitLab Hero since November 2021.  Niklas upholds the GitLab values, especially for transparency, by sharing his trials and discoveries with self-hosted instances. We all can learn from each other’s mistakes, which leads to collaborating to improve processes and build a better developer experience. His journey to becoming a GitLab hero is detailed below. A difficult beginning Niklas van Schrick: Every developer has to start somewhere. My journey started in May 2019 with Java and Minecraft. While development in Minecraft is great for fast results, based on my experience it’s not the best idea for a beginner. It introduces the problem of learning a framework instead of the actual language and it delayed my learning process. I was able to write some functionality as plugins for a server, but I didn’t know a single principle of the underlying language, Java. That led to code that was not easily maintainable. For each new functionality, I was building quickly without properly thinking about the structure of my code. When I was starting out, I learned from another developer. Although it is great to have someone guide you through the process, it can also lead to issues. My mistake was believing everything my mentor told me and not looking for solutions myself. In this way, I learned anti-patterns of code design, which led to a full refactoring of the project at a later time. It also slowed down my learning process further as I was asking for help before searching for solutions myself. Van Schrick: In early 2020, we moved our projects to a self-hosted GitLab instance. It was my first experience with version control. It was a big advantage because we were able to see previous changes and easily identify the causes of bugs. I recommend using a version control system even in the early stages of your development journey, as it makes many things easier and keeps a history of your work. In the beginning, it is totally fine to just push to master or not even use a remote repository. A big improvement for me was joining a developer community, as there are many developers who are happy to help. I learned many new concepts that were widely used by the developers of that community, and this led to much more maintainable code. You don’t even have to actively ask in the community to learn new things. Most of the time, it is enough to keep up with the messages and read the conversations from others. In a helpful developer community, you always have someone who says, “Why are you doing it like this? There are better ways to do this,” and offers suggestions to improve the code. Contribute, contribute, contribute Van Schrick: Another big step is to make contributions to open source projects. It allowed me to be part of the code review process from others, and learn from it. My first contribution to an open source project, which was not led by me, was a typo fix […]

Read More