The document outlines four pains experienced by developers when using traditional .NET development approaches: 1) Reliance on "magic" frameworks that can cause unexpected errors, 2) Builds that fail due to unpredictable dependencies, 3) Long edit-compile-test cycles, and 4) Rapid obsolescence of skills as technologies change. It proposes four guiding principles to address these pains: 1) Using direct queries over ORM "magic", 2) Ensuring predictable, reproducible builds and environments, 3) Shortening feedback loops through techniques like hot reloading, and 4) Focusing on reusable skills rather than specific technologies. The overall message is that prioritizing business needs over technical wizardry and automation can help developers work more efficiently
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Matt Raible
JHipster is bad-ass. It's an Apache-licensed open source project that allows you to generate Spring Boot APIs and Angular (or React/Vue) apps. It has a vibrant community and ecosystem with support for deploying to many cloud providers and using the latest DevOps buzzwords, like Docker and K8s.
This session will show you JHipster, why it's cool, and show you how to create an app with it.
JHipster 7 Demo: https://www.youtube.com/watch?v=6lf64CctDAQ
JHipster 7 Tutorial: https://github.com/mraible/jhipster7-demo#readme
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?Iván López Martín
Spring Boot allows the creation of Spring Framework based applications in a quick and easy way without any XML configuration. It does not generate code, but provides useful defaults and an opinionated approach to the configuration but it quickly gets out of the way when we want to change and override the configuration. As if this wasn't enough we can also create production-ready applications with features such as metrics, health checks and externalized configuration.
If you add Groovy you have the perfect combination to speed up your development and have fun while developing.
In this talk you will see introductory examples of Spring Boot, the creation of a small RESTful API, the usage of Websockets, some of the Spring Boot CLI goodness... and many more examples!
What's New in JHipsterLand - DevNexus 2017Matt Raible
JHipster is an application generator that allows you to create monoliths or microservices based on Spring Boot and Angular. It leverages Spring Cloud for microservices and contains best-of-breed JavaScript and CSS libraries for creating your UI. In this session, you’ll learn about what’s new in JHipster. Topics explored include Angular 2, Progressive Web Apps, HTTP/2, JUnit 5, and Spring 5.
The best reason for writing tests is to automate your testing. Without tests, you'll likely be testing manually. This manual testing will take longer and longer as your codebase grows. In this session, you’ll learn how to test an Angular 2 application. You'll learn how to use Jasmine to unit testing components and Protractor for integration testing. We’ll also take a look at code coverage options and explore continuous integration tools.
Tutorial: https://github.com/mraible/ng-demo/blob/master/README.adoc
Source code: https://github.com/mraible/ng-demo
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Matt Raible
JHipster is bad-ass. It's an Apache-licensed open source project that allows you to generate Spring Boot APIs and Angular (or React/Vue) apps. It has a vibrant community and ecosystem with support for deploying to many cloud providers and using the latest DevOps buzzwords, like Docker and K8s.
This session will show you JHipster, why it's cool, and show you how to create an app with it.
JHipster 7 Demo: https://www.youtube.com/watch?v=6lf64CctDAQ
JHipster 7 Tutorial: https://github.com/mraible/jhipster7-demo#readme
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?Iván López Martín
Spring Boot allows the creation of Spring Framework based applications in a quick and easy way without any XML configuration. It does not generate code, but provides useful defaults and an opinionated approach to the configuration but it quickly gets out of the way when we want to change and override the configuration. As if this wasn't enough we can also create production-ready applications with features such as metrics, health checks and externalized configuration.
If you add Groovy you have the perfect combination to speed up your development and have fun while developing.
In this talk you will see introductory examples of Spring Boot, the creation of a small RESTful API, the usage of Websockets, some of the Spring Boot CLI goodness... and many more examples!
What's New in JHipsterLand - DevNexus 2017Matt Raible
JHipster is an application generator that allows you to create monoliths or microservices based on Spring Boot and Angular. It leverages Spring Cloud for microservices and contains best-of-breed JavaScript and CSS libraries for creating your UI. In this session, you’ll learn about what’s new in JHipster. Topics explored include Angular 2, Progressive Web Apps, HTTP/2, JUnit 5, and Spring 5.
The best reason for writing tests is to automate your testing. Without tests, you'll likely be testing manually. This manual testing will take longer and longer as your codebase grows. In this session, you’ll learn how to test an Angular 2 application. You'll learn how to use Jasmine to unit testing components and Protractor for integration testing. We’ll also take a look at code coverage options and explore continuous integration tools.
Tutorial: https://github.com/mraible/ng-demo/blob/master/README.adoc
Source code: https://github.com/mraible/ng-demo
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG🎤 Hanno Embregts 🎸
What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?
In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?
I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).
So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first.
Front End Development for Back End Java Developers - NYJavaSIG 2019Matt Raible
Are you a backend Java developer that's being pushed into front-end development? Are you frustrated with all the JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We'll explore the landscape of UI development, including web standards, frameworks, and what’s on the horizon (e.g., micro frontends).
https://github.com/alvarowolfx/react-native-shakeit-demo
Introduction to React native presentation. A little history about React web, comparison with state of art of hybrid mobile development and demo to the local community.
In graph we trust: Microservices, GraphQL and security challengesMohammed A. Imran
In graph we trust: Microservices, GraphQL and security challenges - Mohammed A. Imran
Microservices, RESTful and API-first architectures are rage these days and rightfully so, they solve some of the challenges of modern application development. Microservices enable organisations in shipping code to production faster and is accomplished by dividing big monolithic applications into smaller but specialised applications. Though they provide great benefits, they are difficult to debug and secure in complex environments (different API versions, multiple API calls and frontend/backend gaps etc.,). GraphQL provides a powerful way to solve some of these challenges but with great power, comes great responsibility. GraphQL reduces the attack surface drastically(thanks to LangSec) but there are still many things which can go wrong.
This talk will cover the risks associated with GraphQL, challenges and solutions, which help in implementing Secure GraphQL based APIs. We will start off with introduction to GraphQL and its benefits. We then discuss the difficulty in securing these applications and why traditional security scanners don’t work with them. At last, we will cover solutions which help in securing these API by shifting left in DevOps pipeline.
We will cover the following as part of this presentation:
GraphQL use cases and how unicorns use them
Benefits and security challenges with GraphQL
Authentication and Authorisation
Resource exhaustion
Backend complexities with microservices
Need for tweaking conventional DevSecOps tools for security assurance
Security solutions which works with GraphQL
Testing Angular 2 Applications - Rich Web 2016Matt Raible
The best reason for writing tests is to automate your testing. Without tests, you'll likely be testing manually. This manual testing will take longer and longer as your codebase grows.
In this session, you’ll learn how to test an Angular 2 application. You'll learn how to use Jasmine to unit test components and Protractor for integration testing. We’ll also take a look at code coverage options and explore continuous integration tools.
Fixing security by fixing software developmentNick Galbreath
Fixing Security by Fixing Software Development Using Continuous Deployment
Do you have an effective release cycle? Is your process long and archaic? Long release cycle are typically based on assumptions we haven't seen since the 1980s and require very mature organizations to implement successfully. They can also disenfranchise developers from caring or even knowing about security or operational issues. Attend this session to learn more about an alternative approach to managing deployments through Continuous Deployment, otherwise known as Continuous Delivery. Find out how small, but frequent changes to the production environment can transform an organization’s development process to truly integrate security. Learn how to get started with continuous deployment and what tools and process are needed to make implementation within your organization a (security) success.
Where we are, as Front-End developers? This presentation navigates a short timeline of the computer science focusing on the client-side development as a mean to answer why and what has changed, as well as explore patterns and tendencies for the near future.
English article: https://medium.com/@caiovaccaro/javascript-state-of-the-union-2015-part-1-7ccff74813fa#.8x9y48ohk
DOES SFO 2016 - Sam Guckenheimer & Ed Blankenship "Moving to One Engineering ...Gene Kim
Microsoft has been on a transformation both culturally as well as technically by consolidating engineering systems to One Engineering System. Along the way, we've had many learnings that we'll share from soup to nuts: adopting Git at scale, realigning our talent competencies, reorganizing, becoming data driven, and delivering continuously through lots of automation & cloud adoption.
API Design Principles for Accelerated DevelopmentJonathan LeBlanc
One of the largest issues in API architecture development is that the task is often driven by the pragmatic indoctrination of a specification into a product rather than designing around the speed and ease of development, usually due to a separation between the engineering teams and their core developer user base.
Extending upon the ideas of API design around developer accelerated development delivered in the PayPal keynote, we will take a deeper look into some of the great techniques delivered to us through the RESTful specification, applying them to developer API consumption practices with the intention of creating efficient best practices for rapid development.
Within this talk we will explore what we have learned through reconstructing our API backbone at PayPal for our developer community, including:
- API automation practices for code reduction and application longevity
- Open security standards that promote developer integration ease and maintain strict security practices
- RESTful API architecture best practices for developer centric accelerated development
Cloud Native Progressive Web Applications - Denver JUG 2016Matt Raible
In this session, we covered how to build microservices with Spring, deploy them to the cloud and expose their functionality with an progressive web application that can run offline. You’ll learn how to “build to fail” and create a quality, resilient application. Live coding will show how to use: Spring Boot, Spring Cloud, Spring Security, Cloud Foundry, IntelliJ IDEA, Angular 2, JWT, Stormpath, and Progressive Web Apps.
Handling user passwords safely is hard, but replacing passwords on the web in a reasonable way is even harder. Really, this should have been in the browser all along. In this talk you we will see how Persona attempts to solve this issue.
HTML5 and CSS3 offer some great features that everyone is clamoring to use. However, not everyone can simply rip apart their site and redo all of their markup and styling across the board. There are some quick wins, especially with CSS3, to be had that you can integrate into your site without rewriting your whole entire site.
Some tips and tools to make WordPress development process simple and effective.
(This presentation was made for WordPress Pokhara meetup: December 2016)
This presentation includes some thoughts and conclusion of mine after my research for the refactor of the Jexia interface. It will provide you useful tools for your refactor (or your new projects) and some tips.
Video with the speech: https://youtu.be/zbphdRs__DM
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG🎤 Hanno Embregts 🎸
What source control software did you use in 2010? Possibly Git, if you were an early adopter or a Linux kernel committer. But chances are you were using Subversion, as this was the product of choice for the majority of the software developers. Ten years later, Git is the most popular product. Which makes me wonder: what will we use another ten years from now?
In this talk we will think about what features we want from our source control software in 2030. More speed? Better collaboration support? No merge conflicts ever?
I’ll also discuss a few products that have been published after Git emerged, including Plastic, Fossil and Pijul. I’ll talk about the extent to which they contain the features we so dearly desire and I’ll demonstrate a few typical use cases. To conclude, I’ll try to predict which one will be ‘the top dog’ in 2030 (all information is provided “as is”, no guarantees etc. etc.).
So attend this session if you’re excited about the future of version control and if you want to have a shot at beating even (!) the early adopters. Now if it turns out I was right, remember that you heard it here first.
Front End Development for Back End Java Developers - NYJavaSIG 2019Matt Raible
Are you a backend Java developer that's being pushed into front-end development? Are you frustrated with all the JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We'll explore the landscape of UI development, including web standards, frameworks, and what’s on the horizon (e.g., micro frontends).
https://github.com/alvarowolfx/react-native-shakeit-demo
Introduction to React native presentation. A little history about React web, comparison with state of art of hybrid mobile development and demo to the local community.
In graph we trust: Microservices, GraphQL and security challengesMohammed A. Imran
In graph we trust: Microservices, GraphQL and security challenges - Mohammed A. Imran
Microservices, RESTful and API-first architectures are rage these days and rightfully so, they solve some of the challenges of modern application development. Microservices enable organisations in shipping code to production faster and is accomplished by dividing big monolithic applications into smaller but specialised applications. Though they provide great benefits, they are difficult to debug and secure in complex environments (different API versions, multiple API calls and frontend/backend gaps etc.,). GraphQL provides a powerful way to solve some of these challenges but with great power, comes great responsibility. GraphQL reduces the attack surface drastically(thanks to LangSec) but there are still many things which can go wrong.
This talk will cover the risks associated with GraphQL, challenges and solutions, which help in implementing Secure GraphQL based APIs. We will start off with introduction to GraphQL and its benefits. We then discuss the difficulty in securing these applications and why traditional security scanners don’t work with them. At last, we will cover solutions which help in securing these API by shifting left in DevOps pipeline.
We will cover the following as part of this presentation:
GraphQL use cases and how unicorns use them
Benefits and security challenges with GraphQL
Authentication and Authorisation
Resource exhaustion
Backend complexities with microservices
Need for tweaking conventional DevSecOps tools for security assurance
Security solutions which works with GraphQL
Testing Angular 2 Applications - Rich Web 2016Matt Raible
The best reason for writing tests is to automate your testing. Without tests, you'll likely be testing manually. This manual testing will take longer and longer as your codebase grows.
In this session, you’ll learn how to test an Angular 2 application. You'll learn how to use Jasmine to unit test components and Protractor for integration testing. We’ll also take a look at code coverage options and explore continuous integration tools.
Fixing security by fixing software developmentNick Galbreath
Fixing Security by Fixing Software Development Using Continuous Deployment
Do you have an effective release cycle? Is your process long and archaic? Long release cycle are typically based on assumptions we haven't seen since the 1980s and require very mature organizations to implement successfully. They can also disenfranchise developers from caring or even knowing about security or operational issues. Attend this session to learn more about an alternative approach to managing deployments through Continuous Deployment, otherwise known as Continuous Delivery. Find out how small, but frequent changes to the production environment can transform an organization’s development process to truly integrate security. Learn how to get started with continuous deployment and what tools and process are needed to make implementation within your organization a (security) success.
Where we are, as Front-End developers? This presentation navigates a short timeline of the computer science focusing on the client-side development as a mean to answer why and what has changed, as well as explore patterns and tendencies for the near future.
English article: https://medium.com/@caiovaccaro/javascript-state-of-the-union-2015-part-1-7ccff74813fa#.8x9y48ohk
DOES SFO 2016 - Sam Guckenheimer & Ed Blankenship "Moving to One Engineering ...Gene Kim
Microsoft has been on a transformation both culturally as well as technically by consolidating engineering systems to One Engineering System. Along the way, we've had many learnings that we'll share from soup to nuts: adopting Git at scale, realigning our talent competencies, reorganizing, becoming data driven, and delivering continuously through lots of automation & cloud adoption.
API Design Principles for Accelerated DevelopmentJonathan LeBlanc
One of the largest issues in API architecture development is that the task is often driven by the pragmatic indoctrination of a specification into a product rather than designing around the speed and ease of development, usually due to a separation between the engineering teams and their core developer user base.
Extending upon the ideas of API design around developer accelerated development delivered in the PayPal keynote, we will take a deeper look into some of the great techniques delivered to us through the RESTful specification, applying them to developer API consumption practices with the intention of creating efficient best practices for rapid development.
Within this talk we will explore what we have learned through reconstructing our API backbone at PayPal for our developer community, including:
- API automation practices for code reduction and application longevity
- Open security standards that promote developer integration ease and maintain strict security practices
- RESTful API architecture best practices for developer centric accelerated development
Cloud Native Progressive Web Applications - Denver JUG 2016Matt Raible
In this session, we covered how to build microservices with Spring, deploy them to the cloud and expose their functionality with an progressive web application that can run offline. You’ll learn how to “build to fail” and create a quality, resilient application. Live coding will show how to use: Spring Boot, Spring Cloud, Spring Security, Cloud Foundry, IntelliJ IDEA, Angular 2, JWT, Stormpath, and Progressive Web Apps.
Handling user passwords safely is hard, but replacing passwords on the web in a reasonable way is even harder. Really, this should have been in the browser all along. In this talk you we will see how Persona attempts to solve this issue.
HTML5 and CSS3 offer some great features that everyone is clamoring to use. However, not everyone can simply rip apart their site and redo all of their markup and styling across the board. There are some quick wins, especially with CSS3, to be had that you can integrate into your site without rewriting your whole entire site.
Some tips and tools to make WordPress development process simple and effective.
(This presentation was made for WordPress Pokhara meetup: December 2016)
This presentation includes some thoughts and conclusion of mine after my research for the refactor of the Jexia interface. It will provide you useful tools for your refactor (or your new projects) and some tips.
Video with the speech: https://youtu.be/zbphdRs__DM
There are tons of awesome new tools produced by terrific companies and developers that get everyone excited about using their fancy new tool-set by essentially starting from scratch. This talk is not about using a fancy new framework and rewriting your entire application. As a developer who has spent the majority of his time working in legacy codebases where the first commits pre-date jQuery, it's hard not to get wrapped up in the "I want to rewrite the whole app with X" mentality. But in reality, time constraints or just the legacy framework you're building your apps with doesn't allow for that. Or, more realistically, it just needs to work and there is no business case for a rewrite. What this talk will show you how you can still enhance your front-end operation within an existing legacy codebase. I'll talk about first steps to modularizing a monolith, or simply taking a portion of a legacy app and modernizing it with a new toolset. This not only helps you as a developer to succeed with new tools, it makes you feel like you aren't being left behind in the modern world. Whether you're using legacy jQuery, or just some crammed together JavaScript, you shouldn't lose the ability to modernize your application, just because you can't buy in 100% to a modern framework.
Tips on how to break apart your monolithic JavaScript
Building an extension method to modularize your application
Creating backcompat methods for legacy code modernization
Using a modern framework for a portion of your app, and integrating that with your existing code.
Other considerations (minification, module loaders, tests, etc)
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
JSFest 2019: Technology agnostic microservices at SPA frontendVlad Fedosov
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
Discussion on angular offering, approaches to integrate web worker in angular (5 and 6) application, their pros and cons. A sample example implementation using custom web worker approach and integrating the same with CLI(1 and 6) and the application.
Recently we presented on WordCamp Thessaloniki how we can use WordPress as a Framework. In this presentation you can find some nice ideas on what is a Framework, how WordPress can be used as one and how we can start building custom apps using WordPress. Enjoy!
Michael Choi's process for designing web application(s), including which programming language to use, when to use Node.js, when to use a light-weight framework vs a heavy MVC framework, how to set up git for collaboration based on complexity of the project, how a tool like Jenkins can be used for continuous integration, continuous delivery, and continuous deployment, where to host the data, what services to use for orchestrating containers or servers.
Gradle is an open-source build automation tool focused on flexibility, build reproducibility and performance. Over the years, this tool has evolved and introduced new concepts and features around dependency management, publication and other aspects on build and release of artifacts for the Java platform.
Keeping up to date with all these features across several projects can be challenging. How do you make sure that all your projects can be upgraded to the latest version of Gradle? What if you have thousands of projects and hundreds of engineers? How can you abstract common tasks for them and make sure that new releases work as expected?
At Netflix, we built Nebula, a collection of Gradle plugins that helps engineers remove boilerplate in Gradle build files, and makes building software the Netflix way easy. This reduces the cognitive load on developers, allowing them to focus on writing code.
In this talk, I’ll share with you our philosophy on how to build JVM artifacts and the pieces that help us boost the productivity of engineers at Netflix. I’ll talk about:
- What is Nebula
- What are the common problems we face and try to solve
- How we distribute it to every JVM engineer
- How we ensure that Nebula/Gradle changes do not break builds so we can ship new features with confidence at Netflix
A modern architecturereview–usingcodereviewtools-ver-3.5SSW
For any project that is critical to the business, it’s important to do ‘Modern Architecture Reviews’. Being an architect is fun, you get to design the system, do ongoing code reviews, and play the bad ass. It is even more fun when using modern cool tools.
Similar to Pain Driven Development by Alexandr Sugak (20)
"Are you developing or declining? Don't become an IT-dinosaur"Sigma Software
Tech Buzz, Project Management meetup, Warsaw, 2022
Krzysztof Rakowski and Paweł Rekowski, "Are you developing or declining? Don't become an IT-dinosaur"
In 18 years of learning processes facilitation, Sigma Software has delivered more than 40 solutions to fortune 500 companies, product houses, and startups. We have our own training platform Sigma Software University running 60+ training courses and consulting on e-learning. Learn how we can make training solutions and content creation more meaningful and powerful: https://bit.ly/3f4phoY
False news - false truth: tips & tricks how to avoid themSigma Software
Since the beginning of the COVID-19, the spread of information about the pandemic has been much faster than the virus itself. Facebook(link is external) labeled nearly 50 million pieces of news about COVID-19 as misinformation in April, while Twitter(link is external) marked more than 1.5 million users for spreading false information and displaying manipulative behaviors. Find out how dangerous false news is and what steps you can take to avoid them.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
2. About me
32 years old;
Programming for ~12 years;
Did mostly .NET;
Worked on Web and Desktop apps, DBs, Web/Win Services, IDE plug-ins,
SPAs, mobile apps, integrations;
3. About me
32 years old;
Programming for ~12 years;
Did mostly .NET;
Worked on Web and Desktop apps, DBs, Web/Win Services, IDE plug-ins,
SPAs, mobile apps, integrations;
Never liked it.
6. But now we have .NET Core and a new
open-source MSFT, right?
7. But now we have .NET Core and a new
open-source MSFT, right?
https://github.com/NuGet/NuGetGallery/pull/4437
Wrong
8. .NET Core + Linux =
C#;
ASP.NET Core;
EF Core;
SQL Server for Linux;
Visual Studio for Mac;
<something> Core;
9. DISCLAIMER
Subjective matter!
You will have your project’s requirements;
Not every project is a “green field” project;
This is not about “all new shiny things are better”.
10. Pain of using “magic” frameworks
You install NHibernate;
Everything works as expected;
You create your first entity – so far so good;
You create second entity – it doesn’t work;
You spend 3 hours to understand that the problem is that your new entity
has “Date” property and it is not escaped in generated T-SQL.
16. Principle 1: “less magic”
Avoid accidental complexity at all cost;
Magic things: ORMs, AOP, overuse of conventions, code generation,
reflection etc.;
Willing to trade some effort for the full control over solution.
17. The “it works on my machine” pain
You do the change and test it locally – it works;
You push your changes to repository;
CI build fails with “Cannot load an assembly”;
You spend next 3 hours trying to understand why.
22. Principle 2: predictable state
Reproducible builds: “single script to rule them all”;
Transient dependencies, lock files;
Immutable servers/infrastructure;
Configuration-driven environment.
23. The “edit, compile, wait, repeat” pain
You do the change to the model/view/controller;
You compile your 35 projects solution - 30 sec;
You reload your browser and wait for:
IIS to reload the app – 5 sec;
Your app to initialize – 15 sec;
The page to load – 2 sec;
You manually restore the page state – 5 sec;
24. The “edit, compile, wait, repeat” pain
You do the change to the model/view/controller;
You compile your 35 projects solution - 30 sec;
You reload your browser and wait for:
IIS to reload the app – 5 sec;
Your app to initialize – 15 sec;
The page to load – 2 sec;
You manually restore the page state – 5 sec;
And it did not work;
Repeat.
25. The “edit, compile, wait, repeat” pain
https://faculty.washington.edu/ajko/books/cooperative-software-development/history.html
28. Principle 3: next level
Not just time travel, I want to observe changes across time at one glance;
Not just hot reload, I want to see changes for all states, on all pages;
Visual programming?
Programming by example?
See Bret Victor’s work, e.g.
http://worrydream.com/#!2/LadderOfAbstraction
29. Principle 3: build feedback
Run entire test suite on every commit;
Run all linters on every commit;
Deploy 10 version of the app per day;
Receive notifications on every failure: Slack integration for CI builds and in-
app critical errors;
30. Principle 3: shorten feedback loop
As a programmer, I want to see the effect of the changes I do
immediately so that I could be more efficient;
31. The “your skills are now obsolete” pain
You start as a .NET programmer in 200X;
You learn ASP.NET Web Forms: the event model, the View State, the Ajax
Toolkit, etc.;
32. The “your skills are now obsolete” pain
You start as a .NET programmer in 200X;
You learn ASP.NET Web Forms: the event model, the View State, the Ajax
Toolkit, etc.;
Time passes, you are in the 201X;
You now have a part of your brain that is forever lost.
How to disable
ViewState
https://commons.wikimedia.org/wiki/File:Brodmann_area_45_lateral.jpg
33. The “your skills are now obsolete” pain
You start doing SPAs in the 201X;
You learn AngularJS: the template language, the directives, the custom
HTTP client, etc.;
34. The “your skills are now obsolete” pain
You start doing SPAs in the 201X;
You learn AngularJS: the template language, the directives, the custom
HTTP client, etc.;
…
See the pattern?
35. Principle 4: things I cannot reuse
WebForms;
WinForms;
SharePoint;
Visual Studio + R#;
AngularJS http client;
“Click to deploy to Azure”;
and many more.
36. Principle 4: things I can reuse
JavaScript;
Object Oriented/Functional programming, SOLID;
Event-driven/reactive systems;
Web, http, networks;
SQL;
Emacs/Vim;
Actor Model;
Stream Processing;
Machine Learning;
Statistics;
UX;
And many more.
38. Principle 4: composition and reuse
As a programmer, I want to be able to reuse the skills and knowledge I
have when working on a new project so that I could be more efficient and
be in demand on job market;
39. Summary
Business value first, technical wizardry second;
Automate all the things!
Do not make compromises with technology, ask for more!
Learn how to build systems, not how to use frameworks.
We will now do programming on linux using .NET Core, ASP.NET Core, EF Core and SQL for linux?
We will now do programming on linux using .NET Core, ASP.NET Core, EF Core and SQL for linux?
I am not against these tools, I am against not changing, since this will not remove the pain
Sometimes, after all (non)functional requirements and limitations are considered, you as a tech specialist make a decision to use technology A or B. This is the time to think of your principles.
Put down your headphones and listen to what your teammates are talking about in the room?
Is it “how to do this in this framework?”, “how do I configure that?”, “how do I deploy it?” or “what did you do to make it work?”
Or is it “do I understand this business rule right?”, “what should happen if user does this?” or “maybe we have contradiction in these requirements?”
Do you need to have 5 operations on 3 core entities? Do plain ADO.Net or dapper
Do you have 24-screens CRUD app? Use EF
Do you need to have 5 operations on 3 core entities? Do plain ADO.Net or dapper
Do you have 24-screens CRUD app? Use EF
Do you need to have 5 operations on 3 core entities? Do plain ADO.Net or dapper
Do you have 24-screens CRUD app? Use EF
Single script build:
Must have for OSS
Must have for inhouse too – days on setting up the environment for new developers?
Instead of “Consolidate packages” button in VS.
You could actually google for ready configurations (e.g. for hosting wordpress), not “how-to” articles with screenshots of the old IIS version
You could actually google for ready configurations (e.g. for hosting wordpress), not “how-to” articles with screenshots of the old IIS version
Did you have a day when you spent entire day working hard but at the end of the day felt that you accomplished nothing?