Developers of Unity UWP apps: stop wasting time compiling builds in Unity, then Visual Studio, then manually deploying. Save time with an automated pipeline! Create builds from start to finish, implement Unit Tests, save every build artifact, and even distribute using App Center! Learn how to create a Azure DevOps pipeline that can be used to build any Mixed Reality solution.
AWS를 사용하는 게임 고객사를 대상으로 ‘Amazon GameLift 세션’ 을 준비했습니다.
GameLift는 클라우드에서 세션 기반 멀티플레이 게임 서버를 배포, 운영, 조정하는 데 사용되는 완전 관리형 서비스로, 본 행사에서는 Amazon GameLift를 이용한 세션형 1:1 게임 배포 실습을 진행합니다.
During the last years we have seen the evolution of Xamarin Forms that has brought new improvements, as well as great contributions from the community. This implies that perhaps in the way that some things were done some time ago, there are currently better and simpler ways of doing it. In this talk we will discuss best practices when programming in Xamarin Forms, as well as architecture, dependency injection, performance, use of plugins and components, among others.
WebXR: Introducing Mixed Reality and the Immersive Web - Peter O'Shaughnessy ...Codemotion
“WebXR” is the API formerly known as WebVR, upgraded to embrace the web’s potential not just for Virtual Reality, but for immersive Mixed Reality experiences. We can start exploring the possibilities now, using libraries like Mozilla’s WebXR Polyfill and Google’s three.ar.js, plus special development browsers that incorporate ARCore (Android) or ARKit (iOS). This talk will share how you can begin to blend the real world and the digital world as a Mixed Reality web developer - and a glimpse into the exciting future of the Immersive Web.
AWS를 사용하는 게임 고객사를 대상으로 ‘Amazon GameLift 세션’ 을 준비했습니다.
GameLift는 클라우드에서 세션 기반 멀티플레이 게임 서버를 배포, 운영, 조정하는 데 사용되는 완전 관리형 서비스로, 본 행사에서는 Amazon GameLift를 이용한 세션형 1:1 게임 배포 실습을 진행합니다.
During the last years we have seen the evolution of Xamarin Forms that has brought new improvements, as well as great contributions from the community. This implies that perhaps in the way that some things were done some time ago, there are currently better and simpler ways of doing it. In this talk we will discuss best practices when programming in Xamarin Forms, as well as architecture, dependency injection, performance, use of plugins and components, among others.
WebXR: Introducing Mixed Reality and the Immersive Web - Peter O'Shaughnessy ...Codemotion
“WebXR” is the API formerly known as WebVR, upgraded to embrace the web’s potential not just for Virtual Reality, but for immersive Mixed Reality experiences. We can start exploring the possibilities now, using libraries like Mozilla’s WebXR Polyfill and Google’s three.ar.js, plus special development browsers that incorporate ARCore (Android) or ARKit (iOS). This talk will share how you can begin to blend the real world and the digital world as a Mixed Reality web developer - and a glimpse into the exciting future of the Immersive Web.
출처 : 한국정보통신기술협회
표준번호 : TTAK.KO-10.0292/R1(2017-06-28)
이 표준은 하드웨어 규모산정의 개념 및 규모산정의 대상이 되는 하드웨어 구성요소를 설명하고 규모산정을 위한 서버별(OLTP 서버, WEB/WAS 서버) 성능 기준을 제시하며, 규모산정 시 일반적인 고려 사항과 규모산정의 절차를 기술한다. 또한 CPU, 메모리, 디스크, 스토리지 등 하드웨어 구성요소별 규모 산정식과 세부 기준값을 제시한다.
A short course on how to develop AR and VR experiences using Unity. Using Unity 2017.2, Google 1.100 VR SDK, and Vuforia. Taught by Mark Billinghurst on November 7th 2017.
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfJongwon Kim
NDC 2021에서 발표하였던 '게임 테스트 자동화 5년의 기록'이라는 주제로 NCSOFT에서 5년 동안 진행했던 게임 테스트 자동화에 대한 내용을 정리한 회고 내용입니다.
영상은 https://youtu.be/ckqUzRyIPoA 에 올라와 있습니다.
* 문서에 적용된 폰트나 아이콘 등의 문서 형식에 대한 권리는 Nexon에 있으니 배포 시 유의하시기 바랍니다
How to implement automatic game development workflow with Jenkins server and Git SCM. Workflow consists of development, building, testing and deployment performed automatically.
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsAndrey Karpov
Static code analysis is most effective when changing a project, as errors are always more difficult to fix in the future than at an early stage. We continue expanding the options for using PVS-Studio in continuous development systems. This time, we'll show you how to configure pull request analysis using self-hosted agents in Microsoft Azure DevOps, using the example of the Minetest game.
출처 : 한국정보통신기술협회
표준번호 : TTAK.KO-10.0292/R1(2017-06-28)
이 표준은 하드웨어 규모산정의 개념 및 규모산정의 대상이 되는 하드웨어 구성요소를 설명하고 규모산정을 위한 서버별(OLTP 서버, WEB/WAS 서버) 성능 기준을 제시하며, 규모산정 시 일반적인 고려 사항과 규모산정의 절차를 기술한다. 또한 CPU, 메모리, 디스크, 스토리지 등 하드웨어 구성요소별 규모 산정식과 세부 기준값을 제시한다.
A short course on how to develop AR and VR experiences using Unity. Using Unity 2017.2, Google 1.100 VR SDK, and Vuforia. Taught by Mark Billinghurst on November 7th 2017.
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfJongwon Kim
NDC 2021에서 발표하였던 '게임 테스트 자동화 5년의 기록'이라는 주제로 NCSOFT에서 5년 동안 진행했던 게임 테스트 자동화에 대한 내용을 정리한 회고 내용입니다.
영상은 https://youtu.be/ckqUzRyIPoA 에 올라와 있습니다.
* 문서에 적용된 폰트나 아이콘 등의 문서 형식에 대한 권리는 Nexon에 있으니 배포 시 유의하시기 바랍니다
How to implement automatic game development workflow with Jenkins server and Git SCM. Workflow consists of development, building, testing and deployment performed automatically.
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsAndrey Karpov
Static code analysis is most effective when changing a project, as errors are always more difficult to fix in the future than at an early stage. We continue expanding the options for using PVS-Studio in continuous development systems. This time, we'll show you how to configure pull request analysis using self-hosted agents in Microsoft Azure DevOps, using the example of the Minetest game.
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous integration and delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes followed by Amazon engineers and discuss how you can bring them to your company by using a set of application lifecycle management tools from AWS: the newly announced AWS CodeBuild service, AWS CodePipeline, and AWS CodeDeploy.
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous integration and delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes followed by Amazon engineers and discuss how you can bring them to your company by using a set of application lifecycle management tools from AWS: the newly announced AWS CodeBuild service, AWS CodePipeline, and AWS CodeDeploy.
Learning Objectives:
• Understand the concepts of DevOps, continuous integration, and continuous delivery
• Learn about Amazon’s DevOps practices
• Hear an overview of how to build a continuous integration and continuous delivery workflow using the combination of CodeBuild, CodePipeline, and CodeDeploy
A part of a lecture by Martin Climatiano, Co-Founder @ 282Productions, at the Microsoft Unity3D Event in Israel.
June 6, 2013
The Video of the lecture is available here http://youtu.be/Ksw3txvhIUA [Hebrew]
Your Windows 7 testing is over and it’s time for rapid deployment! Yet while you’re excited about delivering Windows 7 to users, you might still remember your last upgrade. Deploying Ghost images might have been easy back then, but it wasn’t very flexible. What you want is deployment from a single image, where every computer starts from one golden master. You also want better naming, giving each computer the correct name automatically. Most importantly, you want the process automated so you’re not sitting around waiting to click buttons. You can have all this and more with Microsoft’s free Windows Deployment Services.
Microsoft MVP Greg Shields has been rapidly deploying Windows computers for over a decade. In this session full of tips and tricks, bring your laptop and get HANDS-ON with Windows Deployment Services. You’ll learn the secret tricks for creating that single image that installs everywhere. You’ll find WDS’ hidden solution for automatic naming. You’ll learn the tricks you absolutely must know to automate Windows installation. And you’ll leave with a functioning deployment solution you can take home to begin deploying immediately.
Are you’re ready for Windows deployment, but not ready for the learning curve? Save yourself weeks of time and join this must-see HANDS-ON session. You’ll walk away with exactly what you need to start rapidly deploying Windows 7 the moment you return home.
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware
Hear hear dev & ops alike - ever got bitten by the fragmentation of the Cloud space at deployment time, By AWS vs Azure, Open Shift vs Heroku ? in a word, ever dreamt of configuring at once your Cloud application along with both its VMs and database ? Well, the extensible Open Cloud Computing Interface (OCCI) REST API (see http://occi-wg.org/) allows just that, by addressing the whole XaaS spectrum.
And now, OCCI is getting powerboosted by Eclipse Modeling and formal foundations. Enter Cloud Designer and other outputs of the OCCIware project (See http://www.occiware.org) : multiple visual representations, one per Cloud layer and technology. XaaS Cloud extension model validation, documentation & ops scripting generation. Simulation, decision-making comparison. Connectors that bring those models to life by getting their status from common Cloud services. Runtime middleware, deployed, monitored, adminstrated. And tackling the very interesting challenge of modeling a meta API in EMF's metamodel, while staying true to EMF, Eclipse tools and the OCCI standard.
Featuring Eclipse Sirius, Acceleo generators, EMF at runtime. Coming soon to a new Eclipse Foundation project near you, if so you'd like.
This talk includes a demonstration of the Docker connector and of how to use Cloud Designer to configure a simple Cloud application's deployment on the Roboconf PaaS system and OpenStack infrastructure.
Streamlining React Component Development and Sharing with bit.pptxShubhamJayswal6
How to create and share React components with bit.dev
React is one of the most popular JavaScript libraries for building user interfaces. One of the key benefits of React is its component-based architecture, which allows developers to create reusable UI components that can be shared across different projects
Release Management with Visual Studio Team Services and Office Dev PnPPetter Skodvin-Hvammen
Learn about the capabilities of Visual Studio Online Services:
– how you can setup continuous builds whenever a change is committed to the source repository
– how to setup scheduled builds and deploys
– how to target deployments for your dev, test, uat and prod environments
– how to manage release security and use approval workflows
Also learn how you can use Office Dev PnP PowerShell to support rapid and automated deployments and about other alternatives out there
Writing native Linux desktop apps with JavaScriptIgalia
If you are a JavaScript developer and want to write something for the Linux desktop in JavaScript, two popular ways are to use Electron or to publish an extension for GNOME Shell on extensions.gnome.org. However, there is a third way that doesn't require users to use GNOME and doesn't require embedding a web browser!
In this talk Philip Chimento will walk through the process of creating a native desktop app written in JavaScript and publishing it to users.
(c) Linux App Summit 2021
13-15 May 2021
Introduction to html5 game programming with ImpactJsLuca Galli
A brief introduction to HTML5 Game Development that describes and use ImpactJs, one of the most famous and complete frameworks for HTML5 Games, mostly for learning purposes. The benefits of HTML5 Games are described, along with the importance of using a Framework and describing in details the ImpactJs Game Engine (no code provided, since it's proprietary). Two different games are coded on the fly during the lesson, while providing tips and suggestions. The Reference, Bibliography and Resources section provide useful pointers for beginners.
Similar to HoloLens Unity Build Pipelines on Azure DevOps (20)
A Whirlwind Tour of Recurrent Neural NetworksSarah Sexton
Recurrent Neural Networks (RNNs) can be used to generate text that will look like its original training data. There are many articles out there that show hilarious end-results of such adventures, but start-from-scratch walkthroughs that show the raw code, like this one, are hard to come by. This presentation will demonstrate what you need to join in, grab your own data set, process it, train it, and sample it. Training the data on a CPU can take hours, but in this session you can learn how training on a GPU with hardware acceleration takes only seconds. Come away from this session with your own datasets to “randomly” generate new bodies of text!
Neural Networks. Deep Learning. TensorFlow. What are these buzzwords? What is the latest Artificial Intelligence craze? This advanced session contains cutting-edge information not easily found online, and does not require a PhD in Machine Learning to understand. Recurrent Neural Networks (RNNs) can be used to generate text that will look like its original training data. There are many articles out there that show hilarious end-results of such adventures, but start-from-scratch walkthroughs that show the raw code are hard to come by.
Developing for Consoles as an Indie in 2018Sarah Sexton
Gaming consoles are closed platforms. They demand quality over quantity. To prove you are serious as a video game developer, what should you do? What can you do to help promote yourself in the community as an indie dev? Xbox Development is improving its Dev Mode, releasing a new Creator's Program, and launching the upcoming Xbox One X. Learn what goes into the process of publishing video games to Microsoft's major gaming consoles in 2018.
Smart bots provide an amazing opportunity to generate lively, adaptive interfaces in the channels where your users are talking. In this presentation, we will kickstart a Node.js bot from Simple to Smart by integrating LUIS, creating meaningful conversations, and remembering user information. While it does take time to create custom dialogues, build and train LUIS, integrate with various channels, and create documentation, watching your intertwined dialog and code come to life results in a unique, naturally responsive bot.
The principles used for building a standard 3D experience fundamentally change when considering virtual and mixed reality. New devices such as the Microsoft HoloLens let users interact with digital content in relation to the real world, disrupting the way we build experiences. This session explains how to consider these concepts during development, as well as introduces the new medium of building 3D Mixed Reality applications and games using C#, Visual Studio, and Unity.
Microsoft HoloLens is the first fully untethered computer that uses holograms to enhance the real world. If you know how HoloLens embraces virtual reality and augmented reality to create a new “mixed” reality, and you’re looking for jumpstart your holographic app-building experience, you’re in luck. In this session, you’ll learn how to create and save a new project in Unity 5.5, create your first 2D or 3D hologram, export from Unity to Visual Studio 2015, and deploy holographic apps to a HoloLens device or emulator.
Step into the world of conversational Bots. Taking over platforms one by one, chat bots are becoming the newest applications wanted and needed by enterprises and consumers everyday. This presentation goes step by step on prerequisite tools, building a chat bot, deploying it to the cloud, and how to get it running on different platforms. This is an ideal session for those who are familiar with Node.js and would like to apply it to something new.
Word Play in the Digital Age: Building Text Bots with TracerySarah Sexton
Life is filled with moments of unexpected laughter. In this technical talk, walk through how to create your own comedy with an exciting mad-lib style JavaScript tool: Tracery! Kate Compton’s templating language, free and open source, is a multipurpose text-expansion library. It can be used to generate text for your NPC dialog, gameplay collectibles, twitterbots, chat bots, and more! Learn how to take a piece of text with #tags# in it, replace the text between the two hashtags with a replacement rule, and fill in the blanks with unpredictable diction. Come find out what bizarre stories you can write in a way that is easy and fun to program.
Every video game runs on what’s called an ‘engine,’ which determines what the game can and cannot do.
In other words, the game engine is a set of tools for game development.
The tools available to the creator shape what kinds of creative work they’re going to end up making.
Introduction to Unity3D and Building your First GameSarah Sexton
In Phase One, we will cover the basics of using the Unity editor’s interface, customizing the workspace, building a 3D environment, and adding sound effects.
In Phase Two, we will import a player character asset, learn about Animator Controllers, make animations, set up physics and gravity, and add player movement scripts.
In Phase Three, we will set up our Camera and write a script to make the camera follow our player character.
Building Your First Node.js App and Publishing to AzureSarah Sexton
In my presentation, you are going to learn how to build your very first Node.js app and publish it online directly from Azure through GitHub. You will follow me on my personal journey from when I first heard about Node.js, to learning what it was, downloading the appropriate tools, building something with it, and finally publishing it to Azure. You’ll leave with some basic knowledge about Node.js, how to get started building your first Node app, and how to share it with the rest of the world.
New High Score! Leaderboards in the CloudSarah Sexton
Do you have a Unity game, but wish that you could make it multiplayer, or add an online high score table? In this talk, you will learn how to connect a Unity game to Azure Mobile Services using the BitRave Unity plugin. Follow along as I create a leaderboard on Azure and connect to it from my video game to update high scores and share them with players around the world.
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.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
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.
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.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
3. Microsoft Game Stack. Level Up.
• Intro
• Why Use a Pipeline?
• Which Pipeline System should I use?
• My First Pipeline
• Next Steps and other Considerations
• Resources
4. Microsoft Game Stack. Level Up.
Introduction
Sarah Sexton
https://aka.ms/SarahSays GitHub.com/SarahSexton Twitter: @Saelia
Software Engineer Microsoft Redmond, USA
5. Microsoft Game Stack. Level Up.
• Intro
• Why Use a Pipeline?
• Which Pipeline System should I use?
• My First Pipeline
• Next Steps and other Considerations
• Resources
6. Microsoft Game Stack. Level Up.
Why use a pipeline? Without one:
Code
Manual
Deploy to
Device
Manual Visual
Studio
Build
Manual Unity
Build
Commit and
push to repo
Test
More Coding
Manual unit
testing
7. Microsoft Game Stack. Level Up.
Why use a pipeline? With one:
Code
Automatic
Send Build to
App Center
Automatic
Visual Studio
Build
Automatic
Unity Build
Commit and
push to repo
Download
build on
device
More Coding …
Test
Automatic unit
testing
8. Microsoft Game Stack. Level Up.
Well, because it can’t build 2-step UWP projects. 😟
Why not Unity Cloud Build?
9. Microsoft Game Stack. Level Up.
Which Pipeline System should I use?
Local/Manual Process Unity Cloud Build Custom Pipeline
-Requires human
resource time and
equipment.
-Process is error-prone.
-ONLY builds projects
from Unity.
-Cannot add custom
PowerShell scripts.
-Cannot build 2-step
UWP projects.
(ex: Azure DevOps or
GitHub Actions)
-Fully automatable.
-Fully customizable.
-Self-hosted agent
can automate any
manual task.
10. Microsoft Game Stack. Level Up.
Pros and Cons of a pipeline:
Pro
• Increase efficiency
• Spend more time doing important tasks
• Waste less time on builds that ultimately fail
• Collaborate faster
• Build artifacts available to whole team
• Ensure unit tests pass before every build
• Work smarter
• Grab build artifacts easily
• Review PRs more wisely
• Build the project without a PC
Con
• The time for a single “Commit to Deployment”
could turn out to be slightly longer
• Initial setup time
• Team onboarding/training
• May cost money
• May require a Unity Plus or Pro license
11. Microsoft Game Stack. Level Up.
Prerequisites
Azure DevOps Organization/Tenant
Microsoft Account or a work/organization account
Knowledge how to add users to your Azure Active Directory Tenant
(if you plan to collaborate)
Knowledge of how to ensure the Mixed Reality Toolkit (MRTK)
foundation package is added to a Unity project
(Release v2.1.0 at the time of this writing)
A Unity 2019 project*
(2019.2.x at the time of this writing.) (*With MRTK Foundation added.)
A Unity Plus/Pro license serial key
(With at least 1 available seat to activate.)
12. Microsoft Game Stack. Level Up.
A Unity Plus/Pro license is required (by Unity company)
to build using hosted agents. 😟
Why not Unity Personal (free)?
14. Microsoft Game Stack. Level Up.
• Intro
• Why Use a Pipeline?
• Which Pipeline System should I use?
• My First Pipeline
• Next Steps and other Considerations
• Resources
15. Microsoft Game Stack. Level Up.
Which Pipeline System should I use?
Local/Manual Process Unity Cloud Build Custom Pipeline
-Requires human
resource time and
equipment.
-Process is error-prone.
-ONLY builds projects
from Unity.
-Cannot add custom
PowerShell scripts.
-Cannot build 2-step
UWP projects.
(ex: Azure DevOps or
GitHub Actions)
-Fully automatable.
-Fully customizable.
-Self-hosted agent
can automate any
manual task.
16. Microsoft Game Stack. Level Up.
• Intro
• Why Use a Pipeline?
• Which Pipeline System should I use?
• My First Pipeline
• Next Steps and other Considerations
• Resources
18. Microsoft Game Stack. Level Up.
Your First Pipeline
Microsoft Hosted Agent:
• Tells Azure DevOps to spin up a
Windows VM image that has Windows
and VS installed.
• Cheap because it’s only yours while
you use it – first one is free
• Only pay a monthly fee for
simultaneous machines running.
• Your mileage may vary
Self-Hosted Agent:
• Could be a Windows VM living in your
Azure subscription
• Could be a real computer
• More expensive to run constantly, but
offers more manual control
• Faster than a Microsoft Hosted Agent
19. Microsoft Game Stack. Level Up.
We’ve set up a template for you!
GitHub.com/microsoft/Azure-DevOps-YAML-for-Unity
20. Microsoft Game Stack. Level Up.
What does it do?
• Publishes the solution folder & pipeline artifacts to target path
# The path to the folder which contains the Assets folder of the project.
# If your Unity project is located in a subfolder of your repo, make sure
it is reflected in this.
unity.projectPath: '$(System.DefaultWorkingDirectory)/'
21. Microsoft Game Stack. Level Up.
What does it do?
• Finds, downloads, and caches NuGet
• Restores the NuGet packages for the solution
# Find, download, and cache NuGet:
- task: NuGetToolInstaller@1
displayName: 'Install NuGet'
# Restore the NuGet packages for the solution:
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(unity.projectPath)$(unity.outputPath)/*.sln’
# Change to '$(unity.projectPath)$(unity.outputPath)/*.sln' to resume two jobs
22. Microsoft Game Stack. Level Up.
What does it do?
• Builds the solution with Visual Studio to make an .appx
• Publishes the package (.appxbundle/.msixbundle) it just built
# Build the solution with Visual Studio to make an .appx:
- task: MSBuild@1
displayName: 'Build solution'
inputs:
solution: '$(unity.projectPath)$(unity.outputPath)' # Change to
'$(unity.projectPath)$(unity.outputPath)' to resume two jobs
configuration: Release
msbuildArguments: '/p:AppxBundle=Always /p:AppxBundlePlatforms="$(vs.appxPlatforms)"'
# Publish the package (.appxbundle/.msixbundle) that we just built:
- task: PublishPipelineArtifact@0
displayName: 'Publish Pipeline Artifact'
inputs:
artifactName: 'apppackages'
targetPath: '$(unity.projectPath)$(unity.outputPath)$(vs.packagePath)' # Change to
'$(unity.projectPath)$(unity.outputPath)$(vs.packagePath)' to resume two jobs
23. Microsoft Game Stack. Level Up.
What does it do?
• Builds the Visual Studio solution generated from the previous job
• Creates a package.
# Build the Visual Studio solution generated from the previous job and create a package.
- job: unitytests
dependsOn: unity
condition: and(succeeded(), eq(variables['runTests'], 'true'))
displayName: Unity Tests
variables:
installCached: false
steps:
# What version of Unity does the project say that it wants?:
- task: UnityGetProjectVersionTask@1
name: unitygetprojectversion
displayName: Calling UnityGetProjectVersionV1 from unity-azure-pipelines-tasks extension
inputs:
unityProjectPath: '$(unity.projectPath)'
24. Microsoft Game Stack. Level Up.
Unity Unit Tests
RayWenderlich.com/9454-introduction-to-unity-unit-testing
25. Microsoft Game Stack. Level Up.
YAML
# Install Unity (from cache or download) then create Visual Studio project from Unity
- job: unity
displayName: Unity Build
variables:
installCached: false
# Try to ensure that we have the right secrets set up to continue, otherwise fail the job:
condition: or( not(variables['unity.username']), not(variables['unity.password’]),
not(variables['unity.serialKey']) )
steps:
# What version of Unity does the project say that it wants?:
- task: UnityGetProjectVersionTask@1
name: unitygetprojectversion
displayName: Calling UnityGetProjectVersionV1 from unity-azure-pipelines-tasks extension
inputs:
unityProjectPath: '$(unity.projectPath)'
26. Microsoft Game Stack. Level Up.
YAML
# Install Unity (from cache or download) then create Visual Studio project from Unity
- job: unity
displayName: Unity Build
variables:
installCached: false
# Try to ensure that we have the right secrets set up to continue, otherwise fail the job:
condition: or( not(variables['unity.username']), not(variables['unity.password’]),
not(variables['unity.serialKey']) )
steps:
# What version of Unity does the project say that it wants?:
- task: UnityGetProjectVersionTask@1
name: unitygetprojectversion
displayName: Calling UnityGetProjectVersionV1 from unity-azure-pipelines-tasks extension
inputs:
unityProjectPath: '$(unity.projectPath)'
27. Microsoft Game Stack. Level Up.
YAML
# Install Unity (from cache or download) then create Visual Studio project from Unity
- job: unity
displayName: Unity Build
variables:
installCached: false
# Try to ensure that we have the right secrets set up to continue, otherwise fail the job:
condition: or( not(variables['unity.username']), not(variables['unity.password’]),
not(variables['unity.serialKey']) )
steps:
# What version of Unity does the project say that it wants?:
- task: UnityGetProjectVersionTask@1
name: unitygetprojectversion
displayName: Calling UnityGetProjectVersionV1 from unity-azure-pipelines-tasks extension
inputs:
unityProjectPath: '$(unity.projectPath)'
32. Microsoft Game Stack. Level Up.
This Azure DevOps "recipe" YAML will:
• Run Unity Unit Tests
• Dynamically activate
• Build UWP project
• Save new Visual Studio project as “artifact”
• Restore NuGet for .sln, build Visual Studio project
• Save the app packages it built as an “artifact”
• Deactivate Unity when finished
33. Microsoft Game Stack. Level Up.
DEMO
Setting up your own Azure DevOps build pipeline
34. Microsoft Game Stack. Level Up.
• Intro
• Why Use a Pipeline?
• Which Pipeline System should I use?
• My First Pipeline
• Next Steps and other Considerations
• Resources
35. Microsoft Game Stack. Level Up.
Section Title Goes Here
Next Steps and other
Considerations
36. Microsoft Game Stack. Level Up.
Define automatic build steps for
everything, no matter how trivial.
Apply branch policies to require
passing automated builds.
Publish successful build artifacts
to App Center for distribution.
Enhance your entire process
37. Microsoft Game Stack. Level Up.
Unity keys can only be on
2 machines at once.
If you want to run a series of build agents,
dynamically grabbing keys, you could
implement a key management system.
Unity Pro Keys Key Management
store.unity3d.com/account/licenses/other
38. Microsoft Game Stack. Level Up.
Helpful examples: MRTK’s automated pipelines
https://github.com/microsoft/MixedRealityToolkit-Unity/tree/mrtk_development/pipelines
39. Microsoft Game Stack. Level Up.
• Intro
• Why Use a Pipeline?
• Which Pipeline System should I use?
• My First Pipeline
• Next Steps and other Considerations
• Resources
40. Microsoft Game Stack. Level Up.
Resources
• Our example YAML:
GitHub.com/Microsoft/Azure-DevOps-YAML-for-Unity
• Unity + Azure DevOps Plugin:
Dinomite-studios.github.io/unity-azure-pipelines-tasks
• Unity Store license link:
https://store.unity3d.com/account/licenses/other
• YAML documentation:
Docs.Microsoft.Com/en-us/azure/devops/pipelines/yaml-schema?view=azure-
devops&tabs=schema
• Unity Unit Tests:
RayWenderlich.com/9454-introduction-to-unity-unit-testing
• MRTK:
GitHub.com/microsoft/MixedRealityToolkit-Unity/
I am hoping to use this as a test-run to receive helpful feedback on how I can improve my presentation process for this talk.
My name is Sarah Sexton. I am a Software Engineer at Microsoft, where I code with developers all over the world on Microsoft’s newest technologies. The story behind what I’m about to present to you, is that my team needed a consistent method for their Unity work environments that would enable all members to work with the same build configurations - for both Visual Studio and Unity. Our solution, which I will be talking about today, was to create Unity Build Pipelines on Azure DevOps. This solution is platform-agnostic, however – in fact, we are as we speak in the process of investigating GitHub Actions to accomplish goals similar to Azure DevOps. In this talk, I will show you how we managed to implement this solution, to build UWP apps for Hololens 2.
These are things that most devs do not want to think or care about.
Most devs sit down to a computer with a vision to create, and these hassles are a barrier to their creativity and/or productivity.
Automated Build Pipelines can be triggered on commit to a certain branch, such as master, or whenever there is a Pull Request.
-ONLY builds projects from Unity. -Cannot add custom PowerShell scripts.
-Cannot build 2-step UWP projects.
So, as a HoloLens developer who wants to do UWP applications, this isn’t an option for you.
With self hosted agent, can do anything you would do manually.
Other pipeline options
◦ Unity cloud builds
◦ Local
◦ Azure DevOps
◦ GitHub Actions (new)
◦ Travis CI
stop wasting time compiling builds in Unity, then Visual Studio, then manually deploying. Save time with an automated pipeline! Create builds from start to finish, implement Unit Tests, save every build artifact.
The Dinomite extension supports Microsoft hosted agents as well as custom agents. Some of Unity’s target build platforms are not supported on hosted agents, since they require manual configuration of SDKs & Tools, which we can’t do on hosted agents. For full control over the tools and software, they recommend using your own build agent.
A Unity Plus / Pro seat with one available activation is required to build using hosted agents. This is a requirement by Unity not this extension
Start a build and build results in Azure DevOps
With self hosted agent, can do anything you would do manually.
First, identify your current process and all the steps involved.
Don’t forget to include when and where files are stored. Identify when work is bottlenecked.
Highly recommend "The Phoenix Project" book to learn about devops and process.
We made this project specifically for UWP apps, but we can generalize for other distributions.
This Azure DevOps "recipe" yaml will:
Run Unity Unit Tests
-Dynamically Activate
-Builds UWP project, saves new Visual Studio project as “artifact”
-Restores NuGet for .sln, builds Visual Studio project
-Saves the app packages that it built as an “artifact”
-Deactivate Unity when finished
A unit test is (ideally) for testing a single “unit” of code. Exactly what makes up a “unit” varies, but the important thing to keep in mind is that a unit test should be testing exactly one ‘thing’ at a time.
You can learn more about how Unit Tests in Unity work and how to use them in your projects in this tutorial I’ve linked here.
To open the Unity Test Runner, choose Window ▸ General ▸ Test Runner.
Unit Testing can be triggered from Azure DevOps
◦ Spin up Unity
◦ Run project in Unity
◦ Only proceed if Unit Tests pass
◦ Skip the build if the Unit Tests fail
◦ Free up the agent to do more jobs
A YAML file specifies the build steps
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema
A YAML file specifies the build steps
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema
A YAML file specifies the build steps
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema
Link this new YAML up in Azure DevOps
This pipeline depends on Secret Variables that you must define within your Azure DevOps:
unity.username = Your Unity account email address
unity.password = Your Unity account password (keep it secret)
unity.serialkey = The serial key for your Unity Pro licence (keep it safe)
Without all three, this pipeline will fail to run.
You can create a new YAML file, or import an existing one.
Link this new YAML up in Azure DevOps
Show YAML file, talk about how it works.
Demonstrate what is needed to include in your project
Show “previous success” or “previous fail” build
Ensure your entire process is replicated, and artifacts you want saved are preserved.
Apply branch policies once working to ensure builds are triggered.
Your Unity key can only be on two machines at once.
If you wanted to run a series of build agents dynamically grabbing keys, you could implement some sort of key management system.
https://store.unity3d.com/account/licenses/other
The Mixed Reality Toolkit MRTK team uses automated pipelines, with publicly available YAML files for you to use as examples.