Programming

Our online library contains some publications, thanks to which programming will have no secrets from you. The books included here will introduce you to such languages as HTML, JavaScript, Python and CSS. Due to them, you will also learn how to create effective algorithms, design mobile applications or take care of the correct information architecture on websites.

1425
Ebook

Jak sztuczna inteligencja zmieni twoje życie

Marek Tłuczek

Poznaj podstawy i zastosowania sztucznej inteligencji Odkryj niesamowity świat AI Dowiedz się, jak powstała Zrozum, dokąd zmierza Sztuczna inteligencja staje się powoli nieodzownym składnikiem naszego życia. Przeszła długą drogę od modnego hasła pojawiającego się głównie w specjalistycznych publikacjach do technologii mającej realny wpływ na naszą codzienność. Z każdym dniem lepiej radzi sobie z coraz bardziej zaawansowanymi zadaniami, już nie tylko wygrywając mecze z arcymistrzami szachowymi, lecz również analizując ogromne zbiory danych, tłumacząc teksty, prowadząc samochody, rozpoznając ludzką mowę, przetwarzając obrazy, a nawet komponując muzykę i tworząc dzieła malarskie. Aby dogłębnie poznać szczegóły techniczne stojące za AI, trzeba dysponować pewną wiedzą informatyczną i sprawnie posługiwać się odpowiednim aparatem matematycznym. Na szczęście aby wkroczyć w świat sztucznej inteligencji i dowiedzieć się, co można dzięki niej zyskać, nie jest niezbędna żadna magia, wystarczy właściwy przewodnik! Jeśli chcesz to zrobić, dobrze trafiłeś! Ta publikacja pokaże Ci najciekawsze zastosowania AI i pomoże zrozumieć sposób działania tej technologii, a także spróbuje odpowiedzieć na pytanie, kiedy przekroczy ograniczenia swoich twórców. Być może zamierzasz zostać specjalistą od sztucznej inteligencji lub po prostu chcesz poznać podstawy tego zagadnienia. Jeśli tak, zrób pierwszy krok w tym kierunku! Historia sztucznej inteligencji Porównanie AI i ludzkiego mózgu Prawdopodobne scenariusze rozwoju AI Wykorzystanie AI w grach logicznych Rozpoznawanie mowy, języka pisanego i obrazu Medyczne zastosowania sztucznej inteligencji Wykorzystanie AI w autonomicznym transporcie Zagrożenia związane ze sztuczną inteligencją Nie czekaj! Już dziś poznaj technologię przyszłości! O książce i Autorze w mediach: Faktyczny Dom Kultury: Jak sztuczna inteligencja zmieni Twoje życie? Rozmowa Marka Tłuczka z Kamilem Bałukiem Radio Nowy Świat: Wywiad z autorem - prowadząca Katarzyna Kasia

1426
Ebook

Jak zaprogramować robota. Zastosowanie Raspberry Pi i Pythona w tworzeniu autonomicznych robotów. Wydanie II

Danny Staple

Coraz więcej złożonych, powtarzalnych zadań powierzamy automatom. Inteligentny robot nigdy się nie znudzi, nie zmęczy i będzie cały czas pracował z zadaną prędkością. Zapewnia nam to odpowiednią wydajność i bardzo dużą dokładność wykonywanych czynności. Oczywiście aby osiągnąć te korzyści, najpierw trzeba robota zbudować i zaprogramować. Warto spróbować własnych sił w tej materii. Wiedza o programowaniu autonomicznych robotów jest coraz cenniejsza na rynku pracy, a samo budowanie robotów i ich programowanie może być niesamowicie interesującym hobby! Ta książka stanowi przystępne wprowadzenie do świata projektantów i budowniczych robotów. Dzięki niej dowiesz się, jak wybrać potrzebne podzespoły, jak je ze sobą połączyć i jak wykorzystywać poszczególne urządzenia wejścia i wyjścia. Posłużysz się w tym celu płytką Raspberry Pi i kompatybilnymi z nią podzespołami. Następnie napiszesz w Pythonie kod, dzięki któremu wzbogacisz swojego robota o sztuczną inteligencję i połączysz się z nim przez Wi-Fi za pomocą smartfonu. Zdobędziesz również wiedzę, w jaki sposób realizować bardziej złożone projekty z zakresu robotyki, a także przygotujesz się, aby zwizualizować, zaprojektować, zbudować i zaprogramować robota według własnego pomysłu. Z tą książką: skonfigurujesz Raspberry Pi pod kątem zbudowania robota ze sztuczną inteligencją podłączysz silniki i czujniki do Raspberry Pi zaprogramujesz inteligentnego robota wykorzystasz technologie rozpoznawania mowy i przetwarzania obrazu nauczysz się sterowania robotem ze sztuczną inteligencją przez Wi-Fi za pomocą smartfonu zaczniesz samodzielnie projektować i budować roboty Zbuduj i zaprogramuj inteligentnego robota!

1427
Ebook

Jak zarabiać na aplikacjach i grach mobilnych

Piotr Stalewski

5 lat doświadczenia w jednej książce! Wiele osób w rynku mobilnym i aplikacjach mobilnych dopatruje się ogromnego potencjału finansowego. I słusznie, ponieważ urządzenia tego typu są znacznie bliżej ludzi niż dawne komputery stacjonarne czy nawet laptopy i notebooki. Towarzyszą ludziom niemal cały czas - dwadzieścia cztery godziny na dobę. Warto to wykorzystać. Dla kogo jest ta książka? Dla każdego, kogo ciekawi potencjał finansowy rynku mobilnego, dla każdego, kogo korci, by zbić na nim fortunę dzięki stworzeniu jednej, przełomowej aplikacji. Żeby nauczyć się, jak zarabiać na aplikacjach i grach mobilnych, nie trzeba umieć programować. Wystarczy mieć dobre pomysły, sporo zapału i marzenia. Ta książka ma jedno zadanie: wprowadzić Cię w świat aplikacji mobilnych od konkretnej strony (finansowej!). Rynek aplikacji mobilnych jest stosunkowo młody, ale już może pochwalić się bogatą historią. Autor tej książki także ma w niej swoje miejsce. Dlatego zaczyna od rysu historycznego, a następnie wymienia i omawia najważniejsze platformy pozwalające dystrybuować aplikacje. Podpowiada, jakie czynniki decydują o powodzeniu aplikacji i jak zaprojektować produkt tak, by na siebie zarabiał. A ponieważ bez dobrej promocji nawet najciekawsze pomysły zaginą w tłumie, podsuwa też najskuteczniejsze sposoby reklamowania aplikacji, które mają przynosić radość użytkownikom i… pieniądze twórcom! Realne pieniądze z mobilnej platformy Piotr Stalewski – absolwent informatyki na Politechnice Warszawskiej czynnie działający na rynku aplikacji mobilnych od 2007 roku. Wyróżniany w międzynarodowych konkursach na aplikacje mobilne, organizowanych m.in. przez Nokię (2007) czy Google (ADC2 2009). Studiował w Danii, pracował w międzynarodowych firmach związanych z rynkiem mobilnym (Opera Software), a także pisał własne aplikacje dla różnych platform (Symbian, J2ME, Android, iOS). Posiada rozległą wiedzę z zakresu marketingu, promocji i brandingu mobilnego, mobilnych interfejsów użytkownika, mechanizmów spieniężania na dostępnych platformach mobilnych. Jest współzałożycielem firmy Evil Indie Games, autorem artykułów o rynku aplikacji mobilnych i współtwórcą portalu mobilnidranie.pl. Prywatnie jest autorem powieści Kubuś i Templariusze oraz pasjonatem fotografii.

1428
Ebook

Jak zmienić zachowanie użytkowników i zdobyć wiernych klientów. Zastosowania psychologii i ekonomii behawioralnej. Wydanie II

Stephen Wendel

Zmiana nawyków czy modyfikacja zachowania bywa bardzo istotną kwestią. Często chodzi o coś więcej niż o proste przestawienie się z produktu na produkt - stawką może być zdrowie albo bezpieczeństwo. Jest sporo produktów cyfrowych, które mają za zadanie ułatwić użytkownikom wprowadzanie takich ważnych zmian: celem może być na przykład regularna aktywność fizyczna czy racjonalne zarządzanie swoim budżetem. Użyteczność tych produktów bywa jednak niewielka z wielu przyczyn. Podstawowa to nieuwzględnienie zasad, jakimi rządzi się ludzki umysł i mechanizm podejmowania decyzji. Ta książka jest przewodnikiem po zdobyczach nauk o zachowaniu. Dowiesz się z niej, czym trzeba się kierować podczas projektowania różnych produktów, aby doprowadzić do korzystnych zmian w zachowaniach użytkowników. Przedstawiono tu po kolei wszystkie kroki prowadzące do stworzenia nowego produktu: odkrycie, projektowanie, implementację i ulepszenia. Opisano model działań CREATE, dzięki któremu unikniesz najczęstszych błędów i skuteczniej skłonisz użytkowników do określonych działań. Dzięki prezentacji modelu DECIDE dowiesz się, jak zaprojektować właściwą interwencję. Odkryjesz też, że zasady opisane w tej książce mogą być przydatne również wtedy, gdy postanowisz doprowadzić do dobrej zmiany nawyków... we własnym zespole! Najważniejsze zagadnienia: jak działa ludzki umysł i jak podejmuje decyzje trzy główne strategie zmiany zachowań co przeszkadza w pożądanej zmianie nawyków jak projektować produkty, które użytkownik polubi jak mierzyć wpływ produktu na zmianę zachowania co wyjdzie z połączenia nauki o zachowaniu z data science Dobry projekt? To użyteczny produkt i korzystna zmiana w nawykach!

1429
Ebook

Jakarta EE Application Development. Build enterprise applications with Jakarta CDI, RESTful web services, JSON Binding, persistence, and security - Second Edition

David R. Heffelfinger

Jakarta EE stands as a robust standard with multiple implementations, presenting developers with a versatile toolkit for building enterprise applications. However, despite the advantages of enterprise application development, vendor lock-in remains a concern for many developers, limiting flexibility and interoperability across diverse environments.This Jakarta EE application development guide addresses the challenge of vendor lock-in by offering comprehensive coverage of the major Jakarta EE APIs and goes beyond the basics to help you develop applications deployable on any Jakarta EE compliant runtime.This book introduces you to JSON Processing and JSON Binding and shows you how the Model API and the Streaming API are used to process JSON data. You’ll then explore additional Jakarta EE APIs, such as WebSocket and Messaging, for loosely coupled, asynchronous communication and discover ways to secure applications with the Jakarta EE Security API. Finally, you'll learn about Jakarta RESTful web service development and techniques to develop cloud-ready microservices in Jakarta EE.By the end of this book, you'll have developed the skills to craft secure, scalable, and cloud-native microservices that solve modern enterprise challenges.

1430
Ebook

Jakarta EE Cookbook. Practical recipes for enterprise Java developers to deliver large scale applications with Jakarta EE - Second Edition

Elder Moraes

Jakarta EE is widely used around the world for developing enterprise applications for a variety of domains. With this book, Java professionals will be able to enhance their skills to deliver powerful enterprise solutions using practical recipes.This second edition of the Jakarta EE Cookbook takes you through the improvements introduced in its latest version and helps you get hands-on with its significant APIs and features used for server-side development. You'll use Jakarta EE for creating RESTful web services and web applications with the JAX-RS, JSON-P, and JSON-B APIs and learn how you can improve the security of your enterprise solutions. Not only will you learn how to use the most important servers on the market, but you'll also learn to make the best of what they have to offer for your project. From an architectural point of view, this Jakarta book covers microservices, cloud computing, and containers. It allows you to explore all the tools for building reactive applications using Jakarta EE and core Java features such as lambdas. Finally, you'll discover how professionals can improve their projects by engaging with and contributing to the community.By the end of this book, you'll have become proficient in developing and deploying enterprise applications using Jakarta EE.

1431
Ebook

Jakość oprogramowania. Podręcznik dla profesjonalistów

Michał Sobczak

Wszystko, co musisz wiedzieć o jakości oprogramowania, w jednym miejscu! Poznaj rodzaje błędów Zapewnij wysoką jakość kodu Dowiedz się, jak należycie testować Twórz niezawodne oprogramowanie Czym jest jakość oprogramowania? Czy to wyłącznie miara technicznej doskonałości kodu? A może jakość to coś znacznie więcej? Czy niezawodne działanie i brak błędów świadczą o wysokiej jakości programu? Co charakteryzuje kod, który można uznać za dobry? Jak mierzy się jakość w projektach informatycznych? Co robić, aby zapewnić wysoką jakość tworzonego oprogramowania? Jakie techniki i rozwiązania mogą w tym pomóc? Odpowiedzi na te i wiele innych pytań znajdziesz w książce Jakość oprogramowania. Podręcznik dla profesjonalistów. To pierwsze tego rodzaju wydawnictwo na polskim rynku szybko wprowadzi Cię w zyskującą coraz większe znaczenie tematykę jakości oprogramowania komputerowego. Dzięki lekturze dowiesz się nie tylko, jak uzyskać i utrzymać odpowiednią jakość w projekcie informatycznym oraz jakie narzędzia są w tym pomocne, lecz również co robić, aby ograniczyć szkody spowodowane przez ewentualne błędy. Zapewnianie jakości kodu źródłowego Sposoby testowania programów Architektura, wzorce projektowe, metodyki Ciągłe dostarczanie i ciągła integracja Monitoring produkcji i obsługa awarii Najczęściej popełniane błędy i typowe przypadki Lektura obowiązkowa dla każdego, kto jest zaangażowany w proces wytwarzania oprogramowania!

1432
Ebook

Jakość projektów informatycznych. Rozwój i testowanie oprogramowania

Karolina Zmitrowicz

Zarządzaj jakością projektu od narodzin po końcowe testy! Koncepcja jakości — co musisz wiedzieć, zanim zaczniesz pilnować poziomu Twoich produktów Zarządzanie jakością (oprogramowania) — ustaw procesy, zasady i standardy Testowanie — znaczenie ostatniego etapu pracy z projektem Zapewnianie wysokiej jakości oprogramowania to niełatwe zadanie. Osiągniesz ją, jeśli będziesz przestrzegać wysokich standardów procesu wytwarzania i dopilnujesz, by każdy problem został rozwiązany do końca. Jednak zadziwiająco wielu producentów nie traktuje poważnie sygnałów o błędach. Ujawniają się one dopiero podczas testowania, czyli na etapie, gdy już niewiele można zrobić. Ta książka podpowie Ci, jak już na pierwszych etapach tworzenia kodu wykrywać i rozwiązywać pojawiające się problemy. Popraw efektywność swojej pracy już dziś! Karolina Zmitrowicz zebrała najistotniejsze koncepcje z dziedziny zarządzania jakością oprogramowania i uzupełniła je o własne doświadczenia. Znajdziesz tu omówienie podstaw testowania oraz pomoc w organizacji i planowaniu pracy. Nauczysz się tworzyć jakość, a nie tylko ją sprawdzać. Poznasz przydatne metody weryfikacji i walidacji, podstawy tworzenia dokumentacji wyników i narzędzia Lean Software Development. Dzięki zawartym w książce wskazówkom udoskonalisz swoje produkty, zoptymalizujesz proces ich wytwarzania i powiększysz grono zachwyconych klientów. Definicja jakości i znaczenie jakości w projektach informatycznych Zarządzanie procesowe, jakością i przez jakość Zasady Deminga i koła jakości Zarządzanie jakością oprogramowania Manifest jakości i standardy Planowanie procesu zapewnienia jakości Weryfikacja i walidacja, metryki Anomalie — charakterystyka i sposób obsługi Podstawy testowania, organizacja i techniki testów Metryki związane z testowaniem i dokumentacja testów Wsparcie narzędziowe i standardy w testowaniu Doskonalenie procesów organizacyjnych i procesu testowego Lean Software development (LSD) Dbaj o jakość — pamiętaj, że stać Cię na więcej!

1433
Ebook
1434
Ebook
1435
Ebook

Java 11 and 12 - New Features. Learn about Project Amber and the latest developments in the Java language and platform

Mala Gupta

With its new six-monthly release cadence, Java is moving forward faster. In addition to planned version releases, a lot of work is currently being undertaken on various Java projects at Oracle. In order to make best use of the new features in their applications and libraries, you must be well-versed with the most recent advancements.Java 11 and 12 – New Features will take you through the latest developments in Java, right from variable type inference and simplified multithreading through to performance improvements, which are covered in depth to help you make your applications more efficient. This book explains the relevance and applicability of Java's new features, and answers your questions on whether to invest in migrating to new Java versions and when to migrate. You'll also get to grips with platform features, such as AppCDS and new garbage collectors, to tune and optimize your application—from reduced launch time and latency to improved performance and throughput.By the end of this book, you will be equipped with a thorough understanding of the new features of Java 11, 12, and Project Amber, and possess the skills to apply them with a view to improving your application's performance.

1436
Ebook

Java 11 Cookbook. A definitive guide to learning the key concepts of modern application development - Second Edition

Nick Samoylov, Mohamed Sanaulla

For more than three decades, Java has been on the forefront of developing robust software that has helped versatile businesses meet their requirements. Being one of the most widely used programming languages in history, it’s imperative for Java developers to discover effective ways of using it in order to take full advantage of the power of the latest Java features. Java 11 Cookbook offers a range of software development solutions with simple and straightforward Java 11 code examples to help you build a modern software system.Starting with the installation of Java, each recipe addresses various problem by explaining the solution and offering insights into how it works. You’ll explore the new features added to Java 11 that will make your application modular, secure, and fast. The book contains recipes on functional programming, GUI programming, concurrent programming, and database programming in Java. You’ll also be taken through the new features introduced in JDK 18.3 and 18.9.By the end of this book, you’ll be equipped with the skills required to write robust, scalable, and optimal Java code effectively.

1437
Ebook

Java 8. Leksykon kieszonkowy

Patricia Liguori, Robert Liguori

Java jest dziś językiem, który programiści wybierają najczęściej, gdy mają przed sobą skomplikowany projekt, wymagający najwyższej wydajności, jakości, bezpieczeństwa oraz integracji z innymi systemami. Rozwijany od blisko dwudziestolecia, język ten doczekał się wersji oznaczonej numerem 8. Ta edycja została wzbogacona o wiele nowości, m.in. o długo oczekiwane wyrażenia lambda. Jeżeli szukasz poręcznej książki, do której możesz sięgnąć w przypadku wątpliwości, to trafiłeś na doskonałą pozycję! Ta publikacja należy do popularnej serii „Leksykon kieszonkowy” i możesz mieć ją zawsze przy sobie. W środku znajdziesz konwencje nazw oraz podstawowe elementy języka. W kolejnych rozdziałach zdobędziesz wiedzę na temat typów prostych oraz programowania zorientowanego obiektowo. Ponadto zawarto tu przystępne omówienie wyrażeń lambda, współbieżności oraz zasad dostępu do plików i sieci. Java posiada rozbudowany mechanizm obsługi sytuacji wyjątkowych, który również został omówiony w tym podręczniku. Książka ta jest obowiązkową pozycją na półce każdego programisty języka Javy — jeśli chce on mieć zawsze pod ręką wiarygodne źródło informacji na temat tego języka. Materiał przedstawiony w książce pomaga również w przygotowaniach do egzaminu Oracle Certified Associate Java Programmer. Szybko odszukaj szczegóły dotyczące języka Java, na przykład konwencje nazw, typy, polecenia i bloki, programowanie zorientowane obiektowo. Poznaj informacje szczegółowe o platformie Java SE, między innymi podstawy programowania, zarządzanie pamięcią, współbieżność i typy generyczne. Przeglądaj informacje z zakresu podstawowych operacji wejścia-wyjścia, API NIO 2.0, frameworka kolekcji w Javie, a także API skryptowego Javy. Poznaj informacje dotyczące API Fluent, narzędzi opracowanych przez firmy trzecie oraz podstawy zunifikowanego języka modelowania (UML).   „Wspaniale jest móc poznać wyrażenia lambda i operacje funkcjonalne, jak również inne nowe funkcje Javy przedstawione w kontekście platformy Java.” — Geertjan Wielenga, dyrektor produktu w grupie Oracle Developer zajmującej się środowiskiem IDE NetBeans

1438
Ebook

Java 8. Przewodnik doświadczonego programisty

Cay S. Horstmann

Cay S. Horstmann autor "Java. Podstawy. Wydanie IX" i "Java. Techniki zaawansowane. Wydanie IX" - najpopularniejszych w Polsce podręczników do nauki Javy Java to język, który zrewolucjonizował świat programistów. Jej możliwości zostały docenione przez największe firmy. Dziś Java jest wykorzystywana w najbardziej zaawansowanych projektach. Wszędzie tam, gdzie są wymagane najwyższa wydajność i bezpieczeństwo, nie ma sobie równych! Aktualna wersja tego języka wprowadza wiele nowych konstrukcji i usprawnień — jeżeli chcesz błyskawicznie je poznać, zacznij od tej książki. Została ona napisana specjalnie z myślą o osobach chcących rozpocząć kodowanie z wykorzystaniem nowości z Javy 8. Jest przeznaczona dla doświadczonych programistów, lecz zawiera też podstawowe informacje na temat technik programowania obiektowego, wyjątków, typów i składni. Dzięki temu możesz błyskawicznie wdrożyć się w nowy język programowania! Natomiast jeśli znasz już Javę, z pewnością zainteresują Cię informacje o wyrażeniach lambda, projekcie Nashorn oraz nowym API do operacji na datach i czasie (JSR 310). Książka ta jest najlepszą lekturą dla wszystkich programistów zainteresowanych językiem Java oraz nowościami w Javie 8! Jeśli posiadasz doświadzenie w programowaniu Javy, praktyczne podejście Horstmanna i przykładowe kody pomogą Ci szybko wykorzystać wyrażenia lambda, strumienie i inne usprawnienia wprowadzone zarówno do języka jak i platformy Java. Horstmann omawia wszystko, co powinni wiedzieć deweloperzy na temat nowoczesnej Javy, przedstawiając: konkretne i efektywne omówienie wyrażeń lambda, umożliwiające opisywanie działań za pomocą zwięzłej składni; dokładne wprowadzenie do nowego API strumieni, które bardzo uelastycznia i zwiększa wydajność pracy z danymi; kurs programowania współbieżnego, który zachęca do projektowania programów na poziomie współpracujących zadań, a nie niskopoziomowych wątków i blokad, aktualne omówienie nowych bibliotek np. do obsługi daty i czasu, inne nowe mechanizmy, które są szczególnie wartościowe dla programistów aplikacji serwerowych lub programistów urządzeń mobilnych. Niezależnie od tego, czy dopiero zaczynasz poznawanie nowoczesnej Javy, czy jesteś doświadczonym deweloperem, ten przewodnik jest bezcenny dla każdego, kto chce pisać najbardziej niezawodny, wydajny i bezpieczny kod w języku Java.

1439
Ebook

Java 9: Building Robust Modular Applications. Master advanced Java features and implement them to build amazing projects

Dr. Edward Lavieri, Peter Verhas, Jason Lee

Java 9 and its new features add to the richness of the language; Java is one of the languages most used by developers to build robust software applications. Java 9 comes with a special emphasis on modularity with its integration with Jigsaw. This course is your one-stop guide to mastering the language.You'll be provided with an overview and explanation of the new features introduced in Java 9 and the importance of the new APIs and enhancements. Some new features of Java 9 are ground-breaking; if you are an experienced programmer, you will be able to make your enterprise applications leaner by learning these new features. You'll be provided with practical guidance in applying your newly acquired knowledge of Java 9 and further information on future developments of the Java platform. This course will improve your productivity, making your applications faster. Next, you'll go on to implement everything you've learned by building 10 cool projects. You will learn to build an email filter that separates spam messages from all your inboxes, a social media aggregator app that will help you efficiently track various feeds, and a microservice for a client/server note application, to name just a few.By the end of this course, you will be well acquainted with Java 9 features and able to build your own applications and projects.This Learning Path contains the best content from the following two recently published Packt products:• Mastering Java 9• Java 9 Programming Blueprints

1440
Ebook

Java 9 Concurrency Cookbook. Build highly scalable, robust, and concurrent applications - Second Edition

Javier Fernández González

Writing concurrent and parallel programming applications is an integral skill for any Java programmer. Java 9 comes with a host of fantastic features, including significant performance improvements and new APIs.This book will take you through all the new APIs, showing you how to build parallel and multi-threaded applications. The book covers all the elements of the Java Concurrency API, with essential recipes that will help you take advantage of the exciting new capabilities.You will learn how to use parallel and reactive streams to process massive data sets. Next, you will move on to create streams and use all their intermediate and terminal operations to process big collections of data in a parallel and functional way.Further, you’ll discover a whole range of recipes for almost everything, such as thread management, synchronization, executors, parallel and reactive streams, and many more. At the end of the book, you will learn how to obtain information about the status of some of the most useful components of the Java Concurrency API and how to test concurrent applications using different tools.