Darling PHP

PHP, or Hypertext Preprocessor, has been a cornerstone of web development for over two decades. First created in 1993 to enhance the webpage of programmer Rasmus Lerdorf, PHP didn’t originate as a new programming language and as such it developed organically. It has continued to adapt across its three decades of existence and even the name PHP has evolved, coming to stand for hypertext preprocessor rather than the original meaning, personal home page. PHP has evolved from a simple set of tools for managing personal web pages to a robust server-side scripting language powering a significant portion of the internet. However, despite its enduring popularity, PHP remains a polarising force within the development community, sparking debates and discussions about its merits and shortcomings. So why does PHP continue to thrive despite its divisiveness?

The Good

Ease of Use: One of PHP’s greatest strengths is its ease of use, especially for beginners. Its syntax is straightforward and familiar to anyone with a background in C-style languages, making it accessible for developers transitioning from other programming languages or those new to coding altogether.

Vast Community and Resources: PHP boasts a vast and active community of developers. This means an abundance of resources, tutorials, frameworks, and libraries are readily available, making it easier for developers to find solutions to problems and accelerate development.

Flexibility: PHP is incredibly versatile, allowing developers to build anything from simple websites to complex web applications. Its ability to seamlessly integrate with various databases, web servers, and platforms makes it a preferred choice for many projects.

Performance Improvements: Over the years, PHP has undergone significant performance enhancements, with each new version introducing optimisations and improvements. The introduction of PHP 7 brought substantial performance gains, making PHP more competitive with other languages in terms of speed and efficiency.

Mature Ecosystem: PHP has a mature ecosystem with a wide array of frameworks and CMS (Content Management Systems) like Laravel, Symfony, WordPress, and Drupal, offering developers powerful tools to streamline development and build robust applications quickly.

The Bad

Inconsistent Design: PHP’s evolution has been marked by a degree of inconsistency in its design. This is due in part to its organic growth and the inclusion of features over time without always considering their long-term implications. This inconsistency can lead to confusion and frustration for developers.

Security Concerns: PHP has faced its fair share of security vulnerabilities over the years. While efforts have been made to address these issues, the language’s historical laxity in security practices has left it with a somewhat tarnished reputation in this regard.

Legacy Codebases: The longevity of PHP means there are numerous legacy codebases still in use today. These codebases may be outdated, poorly maintained, and vulnerable to security risks. Migrating away from legacy PHP code can be a daunting task, leading many developers to continue working with outdated practices and frameworks.

Performance Challenges: While PHP has seen performance improvements, it still faces challenges in comparison to more modern languages like Go, Node.js, or Python. Its shared-nothing architecture can lead to scalability issues, especially in high-traffic applications.

Fragmentation: The plethora of frameworks and libraries available in the PHP ecosystem can lead to fragmentation within the community. Developers may find themselves debating the merits of one framework over another, leading to a lack of consensus on best practices and standards.

The Divisiveness

The divisive nature of PHP stems from the stark contrast between its proponents and detractors. Proponents praise PHP for its accessibility, versatility, and the vast ecosystem that surrounds it. They argue that PHP’s ease of use and abundance of resources make it an ideal choice for rapid development and prototyping.

On the other hand, detractors point to PHP’s historical flaws, such as inconsistencies in design, security vulnerabilities, and performance challenges. They argue that these shortcomings make PHP a less-than-ideal choice for modern web development, especially when compared to newer languages and frameworks.

Moreover, PHP’s association with outdated practices and legacy codebases has contributed to its divisive reputation. While efforts have been made to modernise the language and improve its security and performance, the stigma remains for some developers.

The Future

Despite its divisiveness, PHP continues to evolve and adapt to meet the demands of modern web development. The release of PHP 8.3 introduced new features and improvements aimed at addressing some of the language’s longstanding issues, such as stricter typing and performance enhancements.

Furthermore, the PHP community remains vibrant and active, with ongoing efforts to improve documentation, promote best practices, and modernise the ecosystem. Frameworks like Laravel and Symfony continue to push the boundaries of what is possible with PHP, attracting new developers to the language.

In conclusion, PHP’s popularity and divisiveness are intrinsically linked to its long and storied history. While it may not be without its flaws, PHP continues to be a popular choice for web development, thanks to its ease of use, vast ecosystem, and adaptability. As the language continues to evolve, it will be fascinating to see how it navigates the ever-changing landscape of web development in the years to come.

Advantages of Custom Software

In the ever-evolving landscape of modern business, the need for efficiency, agility, and innovation has become paramount. As businesses strive to stay competitive and meet the unique demands of their industries, the role of technology, particularly custom built software, has emerged as a game-changer. This article delves into the myriad benefits of investing in tailor-made software solutions designed to meet the specific needs of a business.

Tailored to perfection

Off-the-shelf software may serve generic purposes, but it often falls short when it comes to addressing the unique workflows and requirements of individual businesses. Custom-built software, on the other hand, is crafted to fit like a glove. By aligning seamlessly with a company’s operations, it enhances efficiency and productivity, enabling teams to focus on core tasks without being bogged down by unnecessary features or limitations.

Increased efficiency and productivity

One of the primary advantages of custom-built software lies in its ability to streamline processes. Off-the-shelf solutions may require businesses to adapt their workflows to fit the software’s limitations, leading to inefficiencies. In contrast, bespoke software is designed around existing processes, minimising disruptions and optimising workflow efficiency. This results in a significant boost to overall productivity as employees can work more seamlessly and with fewer impediments.

Scalability for growth

As businesses grow and evolve, their software needs must scale accordingly. Custom-built software is inherently scalable, allowing it to adapt to the changing demands of a growing enterprise. This scalability ensures that the software remains a valuable asset over the long term, accommodating an expanding user base, increased data loads, and additional features as the business evolves.

Enhanced security and compliance

Data security is a top priority for businesses in an era where cyber threats are ever-present. Custom-built software allows for the implementation of robust security measures tailored to the specific needs of the business. Unlike generic software that may have vulnerabilities well-known to hackers, bespoke solutions offer a higher level of protection by minimising exposure to common risks. Furthermore, custom software can be designed with industry-specific compliance standards in mind, ensuring that the business remains in adherence to regulatory requirements.

Long term cost efficiency

While the initial investment in custom-built software may seem higher than purchasing off-the-shelf alternatives, the long-term cost savings can be substantial. Generic software often comes with licensing fees, ongoing maintenance costs, and the potential need for additional modules or customisations. With custom software, businesses have greater control over their expenses, paying only for the features they need and avoiding unnecessary overhead associated with generic solutions.

Competitive edge through innovation

In a rapidly changing business landscape, innovation is a key differentiator. Custom-built software empowers businesses to innovate by providing a platform that can evolve alongside their unique needs. This agility allows companies to respond quickly to market trends, implement new features, and stay ahead of the competition.

Conclusion

In conclusion, the decision to invest in custom built software is an investment in the future success of a business. From increased efficiency and productivity to enhanced security, scalability, and long-term cost savings, the benefits of bespoke software solutions are obvious. As industries continue to evolve, businesses that leverage the power of custom built software will find themselves well positioned to thrive in the dynamic and competitive landscape of the 21st century.

Contact PNP Digital for more information about our Custom Software development services.

TestFlight Testing

As businesses increasingly rely on technology, safeguarding your company’s data through mobile application security has become a critical concern. Mobile apps, serving as primary channels for business transactions and information exchanges, are susceptible to cyber threats. Consequently, maintaining optimal app security is crucial to safeguard confidential information and thwart malicious actors. This article delves into the evolving landscape of mobile app security and its implications for your business.

Exploring the future of mobile application security

Mobile applications have become integral to our daily lives, streamlining tasks with intuitive interfaces and user-friendly features. However, the surge in cyber threats raises security concerns. We as developers and security professionals continually innovate to bolster mobile app security, employing measures like multi-factor authentication, biometric identification, and advanced encryption techniques. Security testing and audits are also evolving to comprehensively identify vulnerabilities in the code.

Cyber attackers are adapting strategies previously successful on personal computers for mobile devices. Ransomware, mobile phishing, cryptocurrency mining, cross-platform banking, and infiltrating nearby devices are among the tactics employed. To counter these threats, it’s important to employ unique techniques, leveraging emerging technologies such as artificial intelligence (AI) and machine learning (ML).

Securing mobile devices against evolving threats requires staying abreast of emerging technologies. With AI, ML, and the Internet of Things on the rise, mobile app security must adapt to these trends.

Implications of the future of mobile application security for businesses

The future of mobile app security poses challenges and opportunities for businesses. Proactive measures are essential, with companies continually updating strategies to outpace evolving threats. Investing in training and hiring skilled professionals to develop and implement robust security measures is crucial. This not only fortifies defences against cyber threats but also ensures compliance with regulatory standards.

Anticipate a surge in advanced security methods and AI-powered solutions in mobile app security in the coming years. This trend promises enhanced protection for businesses and their customers, improving user experience by reducing friction associated with traditional security measures.

Contact PNP Digital for App Development or if you would like to investigate increasing security through the use of mobile applications.

AI in Mobile Apps

In acknowledging the pervasive influence of artificial intelligence (AI) on popular culture in 2023, it is imperative for mobile app developers to recognise its continual integration into app development practices. Contrary to misconceptions, our engagement with AI predates ChatGPT, as it has played a significant role in mobile app development for several years, presenting diverse and impactful applications in the evolving landscape of programming technology.

It is crucial to clarify that AI applications have not reached the stage of autonomously designing or creating mobile applications. However, this article focuses on delineating several ways in which AI features can augment the performance and user experience of mobile apps.

Enhanced search functionality

Modern AI technology, rooted in search engine algorithms, offers a notable benefit in enhancing search functionality within mobile applications. With users accustomed to the instant gratification of efficient search engines, integrating an AI-powered search feature into your app can revolutionise the customer experience. This enhancement enables users to make verbal requests and pose general questions, receiving prompt and accurate responses without grappling with keywords or sifting through multiple pages of results.

Customer service chatbots

In-app chatbots, powered by AI, provide users with the ability to communicate on their terms. These AI-driven customer service representatives efficiently handle routine queries, facilitating seamless navigation within the app. This not only saves time for your team but also expedites customer assistance, contributing to a more efficient user experience.

Intelligent data utilisation

Collecting, tracking, and analysing customer data has become integral to modern businesses, facilitating personalised app experiences. AI-powered apps excel in collecting diverse customer data points, enhancing user interfaces through customised product recommendations and targeted advertisements. Machine learning algorithms, although distinct from AI, can be seamlessly integrated to learn from individual customer behaviours, predicting the products or services they may require. These insights enable automatic tailoring of the app interface to align with customer usage patterns and preferences.

Emotional intelligence integration

AI’s innovative use within apps extends to analysing and interpreting human emotional states, allowing for more advanced personalisation efforts. By capturing indicators such as tone, facial expressions, and other emotional signals during customer interactions, AI empowers users to personalise content. This enables the app to offer recommendations and services that align more closely with the user’s emotional state.

What lies ahead?

AI provides developers and brands with an expansive toolkit for mobile app development, fostering innovation and personalisation. As technology continues to evolve, we remain committed to assisting customers in integrating the latest features and plug-ins into their apps to ensure an optimal customer experiences.

PHP 8.3 released

This latest major update to PHP adds support for declaring class, trait, interface, and enum constant types. In addition readonly properties and randomness have also been updated.

What’s new

PHP is a self-referentially acronym for PHP: Hypertext Preprocessor. Original it supposedly meant personal home page. It is an open source, server-side, HTML embedded scripting language used to create dynamic Web pages. PHP 8.3, a major update to the popular server-side web scripting language, offers features such as explicit typing of class constants, deep cloning of readonly properties, and additions to randomness functionality.

Released on November 23rd 2023, PHP 8.3 can be accessed from php.net.

Biggest improvements

With typed class constants, PHP 8.3 gains support for declaring class, interface, trait, and enum constant types. Class constant type declarations support all type declarations supported by PHP, with the exception of void, callable, and never.

The void and callable types are not supported due to issues discussed in the typed properties v2 RFC. Similarly, never is not applicable in the context of constants.

To enable deep cloning of readonly properties, PHP 8.3 allows readonly properties to be modified once within the magic clone method. Plus, readonly classes now can be reinitialized during cloning. PHP 8.3 also lets non-readonly classes extend readonly classes.

Other new features

A new [#\Override] attribute expresses intent in code. If this attribute is added to a method, the engine shall validate that a method with the same name exists in a parent class or any of the implemented interfaces. If no such method exists, a compile time error shall be emitted.

– The command line linter now accepts variadic input for file names to lint.

– The Random Extension added in PHP 8.2 adds a new method that generates random strings consisting of specific bytes only.

– This method allows developers to easily generate random identifiers, such as domain names, and numeric strings of arbitrary length.

– A a new function, json_validate(), indicates whether a string contains valid JSON.

Anonymous classes now can be readonly.

PHP 8.2 arrived last December, introducing readonly classes.

We’re PHP specialists

Here at PNP Digital, we leverage the power of PHP to craft dynamic, scalable, and cutting-edge web solutions. Contact us to find out how we can help you with your next PHP project.

Data and Hosting

When considering cloud services, you’ve likely discovered that a universal cloud solution for businesses doesn’t exist. Each organisation has distinct needs and prerequisites.

To pinpoint the ideal cloud service model for your business, it’s essential to comprehend the various categories of cloud-based services and identify the features critical to your operations.

Software-as-a-Service (SaaS)

SaaS stands as a cloud computing model that allows convenient access to applications hosted in the cloud. The advantage of SaaS is that you don’t have to concern yourself with the installation, configuration, or maintenance of software on your own servers. Instead, a third-party provider takes on the role of hosting and managing the application, which you can access on-demand via the internet using a web browser or mobile app. Since the provider manages maintenance and updates, the cost of SaaS is often more budget-friendly than buying and keeping on-premises software. It also offers the flexibility to rapidly scale your operations as SaaS applications are designed to be adaptable and accommodate shifts in user demand. Additionally, as most SaaS solutions work on a subscription basis, you can avoid a significant upfront investment and only pay for the services you use.

Typical examples of SaaS solutions are customer relationship management software, office productivity suites, project management tools, instant messaging platforms, and web conferencing solutions.

In summary, SaaS is:

  • Easily accessible over the internet, ready for immediate use
  • Hosted on remote servers managed by a third-party provider
  • Scalable, with various tiers for businesses of assorted sizes
  • Comprehensive, supplying security, compliance, and maintenance within a single fee

Platform-as-a-Service (PaaS)

PaaS is a cloud computing model that equips you with the tools and infrastructure needed to create, test, deploy, check, and manage applications. It significantly reduces the manual work associated with coding, making the rapid development of complex applications and services a more straightforward task. PaaS provides access to essential resources from a central platform, with the provider overseeing the underlying infrastructure, such as servers, storage, networks, and operating systems. This enables your developers to focus on creating applications and services with minimal time and effort.

PaaS can be used to host or develop your own software solutions or to supply support for software used by your employees. While PaaS offers a lower cost of entry compared to on-premises solutions, it does require a solid understanding of software development and cloud computing concepts.

In general, PaaS solutions:

  • Concentrate on application development and deployment
  • Integrate with a broad array of tools and services
  • Offer scalability for adjusting resources as needed

Infrastructure-as-a-Service (IaaS)

IaaS is a cloud computing model that grants you on-demand access to remote servers, storage, and networking hardware, cutting the need to buy, install, and manage the underlying infrastructure.The most prominent IaaS form is the virtual machine, a digital version of a computer or server hosted on a remote server. You can access this virtual machine over the internet to store data, run applications, and develop software solutions without the need for physical hardware investments or the associated setup and management costs.

While IaaS offers cost-effectiveness, it does require a certain level of technical knowledge to set up and manage the infrastructure. Additionally, you manage the security of data stored on the virtual machine and any applications running on it.

In summary, IaaS is:

  • Highly flexible and scalable
  • Capable of accommodating a wide range of applications and services
  • Cost-effective, cutting the need for physical hardware investment
  • Ideal if you seek greater control over your cloud infrastructure

While the choice of a cloud service model depends on your specific business requirements, it is essential to gain a thorough understanding of these different models and how they can align with your goals.

Business Software

In the shift from on-premises to the cloud, the significance of IT infrastructure audits can often be overlooked due to the absence of physical equipment. This may lead to neglecting the critical role of monitoring and maintenance. Yet, assessing the operational, financial, and security performance of technology has never been more vital. As cloud environments continue to expand rapidly, IT leaders may find themselves unsure about what to focus on.

The cloud era brings a variety of benefits, such as scalability, flexibility, and enhanced performance, but it also introduces a dynamic and constantly evolving landscape. Auditing the IT estate in this complex environment can be overwhelming.

Today, cloud solutions require a renewed commitment to security integrated into the company’s culture and operations. It involves shared responsibilities, addressing growing threats, and following stringent requirements throughout the scaling process.

Here are seven tips to get in control…

Evaluate your existing infrastructure

There is often no need for a complete overhaul. By assessing your organisation’s current architecture, network configuration, storage systems, VMs, and understanding the structure and interdependencies of your tech stack, you can find areas for improvement. This may involve finding vulnerabilities, ensuring compliance with industry standards, or finding redundant elements that drain your budget unnecessarily.

Prioritise security and compliance

In every monitoring and maintenance strategy, security and compliance should be top priorities. Evaluate the effectiveness of security measures such as firewalls, encryption, access management, and intrusion detection systems. Ensure compliance with industry standards and regulations. Address any security gaps promptly.

Review software licenses and subscriptions

Take stock of your software licenses and subscriptions. Are you paying for more than you need? Auditing and managing licenses not only improve compliance and security but also cuts unnecessary spending on third-party applications and operating systems.

Assess efficiency and scalability

Regularly evaluate the efficiency of your cloud infrastructure to support best operational performance. Monitor resource utilisation, application response times, to find potential performance issues. Ensuring your infrastructure can manage fluctuating workloads without compromising performance is essential.

Third-party vendors and service providers

Third-party vendors and service providers can be valuable assets, but they can also pose security risks. Establish a holistic security strategy for external partners. Review certifications, audit reports, data protection policies, SLA compliance, and incident response and disaster recovery capabilities.

Maximise endpoint security

With more flexible working models come more entry points to sensitive data and networks. Strengthen endpoint security measures, including robust authentication protocols, regular software updates, and real-time monitoring, to safeguard data and enhance the overall resilience and credibility of cloud-based operations.

Consistency is key

Cloud environments are dynamic, constantly evolving, and undergoing updates. Routine audits should be a part of an ongoing strategy, with the frequency tailored to your business’s size and complexity. Endpoint audits every three years, while physical infrastructure and security measures at least once every three months.

A comprehensive audit of the entire cloud environment should be annually to evaluate implemented changes, support compliance, and show current issues.

Collaborate with your Managed Service Provider (MSP) or auditor to address concerns and update documentation approximately twelve months later, ensuring the effectiveness of implemented changes and ongoing compliance.

AWS migrations

In today’s digital landscape, safeguarding your online data from a spectrum of potential threats, from cybercriminals to government entities, is of paramount importance. Using a Virtual Private Network (VPN) can provide that much-needed layer of security by encrypting data transmitted from your computer to the internet. However, the effectiveness of VPNs can vary significantly.

To make an informed choice when selecting one, it’s crucial to take the following factors into account:

Data encryption and logging policies

The choice of encryption protocol is a primary factor in deciding the level of security offered by your VPN. Different protocols, such as OpenVPN, IPSec/L2TP, SSTP, and IKEv2, are available. opt for a VPN service that employs the latest encryption standards like AES-256, considered military-grade encryption. Be cautious of VPN providers that keep logs of user activity, potentially compromising your anonymity and privacy. For truly anonymous browsing, seek a VPN service that does not log user data.

Cost-effectiveness

While free VPN services may appear attractive, they often come with hidden costs, such as compromising data privacy through activity logs or displaying intrusive ads. Paid options typically offer a wider range of servers, configurations, and advanced security features.

Server location

The geographical proximity of VPN servers significantly influences performance. Distant servers may result in latency and slower browsing. Select a VPN with servers found near your physical location for a smoother online experience. If you aim to bypass geo-restrictions, opt for a VPN with servers strategically positioned in regions where your desired content is accessible. This approach ensures the user has the best browsing speeds and unhindered access.

Data capacity

Understand the data limits imposed by your chosen VPN, especially if your online activities require large bandwidth. Review the provider’s data cap and terms of service to ensure it aligns with your needs. Additionally, assess the provider’s server count, as a larger server network shows better support for data-intensive tasks.

Cross-platform functionality

Ensure the VPN is compatible with various platforms, including laptops, tablets, and mobile devices. Choose a VPN that seamlessly integrates with your preferred devices, supplying consistent protection across your digital ecosystem. Prioritise VPN providers offering dedicated apps or robust configuration options for different devices.

Customer support

Explore the customer support options offered by the VPN provider. Look for readily available support channels like live chat, email, or phone, and consider user reviews to gauge the quality of help.

Software Modernisation

The workforce of the future is rapidly evolving, with a digital, dynamic, and decentralised landscape taking centre stage.

At the heart of this transformation lies the human cloud, a phenomenon akin to the gig economy that is reshaping the way we work. As businesses look for innovative and cost-effective solutions to meet their workforce needs, the human cloud has appeared as a game-changing trend.

The human cloud is an online ecosystem that runs in a decentralised manner, connecting individuals or businesses needing specific tasks or skills with a vast global network of freelancers and independent professionals. Diverging from traditional employment models, the human cloud functions through digital platforms and marketplaces, offering an on-demand, scalable workforce.

How the human cloud works

Digital platforms: Online intermediaries like Upwork and Fiverr serve as bridges between employers and freelancers.

Matching: Algorithms on these platforms use criteria such as skills, availability, and pricing to match employers with suitable freelancers. Employers can evaluate freelancers’ profiles and earlier work to make informed hiring decisions.

Task execution: Once a matched, the worker undertakes the task remotely. These tasks span a wide spectrum, encompassing services like graphic design, web development, content creation, data entry, and even driving or delivery services.

Payment and review: Payment for completed work processed through the platform, ensuring secure transactions.

Benefits of embracing the human cloud

Access to a global talent pool: The human cloud allows businesses to access a diverse global talent pool, which is especially valuable for companies found in regions with limited access to skilled workers. It enables easy sourcing of highly specialised skills for specific projects.

Scalable operations: Businesses can swiftly adjust their workforce size to match demand, easing the handling of projects of any scale without incurring significant overheads. This flexibility is invaluable for seasonal or project-based work that needs temporary workers within a brief period.

Cost-effectiveness: By paying for work only when needed, businesses can reduce labour costs and minimise the expenses associated with physical office space.

Speed and efficiency: The human cloud accelerates project timelines, enabling employers to quickly find the right talent. Freelancers can also find work more easily, minimising downtime between projects.

Reduced administrative burden: Human cloud platforms supply an all-in-one solution, simplifying the administrative aspects of hiring and managing freelancers. These platforms manage everything from sourcing to payment and review.

Innovation and experimentation: new companies may use the human cloud to explore new business ideas, prototype concepts, or access specialised skills they may not have in-house.

iOS 17 Preview

Apple recently revealed all in their upcoming iOS 17 update. It is expected to become publicly available some time in September, alongside the reveal of the new iPhone and other devices during their summer reveals.

Here’s some of the standout features from iOS 17 which you can expect…

StandBy Mode

StandBy is puts your device into a low power mode, and shows customisable information such as a clock, the weather, or basic information from the same widgets which are available on the home screen. StandBy can show incoming notifications, and other information. This mode could be used to replace an alarm clock if paired with a phone charging stand, as shown in the image above, making it seamless to turn off the alarm, grab your phone, and start your day.

AirDrop Upgrades

AirDrop is being improved, allowing you to share contacts, photos, videos, and more all from a quick tap of your phone to theirs. This improves on the previous method of having to select from a menu who you want to send the info to if you were sat next to the person at the time.

iOS 17 brings in “NameDrop” which will allow the sharing of contacts, simply by tapping the phones with each other. This can be the full contact, just the phone number, or the email.

Journal

Journal is a new app which automatically brings photos, music, and location, & more, all together from each day to give an outline of your day. Users are able to add notes and memories to these automatically generated days, as well as edit them to their liking. Apple claims that machine learning is used to build an understanding of how you like your journal to be, and make it more tailored to your preferences.

For anyone who is active, and a traveller, this will be a perfect addition to their phone, being able to make and share the memories which they have made each day with others.

Offline Maps

For the first time, Apple are allowing the downloading of certain sections of maps with Apple Maps. This has been possible with other maps such as Google Maps, for quite some time, but nevertheless, this is a welcome feature if you are going to be going somewhere with limited or no GPS signal or data.

And More…

We’ve listed just some of the major updates which have been introduced with iOS 17 so far, there are plenty of other smaller changes and updates to make iOS 17 the best version of iOS yet.

A full list of all new iOS 17 features can be found on Apple’s website: apple.com/uk/ios/ios-17-preview/