Learn how to take advantage of the Pebble build system by creating customized wscripts that let you concatenate JS files, automatically run linters, and internationalize your apps with Cherie Williams (Developer Evangelist).
Lets push those pixels to their limits as Matthew Hungerford (Developer Experience Engineer) talks about graphics effects leveraging Pebble APIs and community libraries to create exceptional watchfaces and apps.
#PDR15 Creating Pebble Apps for Aplite, Basalt, and ChalkPebble Technology
Curious about how to design apps that look great on Pebble Classic, Pebble Time, and Pebble Time Round? Confused about how to structure and implement code for multi-platform apps using the Pebble SDK? Kevin Conley (Embedded Developer) will cover these topics as well as share several tips, tricks, and tools for creating amazing apps that run on all Pebble devices.
You can find the video presentation here: http://youtu.be/VhVjCnF-Y0M
Ron Ravid and Grégoire Sage cover the Overlay technique and how to load parts of code from resources.
Day 2 - Video 4
CMake is an open-source cross-platform build system. It is increasingly becoming the build system of choice for open source projects. The Qt project recently announced that Qbs, the replacement build system for qmake, will no longer be supported and future efforts will focus on CMake. It may become the default build system for Qt version 6.
CMake has offered support for building Qt applications for some time, and is supported within the Qt Creator IDE. In this webinar we will:
-Introduce you to CMake
-Cover its basic features and how to use it
-Show some CMake configurations including Qt-based applications
-Prove how easy it is to use Cmake with Qt so you'll be ready to use it for your C++ and Qt-based applications!
Lets push those pixels to their limits as Matthew Hungerford (Developer Experience Engineer) talks about graphics effects leveraging Pebble APIs and community libraries to create exceptional watchfaces and apps.
#PDR15 Creating Pebble Apps for Aplite, Basalt, and ChalkPebble Technology
Curious about how to design apps that look great on Pebble Classic, Pebble Time, and Pebble Time Round? Confused about how to structure and implement code for multi-platform apps using the Pebble SDK? Kevin Conley (Embedded Developer) will cover these topics as well as share several tips, tricks, and tools for creating amazing apps that run on all Pebble devices.
You can find the video presentation here: http://youtu.be/VhVjCnF-Y0M
Ron Ravid and Grégoire Sage cover the Overlay technique and how to load parts of code from resources.
Day 2 - Video 4
CMake is an open-source cross-platform build system. It is increasingly becoming the build system of choice for open source projects. The Qt project recently announced that Qbs, the replacement build system for qmake, will no longer be supported and future efforts will focus on CMake. It may become the default build system for Qt version 6.
CMake has offered support for building Qt applications for some time, and is supported within the Qt Creator IDE. In this webinar we will:
-Introduce you to CMake
-Cover its basic features and how to use it
-Show some CMake configurations including Qt-based applications
-Prove how easy it is to use Cmake with Qt so you'll be ready to use it for your C++ and Qt-based applications!
This talk I will show you the golang project layout and some best practice like as the following:
1. RESTful api and GraphQL
2. Model testing (Postgres, SQLite, MySQL)
3. Software Quality
4. Data Metrics
5. Go Testing
Scripting Embulk plugins makes plugin development easier drastically. You can develop, test, and productionize data integrations using any scripting languages. It's most suitable way to integrate data with SaaS using vendor-provided SDKs.
https://techplay.jp/event/781988
Dart (https://www.dartlang.org/) is a general-purpose programming language to build web, server, IoT and mobile applications.
AngularDart (https://webdev.dartlang.org/angular) - also called Angular 2 for Dart or simply Angular - is a web app framework that focuses on productivity, performance, and stability. Hundreds of Google engineers use AngularDart to build the sophisticated, mission-critical apps that bring in much of Google’s revenue.
Dart and AngularDart significantly increase the productivity of the developers.
Slides from following meetup
https://www.meetup.com/Luxembourg-Dart-Lang-Meetup/events/237781037/
This talk I will show you the golang project layout and some best practice like as the following:
1. RESTful api and GraphQL
2. Model testing (Postgres, SQLite, MySQL)
3. Software Quality
4. Data Metrics
5. Go Testing
Scripting Embulk plugins makes plugin development easier drastically. You can develop, test, and productionize data integrations using any scripting languages. It's most suitable way to integrate data with SaaS using vendor-provided SDKs.
https://techplay.jp/event/781988
Dart (https://www.dartlang.org/) is a general-purpose programming language to build web, server, IoT and mobile applications.
AngularDart (https://webdev.dartlang.org/angular) - also called Angular 2 for Dart or simply Angular - is a web app framework that focuses on productivity, performance, and stability. Hundreds of Google engineers use AngularDart to build the sophisticated, mission-critical apps that bring in much of Google’s revenue.
Dart and AngularDart significantly increase the productivity of the developers.
Slides from following meetup
https://www.meetup.com/Luxembourg-Dart-Lang-Meetup/events/237781037/
Continuous Integration/Deployment with Docker and JenkinsFrancesco Bruni
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove” M. Fowler
Jenkins and Docker are cool technologies. Here's how they serve in a continuous integration based process and how they could be exploited to deliver new version of the same software.
The slides present the whole process along with real code snippets.
My talk from Dockercon EU in Amsterdam, Dec 2014. Original abstract:
The ModCloth Platform team has been building a Docker-based continuous delivery pipeline. This presentation discusses that project and how we build containers at ModCloth. The topics include what goes into our containers; how to optimize builds to use the Docker build cache effectively; useful development workflows (including using fig); and the key decision to treat containers as processes instead of mini-vms. This presentation will also discuss (and demo!) the workflow we’ve adopted for building containers and how we’ve integrated container builds with our CI.
SenchaCon 2016: Develop, Test & Deploy with Docker - Jonas Schwabe Sencha
Have you ever heard the phrase: "Everything works fine on my machine?" Docker is here to rescue you. Running your toolchain, Ext JS application, back-end server, and even your database - all in a standardized container format that can be transported and reused, throughout your process. In this session, you will learn how to automate a typical workflow, including developing, testing, and deploying, by using Docker containers and common continuous integration solutions.
Scala, docker and testing, oh my! mario camouJ On The Beach
Testing is important for any system you write and at eBay it is no different. We have a number of complex Scala and Akka based applications with a large number of external dependencies. One of the challenges of testing this kind of application is replicating the complete system across all your environments: development, different flavors of testing (unit, functional, integration, capacity and acceptance) and production. This is especially true in the case of integration and capacity testing where there are a multitude of ways to manage system complexity. Wouldn’t it be nice to define the testing system architecture in one place that we can reuse in all our tests? It turns out we can do exactly that using Docker. In this talk, we will first look at how to take advantage of Docker for integration testing your Scala application. After that we will explore how this has helped us reduce the duration and complexity of our tests.
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
The ModCloth Platform team has been building a Docker-based continuous delivery pipeline. This presentation discusses that project and how we build containers at ModCloth. The topics include what goes into our containers; how to optimize builds to use the Docker build cache effectively; useful development workflows (including using fig); and the key decision to treat containers as processes instead of mini-vms. This presentation will also discuss (and demo!) the workflow we’ve adopted for building containers and how we’ve integrated container builds with our CI.
This is a material for "Programming in Linux" seminar for students of Seoul National University Interactive and Networked Robotics Laboratory.
Topics: Bash / Vim / GCC / Make / Git...
Author: Dongho Kang
Cloud Foundry Summit Europe 2018 - Deveveloper Experience with Cloud Foundry ...Neven Cvetković
What's the difference between these platforms, what do they have in common, and what does working with each of them look like from a developer perspective? Landing your code on the right platform will determine the quality of your developer experience. It's important, therefore, to understand what kinds of workloads are most suitable for each, the level of effort required to work with them, and what each platform does for you.
Do you let buildpacks create containers for you, or do you build your own? How much YAML do you need to author and maintain? What kind of security can your application expect from the platform?
You'll leave this session with a clear understanding of what two platforms do for developers.
Build Your Own CaaS (Container as a Service)HungWei Chiu
In this slide, I introduce the kubernetes and show an example what is CaaS and what it can provides.
Besides, I also introduce how to setup a continuous integration and continuous deployment for the CaaS platform.
Similar to #PDR15 - waf, wscript and Your Pebble App (20)
Learn all about creating awesome assets for the Pebble Appstore with Aaron Cannon (Business Development). This will be a lot of discussion about what has worked/not worked for people in the past, so give us your input!
This session will cover everything needed to get started with smartstraps, from the hardware connection to APIs on the watch to the Arduino smartstrap library with Brian Gomberg (Embedded Developer). We will have limited hardware for people build with and take home!
Jack Chai (Data Scientist) takes us through the new Developer Portal analytics and delves into battery performance. He also reveals some interesting insights into levels of user interaction and how your projects could benefit from integration with timeline.
Learn all about timeline on Pebble. Specifically when to use it and when not to use it. See some of the best use cases for timeline and find out why timeline gives your app a competitive advantage with Jon Barlow (Developer Advocate).
Find out what has changed since PebbleKit iOS 2.0 and learn how to upgrade your projects. Discover how to take advantage of the new features of the new PebbleKit iOS with Marcel Jackwerth (iOS Developer).
You can find the video recording here: http://youtu.be/iG8Gnf5CD9s
This talk given by Steve Caldwell, CEO/CTO of Strap, focused on how to add analytics to your Pebble app.
Day 2 - Video 3
You can find the video recording here: http://youtu.be/TS0FPfgxAso
Stuart Harrell, software engineer at Pebble, gives a talk about battery life and how to preserve it. This talk explains the effect of different system functions on battery life and discusses solutions to common battery life problems with apps.
Day 2 - Video 1
Thomas Sarlandie Kickoff Talk | Pebble Developer Retreat 2014Pebble Technology
Thomas Sarlandie, Head Developer Evangelist at Pebble, welcomes everyone to the second ever Developer Retreat and goes through a detailed agenda of the next 4 days including some interesting facts about Pebble development over the past year.
Also featured:
New stuff in 2.6 - Background Workers
Coming up in 2.7 - Wakeup API
Day 1 - Video 2
You can find the video recording here: https://www.youtube.com/watch?v=8tOhdUXcSkw
Heiko Behrens and Matthew Hungerford talk about advanced programming techniques for Pebble. This talk focused on size to optimize pebble apps for code size, heap space, and advice on use of floating point.
The Mandelbrot demo and XKCD app were featured.
Day 1 - Video 3A
You can find the video recording here: https://www.youtube.com/watch?v=lYoHh19RNy4
Heiko Behrens and Matthew Hungerford present advanced programming techniques for Pebble. This presentation focused on graphics techniques including run-time dithering, offline dithering, pixel manipulations, and frame-buffer drawing.
This talk featured the amiga boing ball dithering demo.
Day 1 - Video 3B
Pebble SDK 2.0 is a brand new SDK for the Pebble smartwatch with support for JavaScript enabled apps, accelerometer, persistent storage, new tools, etc.
You can also watch the video announcement:
http://www.youtube.com/watch?v=uoVX2ibCFXw&feature=youtu.be
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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!
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
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.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
#PDR15 - waf, wscript and Your Pebble App
1. 2015 Pebble Developer Retreat
waf, wscript & Your Pebble App
Cherie Williams - Troublemaker
2. Agenda
• Why modify my wscript?
• Pebble SDK & Fat PBW
• What is this “waf” thing?
• Why is Pebble using waf?
• wscript
• Why do I care about waf?
• wscript Recipes
• Debugging
3. Why modify my wscript?
Making the Pebble SDK build system work for you
4. You can…
• Add C compiler flags
• Add custom defines for your apps (eg. #ifdef
NOLOG)
• Concatenate multiple JS files or do other file
manipulations at build time
5. You can…
• Collect & build source from a non-standard
project
• Add a linter (or two!)
• Run arbitrary scripts at build time to modify
resources or other files
6. You can…
• Add automatic testing
• Profile builds or add build visualizations
• Read in arbitrary text at build (eg. appinfo.json)
7. You can…
• Include an external library
• Build libraries for distribution
…the possibilities are endless!
8. Fine Print
Recipes + content from today’s talk are
*not* compatible with CloudPebble
10. SDK: Capabilities Today
• Builds for up to 3 Pebble platforms
• Can build apps, as well as workers
• Handles platform-specific resources
• Packages a single PBW for distribution
aplite
Pebble Classic
Pebble Steel
basalt
Pebble Time
Pebble Time Steel
chalk Pebble Time Round
11.
12. What is this “waf” thing?
A brief introduction to the Pebble build system
13. Introducing waf, a Python build system
• Open source, actively maintained
• Active community on Google Groups
• Task parallelization & dependency handling
• Language agnostic, but includes C compiler support
• Integrates with Eclipse, Visual Studio and Xcode
• Includes framework to build & distribute custom build
systems
27. Glossary
Context
An object for each command executed that stores all the
information necessary for the command execution
BuildContext
The build context holds all the information necessary for a
build
30. Glossary
Environment
A group of settings and variables that are stored in a
Context and that is cached between execution of
commands
NOTE: A single Context can have many, arbitrary
environments
33. Glossary
Task Generator
An object that handles the creation of task instances, and
helps simplify the creation of ordering constraints
Task
An object that represents the production of something
during the build (files, in general) and may be executed in
sequence or in parallel
37. Glossary
Build Order
The sequence in which tasks must be executed.
Dependency
A dependency represents the conditions by which a task can be
considered up-to-date or not, and can be explicit (dependency
on file inputs & outputs) or abstract (dependency on a value). waf
uses dependencies to determine whether tasks need to be run
(changed checksum of source files) and the build order of tasks.
41. Glossary
Node
A data structure used to represent the filesystem. Nodes
may represent files or folders. File nodes are associated
with signatures, which can be hashes of the file contents
(source files) or task signatures (build files)
43. Glossary
Command
A function defined in the wscript file that is executed
when its name is given on the command-line, and can be
chained with other commands
Ex:
waf distclean (`pebble clean`)
waf configure build (`pebble build`)
44.
45. Agenda
• Why modify my wscript?
• Pebble SDK & Fat PBW
• What is this “waf” thing?
• Why is Pebble using waf?
• wscript
• Why do I care about waf?
• wscript Recipes
• Debugging
49. [23/35] c: src/default.c -> build/src/default.c.18.o
In file included from ../src/default.c:1:0:
/Users/cherie/pebble-dev/PebbleSDK-dev/Pebble/aplite/include/pebble.h:
974:33: error: ISO C does not permit named variadic macros [-
Werror=variadic-macros]
#define APP_LOG(level, fmt, args...)
^
/Users/cherie/pebble-dev/PebbleSDK-dev/Pebble/aplite/include/pebble.h:
1121:3: error: type of bit-field 'type' is a GCC extension [-
Werror=pedantic]
TupleType type:8;
^
/Users/cherie/pebble-dev/PebbleSDK-dev/Pebble/aplite/include/pebble.h:
1132:13: error: ISO C forbids zero-size array 'data' [-Werror=pedantic]
uint8_t data[0];
^
55. Create waftools/linter.py
def options(ctx):
ctx.add_option('--jshint', action='store_true',
help="Run JSHint on the JS files in the build")
def configure(ctx):
if ctx.options.jshint:
try:
ctx.find_program('jshint', var='JSHINT')
except ctx.errors.ConfigurationError:
print "jshint was not found"
def build(ctx):
if ctx.env.JSHINT:
ctx(rule='${JSHINT} ${SRC}', source=ctx.path.ant_glob('src/**/*.js'))
62. A Word on Future
Proofing
Sometimes the SDK default wscript will be updated, but by
abstracting code out of wscript and into waf tools, it will be
much easier to maintain customizations!
65. `pebble -vvv` (waf -vvv) for complete
21:51:50 preproc reading file '/Users/cherie/pebble-apps/
concentricity/build/chalk/src/resource_ids.auto.h'
21:51:50 deps deps for [/Users/cherie/pebble-apps/concentricity/
build/chalk/appinfo.auto.c]: [/Users/cherie/pebble-apps/
concentricity/build/chalk/src/resource_ids.auto.h]; unresolved
['pebble_process_info.h']
21:51:50 task task {task 4344651216: c appinfo.auto.c ->
appinfo.auto.c.16.o} must run as it was never run before or the
task code changed
21:51:50 runner_env kw={'shell': False, 'cwd': '/Users/cherie/
pebble-apps/concentricity/build', 'env': None}
21:51:50 envhash d751713988987e9331980363e24189ce []
66. Zone Description
runner command-lines executed (same as -v)
deps implicit dependencies found
task_gen task creation & task generator method execution
action functions to execute for building the targets
env environment contents
envhash hashes of the environment objects
build build context operations, like filesystem access
preproc preprocessor execution
group groups & task generators
$ pebble build -- --zones=deps
23:01:45 deps deps for [/Users/cherie/pebble-apps/concentricity/src/
concentricity.c]: [/Users/cherie/pebble-apps/concentricity/src/ui.h];
unresolved ['pebble.h']
67. Helpful waf Links
• Pebble Recipes
• https://developer.getpebble.com/build
• GitHub Project
• https://github.com/waf-project/waf
• Google Group
• https://groups.google.com/forum/#!forum/waf-users
• Book
• https://waf.io/book/