This session was presented at MacTech 2014 in Los Angeles, California. Session description follows:
Git and GitHub have changed the way we can collaborate with others on code-based projects, but it can be intimidating at first. How does this all work? We will cover the basics of Git and how to escape some of its pitfalls, and we will review some of the tools and processes available to those wanting to start or contribute to an open-source project, which isn't Git-specific. Writing code is only part of it!
Diapositivas de la charla dada por la gente de uno21.com.ar (@luke_ar y @matitanio) en la UP, el día 21/08/2012. Próximamente en otras universidades :)
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeKAI CHU CHUNG
Gokit is microservice tookit and use Service/Endpoint/Transport to strict separation of concerns design. This talk to use go-kit develop microservice application integrate with consul, zipkin, prometheus, etc service and deploy on Kubernetes.
Diapositivas de la charla dada por la gente de uno21.com.ar (@luke_ar y @matitanio) en la UP, el día 21/08/2012. Próximamente en otras universidades :)
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeKAI CHU CHUNG
Gokit is microservice tookit and use Service/Endpoint/Transport to strict separation of concerns design. This talk to use go-kit develop microservice application integrate with consul, zipkin, prometheus, etc service and deploy on Kubernetes.
Service worker: discover the next web game changerSandro Paganotti
This talk aims to introduce the upcoming ServiceWorker technology, its basic functionalities, its lifecycle and its most common use cases. Then it moves to analyse in detail a less obvious implementation of this technology: how to create a wiki engine using ServiceWorker and IndexedDB.
Streaming analytics better than batch – when and why by Dawid Wysakowicz and ...Big Data Spain
While a lot of problems can be solved in batch, the stream processing approach currently gives you more benefits. And it’s not only sub-second latency at scale. But mainly possibility to express accurate analytics with little effort – something that is hard or usually ignored with older batch technologies like Pig, Scalding, Spark or even established stream processors like Storm or Spark Streaming.
https://www.bigdataspain.org/2017/talk/streaming-analytics-better-than-batch-when-and-why
Big Data Spain 2017
16th - 17th November Kinépolis Madrid
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)Wesley Beary
Cloud computing scared the crap out of me - the quirks and nightmares of provisioning cloud computing, dns, storage, ... on AWS, Terremark, Rackspace, ... - I mean, where do you even start?
Since I couldn't find a good answer, I undertook the (probably insane) task of creating one. fog gives you a place to start by creating abstractions that work across many different providers, greatly reducing the barrier to entry (and the cost of switching later). The abstractions are built on top of solid wrappers for each api. So if the high level stuff doesn't cut it you can dig in and get the job done. On top of that, mocks are available to simulate what clouds will do for development and testing (saving you time and money).
You'll get a whirlwind tour of basic through advanced as we create the building blocks of a highly distributed (multi-cloud) system with some simple Ruby scripts that work nearly verbatim from provider to provider. Get your feet wet working with cloud resources or just make it easier on yourself as your usage gets more complex, either way fog makes it easy to get what you need from the cloud.
The OpenStack Edition adds my concerns about OpenStack API development, including things that have already been fixed and things that we haven't yet encountered. Hopefully this consumer perspective can help shed light on some rough spots.
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/
Most AWS APIs will have limits on the amount of data you can send in one request and sometimes you really need to send a lot of data! To try to maximise the amount of data you can send, while still staying within the limits, some APIs support sending gzip-compressed payloads. But how can you send a gzipped request when using the Python SDK for AWS (boto3)? Well, I needed to answer this question recently and it turned out not to be as easy as I anticipated… Let’s jump into this rabbit hole together and let’s find out the answer!
Did you know that the .NET compiler turns our async methods into classes? And that .NET adds a try/catch block to each of these classes, potentially hiding thrown exceptions? It's true! In this session, we will learn how to best use async/await in C# by analyzing how .NET compiles our async code. Join me as we take an existing app and optimize its async code together, showing off performance gains, better exception handling, improved run-time speed, and smaller app size!
Did you know that the .NET compiler turns our async methods into classes? And that .NET adds a try/catch block to each of these classes, potentially hiding thrown exceptions? It's true! In this session, we will learn how to best use async/await in C# by analyzing how .NET compiles our async code. Join me as we take an existing app and optimize its async code together, showing off performance gains, better exception handling, improved run-time speed, and smaller app size!
Simplifying building & getting started with universal, single page applications (React/React-Router/Redux ecosystem).
https://github.com/raisemarketplace/ground-control
https://github.com/ndreckshage/sambell
Service worker: discover the next web game changerSandro Paganotti
This talk aims to introduce the upcoming ServiceWorker technology, its basic functionalities, its lifecycle and its most common use cases. Then it moves to analyse in detail a less obvious implementation of this technology: how to create a wiki engine using ServiceWorker and IndexedDB.
Streaming analytics better than batch – when and why by Dawid Wysakowicz and ...Big Data Spain
While a lot of problems can be solved in batch, the stream processing approach currently gives you more benefits. And it’s not only sub-second latency at scale. But mainly possibility to express accurate analytics with little effort – something that is hard or usually ignored with older batch technologies like Pig, Scalding, Spark or even established stream processors like Storm or Spark Streaming.
https://www.bigdataspain.org/2017/talk/streaming-analytics-better-than-batch-when-and-why
Big Data Spain 2017
16th - 17th November Kinépolis Madrid
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)Wesley Beary
Cloud computing scared the crap out of me - the quirks and nightmares of provisioning cloud computing, dns, storage, ... on AWS, Terremark, Rackspace, ... - I mean, where do you even start?
Since I couldn't find a good answer, I undertook the (probably insane) task of creating one. fog gives you a place to start by creating abstractions that work across many different providers, greatly reducing the barrier to entry (and the cost of switching later). The abstractions are built on top of solid wrappers for each api. So if the high level stuff doesn't cut it you can dig in and get the job done. On top of that, mocks are available to simulate what clouds will do for development and testing (saving you time and money).
You'll get a whirlwind tour of basic through advanced as we create the building blocks of a highly distributed (multi-cloud) system with some simple Ruby scripts that work nearly verbatim from provider to provider. Get your feet wet working with cloud resources or just make it easier on yourself as your usage gets more complex, either way fog makes it easy to get what you need from the cloud.
The OpenStack Edition adds my concerns about OpenStack API development, including things that have already been fixed and things that we haven't yet encountered. Hopefully this consumer perspective can help shed light on some rough spots.
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/
Most AWS APIs will have limits on the amount of data you can send in one request and sometimes you really need to send a lot of data! To try to maximise the amount of data you can send, while still staying within the limits, some APIs support sending gzip-compressed payloads. But how can you send a gzipped request when using the Python SDK for AWS (boto3)? Well, I needed to answer this question recently and it turned out not to be as easy as I anticipated… Let’s jump into this rabbit hole together and let’s find out the answer!
Did you know that the .NET compiler turns our async methods into classes? And that .NET adds a try/catch block to each of these classes, potentially hiding thrown exceptions? It's true! In this session, we will learn how to best use async/await in C# by analyzing how .NET compiles our async code. Join me as we take an existing app and optimize its async code together, showing off performance gains, better exception handling, improved run-time speed, and smaller app size!
Did you know that the .NET compiler turns our async methods into classes? And that .NET adds a try/catch block to each of these classes, potentially hiding thrown exceptions? It's true! In this session, we will learn how to best use async/await in C# by analyzing how .NET compiles our async code. Join me as we take an existing app and optimize its async code together, showing off performance gains, better exception handling, improved run-time speed, and smaller app size!
Simplifying building & getting started with universal, single page applications (React/React-Router/Redux ecosystem).
https://github.com/raisemarketplace/ground-control
https://github.com/ndreckshage/sambell
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
In the years spent on the front line managing open source projects and applications developed by distributed teams, I've managed to gather quite a few Git stories from the trenches. In this practically oriented talk, I will share some patterns and practices I have collected while on the front. We will first go through some useful git aliases, then touch on topics such as the various git branching models, long-running branches, conflict management, the rewriting of project history, etcetera. Oh and yes, the (in)famous Git rebase will be covered too.
AtlasCamp 2015 Docker continuous integration trainingSteve Smith
A 2-hour training session delivered at AtlasCamp in Prague, June 9th 2015.
* Docker vs virtual machines
* Docker concepts
* Docker for testing
* Automation with Docker Compose
* Continuous integration with Bamboo Docker support
* Extracting test results from Docker containers
* Continuous deployment with deployment environments
The shift to cloud computing means that organizations are undergoing a major shift as they develop scale-out infrastructure that can respond to apace of business change faster than ever before. Opscode Chef® is an open-source systems integration framework build specifically for
automating the cloud by making it easy to deploy and scale servers and applications throughout your infrastructure. Join us for this session
containing an introduction to Chef including:
An Overview of Chef
The Chef Architecture
Cookbook Components
System Integration
Live demo launching a Java Stack on Amazon EC2, Rackspace, Ubuntu, and
CentOS
[Presented as part of the Open Source Build a Cloud program on 2/29/2012 - http://cloudstack.org/about-cloudstack/cloudstack-events.html?categoryid=6]
Working with Git – a simple introduction for those used to working with a VCS like Subversion. Explains concepts and shows examples. Feel free to steal slides for your own purposes.
A Git Workflow is a recipe or recommendation for how to use Git to accomplish work in a consistent and productive manner. Git workflows encourage users to leverage Git effectively and consistently.
Check out this highlight training from the Automat-IT University trainers.
Tools and Process for Streamlining Mac DeploymentTimothy Sutton
This presentation was given at the MacSysAdmin 2016 conference in Gotebörg, Sweden. Session description follows:
Apple’s popularity and their approach to selling hardware is revolutionizing how IT gets that hardware into the hands of its users. Every year’s new Macs and OS X bring new changes, which doesn’t leave much time for the repetitive setup tasks that are involved in getting machines ready for users (or our testing!). It’s easy to fall behind on OS support, but we have no choice but to support the latest.
The Mac sysadmin community is blessed with so many great open-source tools at its disposal for deploying and managing Macs. We'll look at approaches and tools for automating these to bring speed, consistency and sanity to our deployment processes. By being more systematic, we can be more agile, and reclaim time to work on more important problems.
This session will focus on OS X hardware and tools, but the approaches discussed apply equally to iOS devices.
Advanced Mac Software Deployment and Configuration: Just Make It Work!Timothy Sutton
This presentation was given at the Mac Admin & Developer Conference UK in February 2017. Session description follows:
You’re dealing with terrible installer packages, applications that perform ad-hoc system setup tasks and assume every user is an admin. It seems so often they were never tested in multi-user or enterprise environments. Your colleagues wonder “How hard could this be? At home I just install it and it works,” and they roll their eyes as you bemoan the sad realities of deploying desktop software.
This session will explore techniques for identifying the causes of these issues, and how to approach the various problems systematically to develop solutions. In no particular order, we’ll visit Bash, Python, packaging, launchd, configuration profiles, defaults, and the Hopper Disassembler.
These slides accompanied a talk that was given at the MacDevOps YVR 2015 conference in Vancouver and the MacDeployment 2015 workshop at the University of Calgary.
These slides are brief, as the talk was mostly live demonstration. A video recording of the MacDevOps YVR presentation is available here:
http://macdevops.ca/MDO2015/tim/Default.html
This is from a 5-minute lightning talk that was presented at the Montreal-Python group:
http://montrealpython.org/en/2015/03/mp52
Video recording on YouTube here: https://www.youtube.com/watch?v=G2kSD3MU5uM
Session description:
Yes, we exist. And Python powers a lot of the popular open-source tools we use to manage Mac clients at a large scale. We'll tour a few of these FOSS projects and take a quick look at how the Python Objective-C bridge can be used to access OS X system APIs.
AutoPkg: Crowd-sourcing Mac packaging and deploymentTimothy Sutton
This session was presented at MacSysAdmin 2014 in Göteborg, Sweden, jointly presented by myself and Greg Neagle. Video recordings from this presentation and others can be found here: http://docs.macsysadmin.se/2014/2014doc.html
Session description follows:
Deploying software and updates is a mundane, daily routine for many Mac admins. We want to get our users the software they need, but software vendors don't make this easy for administrators. Instead, we maintain manual packaging notes and spend time wading through mailing list threads offering advice on deploying many commonly-used applications.
AutoPkg was built to solve this problem. We can put an application's updates, preparation and deployment steps together like building blocks, and best of all, we can share this recipe with others so we can all benefit from our work. We can stop making busywork for ourselves and concentrate on more interesting problems!
In this session we'll explore the ins and outs of using AutoPkg, as well as the project's genesis and how its community and usage has grown in the past year.
This session was presented at MacSysAdmin 2015 in Göteborg, Sweden. Video recordings can be found at: http://docs.macsysadmin.se/2015/2015doc.html
Session description follows:
As a Mac sysadmin, I've found some tasks I knew I was going to need to automate with scripts or die of boredom. And sometimes, what begins as a curious "Wouldn't it be cool if.." coding experiment evolves into something that solves a real problem.
Over time, I've built up a small collection of tools related to OS X deployment and automation that I've released on GitHub in the hopes that others might also find them useful. In this session I'll tour some of these utilities, explain how they came to be and demonstrate their use.
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.
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:
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.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
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
40. $
git:(master) >$
git:(master) ✗ >$
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
virtual
nothing added to commit but untracked files present (use "git add" to
track)
git status
cd munki-conditions
Submitting changes
cp /new/munki/condition/virtual .
46. git:(master) ✗ >$ git branch add-virtual
git:(master) ✗ >$ git checkout add-virtual
Switched to branch 'add-virtual'
git:(add-virtual) ✗ >$ git add virtual
git:(add-virtual) ✗ >$ git status
On branch add-virtual
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: virtual
git:(add-virtual) ✗ >$
Submitting changes
47. git:(master) ✗ >$ git branch add-virtual
git:(master) ✗ >$ git checkout add-virtual
Switched to branch 'add-virtual'
git:(add-virtual) ✗ >$ git add virtual
git:(add-virtual) ✗ >$ git status
On branch add-virtual
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: virtual
git:(add-virtual) ✗ >$ git commit
Submitting changes
48. # Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch add-virtual
# Changes to be committed:
# new file: virtual
#
Submitting changes
49. # Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch add-virtual
# Changes to be committed:
# new file: virtual
#
Adding new ‘virtual’ condition
Submitting changes
50. # Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch add-virtual
# Changes to be committed:
# new file: virtual
#
Adding new ‘virtual’ condition
- returns ‘physical’ on a physical Mac, ‘vmware’ on Fusion
Submitting changes
51. # Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch add-virtual
# Changes to be committed:
# new file: virtual
#
Adding new ‘virtual’ condition
- returns ‘physical’ on a physical Mac, ‘vmware’ on Fusion
:wq
Submitting changes
69. Pulling in changes
git:(master) >$ git log mactech/add-virtual
commit c633790b8405d30d2681ae6b912cf7d89dcad5bc
Author: MacTech 2014 <2014@mactech.com>
Date: Thu Oct 23 14:50:08 2014 -0400
Adding new 'virtual' condition
- returns 'physical' on a physical Mac, 'vmware' on Fusion
70. commit c633790b8405d30d2681ae6b912cf7d89dcad5bc
Author: MacTech 2014 <2014@mactech.com>
Date: Thu Oct 23 14:50:08 2014 -0400
Adding new 'virtual' condition
- returns 'physical' on a physical Mac, 'vmware' on Fusion
diff --git a/virtual b/virtual
new file mode 100755
index 0000000..7697495
--- /dev/null
+++ b/virtual
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
Pulling in changes
git:(master) >$ git log --patch mactech/add-virtual
71. index 0000000..7697495
--- /dev/null
+++ b/virtual
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# writes a condition: 'virtual', which can be:
+# - 'physical' if a physical machine
+# - 'vmware' if a VMware VM
+#
+# Designed to be analogous to the 'virtual' Facter fact. No
+# other virtualization platforms are supported currently.
+
+DEFAULTS=/usr/bin/defaults
+MUNKI_DIR=$("${DEFAULTS}" read /Library/Preferences/ManagedInstalls
ManagedInstallDir)
+COND_DOMAIN="${MUNKI_DIR}/ConditionalItems"
+KEY="virtual"
+
+VALUE="physical"
+if system_profiler SPHardwareDataType | grep Boot ROM | grep VMW; then
+ VALUE="vmware"
+fi
+
+"${DEFAULTS}" write "${COND_DOMAIN}" "${KEY}" "${VALUE}"
Pulling in changes