Async/await is a new language feature that will ship with Swift 5.5 this year. Thereβs no doubt it will have a significant impact on how we write asynchronous code.
In this talk, weβre going to look at some use cases for async/await, how we can call existing Swift APIs using this new feature, and why your decision to write your SDK in Objective-C might turn out to have been a very clever move.
Weβll also have a look at the refactoring support Apple is adding to Xcode and how it will help you migrate your existing code base.
Defending against Java Deserialization VulnerabilitiesLuca Carettoni
Java deserialization vulnerabilities have recently gained popularity due to a renewed interest from the security community. Despite being publicly discussed for several years, a significant number of Java based products are still affected. Whenever untrusted data is used within deserialization methods, an attacker can abuse this simple design anti-pattern to compromise your application. After a quick introduction of the problem, this talk will focus on discovering and defending against deserialization vulnerabilities. I will present a collection of techniques for mitigating attacks when turning off object serialization is not an option, and we will discuss practical recommendations that developers can use to help prevent these attacks.
Riyaz Walikar discusses the Same Origin Policy (SOP) and Cross Origin Resource Sharing (CORS). SOP restricts how scripts from one origin can interact with resources from other origins for security. CORS allows relaxing SOP for legitimate cross-origin requests by using special HTTP headers. However, CORS implementations must be careful to avoid security issues like universal permissive policies, misplaced trust, CORS-based CSRF attacks, and caching or origin spoofing vulnerabilities.
1. Vinesh Redkar is a security analyst at NII Consulting who has found stored XSS vulnerabilities on websites like PayPal and Rediffmail.
2. The document discusses cross-site scripting (XSS) attacks, which involve injecting malicious scripts into websites. It covers different types of XSS like reflected and stored XSS.
3. Performing blind XSS attacks during penetration tests is challenging because the attacker does not know if their payload executed or when. It requires carefully choosing payloads, patience, and monitoring log files or customer-facing applications to detect execution.
The security of an application is a continuous struggle between solid proactive controls and quality in SDLC versus human weakness and resource restrictions. As the pentester's experience confirms, unfortunatelly even in high-risk (e.g. banking) applications, developed by recognized vendors, the latter often wins - and we end up with critical vulnerabilities.
One of the primary reasons is lack of mechanisms enforcing secure code by default, as opposed to manual adding security per each function. Whenever the secure configuration is not default, there will almost inevitably be bugs, especially in complex systems.
I will pinpoint what should be taken into consideration in the architecture and design process of the application. I will show solutions that impose security in ways difficult to circumvent unintentionally by creative developers. I will also share with the audience the pentester's (=attacker's) perspective, and a few clever tricks that made the pentest
(=attack) painful, or just rendered the scenarios irrelevant.
The document discusses Node.js and Express.js concepts for building web servers and applications. It includes examples of creating HTTP servers, routing requests, using middleware, handling errors, templating with views and layouts, and separating code into models and routes.
This document discusses vulnerabilities in single sign-on (SSO) protocols like SAML and OpenID Connect. It describes how XML parsing issues and weak cryptographic signing algorithms can be exploited to bypass SSO and assume another user's identity. It provides recommendations to prevent exploitation, such as using stronger cryptographic algorithms, validating protocol fields, and implementing additional checks on protocol attributes.
This document summarizes a presentation about using CucumberJS, WebDriverIO, and Docker for behavior-driven development (BDD) and continuous integration (CI). It discusses using CucumberJS with Gherkin syntax to write automated test cases in a business-readable format. WebDriverIO is introduced as a framework for automating tests in Node.js. The presentation demonstrates setting up a WebDriverIO project, running tests in Docker containers, and integrating everything with Travis CI for continuous testing. Code examples are provided for configuring WebDriverIO to use Docker services and setting up Docker containers in a Travis CI configuration file.
This presentation illustrates a number of techniques to smuggle and reshape HTTP requests using features such as HTTP Pipelining that are not normally used by testers. The strange behaviour of web servers with different technologies will be reviewed using HTTP versions 1.1, 1.0, and 0.9 before HTTP v2 becomes too popular! Some of these techniques might come in handy when dealing with a dumb WAF or load balancer that blocks your attacks.
Presented @ BSides Manchester 2017 & SteelCon 2017
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
Did you know remote and local file inclusion (RFI/LFI) was among the four most prevalent Web application attacks in 2011? Why is RFI/LFI so attractive to hackers? Quite simply, with RFI/LFI a hacker can take over a Web server. RFI and LFI attacks primarily affect Web applications written in the PHP programming language. PHP is the most popular server-side programming language. In fact, PHP is used by 77.2% of todayβs Web sites. This presentation looks at how hackers use RFI/LFI and avoid traditional detection techniques.
This document provides an overview of JavaScript design patterns based on Addy Osmani's book "Essential JavaScript & jQuery Design Patterns". It begins with background on design patterns and defines what a design pattern is. It describes the structure of design patterns and discusses anti-patterns. It then covers common JavaScript design patterns including creational, structural, and behavioral patterns as well as MV* patterns like MVC, MVP, and MVVM. Specific patterns like Module, Observer, Command, Constructor & Prototype, and examples using Backbone.js, Spine.js, and Knockout.js are summarized.
Server-Side Request Forgery (SSRF) refers to an attack where an attacker is able to send a crafted request from a vulnerable web application to target internal systems normally inaccessible from outside. SSRF typically occurs when an attacker has partial or full control over a request being sent by the web application, such as controlling the URL a request is made to. To prevent SSRF, applications should whitelist allowed domains and protocols for requests, and avoid directly using untrusted user input in functions making external requests on the server's behalf.
Les Hazlewood, Stormpath co-founder and CTO and the Apache Shiro PMC Chair demonstrates how to design a beautiful REST + JSON API. Includes the principles of RESTful design, how REST differs from XML, tips for increasing adoption of your API, and security concerns.
Presentation video: https://www.youtube.com/watch?v=5WXYw4J4QOU
More info: http://www.stormpath.com/blog/designing-rest-json-apis
Further reading: http://www.stormpath.com/blog
Sign up for Stormpath: https://api.stormpath.com/register
Stormpath is a user management and authentication service for developers. By offloading user management and authentication to Stormpath, developers can bring applications to market faster, reduce development costs, and protect their users. Easy and secure, the flexible cloud service can manage millions of users with a scalable pricing model.
The document provides instructions on how to exploit XML external entity (XXE) vulnerabilities and become a more advanced "Jedi" level hacker. It begins with XML basics and progresses through external entity attacks, file reads, port scanning, denial of service attacks, and advanced techniques like out-of-band data exfiltration and pass-the-hash attacks. The document emphasizes moving beyond just direct output to more stealthy, no-output exploitation.
Cross Site Scripting (XSS) is a type of injection attack where malicious scripts are injected into otherwise benign and trusted websites. XSS has been a top web application vulnerability since 1996. There are three main types of XSS attacks: reflected XSS, stored XSS, and DOM-based XSS. Reflected XSS occurs when malicious scripts come from URLs, while stored XSS happens when scripts are stored on websites. XSS can be used to steal cookies and sessions, redirect users, alter website contents, and damage an organization's reputation. Developers can prevent XSS through input validation, output encoding, and using the HttpOnly flag.
https://www.youtube.com/watch?v=lKrbeJ7-J98
HTTP messages are how data is exchanged between a server and a client. There are two types of messages: requests sent by the client to trigger an action on the server, and responses, the answer from the server.
HTTP Request Smuggling via higher HTTP versionsneexemil
This document summarizes HTTP request smuggling vulnerabilities. It explains how an attacker can craft a single HTTP request that is parsed differently by the frontend and backend servers, allowing the backend to interpret additional hidden requests. Several exploitation techniques and detection methods are described, including issues that can arise with HTTP/1, HTTP/2, and protocols like WebSockets. Automated testing tools have been developed but further research is still needed to fully understand and prevent these attacks.
The document proposes a new version 2.0 format for Postman collections that is:
- A minimalist and flexible JSON guideline for defining APIs and collections in a human readable way. It allows for extensive documentation, testing, and organization of API definitions.
- Built on a JSON structure that can be easily extended and manipulated via a Node.js module. It supports all aspects of API management from modeling to testing to documentation.
- Designed to be intuitive with a low learning curve, while still providing the flexibility to extensively document APIs, collections and their components through embedded descriptions and metadata.
node.js practical guide to serverside javascriptEldar Djafarov
This document provides an overview of Node.js and how to build server-side JavaScript applications with it. Some key points covered include:
- Node.js uses a single-threaded non-blocking I/O model that handles multiple requests concurrently using callbacks and an event loop.
- Common Node.js modules like Express make it easy to build REST APIs and web servers. Express uses middleware for common tasks like routing, static files, authentication etc.
- Testing Node.js applications can be done with frameworks like Mocha and Chai to write unit and integration tests, and the Request library to mock HTTP requests.
This document discusses REST (REpresentational State Transfer) and how to implement RESTful services on Android. It begins by defining REST and describing its core concepts like client-server architecture, statelessness, uniform interface, and CRUD (create, read, update, delete) operations. It then covers how to make HTTP requests in Android using libraries like HttpURLConnection and Apache HTTP Client. Helpful libraries for working with REST APIs are also presented, including Gson for JSON parsing and CRest for declarative REST clients. The document emphasizes best practices like performing HTTP calls in a background thread, persisting data to content providers, and minimizing network usage.
Websockets talk at Rubyconf Uruguay 2010Ismael Celis
This document discusses using WebSockets for real-time applications in Ruby. It begins with an overview of WebSockets and use cases. It then covers the WebSocket DOM API, handshake process, and implementing a WebSocket server in Ruby with EventMachine and EM-WebSocket. It provides an example of building a multicast channel application with JSON messages. It also discusses scaling options like Pusher and shows code samples for a Pusher implementation.
The document describes Johannes Brodwall's philosophy of "bare-knuckle web development" which advocates for lightweight frameworks, test-driven development, and avoiding unnecessary complexity. It then demonstrates this approach through building a simple phonebook web application in Java using only the bare essentials like servlets and XML parsing. Finally, it discusses further directions this approach could be taken, such as building applications for the Norwegian agricultural authority and power grid operator.
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
This talk takes a deep dive into asynchronous programming patterns and practices, with an emphasis on the promise pattern.
We go through the basics of the event loop, highlighting the drawbacks of asynchronous programming in a naive callback style. Fortunately, we can use the magic of promises to escape from callback hell with a powerful and unified interface for async APIs. Finally, we take a quick look at the possibilities for using coroutines both in current and future (ECMAScript Harmony) JavaScript.
The document discusses data models in Angular 1 and 2. It covers existing solutions for network requests and data access layers, including $http, $resource, and libraries like Restangular. It emphasizes that the data access layer should be separated from controllers and handle data transformation and caching. Other topics include working offline, binding data to scopes, and the goals for data handling in Angular 2, such as less boilerplate and supporting existing libraries.
This document discusses using CouchDB on Android applications. It provides instructions on adding CouchDB functionality to an Android project using Couchbase Mobile for Android. It also describes how to access a CouchDB instance from an Android device using Futon and the Couchbase Service. The document contains code examples for creating, reading, updating and deleting CouchDB documents from an Android app.
Express is a web framework for Node.js that allows routing, middleware, templating and more. It is inspired by Sinatra and uses Connect as its middleware framework. Key features include routing, middleware support, template rendering with engines like Jade, and session handling with storage options. Errors can be handled via the app.error() method. Express provides a full-featured and easy to use web development framework for Node.js.
The document discusses the beauty of JavaScript and its many features. It covers how JavaScript offers classless object-oriented programming and functional programming. It also discusses how JavaScript can run on both the client-side and server-side. The document provides examples of JavaScript syntax like variables, functions, objects, inheritance through prototypes, and AJAX requests. It emphasizes how libraries help create abstractions and beautiful patterns in JavaScript code.
Net/http and the http.handler interfaceJoakim Gustin
1. The document discusses building web servers in Go using the net/http package and the http.Handler interface. It covers the basics of routing, middleware, accessing dependencies, and testing HTTP handlers.
2. Various techniques for routing requests, using middleware, injecting dependencies, and testing HTTP handlers are demonstrated. Key concepts like the http.Handler interface and middleware signatures are explained.
3. Tips and tricks for Go HTTP development are provided, such as using anonymous structs, returning errors from handlers, and setting HTTP status codes on errors.
1. The document discusses building web servers in Go using the net/http package and the http.Handler interface. It covers the basics of routing, middleware, accessing dependencies, and testing HTTP handlers.
2. Various tips and tricks are provided, such as using anonymous structs, injecting dependencies rather than global variables, and returning errors from HTTP handlers to allow for centralized error handling.
3. The presentation emphasizes best practices like implementing the http.Handler interface on functions, using middleware to modify request handling, and returning custom error types from handlers to set HTTP status codes.
The document discusses the beauty of JavaScript and its many features. It covers how JavaScript offers classless object-oriented programming and functional programming. It also discusses how JavaScript can run on both the client-side and server-side. The document provides examples of JavaScript syntax like variables, functions, objects, prototypes and more to demonstrate JavaScript's capabilities. It emphasizes that libraries help create abstractions and beautiful patterns in JavaScript code.
Express is a popular web framework for Node.js that is fast, simple, and easy to learn. It allows for routing, middleware, template engines like Jade and Mustache, and handling errors. Common tasks like making HTTP requests and handling cookies/sessions are simplified. The forever module can be used to keep a Node.js app running persistently in production.
This document provides an overview of using Redux middleware for asynchronous actions, logging, analytics, and authentication. It demonstrates how to structure asynchronous action creators to work with Redux Thunk middleware and make API calls. It also shows how to build custom middleware to handle API requests, add authentication headers, and process responses. The document recommends middleware as a way to separate logic from components and encourages further reading on middleware patterns and the Redux ecosystem.
This document discusses JavaScript promises as an abstraction pattern for handling asynchronous code. It explains why promises are useful by describing some of the issues with callback-based asynchronous code, such as callback hell and lack of readability. The document then provides examples of how to create and use promises to handle sequential and parallel asynchronous tasks in a more maintainable way using chaining and batching. It also discusses how promises are supported in browsers, Node.js, and common promise libraries like Q, RSVP, when.js, and Bluebird.
This document discusses using Phoenix, Elixir, and React with GraphQL and LDAP. Key points include:
- React is used for the front-end views with Redux for state management. GraphQL queries are made via Apollo.
- Elixir and Phoenix provide the back-end API with GraphQL via Absinthe. Phoenix acts as the web framework and Absinthe handles the GraphQL schema and queries.
- An LDAP server is used as the centralized user database and accessed via Erlang's LDAP client.
- JSON web tokens (JWTs) are used for authentication, handled via Guardian. Tokens are passed in requests and decoded on the back-end to retrieve user details
This is my presentation from TechBeats #3 hosted by Applause about Server-Side Swift framework called Vapor.
Swift is a great language and possibility of using it also in backend is a huge benefit for any iOS developer out there. Using Vapor is a seamless experience. With this framework creating advance APIs by iOS developer is as easy as writing simple iOS app.
https://www.meetup.com/TechBeats-hosted-by-Applause/events/254910023/
This document provides an introduction and overview of a Node.js tutorial presented by Tom Hughes-Croucher. The tutorial covers topics such as building scalable server-side code with JavaScript using Node.js, debugging Node.js applications, using frameworks like Express.js, and best practices for deploying Node.js applications in production environments. The tutorial includes exercises for hands-on learning and demonstrates tools and techniques like Socket.io, clustering, error handling and using Redis with Node.js applications.
SwiftUI makes it easy to create beautiful UIs in no time, but it is just as easy to end up with a giant view that mixes view code and business logic. Fortunately, Apple gave us some tools to keep the bloat in check and write maintainable and reusable code.
In this talk, I am going to show you how to
- refactor an existing SwiftUI view to make it more maintainable,
- turn it into a reusable SwiftUI component,
- add event handling,
- make the view configurable,
- use SwiftUI's styling API to apply different designs,
- add it to the Xcode component library,
- turn it into a shareable component that can be consumed via Swift Package Manager,
- and distribute it via GitHub
In this workshop, you will learn how to build a SwiftUI application with Firebase. We will cover the following topics:
- Data modeling for Firestore
- Efficiently mapping Firestore data using Swiftβs Codable protocol
- Fetching data from Firestore using snapshot listeners
- Connecting SwiftUIβs state management system to Firestore to implement real-time sync
- Securing your userβs data using Firebase Security Rules
- Signing in your users using Firebase Authentication
We will be using the latest versions of Firebase and SwiftUI, making use of Combine and async/await to demonstrate how to call asynchronous APIs using modern Swift technologies. Please bring your laptop, making sure to install the latest stable version of Xcode before the workshop.
The document discusses building reusable SwiftUI components. It demonstrates refactoring a book browsing UI to extract reusable subviews using various SwiftUI techniques like @State, List, HStack and VStack. It shows how to extract subviews to reduce duplication and make the code more modular and reusable. Key refactorings discussed include extracting subviews, local subviews and functions to improve code organization and reuse.
Firebase for Apple Developers - SwiftHeroesPeter Friese
In this talk, we are going to walk you through the building blocks for creating modern applications on Appleβs platforms using SwiftUI and Firebase.
We will cover the following topics:
- Setting up an architecture for data-driven applications
- Whatβs new in SwiftUIβs application life cycle
- Syncing data in realtime across multiple devices with Cloud Firestore
- Mapping Firestore documents in a type-safe way using the Codable protocol
- Storing images and other large files in Cloud Storage
- Using Firebase in WidgetKit and on watchOS
- How async/await (new in Swift 5.5) will affect the way we write asynchronous code (plus some surprises in Firebase's code base)
Firebase is always evolving, so we will also talk about how weβre making use of Appleβs latest technologies in our own code base, for example
- Combine
- async/await
- SwiftUI view modifiers
No matter if youβre a seasoned Firebase user or just wondering what it is all about, you should leave this session with a deeper understanding of what Firebase it and how you can use it your apps on Appleβs platforms.
ο + ο₯ = β€οΈ (Firebase for Apple Developers) at Swift LeedsPeter Friese
In this talk, I am going to walk you through the building blocks for creating modern applications on Appleβs platforms using SwiftUI and Firebase.
We will cover the following topics:
- Setting up an architecture for data-driven applications
- Whatβs new in SwiftUIβs application life cycle
- Syncing data in realtime across multiple devices with Cloud Firestore
- Mapping Firestore documents in a type-safe way using the Codable protocol
- Using Combine to fetch data from remote APIs and Firebase
- How async/await (new in Swift 5.5) will affect the way we write asynchronous code (plus some surprises in Firebase's code base)
Firebase is always evolving, so I will also talk about how weβre making use of Appleβs latest technologies in our own code base, for example
- Combine
- async/await
- SwiftUI view modifiers
No matter if youβre a seasoned Firebase user or just wondering what it is all about, you should leave this session with a deeper understanding of what Firebase it and how you can use it your apps on Appleβs platforms.
In this talk, I am going to walk you through the building blocks for creating modern applications on Appleβs platforms using SwiftUI and Firebase.
We will cover the following topics:
- Setting up an architecture for data-driven applications
- Whatβs new in SwiftUIβs application life cycle
- Syncing data in realtime across multiple devices with Cloud Firestore
- Mapping Firestore documents in a type-safe way using the Codable protocol
- Using Combine to fetch data from remote APIs and Firebase
- How async/await (new in Swift 5.5) will affect the way we write asynchronous code (plus some surprises in Firebase's code base)
Firebase is always evolving, so I will also talk about how weβre making use of Appleβs latest technologies in our own code base, for example
- Combine
- async/await
- SwiftUI view modifiers
No matter if youβre a seasoned Firebase user or just wondering what it is all about, you should leave this session with a deeper understanding of what Firebase it and how you can use it your apps on Appleβs platforms.
Building Apps with SwiftUI and FirebasePeter Friese
In this talk, I'm going to show how to build data-driven SwiftUI applications that uses Cloud Firestore to store data.
You will learn how to architect your SwiftUI app so both its local and remote state stay in sync in real time
Rapid Application Development with SwiftUI and FirebasePeter Friese
Firebase is Google's mobile development platform for Android, iOS, and the web. SwiftUI is Apple's user interface toolkit that lets developers design apps in a declarative way. In this session, we will bring the two together and take a look at how easy it is to develop a new application from scratch.
Slides for my talk at CocoaHeads Berlin (https://www.meetup.com/Cocoaheads-Berlin/events/266764473/)
Rapid Application Development with SwiftUI and FirebasePeter Friese
This document discusses building mobile apps rapidly using SwiftUI and Firebase. It provides an overview of SwiftUI and how to add Firebase to a SwiftUI project. It demonstrates fetching and saving data to Firestore using Codable and without Codable. It also covers anonymous authentication and data flow patterns in SwiftUI like @State, @Binding, @ObservedObject and @EnvironmentObject. The document concludes that SwiftUI and Firebase work well together with some gaps that can be filled using UIViewControllerRepresentable.
6 Things You Didn't Know About Firebase AuthPeter Friese
Thereβs no doubt about it: many apps need some way of authenticating the user, but most developers donβt get overly excited by the prospect of implementing a login/sign-up screen.
In this talk, you will learn what Firebase Auth is, why you should use it, and - if this didnβt get you excited yet - 5 things you probably didnβt know about Firebase Auth before.
In particular, weβre going to look at
- How Firebase Auth works, and why you should use it
- How to let users sign in without even having to come up with a password
- What Anonymous Auth is all about and why you should care
- How to make signing in on iOS more magical
- How to integrate Firebase Auth and Sign in with Apple
Five Things You Didn't Know About Firebase AuthPeter Friese
Thereβs no doubt about it: many apps need some way of authenticating the user, but most developers donβt get overly excited by the prospect of implementing a login/sign-up screen.
In this talk, you will learn what Firebase Auth is, why you should use it, and - if this didnβt get you excited yet - 5 things you probably didnβt know about Firebase Auth before.
In particular, weβre going to look at
- How Firebase Auth works, and why you should use it
- How to let users sign in without even having to come up with a password
- What Anonymous Auth is all about and why you should care
- How to make signing in on iOS more magical
Building High-Quality Apps for Google AssistantPeter Friese
The document discusses best practices for building high-quality apps for the Google Assistant using Dialogflow. It covers topics such as defining intents, testing in simulators, setting up Actions on Google integration, and avoiding antipatterns. The presentation emphasizes following guidelines, such as giving greetings and farewells, handling errors properly, and avoiding leaving the microphone open without a prompt.
Building Conversational Experiences with Actions on Google Peter Friese
Since we first started using computers, we have dreamt of interacting with them in a more natural, human-like way using spoken language. Advances in machine learning and artificial intelligence have spiked an interest in natural language processing, and building conversational interfaces no longer is a dream, but a reality every developer can use in their own applications.
The problem of recognising spoken input has been largely solved, and the next challenge is how to build compelling user experiences that are modelled after natural human conversation.
In this talk, I will give an introduction to the Google Assistant and how to use Actions on Google to build conversational interfaces for devices with and without screens. We will take a look at how API.AI makes implementing natural language understanding feasible even for non-linguists, and discuss how you can integrate agents with existing backends. In conversation, it's all about being natural, so we will also look at how to create agents that feel like real characters.
Building Conversational Experiences with Actions on GooglePeter Friese
Since we first started using computers, we have dreamt of interacting with them in a more natural, human-like way using spoken language. Advances in machine learning and artificial intelligence have spiked an interest in natural language processing, and building conversational interfaces no longer is a dream, but a reality every developer can use in their own applications.
The problem of recognising spoken input has been largely solved, and the next challenge is how to build compelling user experiences that are modelled after natural human conversation.
In this talk, I will give an introduction to the Google Assistant and how to use Actions on Google to build conversational interfaces for devices with and without screens. We will take a look at how API.AI makes implementing natural language understanding feasible even for non-linguists, and discuss how you can integrate agents with existing backends. In conversation, it's all about being natural, so we will also look at how to create agents that feel like real characters.
Android Wear 2.0 is a major update and contains a number of significant updates that will make it easier to build delightful experiences for wearables. In this session, I will provide an overview of new features such as Standalone apps, Material Design on Android Wear and some of the new UI components we're making available (such as Navigation Drawers and Action Drawers), as well as complications and complication data providers.
With recent advances in wearable technology, it's now possible to create novel fitness experiences without building custom hardware. In this talk we take you through creating a fitness tracker in C# on Android Wear, covering Google Play Services and watch-faces along the way. If this piques your interest, you can build your own Android Wear-based fitness tracker in our code lab!
This is an introductory session to Android Wear. We will cover Design Principles and how to implement them. In particular, I will show how to enhance your existing notifications to make them shine on Android Wear, how to implement Android Wear apps that make use of the new possibilities Android Wear gives you as a developer such as voice input and GPS. Finally, we will take a look at implementing watch faces.
Google Play Services are a unified SDK that allow you to quickly and easily integrate Google features into your Android apps. Being rolled out to millions of Android devices, they provide easy access to Google services and allow you to innovate quickly.
In this session, I will give you a rundown of the core services available via Google Play Services and give you an overview of the new APIs that ship as a part of Google Play Services. We will also have a look at some of the lesser known features that will enable you to build apps that truly rock.
In this session, I will give an overview of Android Wear and how to integrate it in your product strategy. We will look at the underlying design principles and discuss a number of use cases for apps that connect to wearable devices. After that, we will take a look at some code examples and learn how to use the Android Wear SDK.
Google+ for Mobile Apps on iOS and AndroidPeter Friese
Create a more engaging and personalized experience for your users by incorporating aspects of Google+ into your mobile app. Learn how your users can share pictures, links, and more into Google+ from your app, and how doing so can raise visibility and discoverability of your application.
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio, Inc.
Alluxio Webinar
June. 18, 2024
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
- Jianjian Xie (Staff Software Engineer, Alluxio)
As Trino users increasingly rely on cloud object storage for retrieving data, speed and cloud cost have become major challenges. The separation of compute and storage creates latency challenges when querying datasets; scanning data between storage and compute tiers becomes I/O bound. On the other hand, cloud API costs related to GET/LIST operations and cross-region data transfer add up quickly.
The newly introduced Trino file system cache by Alluxio aims to overcome the above challenges. In this session, Jianjian will dive into Trino data caching strategies, the latest test results, and discuss the multi-level caching architecture. This architecture makes Trino 10x faster for data lakes of any scale, from GB to EB.
What you will learn:
- Challenges relating to the speed and costs of running Trino in the cloud
- The new Trino file system cache feature overview, including the latest development status and test results
- A multi-level cache framework for maximized speed, including Trino file system cache and Alluxio distributed cache
- Real-world cases, including a large online payment firm and a top ridesharing company
- The future roadmap of Trino file system cache and Trino-Alluxio integration
Drona Infotech is one of the best Mobile App Development Company in Noida. Elevate your business with our professional app development services. Let us help you create user-friendly and high-performing mobile applications.
Visit Us For: https://www.dronainfotech.com/mobile-application-development/
Ansys Mechanical enables you to solve complex structural engineering problems and make better, faster design decisions. With the finite element analysis (FEA) solvers available in the suite, you can customize and automate solutions for your structural mechanics problems and parameterize them to analyze multiple design scenarios. Ansys Mechanical is a dynamic tool that has a complete range of analysis tools.
Software development... for all? (keynote at ICSOFT'2024)miso_uam
Our world runs on software. It governs all major aspects of our life. It is an enabler for research and innovation, and is critical for business competitivity. Traditional software engineering techniques have achieved high effectiveness, but still may fall short on delivering software at the accelerated pace and with the increasing quality that future scenarios will require.
To attack this issue, some software paradigms raise the automation of software development via higher levels of abstraction through domain-specific languages (e.g., in model-driven engineering) and empowering non-professional developers with the possibility to build their own software (e.g., in low-code development approaches). In a software-demanding world, this is an attractive possibility, and perhaps -- paraphrasing Andy Warhol -- "in the future, everyone will be a developer for 15 minutes". However, to make this possible, methods are required to tweak languages to their context of use (crucial given the diversity of backgrounds and purposes), and the assistance to developers throughout the development process (especially critical for non-professionals).
In this keynote talk at ICSOFT'2024 I presented enabling techniques for this vision, supporting the creation of families of domain-specific languages, their adaptation to the usage context; and the augmentation of low-code environments with assistants and recommender systems to guide developers (professional or not) in the development process.
Lots of bloggers are using Google AdSense now. Itβs getting really popular. With AdSense, bloggers can make money by showing ads on their websites. Read this important article written by the experienced designers of the best website designing company in Delhi β
@Call @Girls in Kolkata π±βπ XXXXXXXXXX π±βπ Best High Class Kolkata Avaulable
async/await in Swift
1. async/await in Swi!
Photo by Stephen H on Unsplash
Peter Friese | Firebase Developer Advocate | @pete!riese
2. let req = URLRequest(url: URL(string: βhttps:!"yourapi/pathβ)!)
let task = URLSession.shared.dataTask(with: req) { data, response, error in
!" do stuff once data arrives
}
task.resume()
Asynchronous code is everywhere
completion handler
3. func process(url: String, completion: @escaping (Article) !# Void) {
self.fetchArticle(from: url) { html in
self.extractTitle(from: html) { title in
self.extractText(from: html) { text in
self.extractImage(from: url) { imageUrl in
self.inferTags(from: text) { tags in
let article = Article(url: url,
title: title,
tags: tags,
imageUrlString: imageUrl)
completion(article)
}
}
}
}
}
}
A more complex example
4. extension ArticleAnalyser {
func process(url: String, completion: @escaping (Article) !# Void) {
self.fetchArticle(from: url) { result in
switch result {
case .failure(let error):
print(error.localizedDescription)
case .success(let html):
self.extractTitle(from: html) { result in
switch result {
case .failure(let error):
print(error.localizedDescription)
case .success(let title):
self.extractText(from: html) { result in
switch result {
case .failure(let error):
print(error.localizedDescription)
case .success(let text):
Letβs add some error handlingβ¦
!
5. extension AsyncArticleAnalyser {
func process(url: String) async throws !# Article {
let htmlText = try await fetchArticle(from: url)
let text = try await extractText(from: htmlText)
let title = try await extractTitle(from: htmlText)
let imageUrl = try await extractImage(from: url)
let tags = await inferTags(from: text)
return Article(url: url,
title: title,
tags: tags,
imageUrlString: imageUrl)
}
}
How about this?
Swift 5.5
24. auth!$signInAnonymously()
let user = auth!$currentUser
print("User signed in with user ID: (user!$uid)")
auth!$signInAnonymously { result, error in
guard let result = result else {
return
}
print("User signed in with user ID: (result.user.uid)")
}
Use callbacks instead
25. auth!$signInAnonymously()
let user = auth!$currentUser
print("User signed in with user ID: (user!$uid)")
auth!$signInAnonymously { result, error in
guard let result = result else {
return
}
print("User signed in with user ID: (result.user.uid)")
}
@Published var user: User?
!!%
auth!$signInAnonymously()
.map { $0.user }
.replaceError(with: nil)
.assign(to: &$user)
Combine
26. auth!$signInAnonymously { result, error in
guard let result = result else {
return
}
print("User signed in with user ID: (result.user.uid)")
}
Firebase and async/await
27. auth!$signInAnonymously { result, error in
guard let result = result else {
return
}
print("User signed in with user ID: (result.user.uid)")
}
Firebase and async/await
do {
let result = try await auth!$signInAnonymously()
print("User signed in with user ID: (result.user.uid)")
}
catch {
print(error)
}
Callback-style
Async/await
28. Here is how much work it was
to implement for Firebase:
.
(yep - it came almost for free)