From the blog

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

DevOps is at the center of GitLab

Accelerating DevOps adoption is core to achieving our mission of allowing everyone to contribute. DevOps enables contribution and collaboration between disparate and previously siloed teams. In fact, DevOps is so central to GitLab that we have incorporated the DevOps infinity loop into our logo. I’m excited to share our new logo and look with you. Building the One DevOps Platform DevOps has come a long way since GitLab was incorporated in 2014. And DevOps strategies are continuing to evolve. For some companies, each team selects their own DevOps tools, which causes problems when teams try to collaborate. For other companies, they select a set of preferred tools. But then they still require a lot of custom work to integrate DevOps point solutions together into a “Do It Yourself DevOps” solution. The more point solutions that are digitally duct taped together, the harder it is to integrate and maintain them all. And that’s why I’m proud that GitLab allows companies to do away with the many point solutions that have been digitally duct taped together and instead bring all DevOps functionalities together in ONE place. As someone who is passionate about single sources of truth for information, the concept of One resonates with me. There are many ways in which GitLab as The One DevOps Platform helps customers evolve their DevOps landscape and deliver better results for their organizations. One interface One data model One permissions model One value stream One set of reports One spot to secure your code One location to deploy to any cloud One place for everyone to contribute One. Platform. Today, all companies live and die on their ability to create and deliver software. This is true for every type of organization, from the largest global commercial enterprises to the emerging hypergrowth startups. That is why companies such as Siemens, T-Mobile, and UBS, have selected GitLab as their DevOps platform. “Having the ability to fully develop software in the cloud through GitLab is a game changer, allowing us to accelerate our tech strategy and offer a best-in-class engineering experience. It also means we’re able to constantly develop, test and deploy technical solutions while they are running, improving time-to-market for our clients while decreasing costs.” – Mike Dargan, Chief Digital and Information Officer at UBS. Evolving the GitLab brand, iterating our logo and look Iteration is deeply ingrained in our values. We strive to do the smallest thing possible to get to the best result as quickly as possible. This value leads to quicker learning and tighter feedback loops. I see this moment both as a symbol of GitLab’s growth and of the evolution of DevOps itself. To reinforce this moment, we are also evolving our logo. The new logo places GitLab at the center of the DevOps infinity loop. I am pleased that we chose to iterate instead of a step change – staying true to our values. And we’re just getting started I aspire for GitLab to represent a place where we elevate others through knowledge access, job access, and The One DevOps platform. More to come later this year as we work to help individuals elevate their careers by learning core DevOps principles and how to use GitLab. Thank you to our amazing customers for choosing GitLab as your One DevOps Platform. Most importantly, […]

Read More

The Next Big Thing In Python GUI

Python is an extremely popular and adaptable programming language. Python’s ease of set-up, low learning curve, and low cost of entry has probably helped fuel an increased interest in coding and programming. The Python language has consistently grown in popularity among programmers since its inception, for the same reasons that learners love it but also because of its comprehensive versatility. The large number of capabilities combined with the low barrier to entry allows developers to quickly get up to speed and compete in the marketplace. Python is flexible and can work with a variety of programming paradigms. To be truly competitive, developers should become familiar with a variety of Python tools, libraries and IDEs in order to get the most out of Python and improve their skills.  There are numerous development frameworks and packages available to assist you in creating aesthetically pleasing GUIs for your Python applications. Many can come with a fair number of compromises and sacrifices. Experienced developers recommend picking technology which adds value, enhances the development chain, and adds depth to this rich development language, such as Delphi’s Python tools. Adopting this technology allows you to take advantage of libraries that make the development process easier and aid in the creation of memorable user interfaces. In this article, we’ll look at the next big thing in Python GUI by discussing our thoughts on what we think is the best Python IDE and libraries out there. How is PyScripter helpful in creating a Python GUI? PyScripter began as a lightweight IDE with the purpose of offering a solid scripting solution for Delphi applications to complement the excellent Python for Delphi (P4D) components. It has a modern user interface and is only available for Microsoft Windows operating systems at the moment. It’s faster than some of the other IDEs because it’s developed in a compiled language rather than an interpreted one, and it includes a wide range of features that make it a useful Python programming environment. All the professional IDE capabilities such as brace highlighting, code folding, code completion, and syntax checking as you type are all aspects of PyScripter. It also supports the kind of features you’d expect to find in a proper native apps such as the ability to drag and drop files from Explorer into the PyScripter IDE, all of which add up to saving you time and making the development process a smooth and pleasurable experience. Why is PyScripter the best IDE for writing and debugging Python programs? PyScripter has a Python interpreter built-in that provides call indications and code completion. This program keeps track of your command history and lets you run scripts without having to save them. This IDE also includes a remote Python debugger for debugging Python code. Variables, the watch window, and the call stack may be seen as a result. Debugging can also be aided by conditional breakpoints or thread debugging. In circumstances where the programmer is unable to discover the fault in his code, debugger indications are also useful. You can not only destroy your files without saving them, but you can also debug them without saving them, which is a useful feature. What is Python4Delphi? Consider combining the power of Delphi’s GUI and desktop app development with Python in your applications to provide world-class solutions for your […]

Read More

Links do Embarcadero Dev Lounge Abril/2022

cookielawinfo-checkbox-analytics 11 months This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Analytics”. cookielawinfo-checkbox-functional 11 months The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category “Functional”. cookielawinfo-checkbox-necessary 11 months This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category “Necessary”. cookielawinfo-checkbox-others 11 months This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Other. cookielawinfo-checkbox-performance 11 months This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Performance”. viewed_cookie_policy 11 months The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.

Read More