Atlanta Ruby Meetup Group: ActiveRecord objects tend to become got objects in our apps. This is because we have forgotten a lot of design and OOP. This is a re-discovery of those principles and how they relate to most Rails apps.
This document provides information about various Android development topics including:
- ListAdapters and mapping models to UI using an MVVM-like pattern
- Creating custom lists
- Starting a new activity using an Intent and passing data between activities
- Understanding the Android activity lifecycle and methods like onPause() and onResume()
- Handling configuration changes that recreate the activity
- Working with permissions
The document discusses common patterns for working with lists, launching new screens, and handling activity state changes. It also provides code examples for starting a new activity, passing data between activities, and handling the activity lifecycle callbacks.
This document provides an overview of various topics related to mobile application development including cloud computing, interaction design, Android, iOS, web technologies like HTML5 and JavaScript, programming languages like Java and Objective-C, frameworks, gaming, user experience design, and more. It discusses tools for Android development and covers basics of creating an Android app like setting up the IDE, creating the UI, adding interactivity, debugging, and referencing documentation.
This document discusses several topics related to developing Android apps including:
1. Adding markers to maps by setting an onMapClickListener and adding a MarkerOptions to the clicked location.
2. Signing into apps with Google accounts using the Google Identity API.
3. Following Material Design guidelines for visual style and user interfaces.
4. Maintaining multiple APK versions and using OpenGL ES for games.
Previously I have presented MVC - Model: the great forgotten, in which I have explained what models were for.
It was very well received but because it was focused only in the model concept it leak of some important concepts about the whole MVC abstraction or how it make scale into a large AngularJS.
In the previous talk I gave some hints, but not all, and the audience asked for more.
This presentation explains the whole MVS, and adaptation of MVC leveraging in Angular capacities.
It should be presented in the Angular Camp of July 2016, but unfortunately their organizers forgot about it in the votations for talk and different set of talks were selected from the same author.
This talk has been given to some of my customers in private sessions.
"Writing Maintainable JavaScript". Jon Bretman, BadooYandex
There are lot of tools (CoffeeScript, Typescript, Dart, JSLint / JSHint etc.) that we can use to help us write better JavaScript, and many frameworks (Backbone, Ember, Angular etc.) that can help us structure large applications. But... what if you already have a large code base and are not able to re-write your whole application in a new way? What if your organisation does not want to depend on some open source or third party tool or framework? I am going to talk about some of the key things that most of these tools and frameworks do and how you can apply them to your existing or new project. Topics covered will include type checking, data hiding (public, private, static), inheritance, asynchronous code and performance.
Cocoa heads testing and viewcontrollersStijn Willems
This document discusses strategies for testing view controllers and legacy code. It recommends extracting testable code, testing UI without the simulator, and keeping tests small and focused. Specific techniques covered include:
1. Making view controllers testable by sharing data sources and mocking dependencies.
2. Refactoring legacy classes to be more testable by avoiding direct property setting and reducing dependencies.
3. Writing tests that verify UI state without animations by waiting for expected views to load.
4. Keeping tests visible alongside code to emphasize their importance in maintaining quality code.
The document contains ASP.NET code for designing a web page interface for an ABC Supermarket. It includes ASPX markup for labels, buttons, grid views bound to SQL data sources to display product data. The ASPX.VB code behind handles button clicks to switch between displaying the homecare and chocolates product categories in the respective grid views.
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)Alessandro Nadalin
Since bumping into AngularJS a few months ago, we decided to invest more and more time developing with it: coming from a PHP background, the shift of paradigm easy due to the use of patterns and intuitive flows: even though this won’t be a very in-depth technical talk, we are going to see why you should consider working with angular: fast single-page apps, DI, ease of testing, being asynchronous, scaling on the clients.
Welcome to the future.
This document provides information about various Android development topics including:
- ListAdapters and mapping models to UI using an MVVM-like pattern
- Creating custom lists
- Starting a new activity using an Intent and passing data between activities
- Understanding the Android activity lifecycle and methods like onPause() and onResume()
- Handling configuration changes that recreate the activity
- Working with permissions
The document discusses common patterns for working with lists, launching new screens, and handling activity state changes. It also provides code examples for starting a new activity, passing data between activities, and handling the activity lifecycle callbacks.
This document provides an overview of various topics related to mobile application development including cloud computing, interaction design, Android, iOS, web technologies like HTML5 and JavaScript, programming languages like Java and Objective-C, frameworks, gaming, user experience design, and more. It discusses tools for Android development and covers basics of creating an Android app like setting up the IDE, creating the UI, adding interactivity, debugging, and referencing documentation.
This document discusses several topics related to developing Android apps including:
1. Adding markers to maps by setting an onMapClickListener and adding a MarkerOptions to the clicked location.
2. Signing into apps with Google accounts using the Google Identity API.
3. Following Material Design guidelines for visual style and user interfaces.
4. Maintaining multiple APK versions and using OpenGL ES for games.
Previously I have presented MVC - Model: the great forgotten, in which I have explained what models were for.
It was very well received but because it was focused only in the model concept it leak of some important concepts about the whole MVC abstraction or how it make scale into a large AngularJS.
In the previous talk I gave some hints, but not all, and the audience asked for more.
This presentation explains the whole MVS, and adaptation of MVC leveraging in Angular capacities.
It should be presented in the Angular Camp of July 2016, but unfortunately their organizers forgot about it in the votations for talk and different set of talks were selected from the same author.
This talk has been given to some of my customers in private sessions.
"Writing Maintainable JavaScript". Jon Bretman, BadooYandex
There are lot of tools (CoffeeScript, Typescript, Dart, JSLint / JSHint etc.) that we can use to help us write better JavaScript, and many frameworks (Backbone, Ember, Angular etc.) that can help us structure large applications. But... what if you already have a large code base and are not able to re-write your whole application in a new way? What if your organisation does not want to depend on some open source or third party tool or framework? I am going to talk about some of the key things that most of these tools and frameworks do and how you can apply them to your existing or new project. Topics covered will include type checking, data hiding (public, private, static), inheritance, asynchronous code and performance.
Cocoa heads testing and viewcontrollersStijn Willems
This document discusses strategies for testing view controllers and legacy code. It recommends extracting testable code, testing UI without the simulator, and keeping tests small and focused. Specific techniques covered include:
1. Making view controllers testable by sharing data sources and mocking dependencies.
2. Refactoring legacy classes to be more testable by avoiding direct property setting and reducing dependencies.
3. Writing tests that verify UI state without animations by waiting for expected views to load.
4. Keeping tests visible alongside code to emphasize their importance in maintaining quality code.
The document contains ASP.NET code for designing a web page interface for an ABC Supermarket. It includes ASPX markup for labels, buttons, grid views bound to SQL data sources to display product data. The ASPX.VB code behind handles button clicks to switch between displaying the homecare and chocolates product categories in the respective grid views.
Angular js is the future. maybe. @ ConFoo 2014 in Montreal (CA)Alessandro Nadalin
Since bumping into AngularJS a few months ago, we decided to invest more and more time developing with it: coming from a PHP background, the shift of paradigm easy due to the use of patterns and intuitive flows: even though this won’t be a very in-depth technical talk, we are going to see why you should consider working with angular: fast single-page apps, DI, ease of testing, being asynchronous, scaling on the clients.
Welcome to the future.
This document describes a Spring Batch project that processes CSV input files and outputs fixed width files. The key components include:
- An ItemReader that reads a CSV file
- An ItemProcessor that processes each record
- An ItemWriter that writes fixed width output files
- Configuration of the job, steps, readers, writers, mappers etc using XML configuration
The project is tested using JUnit test cases that launch and execute the batch job. The output is validated by counting the bytes and ensuring it matches the expected fixed width format.
This document provides information and instructions for FEWD Week 6. It includes links to slides for the week, instructions for setting up the weekly GitHub repository, and notes on manipulating arrays and collections in JavaScript. It also discusses refactoring code, the "this" keyword, and techniques for debugging code, including using the console, breakpoints, and getting help from others. The agenda covers collecting and manipulating data, arrays, iterating over arrays, refactoring, the "this" keyword, and debugging.
This document provides an overview of how to build a basic web application using Google App Engine. It demonstrates creating a task list application that allows users to add, view, and delete tasks. It discusses defining the application data, writing handlers to retrieve and modify that data, and using templates to display the data to users. It also covers deploying the application to App Engine so it can be accessed on the live web.
Excellent is a static analysis gem that finds the nasty lines in your code. It implements a comprehensive set of checks for possibly buggy parts of your app that would otherwise make it into your repo and eventually to the production server.
This document provides an introduction and overview of AngularJS including its main concepts such as MVC, dependency injection, directives, filters, data binding, routing and REST services. It also discusses Angular scaffolding tools like Yeoman and provides examples of building an Angular application including fetching data from REST APIs and implementing routing. The document contains an agenda with topics and code snippets for controllers, views, directives and services. It also includes exercises for practicing key AngularJS concepts like data binding, routing and consuming REST services.
This document provides an overview and examples of using AngularJS. It begins with basics like creating a simple app with data binding. It then covers additional concepts like controllers, filters, and directives. Examples demonstrate building multi-page apps using routing. The document concludes with an example of building reusable components in a store app.
This document provides an overview of Ember objects and their advantages over plain JavaScript objects (POJOs). It describes how Ember objects use getters and setters to synchronize state, and features like computed properties, observers, and bindings that help manage state changes. Computed properties allow defining derived properties, observers define callbacks for property changes, and bindings automatically synchronize linked properties. The document gives examples and best practices for using each feature.
These are the slides for this presentation http://www.meetup.com/HardCoreJS/events/133346272/
The goal is to influence the thought process of developers and make them into rockstar engineers by showing how to form the habit of abstraction into one's coding.
Owl JS is a small JavaScript framework for building user interfaces based on XML templates. Some key points about Owl:
1. It uses XML (QWeb) templates that are compiled just-in-time for efficiency.
2. Components are defined as classes that extend a base Component class. The UI is a tree of nested components.
3. It supports modern features like hooks, slots, and stores to manage state and reactivity.
4. The document provides an example of building a to-do list app in Owl to demonstrate how to define components, handle events between them, and manage state. Key aspects covered include extracting sub-components, dependency injection via the "env"
For years i wanted a robust solution to organize code:
Eliminate messy code
Organize structure
Set strict rules for apps
Write simple tests that cover exactly what i need
Write Less, Think Less - Do More
I just wanted a simple hands-on philosophy in my code.
Then came NgRx/store.
This is an intro to ngrx/store and its echo-system with a usecase of Echoes Player (ng2) open source player developed with angular 2 and ngrx/store.
Spring Boot is a framework for building stand-alone, production-grade Spring based Applications that can be "just run". It takes an opinionated view of the Spring platform and third-party libraries so developers can get started with minimum fuss. Some key features include an embedded HTTP server and automatic configuration support. Spring Boot applications can be started using Java -jar or executed using Gradle/Maven and can be packaged as an executable jar or war file for deployment. The document also discusses using Spring Boot with databases, profiles, Spring Data, GORM, views and some miscellaneous topics.
Selenide alternative in Python - Introducing Selene [SeleniumCamp 2016]Iakiv Kramarenko
Talk given on SeleniumCamp 2016 about:
- What features should a "general web test automation tool" have
- Why Selenide is the one Java
- And Selene is the other in Python
- And how to use the latter
Teks ini membahas tentang ruju' atau proses rekonsiliasi setelah perceraian menurut ajaran Islam. Beberapa poin penting yang diangkat antara lain:
1. Wanita yang ditalaq harus menunggu tiga bulan haids sebelum menikah lagi atau suaminya dapat merujukinya selama menunggu.
2. Talaq hanya boleh dilakukan dua kali, sedangkan yang ketiga harus dirujuk atau diceraikan dengan baik-baik
At Lakey | Hogelin Law Office, Our knowledgeable and experience lawyers understand work with you personally to help you understand your rights and the legal process and guide you to the best possible outcome.
Maciej Szymanowicz, European Commission @ Frankfurt Book Fair 2015, TISP work...TISP Project
DISCLAIMER
This document provides some information on the terms of the Creative Europe- Cultural and Creative Sectors Guarantee Facility. This document is not, and should not be construed as a binding document. This document does not constitute an offer of any nature whatsoever and does not create any binding obligations on the European Commission to enter into a contract with any third party in relation to Cultural and Creative Sectors Guarantee Facility. All data are subject to an adoption of the Creative Europe work programmes and budgetary allocations available as well as the specific conditions which may be agreed by the European Commission and European Investment Fund in a relevant Delegation Agreement for Cultural and Creative Sectors Guarantee Facility.
Proposal ini merangkum rencana study tour mahasiswa Universitas Marsilea Crenata ke Belitung selama 5 hari untuk memperkaya wawasan dan pengalaman mereka dengan mengunjungi lokasi syuting film Laskar Pelangi dan objek alam seperti pantai, gunung, dan tambang timah. Kegiatan mencakup kunjungan ke berbagai tempat wisata, aktivitas belajar bersama masyarakat setempat, serta kegiatan rekreasi seperti snorkeling dan selancar angin. Study tour
SkiBus organizeaza in perioada iernii, in fiecare weekend, excursii cu plecare din Bucuresti si avand ca destinatie cele mai renumite statiuni de schi din Romania cat si cateva iesiri in Austria si Bulgaria. Aceste excursii includ deplasarea cu autocarul, skipass, cazarea, asigurare de accidente Winter Sport Protect de la Allianz-Tiriac, un pachet surpriza “Service Pack” si serviciile noastre in autocar.
Little Opinions, Big Possibilities: The Tools and Patterns for Building Larg...Brian Mann
I gave this talk July 31 at BackboneConf 2013 in Boston, MA
backboneconf.com
Backbone has been used to build some of the greatest web apps in the world. Chances are, you have one running in your tabs. But the gap from first starting Backbone to building a large application is enormous. In this talk, Brian Mann will focus on closing that gap, and pave the way for creating powerful and highly scalable Backbone Apps.
One of the biggest pain points of Backbone is dealing with its boilerplate code. Let’s face it; Backbone is notorious for being small and un-opinionated. While an attractive feature, it unfortunately means automation and workflow falls on developer’s shoulders. This often results in bloated code bases, reinvented patterns, frustration, and wasted time.
Instead of building your application’s infrastructure from scratch, Brian will show you how to become a much happier Backbone developer by demonstrating how to build modular Backbone apps using Marionette JS.
For videos and screencasts visit:
http://www.backbonerails.com
This document describes a Spring Batch project that processes CSV input files and outputs fixed width files. The key components include:
- An ItemReader that reads a CSV file
- An ItemProcessor that processes each record
- An ItemWriter that writes fixed width output files
- Configuration of the job, steps, readers, writers, mappers etc using XML configuration
The project is tested using JUnit test cases that launch and execute the batch job. The output is validated by counting the bytes and ensuring it matches the expected fixed width format.
This document provides information and instructions for FEWD Week 6. It includes links to slides for the week, instructions for setting up the weekly GitHub repository, and notes on manipulating arrays and collections in JavaScript. It also discusses refactoring code, the "this" keyword, and techniques for debugging code, including using the console, breakpoints, and getting help from others. The agenda covers collecting and manipulating data, arrays, iterating over arrays, refactoring, the "this" keyword, and debugging.
This document provides an overview of how to build a basic web application using Google App Engine. It demonstrates creating a task list application that allows users to add, view, and delete tasks. It discusses defining the application data, writing handlers to retrieve and modify that data, and using templates to display the data to users. It also covers deploying the application to App Engine so it can be accessed on the live web.
Excellent is a static analysis gem that finds the nasty lines in your code. It implements a comprehensive set of checks for possibly buggy parts of your app that would otherwise make it into your repo and eventually to the production server.
This document provides an introduction and overview of AngularJS including its main concepts such as MVC, dependency injection, directives, filters, data binding, routing and REST services. It also discusses Angular scaffolding tools like Yeoman and provides examples of building an Angular application including fetching data from REST APIs and implementing routing. The document contains an agenda with topics and code snippets for controllers, views, directives and services. It also includes exercises for practicing key AngularJS concepts like data binding, routing and consuming REST services.
This document provides an overview and examples of using AngularJS. It begins with basics like creating a simple app with data binding. It then covers additional concepts like controllers, filters, and directives. Examples demonstrate building multi-page apps using routing. The document concludes with an example of building reusable components in a store app.
This document provides an overview of Ember objects and their advantages over plain JavaScript objects (POJOs). It describes how Ember objects use getters and setters to synchronize state, and features like computed properties, observers, and bindings that help manage state changes. Computed properties allow defining derived properties, observers define callbacks for property changes, and bindings automatically synchronize linked properties. The document gives examples and best practices for using each feature.
These are the slides for this presentation http://www.meetup.com/HardCoreJS/events/133346272/
The goal is to influence the thought process of developers and make them into rockstar engineers by showing how to form the habit of abstraction into one's coding.
Owl JS is a small JavaScript framework for building user interfaces based on XML templates. Some key points about Owl:
1. It uses XML (QWeb) templates that are compiled just-in-time for efficiency.
2. Components are defined as classes that extend a base Component class. The UI is a tree of nested components.
3. It supports modern features like hooks, slots, and stores to manage state and reactivity.
4. The document provides an example of building a to-do list app in Owl to demonstrate how to define components, handle events between them, and manage state. Key aspects covered include extracting sub-components, dependency injection via the "env"
For years i wanted a robust solution to organize code:
Eliminate messy code
Organize structure
Set strict rules for apps
Write simple tests that cover exactly what i need
Write Less, Think Less - Do More
I just wanted a simple hands-on philosophy in my code.
Then came NgRx/store.
This is an intro to ngrx/store and its echo-system with a usecase of Echoes Player (ng2) open source player developed with angular 2 and ngrx/store.
Spring Boot is a framework for building stand-alone, production-grade Spring based Applications that can be "just run". It takes an opinionated view of the Spring platform and third-party libraries so developers can get started with minimum fuss. Some key features include an embedded HTTP server and automatic configuration support. Spring Boot applications can be started using Java -jar or executed using Gradle/Maven and can be packaged as an executable jar or war file for deployment. The document also discusses using Spring Boot with databases, profiles, Spring Data, GORM, views and some miscellaneous topics.
Selenide alternative in Python - Introducing Selene [SeleniumCamp 2016]Iakiv Kramarenko
Talk given on SeleniumCamp 2016 about:
- What features should a "general web test automation tool" have
- Why Selenide is the one Java
- And Selene is the other in Python
- And how to use the latter
Teks ini membahas tentang ruju' atau proses rekonsiliasi setelah perceraian menurut ajaran Islam. Beberapa poin penting yang diangkat antara lain:
1. Wanita yang ditalaq harus menunggu tiga bulan haids sebelum menikah lagi atau suaminya dapat merujukinya selama menunggu.
2. Talaq hanya boleh dilakukan dua kali, sedangkan yang ketiga harus dirujuk atau diceraikan dengan baik-baik
At Lakey | Hogelin Law Office, Our knowledgeable and experience lawyers understand work with you personally to help you understand your rights and the legal process and guide you to the best possible outcome.
Maciej Szymanowicz, European Commission @ Frankfurt Book Fair 2015, TISP work...TISP Project
DISCLAIMER
This document provides some information on the terms of the Creative Europe- Cultural and Creative Sectors Guarantee Facility. This document is not, and should not be construed as a binding document. This document does not constitute an offer of any nature whatsoever and does not create any binding obligations on the European Commission to enter into a contract with any third party in relation to Cultural and Creative Sectors Guarantee Facility. All data are subject to an adoption of the Creative Europe work programmes and budgetary allocations available as well as the specific conditions which may be agreed by the European Commission and European Investment Fund in a relevant Delegation Agreement for Cultural and Creative Sectors Guarantee Facility.
Proposal ini merangkum rencana study tour mahasiswa Universitas Marsilea Crenata ke Belitung selama 5 hari untuk memperkaya wawasan dan pengalaman mereka dengan mengunjungi lokasi syuting film Laskar Pelangi dan objek alam seperti pantai, gunung, dan tambang timah. Kegiatan mencakup kunjungan ke berbagai tempat wisata, aktivitas belajar bersama masyarakat setempat, serta kegiatan rekreasi seperti snorkeling dan selancar angin. Study tour
SkiBus organizeaza in perioada iernii, in fiecare weekend, excursii cu plecare din Bucuresti si avand ca destinatie cele mai renumite statiuni de schi din Romania cat si cateva iesiri in Austria si Bulgaria. Aceste excursii includ deplasarea cu autocarul, skipass, cazarea, asigurare de accidente Winter Sport Protect de la Allianz-Tiriac, un pachet surpriza “Service Pack” si serviciile noastre in autocar.
Little Opinions, Big Possibilities: The Tools and Patterns for Building Larg...Brian Mann
I gave this talk July 31 at BackboneConf 2013 in Boston, MA
backboneconf.com
Backbone has been used to build some of the greatest web apps in the world. Chances are, you have one running in your tabs. But the gap from first starting Backbone to building a large application is enormous. In this talk, Brian Mann will focus on closing that gap, and pave the way for creating powerful and highly scalable Backbone Apps.
One of the biggest pain points of Backbone is dealing with its boilerplate code. Let’s face it; Backbone is notorious for being small and un-opinionated. While an attractive feature, it unfortunately means automation and workflow falls on developer’s shoulders. This often results in bloated code bases, reinvented patterns, frustration, and wasted time.
Instead of building your application’s infrastructure from scratch, Brian will show you how to become a much happier Backbone developer by demonstrating how to build modular Backbone apps using Marionette JS.
For videos and screencasts visit:
http://www.backbonerails.com
Controller is a JavaScript constructor function that is used to augment the Angular Scope. Controllers are the place where we define our application behaviors by defining properties and functions.
- Ruby is an interactive, object-oriented programming language created by Yukihiro Matsumoto in 1995.
- Ruby on Rails is a web application framework built on Ruby that emphasizes convention over configuration and is optimized for programmer happiness.
- The document discusses Ruby and Ruby on Rails, providing an overview of their history, key principles like MVC, REST, and conventions used in Rails. It also provides examples of modeling data with classes and ActiveRecord in Rails.
Esta charla comprende las lecciones aprendidas convirtiendo la app de Android de Teambox (una app repleta de deuda técnica y con un alto nivel de acoplamiento entre clases), en la versión actual de Redbooth, que intenta cumplir la arquitectura Hexagonal y los principios SOLID. Durante la exposición explicaremos como fuimos desenredando el código paso a paso; como aplicamos por partes los conceptos de la arquitectura hexagonal; como dejamos de lado componentes del framework de Android que dificultaban el mantenimiento de la app; y que errores cometimos, como los solucionamos y como se podrían haber evitado.
We're in a data-driven economy. Web API designers need to define what and how to expose data from a variety of apps, services, and stores. What are challenges of unlocking data and opening up access in a straightforward and standards-compliant manner? Is OData the right tool for the job?
Join Anant, Brian, and Greg for a discussion of OData, its API design implications, and the pros and cons of OData as an enabler of data integration and interoperability across Data APIs.
We Will Discuss »
- OData, SQL, and the "RESTification" of data - providing a uniform way to expose, structure, query and manipulate data using REST principles.
- Opportunity and challenges for OData.
- The questions of Web standards and proprietary versus open tools and protocols.
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
1. The document discusses integrating front-end frameworks like Angular, Ember, and React with Rails by constructing JSON APIs, preloading data to avoid loading screens, and server-side rendering for SEO and performance.
2. It provides code examples for building a TODO application with each framework, including using ngResource and factories in Angular, Ember conventions like Ember Data, and building isolated React components.
3. Server-side rendering is highlighted as the future for isomorphic JavaScript, providing benefits like prerendering on initial page load.
What new developments happened in Jira Cloud APIs, Connect modules and Oauth2 (3LO) integrations in the last six months?
Join Eve Stankiewicz, Principal Product Manager at Jira Cloud Platform, to learn more about the recent changes in Jira Cloud APIs and Connect modules. Learn how you can use these changes to deliver more advanced and flexible apps for Jira Cloud users, as well as tips on making Cloud apps more performant and scalable.
Building Large Web Applications That Are Easy to MaintainMarsBased
This presentation was for the Ironhack students in Barcelona by our CTO Xavier Redó. In this presentation, you will learn best practices of developing web applications that are easy to maintain, by ensuring code readability, scalability and other criteria you can benefit from in the long-term.
How to disassemble one monster app into an ecosystem of 30fiyuer
This document describes how to disassemble a monolithic web application into an ecosystem of 30 smaller applications while maintaining a consistent user interface and shared functionality. Key points include:
- Breaking the application into independent but interconnected microservices, each with its own database and development cycle.
- Ensuring a consistent user experience across applications through shared CSS, JavaScript, and common helper libraries packaged as gems.
- Enabling applications to access data from each other securely through read-only database connections, background services, or AJAX calls.
- Centralizing user authentication, authorization, file storage and other services to be shared across the ecosystem.
How to become an Android dev starting from iOS (and vice versa)Giuseppe Filograno
This document provides an overview of how to transition between iOS and Android development by comparing key concepts and technologies. It discusses native programming languages and data types, classes and structs/data classes, enums, extensions, optionals, lazy properties, frameworks like UIKit/Activity and their lifecycles, assets, intents/segues, tables/recyclers, dependency managers like CocoaPods/Gradle, and encourages staying curious across mobile platforms.
ActiveRecord is the default ORM used in Rails to map database tables to Ruby classes. It provides an active record pattern implementation that allows models to be queried and persisted to a database. ActiveRecord encourages a model-driven development style with non-anemic models and associations that add methods to related classes for easy data access and management. While it abstracts some SQL details, ActiveRecord exposes SQL as needed and requires SQL knowledge to handle more complex queries.
The document provides instructions for creating an Android application to demonstrate the activity lifecycle and passing data between activities. It involves creating multiple activities and linking them together. The main activity displays buttons to launch a second activity, select a contact, and change the background color. Methods are added to each activity to log lifecycle events to the logcat. When changing color or selecting contact, data is passed back to the main activity using startActivityForResult and onActivityResult. This allows the main activity to update the UI based on the result from other activities.
The document provides instructions for creating an Android application to demonstrate the activity lifecycle and passing data between activities. It involves creating multiple activities and linking them together. The main activity displays buttons to launch a second activity, select a contact, and change the background color. Methods are added to each activity to log lifecycle events to the logcat. When changing color or selecting contact, data is passed back to the main activity using startActivityForResult and onActivityResult. This allows the main activity to update the UI based on the result from other activities.
The document discusses best practices and anti-patterns for Django projects. It recommends keeping projects simple by avoiding over-engineering, using application-based modular design, and properly structuring settings files across multiple environments rather than relying on local_settings.py files. It also addresses common issues like import errors caused by PYTHONPATH configuration.
RUNDECK PRO - example acl policy conventionsimplifyops
Rundeck's ACL policy allows administrators to define user access controls and separation of duties. Key elements include projects, environments, nodes, roles and policies. Roles like AUDIT, WRITE, RUN_STAGE and RUN_PROD are used to grant different permissions, for example AUDIT can view history, WRITE can define jobs, and RUN_STAGE/RUN_PROD control which environments jobs can run in. Policies tie these roles to specific projects and resources.
Building Modern Apps using Android Architecture ComponentsHassan Abid
Android architecture components are part of Android Jetpack. They are a collection of libraries that help you design robust, testable, and maintainable apps. In this talk, We will cover LiveData, ViewModel, Room and lifecycle components. We will go through practical code example to understand modern android app architecture especially MVVM architecture.
This document provides an overview of best practices for Android development. It discusses topics such as UI design, including layouts and styles; using the action bar for search and progress indicators; accessibility; network connections; asynchronous tasks and services; fragments and navigation patterns; geolocation and performance; dependency injection; and recommended tools and libraries. The document provides code snippets and links to the Android developer documentation for further information on these topics.
Design Patterns for Tablets and SmartphonesMichael Galpin
This is a talk I gave at AnDevCon. It talks about ways to take advantage of features introduced in Android 3.0 to create more modular and better looking apps.
Similar to Moving ActiveRecord objects to the boundaries of your domain (20)
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...alexjohnson7307
Predictive maintenance is a proactive approach that anticipates equipment failures before they happen. At the forefront of this innovative strategy is Artificial Intelligence (AI), which brings unprecedented precision and efficiency. AI in predictive maintenance is transforming industries by reducing downtime, minimizing costs, and enhancing productivity.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on automated letter generation for Bonterra Impact Management using Google Workspace or Microsoft 365.
Interested in deploying letter generation automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
10. The work that this application needs to do
for the domain you’re working with.
• Involves calculations based on input and
stored data
• Validation of any data that comes in from the
presentation layer
• figuring out what data source logic to
dispatch.
Ok, so what is domain?
11. We’ll practice a little
1. AR objects go into an AR directory
2. associations are ok, but only one level deep
(through only one joins table)
3. NO OTHER METHODS
But I have no self control!
we’ll have rules
13. The work that this application needs to do
for the domain you’re working with.
• Involves calculations based on input and
stored data
• Validation of any data that comes in from the
presentation layer
• figuring out what data source logic to
dispatch.
Ok, so what is domain?
query object
14. @projects = Project.where(active: true)
def index
end
Active Projects
class Project < ActiveRecord::Base
has_many :project_user_roles
has_many :users, through: :project_user_roles
has_many :operations
endscope :active, -> { where(active: true) }
@projects = Project.active
15. def index
end
Active Projects
@projects = ActiveProjects.new
class ActiveProjects < SimpleDelegator
def initialize(project_factory: AR::Project)
super project_factory.where(active: true)
end
end
17. Need a user page
SELECT "users".*
FROM "users"
WHERE "users"."id" = 1
module AR
class User < ActiveRecord::Base
end
end
def show
@user = AR::User.find(params[:id])
end
18. SELECT "projects".*
FROM "projects"
INNER JOIN "project_user_roles"
ON "projects"."id" =
"project_user_roles"."project_id"
WHERE "project_user_roles"."user_id" = 1
Also a projects list
def show
@user = AR::User.find(params[:id])@projects = @user.projects
end
has_many :project_user_roles
has_many :projects, through: :project_user_roles
module AR
class User < ActiveRecord::Base
end
end
19. SELECT "operations".*
FROM "operations"
INNER JOIN "projects"
ON "projects"."id" = "operations"."project_id"
INNER JOIN "project_user_roles"
ON "project_user_roles"."project_id" = "projects"."id"
INNER JOIN "users"
ON "users"."id" = "project_user_roles"."user_id"
WHERE "users"."id" = 1
Also an operations list
def show
@user = AR::User.find(params[:id])
@projects = @user.projects
end @operations = @user.operations
has_many :project_user_roles
has_many :projects, through: :project_user_roles
has_many :operations, through: :projects,
source: :operations
20. SELECT "operations".*
FROM "operations"
INNER JOIN "projects"
ON "projects"."id" = "operations"."project_id"
INNER JOIN "project_user_roles"
ON "project_user_roles"."project_id" =
"projects"."id"
WHERE "project_user_roles"."user_id" = 1
def get_operations_scope(user)
@operation_scope
.joins(project: :project_user_roles)
.where(project_user_roles: { user_id: user.id })
end
def get_operations_scope(user)
@operation_scope
.joins(project: :project_user_roles)
.where(project_user_roles: { user_id: user.id })
end
module Query
class UserOperations < SimpleDelegator
def initialize(user, operation_scope: AR::Operation)
@operation_scope = operation_scope
super get_operations_scope(user)
end
end
end
Need an operations list
def show
@user = AR::User.find(params[:id])
@projects = @user.projects
end@operations = UserOperations.new(@user)
21. def show
@user = AR::User.find(params[:id])
@projects = @user.projects
end
@operations = UserOperations.new(@user)
operations listNeed an
def get_operations_scope(user)
@operation_scope
.joins(project: :project_user_roles)
.where(project_user_roles: { user_id: user.id })
end
22. operations listNeed an
SELECT "operations".*
FROM "operations"
INNER JOIN "projects"
ON "projects"."id" = "operations"."project_id"
INNER JOIN "project_user_roles"
ON "project_user_roles"."project_id" =
"projects"."id"
WHERE "project_user_roles"."user_id" = 1
SELECT "operations".*
FROM "operations"
INNER JOIN "projects"
ON "projects"."id" = "operations"."project_id"
INNER JOIN "project_user_roles"
ON "project_user_roles"."project_id" =
"projects"."id"
INNER JOIN "roles"
ON "roles"."id" = "project_user_roles"."role_id"
WHERE "project_user_roles"."user_id" = 1
AND "roles"."name" = "admin
23. operations list
def show
@user = AR::User.find(params[:id])
@projects = @user.projects
end
@operations = UserOperations.new(@user)
def get_operations_scope(user)
@operation_scope
.joins(project: :project_user_roles)
.where(project_user_roles: { user_id: user.id })
Need anactive
end .where(projects: { active: true })
24. .where(projects: { active: true })
.joins(project: :project_user_roles)
.where(roles: { name: “admin” })
def get_operations_scope(user)
@operation_scope
end
.joins(operation: { project: {
project_user_roles: :role
}})
.where(project_user_roles: { user_id: user.id })
SELECT "operations".*
FROM "operations"
INNER JOIN "projects"
ON "projects"."id" = "operations"."project_id"
INNER JOIN "project_user_roles"
ON "project_user_roles"."project_id" =
"projects"."id"
INNER JOIN "roles"
ON "roles"."id" = "project_user_roles"."role_id"
WHERE "project_user_roles"."user_id" = 1
AND "roles"."name" = "admin
def show
@user = AR::User.find(params[:id])
@projects = @user.projects
end
@operations = UserOperations.new(@user)
operations listNeed an active for admin
25. def get_operations_scope(user)
@operation_scope
.joins(project: {
project_user_roles: :role
})
.where(project_user_roles: { user_id: user.id })
.where(roles: { name: "admin" })
end
SELECT "operations".*
FROM "operations"
INNER JOIN "projects"
ON "projects"."id" = "operations"."project_id"
INNER JOIN "project_user_roles"
ON "project_user_roles"."project_id" =
"projects"."id"
INNER JOIN "roles"
ON "roles"."id" = "project_user_roles"."role_id"
WHERE "project_user_roles"."user_id" = 1
AND "roles"."name" = "admin
26. The work that this application needs to do
for the domain you’re working with.
• Involves calculations based on input and
stored data
• Validation of any data that comes in from the
presentation layer
• figuring out what data source logic to
dispatch.
Ok, so what is domain?
query object
form object
27. Need a new User
def new
@user = AR::User.new
end
class User < ActiveRecord::Base
endvalidates_presence_of :first_name,
:last_name,
:email
28. Need a new User
def new
end
@user = Form::User.new
class User
include ActiveModel::Model
validates_presence_of :first_name,
:last_name,
:email
end
29. The work that this application needs to do
for the domain you’re working with.
• Involves calculations based on input and
stored data
• Validation of any data that comes in from the
presentation layer
• figuring out what data source logic to
dispatch.
Ok, so what is domain?
query object
form object
PORO ?
30. • Less likely to create god object
• Naturally ends up in their own objects
• Easier to understand our objects
Why is this good?
31. 1. OOP 2015 Keynote - Robert C. Martin ("Uncle Bob"): Agility and Architecture
• https://www.youtube.com/watch?v=0oGpWmS0aYQ
2. Martin Fowler: Patterns of Enterprise Architecture
• http://martinfowler.com/books/eaa.html
References