Strumenti di Comunicazione Integrata per PMI e Startup Social Engagement List...Saverio Bruno
Alla Social Media Week 2012 di Torino si è svolto un workshop con Enrico Giubertoni, Saverio Bruno e Giusy Congedo, tutti di HootSuite, in cui si è parlato di comunicazione integrata sui social network attraverso specifici strumenti e soluzioni.
Imagine that you've been given an old project, a Food Delivery app, with the backend written in Laravel 8 and PHP 8.0. The web and mobile interfaces communicate with the backend through an API, but it's currently performing poorly with an average response time of 600ms. The product owner has requested you to optimize the performance and wonders if it's possible to reduce it by a factor of 10. What would you do?
Topics to be Covered:
Nginx Cache
Rememberable package
Redis Cache
Queues: Redis/SQS
Horizon
Octane: Swoole / Roadrunner
Upgrading PHP and Laravel
While you may be familiar with most of these points and possibly already using them, the focus will be on ensuring that you're using them correctly and effectively. In a real-world example, I will demonstrate how we managed to reduce average response times by 10 times. We'll explore what's hidden under Laravel's package magic and discuss ways to mitigate the negative impact on project performance.
By the end of this performance optimization session, you will not only have improved your performance but also gained a deeper understanding of how to utilize the Laravel framework more efficiently.
Strumenti di Comunicazione Integrata per PMI e Startup Social Engagement List...Saverio Bruno
Alla Social Media Week 2012 di Torino si è svolto un workshop con Enrico Giubertoni, Saverio Bruno e Giusy Congedo, tutti di HootSuite, in cui si è parlato di comunicazione integrata sui social network attraverso specifici strumenti e soluzioni.
Imagine that you've been given an old project, a Food Delivery app, with the backend written in Laravel 8 and PHP 8.0. The web and mobile interfaces communicate with the backend through an API, but it's currently performing poorly with an average response time of 600ms. The product owner has requested you to optimize the performance and wonders if it's possible to reduce it by a factor of 10. What would you do?
Topics to be Covered:
Nginx Cache
Rememberable package
Redis Cache
Queues: Redis/SQS
Horizon
Octane: Swoole / Roadrunner
Upgrading PHP and Laravel
While you may be familiar with most of these points and possibly already using them, the focus will be on ensuring that you're using them correctly and effectively. In a real-world example, I will demonstrate how we managed to reduce average response times by 10 times. We'll explore what's hidden under Laravel's package magic and discuss ways to mitigate the negative impact on project performance.
By the end of this performance optimization session, you will not only have improved your performance but also gained a deeper understanding of how to utilize the Laravel framework more efficiently.
"Incremental rollouts and rollbacks with business metrics control at every st...Fwdays
Let's talk about the types and methods of deployments, the problems faced by engineers and ops during deployments. Possible ways of control and different approaches to it. How to choose metrics that should be monitored during releases.
Using Argo Rollouts as an example, we will analyze cases of monitoring technical and business metrics, forecasting, and rollback automation.
Павло Юрійчук — Перехід на Angular.js. Howto
1.Що таке Angular.JS на думку Менеджера і Розробника
2. Екосистема для розробки на Angular.JS
3. Причини для переходу і непереходу на Angular.JS
4. Предметна область, поради, книги
5. Ознаки, що Ви на вірному шляху
Цю презентацію значно доповнює схожа, але трохи інша. англомовна презентація Павла: "Pavlo Yuriychuk — Switching to Angular.js. Silk way"
Як прокачати трьох студентів за п’ять тижнівArtem Henvald
GitHub repository: https://github.com/stfalcon-studio/lost-and-found
Відео з презентації: https://www.youtube.com/watch?v=3EgilE_fpkI
До нас на студію прийшли три студенти проходити практику. Потрібно було дати їм завдання і організувати навчальний процес. Розробляли проект "Бюро знахідок" на PHP Framework Symfony2. Ділюсь своїм досвідом, як я це зробив і що в результаті вийшло.
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»QADay
Lviv Direction QADay 2023 (automation)
ОЛЕГ ЗАРЕВИЧ
«Shift left та Shift Right підходи до тестування»
telegram: wwww.t.me/goqameetup
fb: www.fb.com/goqaevent
fb: www.fb.com/qaday.org
linkedin: https://www.linkedin.com/company/goqa/
Сайт: www.qaday.org
"Elements of functional programming in C# based on Language-Ext library as an...Fwdays
The functional programming elements are increasingly appearing in C# programming language every year. However, there are still elements for which there is no native support in the language. It is not always appropriate or possible to change the language to another, where there are such elements. Based on Language-Ext library as an example, which is widely used in the development by Uklon, we will analyse the most useful and popular elements of functional programming that have been already implemented in this library.
"Incremental rollouts and rollbacks with business metrics control at every st...Fwdays
Let's talk about the types and methods of deployments, the problems faced by engineers and ops during deployments. Possible ways of control and different approaches to it. How to choose metrics that should be monitored during releases.
Using Argo Rollouts as an example, we will analyze cases of monitoring technical and business metrics, forecasting, and rollback automation.
Павло Юрійчук — Перехід на Angular.js. Howto
1.Що таке Angular.JS на думку Менеджера і Розробника
2. Екосистема для розробки на Angular.JS
3. Причини для переходу і непереходу на Angular.JS
4. Предметна область, поради, книги
5. Ознаки, що Ви на вірному шляху
Цю презентацію значно доповнює схожа, але трохи інша. англомовна презентація Павла: "Pavlo Yuriychuk — Switching to Angular.js. Silk way"
Як прокачати трьох студентів за п’ять тижнівArtem Henvald
GitHub repository: https://github.com/stfalcon-studio/lost-and-found
Відео з презентації: https://www.youtube.com/watch?v=3EgilE_fpkI
До нас на студію прийшли три студенти проходити практику. Потрібно було дати їм завдання і організувати навчальний процес. Розробляли проект "Бюро знахідок" на PHP Framework Symfony2. Ділюсь своїм досвідом, як я це зробив і що в результаті вийшло.
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»QADay
Lviv Direction QADay 2023 (automation)
ОЛЕГ ЗАРЕВИЧ
«Shift left та Shift Right підходи до тестування»
telegram: wwww.t.me/goqameetup
fb: www.fb.com/goqaevent
fb: www.fb.com/qaday.org
linkedin: https://www.linkedin.com/company/goqa/
Сайт: www.qaday.org
"Elements of functional programming in C# based on Language-Ext library as an...Fwdays
The functional programming elements are increasingly appearing in C# programming language every year. However, there are still elements for which there is no native support in the language. It is not always appropriate or possible to change the language to another, where there are such elements. Based on Language-Ext library as an example, which is widely used in the development by Uklon, we will analyse the most useful and popular elements of functional programming that have been already implemented in this library.
2. Про себе
• Живу 31 рік
• Програмую 15 років
• Програмую за гроші 6-8 років (точно не памятаю)
• Програмую за гроші повний робочий день на java 4 роки
• Цікавився військовою технікою та походами в гори
• Одружений, маю трьох дітей та собаку
3. Що ви почуєте на цій доповіді
В 4ох епізодах ви взнаєте про:
• Що таке DDD і навіщо воно
• Як я вибрав Spring Roo (на що запізно звернув увагу)
• Основний недолік ISIS
• Процес розробки з ISIS (створення проекту і налаштування
середовища)
• Як додати кнопку і до чого було DDD на початку
• Те чого дуже мало на інших ресурсах по ISIS
11. Погуглимо яка є інформація
З перших п’яти посилань
• Є офіційний сайт
• Є приклади
• Можна знайти прикольне кенгурятко
• І статтю на вікіпедії
12. Процес розробки виглядає так:
В консолі roo вводимо команди і все генерується
• project --topLevelPackage org.crc83.activity
• jpa setup --provider HIBERNATE --database POSTGRES
• entity jpa --class ~.domain.Activity --testAutomatically
• field string --fieldName workPermit --notNull
• field string --fieldName convName --notNull
• field date --type java.util.Date --fieldName startDate --notNull
• field date --type java.util.Date --fieldName endDate --notNull
• field number --type int --fieldName operatorId --notNull
• field string --fieldName phoneNumber --notNull
• field string --fieldName customerFullName --notNull
• field string --fieldName sellerFullName --notNull
• hint web mvc
• web mvc setup
• web mvc all --package ~.web
13. Результат
• Ми зробили багато роботи і отримали багато коду
• для одного бізнес об’єкта !!!!
14. Чому відмовився
• Щоб внести зміни треба вивчити нову мову (команди консолі roo)
• Або робити зміни в багатьох файлах при додаванні одного поля
• Локалізація українською (бо програмка писалась для українця)
• Робота з датами (можливо проблема вирішується, але в мене не було
досить часу на це)
Закон технології Лермана. Будь-яку технічну проблему можна
вирішити, маючи достатньо часу і грошей.
Наслідок Лермана. Вам завжди буде не вистачати або часу, або
грошей.
16. Погуглимо яка є інформація
З перших п’яти посилань
• Стаття в вікіпеді
• Країна де є бородаті мужики з автоматами
• Фото бородатих мужиків з автоматами
• Офіційний сайт фреймворка
• Ще одна країна де живуть бородаті
мужики з автоматами
17. Просто додай apache
Насправді інформації більш ніж
досить:
• Офіційний сайт з купою
прикладів і відео фрагментів
• Проекти на GitHub
• Відео на Youtube (наприклад
оце з минулого JEEConf
https://www.youtube.com/watc
h?v=BNGUqZ6YE-M )
18. Створення проекту
mvn archetype:generate
-D archetypeGroupId=org.apache.isis.archetype
-D archetypeArtifactId=simpleapp-archetype
-D archetypeVersion=1.8.0
-D groupId=com.mycompany
-D artifactId=myapp
-D version=1.0-SNAPSHOT
-B
19. І ви отримаєте проект з двома класами
• Один відповідає бізнес об’єкту
• А другий містить опис операцій з цими об’єктами
20. Настройка Eclipse
• Встановити плагін DataNucleus
http://www.datanucleus.org/products/datanucleus/jdo/guides/eclips
e.html
• Додати шаблони (editor templates)
http://isis.apache.org/intro/resources/editor-templates.html
• Для того щоб легше було редагувати локалізацію:
http://marketplace.eclipse.org/content/gted-gettext-editor
21. Процес розробки коротко
• До бізнес обєкта (i.e. SimpleObject) ви додаєте приватні поля,
генеруєте сетери і гетери
• Анотуєте гетери щоб задати назву поля на UI, правила валідації,
місце поля в таблиці і на формі редагування
22. Ви отримаєте
• Веб аплікацію
• Рест сервіс
• Онлайн демо можна подивитись
тут http://mmyco.co.uk:8180/isis-
onlinedemo/
23. Веб аплікація (що і де)
• Для визначення операцій з певним типом бізнес об’єктів
використовується репозитарій (для SimpleObject це SimpleObjects
і я б радив переіменівати його в SimpleRepository щоб не
плутатись)
26. По розробці фіч це все
• По розробці фіч є багато інформації
• Можна використовувати як покроковий посібник відео про яке я
писав раніше https://www.youtube.com/watch?v=BNGUqZ6YE-M
29. Локалізуємо поля на формах в
SimpleRepository
• Наприклад для поля startDate
додаємо в translations-uk.po такі
рядки
#:
domainapp.dom.modules.activity.ActivityR
epository#create(java.lang.String,java.l
ang.String,java.lang.String,java.util.Da
te,java.util.Date,int,java.lang.String,j
ava.lang.String,java.lang.String,int,jav
a.lang.String,int,java.lang.String,int)
msgid "startDate"
msgstr "Дата початку"
• Недолік в тому що якщо сигнатура
методу міняється то слід міняти
це і в файлах перекладу
30. Локалізуємо поля на формах для
перегляду SimpleObject
• Наприклад для поля startDate додаємо в translations-uk.po такі рядки
#: domainapp.dom.modules.activity.ActivityObject#startDate
#:
domainapp.dom.modules.activity.ActivityRepository#create(java.lang.String,java.lan
g.String,java.lang.String,java.util.Date,java.util.Date,int,java.lang.String,java.
lang.String,java.lang.String,int,java.lang.String,int,java.lang.String,int)
msgid "startDate"
msgstr "Дата початку"
31. Вирішуємо проблеми з датами
• Мені треба щоб день місяць і рік вводився через DatePicker тільки
цифрами і в певному форматі
• І щоб дата зберігалась без часу (лише дата) заміняємо DateTime
на org.joda.time.LocalDate;