Programming consists in translating some form of user's intent into an executable computer program, and automating that process is known as program synthesis. A range of approaches to program synthesis have been proposed in the past, and recent progress in machine learning brought it much closer to practical applicability. In this talk, I will review selected approaches to program synthesis, with particular emphasis on recent developments, and discuss the implications both for AI as well as for the practice of software engineering.
In my presentation I'd like to talk about a topic being "the hottest buzzword" in 2016, that means Serverless Architecture. I'm going to say a few words about existing Serverless solutions, but I'm going to focus mainly on one of them, (not very similar to the others) which is Fn Project. During my presentation I'll try to introduce you to this platform, show you how to start working with it and what actually can we achieve with it. I'll mention also some more advanced aspects related to Fn Project
No matter what language and which framework You use now, there is a big chance You will have to learn something new in a next few years. That is both a beauty and a curse of a coder job. But why does it work like that? Why can’t you simply learn one good enough technology and use it till retirement. Saving more time for family and hobbies. Or maybe You can? This talk is about evolution and history of software languages. Why don’t we write in FORTRAN anymore and who did not like ALGOL? Why functional programming is in fact older than assembly and how our mainstream (C++, Java and C#) looks like from a broader perspective. Can evolution end one day? Will there be the ultimate language, ever?
There seems to be a lot of confusion and disinformation about what security is and what isn’t. In this talk we’ll try to clean up this mess, explain the core concepts, decipher many buzzwords (CIA, ALE, SSDLC, OWASP) and have fun while doing it. We’ll tell you how to play the risk management game the proper way. Treat this talk as a Security Survival Kit you always wanted to have.
Technical debt is an integral part of software development - it's said that the line written today is tomorrow's tech-debt. During the presentation I will want to specify several different approaches of solving technical debt and what are their pros and cons. Everything will be based on real events or real effort showing not only potential approaches, but also when are they efficient and how did the end up within our organization, which has developed their product for over 10 years already.
W Allegro chcieliśmy pozbyć się XSSów. Aby to osiągnąć wdrożyliśmy wiele warstw bezpieczeństwa. Jedną z nich jest CSP (Content Security Policy). Teoretycznie prosta sprawa. W praktyce okazuje się, że przeglądarki różnie interpretują te same polityki. A co w przypadku architektury mikroserwisowej gdzie liczba usług dobija do 1000? Co ze skryptami reklamowymi, trackingowymi czy jakimikolwiek z zewnętrznych źródeł? Czy daną politykę da się obejść? Czy warto się w to pakować? Możemy wam jedynie pokazać pytania, które napotkaliśmy u nas - odpowiedzi mogą być inne w zależności od organizacji. Na przykładzie Allegro pokażemy jak wdrożyliśmy CSP w taki sposób, aby móc je z czasem utwardzać i jednocześnie nie zepsuć niczego dla użytkowników.
Reactive programming is getting more popular recently. Especially in Web development world. What is reactive programming? What problems can we solve with that technology? What kind of problems it creates? Is it the end of good, old MVC? During this talk I will explain building blocks of Reactive programming and how to start thinking reactively. I will show examples of situations where Reactive approach can be beneficial for programmers and saves us a lot of time.
Nowadays web platforms are composed of multiple parts - large applications are surrounded by countless of smaller services and tiny serverless functions. If you’ve ever started a transition from a monolith to more distributed model you know that’s very rarely a big bang. It’s a long process that takes time. You take one feature, extract it to a module and define a clear API, so it can be incorporated easily into a bigger picture that you’re building.
Eventually you end up with a complex distributed platform that has to be managed somehow. Deployments, traffic routing, security, reliability - you have to consider all of those aspects in your implementation plan.
At the same time you have to keep in mind that even the most sophisticated platform doesn’t provide any value by itself if it doesn’t meet expectations of your end users.
During this talk I’d like to present how Cognifide manages platforms composed of many applications, route traffic between smaller components and delivers content to users spread all over the world via Content Delivery Network (CDN).
Recently we have witnessed a small expansion of virtual machines in the Java ecosystem. Is GraalVM shining above others in the current situation? Or is it another OpenJDK fork? As part of this presentation we will answer questions what is GraalVM, what are the problems it solves and what makes GraalVM so special.
Times change. IT systems have brutally invaded our lives, and software eats humanity for breakfast. In the meantime we carry 8 cores and 8 GB RAM in our pockets. The AMD presented a 12-core processor on the so-called consumer market, and Gmail is still stuck and sluggish when it is scrolled through emails. To edit a text file, we need 2 GB of RAM, and an application, which performs the same functions as IRC in the 90s, devours any amount of CPU and memory. And nobody cares. Hardware is cheaper than programmer's time... right? Since such words, like cloud or serverless, have dominated any architectural discussion, the lie repeated for years has become truth.
During the presentation, I would like to share with you the answer to the question posed in the title of the presentation: is efficiency quality? How to ensure the performance of your systems? Who is responsible for all this? (will we sadly discover at the end that the HR department?)?
How does all this relate to Krakow's smog?
How to start with performance testing, what techniques, tools and skills do we need to possess? And why "performance man" is the best profession in the world?
In the 21st century organisations are required to operate in a world which centres on identifying and exploiting opportunities to create value from information. However, this value, as it is identified and enhanced, attracts unwanted attention. From the lone wolf to advanced nation states, adversaries recognise they can also benefit from this information, either through theft or denying its use by others. Many organisations are looking to threat intelligence for this view of their adversaries, but often find it to be ill-defined, costly to buy or produce, and difficult to integrate into decision making, leading to a failure to deliver the expected business aims. I will focus on practical aspects of collecting, processing, analysing and disseminating actionable Threat Intelligence.
Have you ever tried to cook? For preparing a good meal you need ingredients, cooking tools and a recipe. The same applies to data processing. In this talk I will show how TomTom is generating insights and products from the massive amount of data collected from devices in the real world.
We are surrounded by fancy, highly popular architecture concepts like microservices, cloud, lambdas, etc. Is this something more than just a hype-driven development? Should we drop all we learned through the years in favor of those new shiny approaches? How to design our systems in 2019 effectively? In this talk, I'd like to dive into some of the modern approaches and demystify the hype behind them. If you'd like to hear about practical aspects instead of technology marketing, this talk is just for you! Not only for architects & developers.
ML and AI technologies are a great tool to automate various business processes. In this short presentation I will try to automate something significant, something which usually takes long hours, may ruin health, lead to sleep deprivation, may even break up families... we will try to teach computers play games so we won't have to. How to translate game play problem into language of ML algorithms? I will explore possible solutions from the simplest manually crafted algorithm through classical supervised learning methods to end up with reinforcement learning based approaches. This presentation may contain asteroids, spaceships, laser guns and a significant portion of poor Python code.
The classic way to develop IT solutions is based on the concept of feature specification: the expected behavior of the IT solution is defined together with and for the customer. This approach relies on the belief that the customer knows that customers need. Agile methodologies assume that this belief can be partially wrong and that customers will change their mind in time. In this presentation, we will present a different approach to develop IT solutions in which the specifications are driven by the actual interactions of the customers with the system and not by the partial knowledge of the customer. As an example of this approach, the development of machine learning-powered features for Egnyte solutions will be presented.
Robotic Process Automation (RPA) is one of the most effective and transparent IT technologies today. It’s as simple as useful. However, It’s worth considering adding some intelligence into it. In the world more and more open for AI, robots are getting even smarter, making the Digital Transformation dream come true.
Incremental data processing is a method of applying computations to a newly added data subset. It may drastically help decrease the cost and processing time in Big Data systems. However, this method may also increase complexity. This approach enables delivery of updates in real-time to the global-scale data receivers.
This talk takes a look at design choices and looks at how certain data structures or patterns, such as the Kappa architecture, can help build incremental data processing systems.
Can AI help us identify hate, abuse and misinformation online? If not, when might we be able to do so, if ever? Will AI actually just help us spread more misinformation and hate online? In this talk, we'll dive into some of the cutting edge research on hate-speech detection, bot army analysis and fake news. We'll explore what works, doesn't work and what may not be possible with current approaches alone. To conclude, we'll focus on what areas might be underserved and how every technologist can help fight these forms of hatred and deception online.