From the blog

Extend TMS WEB Core with JS Libraries with Andrew: jQuery

In previous articles in this series, we’ve covered some big JS libraries like Bootstrap and FontAwesome.  But there’s another important JS library out there.  It can be found lurking under approximately 75% of all websites globally.  It first arrived on the scene more than 15 years ago.  And it is likely to be with us for the foreseeable future, even though its use has started to decline. I’m talking of course about jQuery.  But while you can use Bootstrap and FontAwesome in your TMS WEB Core projects without needing to resort to JavaScript coding, the same cannot really be said for jQuery.  At its core, jQuery can be thought of as a kind of extension of sorts to the JavaScript language.  Their motto is Write Less, Do More. We’ll be taking a look at where jQuery might find a good fit in TMS WEB Core projects, and also some of the unexpected challenges that might arise. Good jQuery First, the briefest of histories.  jQuery first surfaced around 2006.  It was a time when writing JavaScript code meant that you had to be very much aware of the target browser that would be running your code.  Standards of the day were tenuous at best.  And as the saying goes, the great thing about standards is that there are so many to choose from. jQuery offered developers a consistent approach to writing JavaScript (an API, essentially) which meant that you could write code using jQuery that would then work across many browsers.  So naturally it rose quickly in popularity.  In fact, it became so popular, particularly among new developers, that it has been said that some developers struggle to write actual Vanilla JavaScript (aka JavaScript that doesn’t make use of any frameworks like jQuery). Not surprising given how easy it has been to use jQuery when compared to the Vanilla JS equivalents of even just a few years ago.    jQuery has also evolved over the years to keep up with current web trends, and perhaps has even helped drive to some degree the adoption of new browser technologies. Even if some of those technologies ultimately end up removing the need for jQuery in the first place.  Progress, all the same.  And given the almost ubiquitous presence of jQuery, many (previously, most) JS libraries have been built on top of it, further ensuring it has a long life ahead of it.  Last time out, we looked at BigText, one such JS library, with jQuery as its only dependency.  Bootstrap 4 was also dependent on jQuery, but this was removed for Bootstrap 5.  Removing jQuery as a dependency seems to be a bit of a trend of late, perhaps ironically at the same time that many JS libraries are increasingly being released with variants that are specifically tailored to other (competing) JS frameworks.  Less Good jQuery Being around for such a long time, and being actively improved all the while, naturally a good deal of bloat is destined to be part of the mix, as would be the case in any software product.  For some projects, this will be the largest JS library in the project, dwarfing all others and negatively impacting the overall performance of the resulting web application.  While I don’t doubt that this can be a real problem, we also […]

Read More

Special upgrade prices

 Are you keeping up with our latest developments? We know it is hard to keep up with our latest developments, it is going super fast! Best way to stay updated? Of course TMS ALL-ACCESS! To give our customers access to all our latest developments we have created our no-nonsense subscription TMS ALL-ACCESS! Because we want our customers to be able to use all our products with no restrictions or limitations. And when we say ALL we really mean ALL our products we offer now and also all new products we’ll release in the year of the subscription. Moreover, our all-access users are the first to receive the previews and betas of our non-released products! A quick recap In the first quarter of 2022, we already released 3 new products: Get full access with:  Easy plan: All current and new products for 1 price! Easy renewal: Yearly renewal only for 520 EUR! Easy install: all products accessible via TMS Subscription Manager tool Easy support: Full online support center access to all areas Easy up-to-date: Early access to product betas Easy learning: Access to TMS WEB Academy Pleasant user experience Use the TMS Subscription Manager with a single login to get instant access to all products in your TMS ALL-ACCESS subscription. TMS Subscription Manager categorizes the products per technology : VCL, WEB, FMX, BIZ, FNC, DEV, .NET, IntraWeb and LCL. Per product, you get a description, link to the product webpage, info on latest available version and release date, info on your last download version and download date and info on your last product install version and date. You can mark specific TMS products as your favorite products. It allows you to start multiple downloads. Behind the scenes, TMS Subscription Manager keeps a backup of any product versions you have downloaded. Right-click on the downloaded version number cell per product and from the context menu you can see all available versions (if there are any) and activate another version for install. The TMS Subscription Manager keeps you always informed about the validity of your subscription and will guide you to the renewal order upon expiry. From the TMS Subscription Manager there is a comprehensive list of links to interact with us, via email, social media, forums, RSS, Youtube videos … Did you know… … that the renewal price after 1 year is at 70% discount from the new license price, i.e. currently just 520 EUR ?!  So, once you are a TMS ALL-ACCESS subscriber, you’re covered the next years for just this fraction of the price. We wish to offer fair prices to ALL our customers at ANY time! We believe the customer should be able to purchase at an attractive and correct price on the day the customers wants to make the purchase and not the day we want this.  So what are you waiting for? Contact sales for special upgrading pricing for existing customers of other products. Requests are looked at case by case and a best possible offer is made. 

Read More

Interact with your chart data in Delphi

Last week we did a blog on visualizing your own data structure, which showed the capabilities of virtual data, and the little code required to get up and running. Today’s blog is demonstrating how to interact with the chart. When the data is loaded, how do we zoom in, out? How can we get more details about a specific point in the data? Panning Panning is enabled by default, you can pan left to right on the X-Axis. To enable/disable panning, you can use the InteractionOptions.Panning property. Panning is done by moving the finger/mouse from right to left, or left to right. By default, the chart is showing the full range of points, starting at point 1. Dragging from left to right will show points before the zero valuepoint on the chart Dragging from right to left will show points after the last visible  The chart can be reset by using the following code TMSFNCChart1.BeginUpdate; for I := 0 to TMSFNCChart1.Series.Count – 1 do TMSFNCChart1.Series[I].AutoXRange := arEnabled; TMSFNCChart1.EndUpdate; Zooming Zooming in / out is also enabled by default, on the x-range, which means that you can zoom/scale horizontally. This can be done by holding the CTRL key on the keyboard, dragging the mouse / finger left & right or by doing a pinch gesture on iOS/Android. Below are 2 screenshots of the chart in action whilst zooming in and out   The chart can be reset in the same way as with panning. The property to support scale interaction is located under InteractionOptions.ScaleMode which can be set to smHorizontal (default), smVertical (y-values scaling) or smNone. Point Detection The chart exposes a series of events that are triggered when clicking on a point, bar, slice or an item in the legend. For this sample, we want to click on a bar, visualize the value and change the color. The code to do this is shown below. procedure TForm1.TMSFNCBarChart1SerieBarClick(Sender: TObject; APoint: TTMSFNCChartPoint); begin APoint.Color := gcOrange; ShowMessage(‘The point clicked has a value of ‘ + APoint.YValue.ToString); end; 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

Amazon Linux 2 support and distro-specific packages for GitLab

GitLab’s Distribution Engineering team has been hard at work getting Amazon Linux 2 distro-specific packages ready in preparation for GitLab’s official support of Amazon Linux 2. Starting with Version 15.0 of GitLab, Amazon Linux 2 is a supported distro and packages are available for both x86 and Graviton ARM architectures. Safely moving forward to Amazon Linux 2 packages from EL7 While Amazon Linux 2 has not been officially supported before 15.0, as a convenience to customers who wanted to use yum and RPM packages to install the EL7 packages, GitLab configured a workaround in our packaging services to direct Amazon Linux 2 yum requests to the EL7 packages. If you’ve been using GitLab’s yum repo registration script, you many not know that you were using EL7 packages and not distro-specific packages. This workaround will be deprecated and requests from Amazon Linux 2 will get the distro-specific packages with the release of GitLab 15.3.0 on August 22, 2022. As a convenience for those of you who have automation that depends directly on this workaround, we wanted to provide you with information on how to do early testing as well as how to peg your automation to the EL 7 packages until you are able to properly integrate the changes into your automation. GitLab documentation demonstrates how to call our managed yum repository setup scripts by downloading the latest copy and running it directly in the instructions for installing instances and the instructions for installing runners. Any organization using GitLab’s EL 7 packages for Amazon Linux 2 will want to test with – and update to – the distro-specific packages as soon as possible as GitLab will only be testing Amazon Linux 2 with the Amazon Linux 2 specific packages going forward. We also understand that the timing of the testing and migration to these packages must be done in a coordinated cutover so that the package type does not change in your existing stacks without you having made any changes. This can be more important if a GitLab stack has undergone platform qualification for compliance purposes. Amazon Linux 2 specific packages are only available for GitLab 14.9.0 and later. If your automation depends directly on GitLab’s repo configuration script and it is still pegged to a GitLab version prior to 14.9.0 when this change becomes GA, then action must be taken to prevent breaking that automation. We have devised an idempotent two-line script solution that you can put in place now to prevent disruption if you are still on a pre-14.9.0 version at the time the new behavior of script.rpm.sh becomes GA on August 22, 2022 with the release of GitLab 15.3.0. GitLab rake-based backup and restore will continue to work seamlessly across the distro-specific package changes if you have to restore to your Amazon Linux 2 built stack from an EL7 backup. If you are using third-party backup, you may wish to trigger a new backup immediately after transitioning to the new distro packages to avoid the scenario altogether. Amazon Linux 2 packages for building GitLab instances before 15.3.0 The following code inserts two lines of code between those originally outlined in the instructions for installing using RPM packages. The first one (starts with sed) splices in the Amazon Linux 2 yum repo endpoint edits into the repository configuration file […]

Read More

5 ways collaboration boosts productivity and your career

A lot of DevOps professionals might feel confident they’ve got a lock on their DevOps role. They don’t need anyone else chiming in on how to update a software feature or plan a new product. Other DevOps pros want to focus on learning new programming languages or figuring out how best to use machine learning. They think they don’t have time for so-called soft skills like communication and collaboration. At its heart, DevOps is collaboration. It’s a team sport. Of course, staying sharp with hard skills like machine learning, new programming languages, and other cutting-edge technology is fantastic, but don’t ignore soft skills. Enabling teamwork is a cornerstone of DevOps. Making this cultural shift means teammates are all pulling in the same direction. It means more, and more diverse, input leads to better, well-rounded products and software. And it also means career development. Here’s a look at just a few ways a culture of collaboration can benefit a DevOps team, software development and deployment, and DevOps professionals’ careers. Boosting DevOps professionals’ careers It’s clear that companies are increasingly dependent on DevOps professionals who are able to not only work with various teams, but who also are able to clearly communicate with colleagues in other departments, like finance and marketing. The 2021 Global DevSecOps Survey reported that IT professionals working in development, security, and operations all said they need better communication and collaboration skills for their future careers. And nearly 23% said these soft skills will give the biggest boost to their careers. Being able to work across departments, clearly communicate needs and ideas, and work together to innovate better products makes a tech person more valuable to the overall company, leading to management roles and higher salaries. Using the buddy system to iterate faster The bedrock of a DevOps culture is collaboration and joint responsibility. And for good reason, because better cooperation leads to more, and more efficient, continuous, iterative development and feature deployment. Cooperation makes a DevOps team more agile so it can adapt to changes in projects and workloads. With traditional application development, managers, developers, security professionals, and those on the operations team generally work in silos. They don’t communicate readily or well. They don’t work together on projects or share documentation and knowledge. With DevOps, though, those silos begin to be broken down. And by joining forces, teammates can pool efforts to assess problems, envision solutions, and create and deploy high-quality applications from a single end-to-end application. Breaking down those silos fosters better decision-making and creativity, and increases information and resource sharing. Creating better products By creating partnerships, DevOps teams are able to more quickly adjust to changing market needs and take on new competitors. Sharing data, and the workload, across disparate teams also empowers them to find out what customers need, what delights them, and the features that need to be created. More input from people with different perspectives and different backgrounds means a company will get software with features that speak to a wider range of users. All of this leads to better products, and that leads to a stronger business. Pulling different business teams together Fostering cooperation isn’t just for DevOps team members. A truly collaborative culture also should include colleagues in different parts of the company. Members of the security team, marketing, finance, […]

Read More

Preventing burnout: A manager’s toolkit

Working at a startup is demanding. GitLab team members are often under a lot of pressure. From mental health awareness to our posts on identifying burnout, GitLab wants to ensure our team members are working efficiently without feeling overwhelmed. Recently, GitLab co-founder and CEO Sid Sijbrandij and Michelle Hodges, vice president of Global Channels, discussed how managers can support their team members and help prevent burnout. Sid and Michelle emphasized that the earlier a manager can identify burnout the better. Identifying burnout in a remote environment is more difficult than in a co-located workplace, but looking for early hallmarks such as exhaustion and reduced enthusiasm can help managers get ahead of the problem. Sid shared the following 12 strategies managers can utilize to support their team and prevent burnout: Encourage time off. Even taking a half day can help. Managers can take an active role in encouraging team members to take time off by telling their team members about their own upcoming vacations. Managers can ask team members when their next vacation is and, if they don’t have one, encourage them to plan one. Lower the pressure. When a manager senses that someone on their team may be getting close to burnout, they can lower the pressure of goals and objectives and key results (OKRs) and also ask about goals less frequently. Be more positive. Frankly, managers can be a significant source of stress, so try to be more positive about the team member and their reports. Increase headcount. Most of the time, there’s too much work for too few people, so managers can explore options to increase headcount. This can be temporary, such as borrowing time from someone on another team or hiring a consultant. Offer team members coaching. External coaching can help team members open up about their struggles, including working with their manager. Remind employees of mental health care resources. Point employees toward the company’s mental health benefits and services. GitLab provides support to all team members through ModernHealth. Express gratitude. Send team members gifts to their home to show gratitude and an investment in your personal relationship. Celebrate progress. Burnout is often caused by a feeling of stagnation. Seeing the progress you’re making day-to-day is hard. Managers should create space to celebrate small wins and reflect on the mountains you’ve climbed. Sympathize. The work is tough. Have conversations about it. Lead by example. Managers should set and maintain working hours. For instance, Sid says he waits until the next working day to respond to Slack messages that happen after 6 p.m. Help team members to be more effective by: Reviewing recurring meetings and identifying what can be done async Talking about what they’re working on and helping them identify what work isn’t as important Identifying work that can be delegated to other team members, and empowering them to do so Managers can also encourage team members to name things they won’t do. Reduce the number of hours worked by agreeing to reduce effort. Managers can ask team members to identify things that are likely to fail. Taking time to reflect on results can be very insightful and can allow team members to reduce their effort without compromising quality. Share burnout concerns with others. Using judgement or with permission, managers can give context and ask others to […]

Read More

How GitLab’s customer and partner focus fuels our culture

It’s an exciting time to be working in a customer- or partner-facing role at GitLab. Our role with customers is to build personalized relationships and demonstrate how we can help them solve problems with a best-in-class DevOps platform. As we grow, our customer and partner focus plays a key role in building a healthy, connected workplace culture at GitLab. So we asked some of our leaders and team members from across the Sales, Channel Partner, and Account Management teams to share their insights. Here’s what we learned. The opportunity we have to become the leader in DevOps means hiring more top-tier talent “We are on a journey as a company where we believe we have got this exciting market opportunity. We’ve got a great product that fits the market really well, and that product is an industry leader. “We believe a lot of companies are going to buy DevOps. We need to make sure that they buy that from us and that’s a hard thing. That execution requires lots of top talent. We want to keep growing, as a team and individually, to capture more market share. That’s going to take a lot of people who are great at what they do.” Michael McBride (a.k.a “McB”), Chief Revenue Officer Why GitLab is an ideal place to grow in a sales or channel partner role “We sell direct to enterprise and mid-market and SMB customers. I look after both the sales organization that manages those partners and supports them and their engagement with our direct selling force, as well as the programs and enablement and functions that it takes to integrate those partners into our go-to-market. “I believe we’ve got great technology, great market timing, high customer need, lots of customer value, and a great product. That makes for a pretty awesome mix from a partnering perspective. It’s lots of fun to manage partners who are aiming to grow their businesses at the same time. It’s going to make the partners very happy.” Michelle Hodges, VP, WW Channels “At my previous company, we were an unknown entity and you had to really pull out all the stops to get people just to take a call with you or to test the product or buy the product. Whereas, with GitLab, I would get on calls and customers are super excited to meet people from GitLab. There were quite a few cases where people were already going to buy GitLab, but they just needed someone to help them understand what they wanted to buy. It was a salesperson’s dream because you are working with people who not just love the product, but love what the company stands for. “I remember one time I was in a coffee shop, and I had a GitLab sticker on my laptop. Someone saw that – he was a developer, he came up to me and said, ‘Wow, you work at GitLab. I love that company and we use it in our team.’ I felt a bit like a celebrity getting spotted on the streets.” Anthony Ogunbowale – Thomas, Named Account Executive, EMEA What makes our culture unique “The things in the company handbook can be kind of unbelievable to folks from the outside, when they say there’s unlimited vacation time or they value results, not hours. But […]

Read More

What Is The Best App Builder Sofware For Android 11 Plus

At least every quarter of a year, a new smartphone model is being released in the market that offers a more convincing set of features. To meet the increasing demand, improve the overall User Experience, and strengthen the security, mobile phone operating systems are regularly updated. Keeping track is made a lot easier using the right app builder software. Almost every year, we get a new version of Android and now, the latest Android 13 is in its beta phase. Every time there is an update, the developers are also required to take some action. This might require them to work with their ide software, do some wireless debugging or update permissions. In this video, Jim McKeeth will guide us through the latest Android changes in Delphi 11 and updates we can expect in the future. What are the Android 11 and 12 Changes in Delphi 11? The video will first introduce us to the current status of the operating system market share and how Android OS managed to surpass Windows over the past years. It also shows the popular Android-powered smartphones that are leading the market today.  Any changes or updates made to the Android operating system will not just affect the end-users but is also a “Call to Action” for Android app developers. They need to take necessary actions to catch up with the latest version and also to make their app compatible. How does the right app builder software help? Each year the targetSdkVersion requirement will advance. Within one year following each Android release, new apps and app updates will need to target the updated API or higher. This webinar allows us to see what has changed in these latest versions of Android and look at some best practices for Android development with tips for targeting the latest versions of the most popular operating system. Now that Android 11 is shipping in almost all new phones today, Android 12 is starting to roll out and Android 13 is now in its beta phase. It also means that there will be some changes in IDE, especially in Delphi 11. Jim Mckeeth will break down all the Android changes in Delphi 11 and the possible updates in the future in support of the newer Android versions. We will also learn how to upgrade existing Android projects in Delphi and how to successfully update your Android tools. He will also demonstrate Wireless debugging, the new Runtime Permission Model, and other best practices you should know. To learn more, feel free to watch the webinar below.

Read More

An Introduction To D3 Heat Map

The heat map is a graphical representation of a numerical dataset which is a fantastic method for analyzing the frequency of a data set. It brings different color indications from warm to cool in specific x and y-axis areas. That means more significant interactions are represented using warmer colors in the area, while colder colors represent lower user interactions. The following graph shows a sample D3 heat map. A heat map represents the relationship between two variables. By analyzing cell colors, you can determine the patterns between both variables. Variables can be any data type since we consider values as categorical numeric values or labels. The heat map shows the row(x-axis)/ column(y-axis)/ value when moving the mouse cursor on sections. What are the different types of heat maps and different things you can do with them? We can see different types of heat maps used in the different industries, such as website heat maps, geographical heat maps, stock market analysis heat maps, heat maps used in financial services and sports, and more. The key benefit of any type of heat map is it converts complex numerical datasets into a simplified, understandable visual graph and helps decision making. What are website heat maps? Website heat maps help product managers, product owners, and website owners determine how users interact with their website, make critical decisions, and find answers to critical questions. Suppose you have a website having considerable user traffic daily. You can perform activities such as, Identify user behaviors, interactions and evaluate user interests on the website Identify ignored things by users on the website Identify issues across different devices Determine if users are reaching an important content or not Hence the business can improve the website by tracking user behaviors and discovering actionable scenes and activities. Website heat maps are used in online stores sites, media services such as Netflix, travel and hotel sites, eCommerce sites, etc. heat maps support measuring a website’s performance, understanding guests’ thinking, and determining friction scopes by recognizing dead clicks and redundant links. For example, Netflix uses heat maps to determine the user’s streaming interests, most commonly watched movies and tv shows, identify most visited categories such as action, horror, Hindi, cartoon, etc. and personalize the user experience according to the user on their site. Following is a sample heat map generated for Netflix. Image source: GigaOm   How are heat maps used in the stock market and financial services? Heat maps are used in stock markets to make future decisions, such as identifying trending stocks in a certain period, identifying what shares to buy and what is the best selling price for a specific stock, and identifying the best time to invest by determining whether the overall market has a bullish or bearish trend. From a financial perspective, we can use heat maps to visualize action items in companies such as, Interest rate fluctuation and fixed deposit placement ratio in banks How do companies’ investments in different assets such as blockchain, fixed deposits, treasury bonds, debentures, and share market bring ROI to the company? Identify and compare the annual budget allocations with past years. These are only a few use cases of heat maps used in the financial industry. Usually, most organizations use heat maps for future predictions, to understand how their business behaves […]

Read More

Supercharge Your User Interface with Skia4Delphi – Webinar Replay

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? You’ve come to the right place. Here are a few shorter videos or you can watch 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 up to 50% increase in graphics performance Increase drawing fidelity Adds support for right-to-left languages FMX Canvas App Rendering Benchm Uses custom version of Skia […]

Read More