How can you get more done by doing less? Can Spring Web MVC applications look simpler? How can writing less code mean more? How can using Groovy in JUnit tests speed up writing tests. Making data driven tests cool with Spock. All in existing living Java web applications with sample code in Java and Groovy.
Can two JVM languages, none of them Java, work harmoniously, side by side? Should they? In this lecture we’ll see how code written in Groovy and Scala work with Java and how they can be made to work with each other. The lecture is based on the experience of introducing Scala to an actual Groovy project.
How can you get more done by doing less? Can Spring Web MVC applications look simpler? How can writing less code mean more? How can using Groovy in JUnit tests speed up writing tests. Making data driven tests cool with Spock. All in existing living Java web applications with sample code in Java and Groovy.
Can two JVM languages, none of them Java, work harmoniously, side by side? Should they? In this lecture we’ll see how code written in Groovy and Scala work with Java and how they can be made to work with each other. The lecture is based on the experience of introducing Scala to an actual Groovy project.
Streams or Loops? Java 8 Stream API by Niki Petkov - Proxiad BulgariaHackBulgaria
Presentation from the visit of Proxiad Bulgaria - partner for the Java Course in Hack Bulgaria.
The topic is the new Stream API in Java 8 and the presenter - Nikolay Petkov from Proxiad Bulgaria
TDD and mobile development: some forgotten techniques, illustrated with AndroidCodemotion
"TDD and mobile development: some forgotten techniques, illustrated with Android" by Matteo Vaccari
Delivering updates with confidence; shortening time to market; writing clean and correct code every day: this is the promise of Test-Driven Development. But, it’s not easy to do TDD in Android. You have to run the tests on the device, or install a complex framework that mimics the Android APIs. Both options slow you down. In this session we’ll get back to the roots of TDD and show how to deal with this problem. We’ll learn time-tested techniques that reduce the need to run tests on the device. The good side-effect is that our code becomes simpler and better.
Links from the talk are available at:
https://github.com/claremacrae/talks/blob/master/Quickly_Testing_Qt_Desktop_Applications.md#top
Presented at Meeting C++ in Berlin on 15 November 2019.
Abstract: You've inherited some Qt GUI code: it's valuable, but it doesn't have tests, and it wasn't designed to be testable, so you need to start refactoring. But you can't refactor safely until the code has tests, and you can't add tests without refactoring! How can you ever break out of this loop?
Clare will review the challenges and potential sources of error that are specific to code that uses the Qt cross-platform graphical user interface library, and then describe how to guard against them.
There are many options for unit-testing Qt code, including Qt Test, Google Test and Catch. As well as covering those, and general principles for applying them, Clare will present a small but surprisingly effective C++11 library for applying "Approval Tests" to cross-platform Qt code.
Finally, she will briefly cover some other tools that can aid with inspecting and maintaining Qt code, which can in turn improve testability. Attendees will discover some quick, practical techniques to help write unit tests and integration tests for Qt code.
This course teaches you the concepts of Angular. You will learn how to utilize Components, Annotations, Views, Event Handlers, Directives and more. In Angular everything is a Component and this course takes a component-centric approach. We will use Components as the main point of discussion and you will learn about other concepts in Angular in the context of Components.
Дмитрий Демчук. Кроссплатформенный краш-репортSergey Platonov
Доклад будет посвящен возможностям библиотеки Google Breakpad по созданию краш-репорта. Посмотрим как это работает изнутри.
На примерах будут рассмотрены способы интеграции библиотеки на разных платформах Windows, Linux, Max OS.
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)AvitoTech
После внедрения Swift в проект значительно увеличилось время сборки, что стало для нас существенным препятствием. В своём докладе я расскажу о том, как мы решили эту проблему, сократив время компиляции более чем в два раза.
Based on the Legacy CodeRetreat - Daniel Prager, Tomasz Janowski and I ran this all day workshop at this year's LASTconf.
Get ready to level up at refactoring at LAST Conference's first Refactoring Developer workshop. Inspired by Code Retreat, we have run a similar session, for the basics of agile development, at LAST Conference for the past few years. We have felt that it's Important to support learning in technical disciplines that are extremely important in agile software development.
Too many Agile and DevOps initiatives are stymied by code bases that are hard to change and understand.
While disciplined teams who rigorously practice pair programming, test-driven design (TDD) and other technical Agile practices avoid producing new legacy code in the first place, cleaning up a pre-existing mess is notoriously difficult and dangerous. Without the safety net of excellent automated test coverage, the risk of breaking something else as you refactor is extremely high. Also, code that wasn't designed and written with testability in mind makes it really difficult to get started. So most don't even try ...
In the Refactoring workshop developers learn how to build an initial safety net before applying multiple refactorings, and have lots of fun along the way!
To read more about how to run a classic CodeRetreat, I recommend this blogpost: https://medium.com/seek-blog/coderetreat-at-seek-clean-code-vs-comfort-zone-cfb1da64909d
Architecture for scalable Angular applications (with introduction and extende...Paweł Żurowski
Architecture for applications that scales. It uses redux pattern and ngrx implementation with effects and store.
It's refreshed (but still 2+) presentation from my inner talk for colegues.
It's refreshed again and extended by quick and dirty introduction to Angular with verbose example.
Explore some cool generic techniques which you could use for building complex ui in a declarative manner.
TableKit is a super lightweight yet powerful generic library that allows you to build complex table views in a declarative type-safe manner. It hides a complexity of UITableViewDataSource and UITableViewDelegate methods behind the scene, so your code will be look clean, easy to read and nice to maintain.
https://github.com/maxsokolov/TableKit
An overview how to realize code generation of languages on the JVM that implement other class layouts than the Java programming languages. As an example, the inline-mock-maker for Mockito is discussed which supports languages like Kotlin that make any property final by default.
How to grow GraphQL and remove SQLAlchemy and REST API from a high-load Pytho...Oleksandr Tarasenko
GraphQL is a new black, a hype over the Internet with a very few real-life examples of how to use it in big in-house projects. I’d like to show the real example of GraphQL Evolution from a small mobile API to a cross-services integration in a high-load Python project that took us 3 years to develop.
Description:
Intro to GraphQL in the Python world.
Step-by-step GraphQL evolution in a big high-load python project:
Step 1. Mobile App API with GraphQL
Step 2. Separate Frontend from Backend in high-load python project using GraphQL
Step 3. Graph services as Proxy via different Graph APIs
Step 4. Replace SqlAlchemy models via Graph
Step 5. Mutations in Graph API
Step 6. A brave new world with GraphQL
For every step, I will provide real examples (metrics, graphics, numbers), problems and solutions that we had during the years 2015 - 2019.
Streams or Loops? Java 8 Stream API by Niki Petkov - Proxiad BulgariaHackBulgaria
Presentation from the visit of Proxiad Bulgaria - partner for the Java Course in Hack Bulgaria.
The topic is the new Stream API in Java 8 and the presenter - Nikolay Petkov from Proxiad Bulgaria
TDD and mobile development: some forgotten techniques, illustrated with AndroidCodemotion
"TDD and mobile development: some forgotten techniques, illustrated with Android" by Matteo Vaccari
Delivering updates with confidence; shortening time to market; writing clean and correct code every day: this is the promise of Test-Driven Development. But, it’s not easy to do TDD in Android. You have to run the tests on the device, or install a complex framework that mimics the Android APIs. Both options slow you down. In this session we’ll get back to the roots of TDD and show how to deal with this problem. We’ll learn time-tested techniques that reduce the need to run tests on the device. The good side-effect is that our code becomes simpler and better.
Links from the talk are available at:
https://github.com/claremacrae/talks/blob/master/Quickly_Testing_Qt_Desktop_Applications.md#top
Presented at Meeting C++ in Berlin on 15 November 2019.
Abstract: You've inherited some Qt GUI code: it's valuable, but it doesn't have tests, and it wasn't designed to be testable, so you need to start refactoring. But you can't refactor safely until the code has tests, and you can't add tests without refactoring! How can you ever break out of this loop?
Clare will review the challenges and potential sources of error that are specific to code that uses the Qt cross-platform graphical user interface library, and then describe how to guard against them.
There are many options for unit-testing Qt code, including Qt Test, Google Test and Catch. As well as covering those, and general principles for applying them, Clare will present a small but surprisingly effective C++11 library for applying "Approval Tests" to cross-platform Qt code.
Finally, she will briefly cover some other tools that can aid with inspecting and maintaining Qt code, which can in turn improve testability. Attendees will discover some quick, practical techniques to help write unit tests and integration tests for Qt code.
This course teaches you the concepts of Angular. You will learn how to utilize Components, Annotations, Views, Event Handlers, Directives and more. In Angular everything is a Component and this course takes a component-centric approach. We will use Components as the main point of discussion and you will learn about other concepts in Angular in the context of Components.
Дмитрий Демчук. Кроссплатформенный краш-репортSergey Platonov
Доклад будет посвящен возможностям библиотеки Google Breakpad по созданию краш-репорта. Посмотрим как это работает изнутри.
На примерах будут рассмотрены способы интеграции библиотеки на разных платформах Windows, Linux, Max OS.
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)AvitoTech
После внедрения Swift в проект значительно увеличилось время сборки, что стало для нас существенным препятствием. В своём докладе я расскажу о том, как мы решили эту проблему, сократив время компиляции более чем в два раза.
Based on the Legacy CodeRetreat - Daniel Prager, Tomasz Janowski and I ran this all day workshop at this year's LASTconf.
Get ready to level up at refactoring at LAST Conference's first Refactoring Developer workshop. Inspired by Code Retreat, we have run a similar session, for the basics of agile development, at LAST Conference for the past few years. We have felt that it's Important to support learning in technical disciplines that are extremely important in agile software development.
Too many Agile and DevOps initiatives are stymied by code bases that are hard to change and understand.
While disciplined teams who rigorously practice pair programming, test-driven design (TDD) and other technical Agile practices avoid producing new legacy code in the first place, cleaning up a pre-existing mess is notoriously difficult and dangerous. Without the safety net of excellent automated test coverage, the risk of breaking something else as you refactor is extremely high. Also, code that wasn't designed and written with testability in mind makes it really difficult to get started. So most don't even try ...
In the Refactoring workshop developers learn how to build an initial safety net before applying multiple refactorings, and have lots of fun along the way!
To read more about how to run a classic CodeRetreat, I recommend this blogpost: https://medium.com/seek-blog/coderetreat-at-seek-clean-code-vs-comfort-zone-cfb1da64909d
Architecture for scalable Angular applications (with introduction and extende...Paweł Żurowski
Architecture for applications that scales. It uses redux pattern and ngrx implementation with effects and store.
It's refreshed (but still 2+) presentation from my inner talk for colegues.
It's refreshed again and extended by quick and dirty introduction to Angular with verbose example.
Explore some cool generic techniques which you could use for building complex ui in a declarative manner.
TableKit is a super lightweight yet powerful generic library that allows you to build complex table views in a declarative type-safe manner. It hides a complexity of UITableViewDataSource and UITableViewDelegate methods behind the scene, so your code will be look clean, easy to read and nice to maintain.
https://github.com/maxsokolov/TableKit
An overview how to realize code generation of languages on the JVM that implement other class layouts than the Java programming languages. As an example, the inline-mock-maker for Mockito is discussed which supports languages like Kotlin that make any property final by default.
How to grow GraphQL and remove SQLAlchemy and REST API from a high-load Pytho...Oleksandr Tarasenko
GraphQL is a new black, a hype over the Internet with a very few real-life examples of how to use it in big in-house projects. I’d like to show the real example of GraphQL Evolution from a small mobile API to a cross-services integration in a high-load Python project that took us 3 years to develop.
Description:
Intro to GraphQL in the Python world.
Step-by-step GraphQL evolution in a big high-load python project:
Step 1. Mobile App API with GraphQL
Step 2. Separate Frontend from Backend in high-load python project using GraphQL
Step 3. Graph services as Proxy via different Graph APIs
Step 4. Replace SqlAlchemy models via Graph
Step 5. Mutations in Graph API
Step 6. A brave new world with GraphQL
For every step, I will provide real examples (metrics, graphics, numbers), problems and solutions that we had during the years 2015 - 2019.
1. Why we moving API from REST to Graphql?
2. What is Graphql?
3. Graphql in Golang (Why we choose Golang)
4. How to testing Graphql in Golang
5. Deploy Graphql application
Object-Oriented Programming has well established design principles, such as SOLID. For many developers architecture and functional programming are at odds with each other: they don’t know how their existing tricks of the trade convert into functional design. This problem becomes worse as hybrid languages such as Scala, Java 8 and Ruby become common. I will talk about how functional programming helps you implement the SOLID principles, and how a functional mindset can actually help you achieve the holy grail of OO, encapsulation.
Sounds daunting right? But there is always a case where your organisation has either a custom, or third party system that you could leverage generating secrets for, or maybe an IAM system that doesn't quite fit on the ones included in Vault. Well, a couple of months ago I went from "no go" to writing my first plugin from Vault, and I'd like to tell you how I did it. This talk doesn't require you to know go, but it does require a minimal level of understanding of object oriented programming.
Google App Engine in 40 minutes (the absolute essentials)Python Ireland
This talk covers just the stuff needed to get you up-to-speed with Google App Engine and its associated technologies (based on the Python run-time, of course). In addition to a bit of talking, Paul will also demo a working webapp built and deployed on the App Engine cloud... all in 40 minutes.
In this webinar, we talked about hard-to-test patterns in C++ and show how to refactor them. The difficulty, in this context, does not lie in the code's inherent complexity.
The focus will be on patterns technically difficult to unit test because they may:
* Require irrelevant software to be tested too
* E.g.: 3rd party libraries, classes other than the one under test
* Delay the test execution
* E.g.: sleeps inside code under test
* Require intricate structures to be copied or written from scratch
* E.g.: fakes containing a lot of logic
* Require test details to be included in the production code
* E.g.: #ifdef UNIT_TESTS
* Make changes and/or are dependent on the runtime environment
* E.g.: Creating or reading from files
Golang becomes more and more popular: new projects are developed in this language and the old ones migrate to it. Why is Go loved by developers, wanted by clients and preferred by architects? Find the answers in this video.
This presentation was held by Sergii Shapoval (Senior Software Engineer, Consultant, GlobalLogic) at GlobalLogic Kyiv Java Career Day #2 on December 1, 2018.
Video: https://youtu.be/wSSgY_Du9zY
Learn more: https://www.globallogic.com/ua/events/globallogic-kyiv-java-career-day-2-summary
How to separate frontend from a highload python project with no problems - Py...Oleksandr Tarasenko
Everybody knows that it is hard to scale old highload monolithic projects that use pythonic templates for frontend. I am gonna tell how we transformed our product using trending and proper technologies like GraphQL, Apollo, Node.js with limited developer resources in a short period of time.
Slides for the Cluj.py meetup where we explored the inner workings of CPython, the reference implementation of Python. Includes examples of writing a C extension to Python, and introduces Cython - ultimately the sanest way of writing C extensions.
Also check out the code samples on GitHub: https://github.com/trustyou/meetups/tree/master/python-c
Everything as a Code / Александр Тарасов (Одноклассники)Ontico
РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 11:00
Тезисы:
http://rootconf.ru/2017/abstracts/2627.html
Процесс разработки не начинается и не заканчивается на написании кода программного продукта. Мы пишем документацию, придумываем, как это всё оттестировать, и заботимся о том, чтобы доступность приложения была на высоком уровне.
Мы все делаем привычные вещи привычным для нас способом. Порой выполняя много ручной и неэффективной работы. Но что, если есть другой, радикальный подход. Можно ли формализовать свою деятельность и переложить её в код? Какие практики и инструменты для этого использовать?
В докладе будет представлен личный опыт автора по автоматизации различных элементов разработки ПО.
Процесс разработки не начинается и не заканчивается на написании кода программного продукта. Мы пишем документацию, придумываем, как это всё оттестировать, и заботимся о том, чтобы доступность приложения была на высоком уровне.
Мы все делаем привычные вещи привычным для нас способом. Порой выполняя много ручной и неэффективной работы. Но что, если есть другой, радикальный подход. Можно ли формализовать свою деятельность и переложить её в код? Какие практики и инструменты для этого использовать?
В докладе будет представлен личный опыт автора по автоматизации различных элементов разработки ПО.
In this talk I’ll challenge what developers and devops consider things that belong in the code, what are the benefits for extracting concerns from the development life cycle and what approaches are we already seeing used. Among other I will explore different techniques companies are already taking (home grown solutions) and motivation for companies to create a software decoration framework running on devices for the purposes of A/B testing, dynamic analytics and gradually releasing features.
The client side architecture that runs your code on multiple remote devices introduce new challenges but also new opportunities in how we view production code and how it is released. We will explore the new role of production control and how such systems enable devops tools management without the need to disrupt the development cycle and development team, we will show examples of profiling, logging, debugging, root cause analysis and customer support that are introduced to the system without the need for a release. (with real life examples)
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
7. Raw SQL in python
import psycopg2
class pg_conn:
def __enter__(self):
self.conn = psycopg2.connect(
dbname='fwdays', user='highload'
)
return self.conn
def __exit__(self, exc_type, exc_val, exc_tb):
if hasattr(self, 'conn'):
self.conn.close()
7
with pg_conn() as db:
cur = db.cursor()
query = "insert into product('name') values('toy')"
cur.execute(query)
db.commit()
cur.close()
db.close()
8. Raw SQL in python
● psycopg2
● written in C
● implementation of the DB API 2.0 (PEP 249)
● works like a libpq wrapper
8
9. Raw SQL in python
● psycopg2
● written in C
● implementation of the DB API 2.0 (PEP 249)
● works like a libpq wrapper
9
10. Raw SQL in python
import psycopg2
class pg_conn:
def __enter__(self):
self.conn = psycopg2.connect(
dbname='fwdays', user='highload'
)
return self.conn
def __exit__(self, exc_type, exc_val, exc_tb):
if hasattr(self, 'conn'):
self.conn.close()
10
with pg_conn() as db:
cur = db.cursor()
query = "insert into product('name') values('toy')"
cur.execute(query)
db.commit()
cur.close()
db.close()
11. Raw SQL in python
insert into products('name') values('toy');
11
12. Raw SQL in python
insert into products('name') values('toy');
select settings from application_settings
where company_id in (
3244414, 3239428, 3246756, 3215974
);
12
13. Raw SQL in python
13
select csa.company_id, count(csa.id)
from company_site_attributes as csa
join company as c on c.id = csa.company_id
join site_filters as csf on csf.attribute_id = csa.id
where portal_attribute_id in (1536, 17536) and
c.premium_service_id > 0 and
csa.status = 0 and
csf.status = 0
group by csa.company_id, csa.id
having count(csa.id) > 1;
14. Raw SQL in python
14
select csa.company_id, count(csa.id)
from company_site_attributes as csa
join company as c on c.id = csa.company_id
join site_filters as csf on csf.attribute_id = csa.id
where portal_attribute_id in (1536, 17536) and
c.premium_service_id > 0 and
csa.status = 0 and
csf.status = 0
group by csa.company_id, csa.id
having count(csa.id) > 1;
17. Raw SQL
● small tables
● few tables
● no complicated types
17
18. Raw SQL
● small tables
● few tables
● no complicated types
● no need to manage scheme in the app
18
19. Raw SQL
● small tables
● few tables
● no complicated types
● no need to manage scheme in the app
● no migrations
19
20. Raw SQL
● small tables
● few tables
● no complicated types
● no need to manage scheme in the app
● no migrations
● no dynamic queries
20
21. Raw SQL
● small tables
● few tables
● no complicated types
● no need to manage scheme in the app
● no migrations
● no dynamic queries
● no app session managing
● ...
21