The code sample defines a DailyQueryBuilder struct that implements the HealthStoreQueryBuildable protocol. It sets properties like quantityType, anchorDate, and intervalComponents. The builder can then be used to construct an HKStatisticsCollectionQuery to query health data from the HealthKit store.
MBL301 Data Persistence to Amazon Dynamodb for Mobile Apps - AWS re: Invent 2012Amazon Web Services
Object modeling is a common practice in mobile applications. We present two methods for modeling objects backed by Amazon DynamoDB, the AWS Persistence Framework for Core Data and DynamoDBMapper. We cover the benefits and limitations of these two solutions and demonstrate sample applications built with both technologies.
These slides have been presented in a webinar about Recoil at the Codete Webinar #3 on August 25th 2020.
Author: Mateusz Bryła (https://www.linkedin.com/in/mateusz-bryła-78aa1572/)
Dreamer, programmer, consultant, trainer. Founder at Lingmates, Team Lead at Codete for Cloudinary.
MBL301 Data Persistence to Amazon Dynamodb for Mobile Apps - AWS re: Invent 2012Amazon Web Services
Object modeling is a common practice in mobile applications. We present two methods for modeling objects backed by Amazon DynamoDB, the AWS Persistence Framework for Core Data and DynamoDBMapper. We cover the benefits and limitations of these two solutions and demonstrate sample applications built with both technologies.
These slides have been presented in a webinar about Recoil at the Codete Webinar #3 on August 25th 2020.
Author: Mateusz Bryła (https://www.linkedin.com/in/mateusz-bryła-78aa1572/)
Dreamer, programmer, consultant, trainer. Founder at Lingmates, Team Lead at Codete for Cloudinary.
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Ontico
"Все гениальное просто" — таким бы мог быть слоган Redux, одной из имплементаций FLUX-архитектуры, которой 31 мая исполняется ровно год. И вот уже практически год, как мы приняли решение использовать Redux в наших проектах. Это был осознанный риск, о котором мы ничуть не пожалели.
За этот год мы научились писать тестируемый код, избегать мутаций и применять методы оптимизации для выбранного стека. Также нам пришлось написать собственные решения для инкапсуляции состояния при написании переиспользуемых компонент и для работы с формами произвольной глубины вложенности, а также мы написали свою сетку для отображения бесконечного числа элементов.
Кроме этого, на больших нагрузках мы столкнулись с проблемами производительности рендеринга на сервере в изоморфном приложении и с успехом их решили.
Обо всем этом я расскажу в своем докладе, поделюсь тем опытом и ощущениями, которые мне лично удалось получить за время работы с React и Redux.
OAuth2 Goa library for Apps Script tutorial including how to use the Google Developer console dashboard. Handles Google and other providers as well as Service accounts.
JavaScript client API for Google Apps Script API primerBruce McPherson
An API for JavaScript/jQuery client webapps providing CRUD access to Google Apps Script scriptDB - a free noSQL databases. This adds to a VBA API for Excel already published. Now Excel, Google Apps Script and JavaScript clients can share the same noSQL database and data.
Do something in 5 with gas 9-copy between databases with oauth2Bruce McPherson
Google Apps Script tutorial to copy between abstracted databases. In this example, one of the databases (Google DataStore) needs OAuth2 authentication. You should be able to complete this tutorial in about 5 mins and a few lines of code.
JavaScript Patterns to Cleanup your CodeDan Wahlin
This is a talk I gave at the AngleBrackets / DevIntersection conference in Vegas in April of 2013 covering JavaScript patterns that can be used to structure code and clean it up.
TechDays 2016 - Developing websites using asp.net core mvc6 and entity framew...Fons Sonnemans
Tijdens deze sessie zal met behulp van demo's en voorbeeld code getoond worden van wat de nieuwe mogelijkheden zijn van ASP.NET MVC6 en Entity Framework Core 1.0. Hoe genereer je de model classes, de controllers en de views. Wat kan en dien je daarna nog aan te passen. Wat zijn de mogelijkheden voor validatie en weergaves. Hoe kan je de nieuwe TagHelpers slim toepassen en zelf ook maken. Hoe gebruik je async controllers en views om de schaalbaarheid en soms ook de performance te verbeteren.
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Ontico
"Все гениальное просто" — таким бы мог быть слоган Redux, одной из имплементаций FLUX-архитектуры, которой 31 мая исполняется ровно год. И вот уже практически год, как мы приняли решение использовать Redux в наших проектах. Это был осознанный риск, о котором мы ничуть не пожалели.
За этот год мы научились писать тестируемый код, избегать мутаций и применять методы оптимизации для выбранного стека. Также нам пришлось написать собственные решения для инкапсуляции состояния при написании переиспользуемых компонент и для работы с формами произвольной глубины вложенности, а также мы написали свою сетку для отображения бесконечного числа элементов.
Кроме этого, на больших нагрузках мы столкнулись с проблемами производительности рендеринга на сервере в изоморфном приложении и с успехом их решили.
Обо всем этом я расскажу в своем докладе, поделюсь тем опытом и ощущениями, которые мне лично удалось получить за время работы с React и Redux.
OAuth2 Goa library for Apps Script tutorial including how to use the Google Developer console dashboard. Handles Google and other providers as well as Service accounts.
JavaScript client API for Google Apps Script API primerBruce McPherson
An API for JavaScript/jQuery client webapps providing CRUD access to Google Apps Script scriptDB - a free noSQL databases. This adds to a VBA API for Excel already published. Now Excel, Google Apps Script and JavaScript clients can share the same noSQL database and data.
Do something in 5 with gas 9-copy between databases with oauth2Bruce McPherson
Google Apps Script tutorial to copy between abstracted databases. In this example, one of the databases (Google DataStore) needs OAuth2 authentication. You should be able to complete this tutorial in about 5 mins and a few lines of code.
JavaScript Patterns to Cleanup your CodeDan Wahlin
This is a talk I gave at the AngleBrackets / DevIntersection conference in Vegas in April of 2013 covering JavaScript patterns that can be used to structure code and clean it up.
TechDays 2016 - Developing websites using asp.net core mvc6 and entity framew...Fons Sonnemans
Tijdens deze sessie zal met behulp van demo's en voorbeeld code getoond worden van wat de nieuwe mogelijkheden zijn van ASP.NET MVC6 en Entity Framework Core 1.0. Hoe genereer je de model classes, de controllers en de views. Wat kan en dien je daarna nog aan te passen. Wat zijn de mogelijkheden voor validatie en weergaves. Hoe kan je de nieuwe TagHelpers slim toepassen en zelf ook maken. Hoe gebruik je async controllers en views om de schaalbaarheid en soms ook de performance te verbeteren.
«Управление логикой переходов между экранами приложения с помощью координатор...Mail.ru Group
Андрей рассказал о том, как в проектах ActiDealer и ActiAgent его команда столкнулась с проблемой часто изменяющегося flow переходов между экранами (регистрация, публикация объявления, применение vas-услуг). Для решения проблемы воспользовались подходом, который называется Application Coordinator. Это позволило легко заново использовать контроллеры и менять различные flow в приложении. В докладе речь шла о паттерне ApplicationController (aka Coordinator), способах его интеграции в существующие архитектурные подходы (MVC, MVVM), а также был рассмотрен пример реализации.
ApplicationCoordinator для навигации между экранами / Павел Гуров (Avito)Ontico
РИТ++ 2017, AppsConf
Зал Найроби + Касабланка, 5 июня, 12:00
Тезисы:
http://appsconf.ru/2017/abstracts/2711.html
Навигация между экранами - задача, которая появляется в приложении когда экранов становится больше чем один, то-есть сразу. Стандартные подходы к её решению в iOS (segues, present(_:animated), UINavigationController) обычно используются внутри кода экранов, что приводит к их жесткой привязанности друг к другу и к сценарию, в котором они участвуют.
Доклад о том, как вынести решение этой задачи из Presentation-слоя с использованием паттерна Application Coordinator. Основан на опыте построения навигации между экранами в профессиональных приложениях Avito. Будет интересен тем, кто ищет способ сделать экраны независимыми, переиспользуемыми и легко трестируемыми.
The presentation is devoted to the test framework GEB for testing WEB applications and Mobile. The report will be useful for those who want to know how fast to write tests in the programming language Groovy, and not think about framework, PageObject and initializing the WebDriver. Framework is difficult - no!
This presentation by Yaroslav Sviatkin (Senior Test Automation Engineer, Consultant, GlobalLogic, Kharkiv) was delivered at QA Fest 2017 (Kyiv) on September 22, 2017.
Vuex to Pinia, how to migrate an existing appDenny Biasiolli
Are you losing your mind trying to convert your Vuex store to Pinia? Here's a step-by-step guide to walk you through this process.
- Brief introduction to Pinia
- Comparison between Vuex and Pinia
- Install and define a Pinia store
- Migrate store module from Vuex to Pinia
- Testing Pinia
- Migrate store usage in components
- Migrate component tests using a mocked store
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
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
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...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 the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
22. import UIKit
import HealthStore
class ViewController: UIViewController {
private let healthStore = HealthStore()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
22
23. guard let healthStore = healthStore else { return }
guard let type = HKQuantityType.quantityType(forIdentifier: .stepCount) else { return }
let builder = DailyQueryBuilder(quantityType: type)
healthStore.requestSources(from: Date.startOfToday(), to: Date(), builder: builder) { (sources: [StepSource]?) in
if let sources = sources {
print("sources: (sources)”)
} else {
print("step sources are not found.”)
}
}
23
24. guard let healthStore = healthStore else { return }
guard let type = HKQuantityType.quantityType(forIdentifier: .stepCount) else { return }
let builder = DailyQueryBuilder(quantityType: type)
healthStore.requestSources(from: Date.startOfToday(), to: Date(), builder: builder) { (sources: [StepSource]?) in
if let sources = sources {
print("sources: (sources)”)
} else {
print("step sources are not found.”)
}
}
24
25. guard let healthStore = healthStore else { return }
guard let type = HKQuantityType.quantityType(forIdentifier: .stepCount) else { return }
let builder = DailyQueryBuilder(quantityType: type)
healthStore.requestSources(to: Date(), builder: builder) { (sources: [StepSource]?) in
if let sources = sources {
print("sources: (sources)”)
} else {
print("step sources are not found.”)
}
}
25
26. guard let healthStore = healthStore else { return }
guard let type = HKQuantityType.quantityType(forIdentifier: .stepCount) else { return }
let builder = DailyQueryBuilder(quantityType: type)
healthStore.observeSourceUpdates(from: Date(), builder: builder, handler: { (sources: [StepSource]?) in
if let sources = sources {
print("sources: (sources)")
} else {
print("step sources are not found.")
}
})
26
27. guard let healthStore = healthStore else { return }
guard let type = HKQuantityType.quantityType(forIdentifier: .stepCount) else { return }
let builder = RestrictedSourceQueryBuilder(quantityType: type)
healthStore.requestSources(from: Date.startOfToday(), to: Date(), builder: builder) { (sources: [StepSource]?) in
if let sources = sources {
print("sources: (sources)”)
} else {
print("step sources are not found.”)
}
}
27
29. import HealthKit
public protocol HealthStoreQueryBuildable {
var quantityType: HKQuantityType { get }
var typesToWrite: Set<HKSampleType>? { get }
var typesToRead: Set<HKObjectType>? { get }
var options: HKStatisticsOptions { get }
var anchorDate: Date { get }
var intervalComponents: DateComponents { get }
var predicates: [NSPredicate] { get }
func build() -> HKStatisticsCollectionQuery?
func build(completion: @escaping (HKStatisticsCollectionQuery?) -> Void)
}
29
31. public struct DailyQueryBuilder: HealthStoreQueryBuildable {
public let quantityType: HKQuantityType
public var typesToRead: Set<HKObjectType>? {
return [quantityType]
}
public let options: HKStatisticsOptions = .cumulativeSum
public let anchorDate: Date
public let intervalComponents: DateComponents = DateComponents(day: 1)
public let predicates: [NSPredicate] = []
public init(quantityType: HKQuantityType, anchorDate: Date = Date.startOfToday()) {
self.quantityType = quantityType
self.anchorDate = anchorDate
}
}
31
32. public class RestrictedSourceQueryBuilder: HealthStoreQueryBuildable {
public func build(completion: @escaping (HKStatisticsCollectionQuery?) -> Void) {
guard let provider = HealthSourceProvider() else {
completion(nil)
return
}
provider.appleSources(sampleType: quantityType) { (sources, error) in
if let error = error {
print(error)
}
guard let sources = sources else {
completion(nil)
return
}
// update predicates
let metadataPredicate = HKQuery.predicateForObjects(withMetadataKey: HKMetadataKeyWasUserEntered,
operatorType: .notEqualTo,
value: true)
let sourcePredicate = HKQuery.predicateForObjects(from: sources)
self.predicates = [metadataPredicate, sourcePredicate]
// build query
completion(self.build())
}
}
}
32