SlideShare a Scribd company logo
Mastering the
Project File
@micheletitolo
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
<<<<<<< HEAD
! ! ! ! A487DC9215FE5DCD0037E8A3 /* AppDelegate.h */,
! ! ! ! A487DC9315FE5DCD0037E8A3 /* AppDelegate.m */,
! ! ! ! D9CA01C11720AD7D00CBD2B2 /* View Controllers */,
=======
! ! ! ! D9CA01B71720AC3000CBD2B2 /* Base */,
! ! ! ! D9CA01BB1720AC3C00CBD2B2 /* Controllers */,
>>>>>>> new_ratings
Thursday, June 5, 14
Falling back to patching base and 3-way merge...
Auto-merging MyApp.xcodeproj/project.pbxproj
CONFLICT (content): Merge conflict in
! MyApp.xcodeproj/project.pbxproj
Failed to merge in the changes.
Patch failed at 0037 Launch screen images update
The copy of the patch that failed is found in:
! /tmp/git/.git/rebase-apply/patch
Thursday, June 5, 14
It’s not that special
Thursday, June 5, 14
Thursday, June 5, 14
.xcodeproj
Thursday, June 5, 14
It’s a folder
Thursday, June 5, 14
Thursday, June 5, 14
Two kinds of files
Thursday, June 5, 14
Plist and XML
Thursday, June 5, 14
All the settings
Thursday, June 5, 14
Schemes, too
Thursday, June 5, 14
Thursday, June 5, 14
project.xcworkspace
Thursday, June 5, 14
another “special” folder
Thursday, June 5, 14
Thursday, June 5, 14
contents.xcworkspacedata
Thursday, June 5, 14
references .xcodeproj
Thursday, June 5, 14
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:MyApp.xcodeproj">
</FileRef>
</Workspace>
Thursday, June 5, 14
Not just in .xcodeproj
Thursday, June 5, 14
project.pbxproj
Thursday, June 5, 14
it’s a plist
Thursday, June 5, 14
a very special plist
Thursday, June 5, 14
the heart of your project
Thursday, June 5, 14
let’s look inside
Thursday, June 5, 14
// !$*UTF8*$!
{
! archiveVersion = 1;
! classes = {
! };
! objectVersion = 46;
! objects = {
/* Begin PBXBuildFile section */
! ! 8A9D5590A3E24AC297598750 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef...
! ! D94D3E72170B80FB00EA401C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; f...
! ! D94D3E74170B80FB00EA401C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFi...
! ! D94D3E76170B80FB00EA401C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuild...
! ! D94D3E7C170B80FB00EA401C /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; ...
! ! D94D3E7E170B80FB00EA401C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D94...
! ! D94D3E82170B80FB00EA401C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRe...
! ! D94D3E84170B80FB00EA401C /* Default.png in Resources */ = {isa = PBXBuildFile; fileRe...
! ! D94D3E86170B80FB00EA401C /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fil...
! ! D94D3E88170B80FB00EA401C /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile...
Thursday, June 5, 14
Thursday, June 5, 14
Let’s break it down
Thursday, June 5, 14
‘objects’ and ‘root_object’
Thursday, June 5, 14
‘objects’
Thursday, June 5, 14
objects = {
D94D3E72170B80FB00EA401C = {...};
D94D3E74170B80FB00EA401C = {...};
D94D3E76170B80FB00EA401C = {...};
532ABB3011D5647300D29D20 = {...};
532ABB3111D5647300D29D20 = {...};
532ABB3211D5647300D29D20 = {...};
532ABB3311D5647300D29D20 = {...};
};
Thursday, June 5, 14
Every object has a UID
Thursday, June 5, 14
objects = {
532ABB3011D5647300D29D20 = {...};
532ABB3111D5647300D29D20 = {...};
532ABB3211D5647300D29D20 = {...};
532ABB3311D5647300D29D20 = {...};
};
0
1
2
3
Thursday, June 5, 14
‘root_object’
Thursday, June 5, 14
04A4CCDA164D5E0400FB5950 /* Project object */ = {
! isa = PBXProject;
! attributes = {
! ! CLASSPREFIX = MRT;
! ! LastUpgradeCheck = 0450;
! ! ORGANIZATIONNAME = "Michele Titolo";
! };
! buildConfigurationList = 04A4CCDD164D5E0400FB5950;
! compatibilityVersion = "Xcode 3.2";
! developmentRegion = English;
! hasScannedForEncodings = 0;
! knownRegions = (
! ! en,
! );
! mainGroup = 04A4CCD8164D5E0400FB5950;
! productRefGroup = 04A4CCE4164D5E0400FB5950 /* Products */;
! projectDirPath = "";
! projectRoot = "";
! targets = (
! ! 04A4CCE2164D5E0400FB5950 /* MyApp */,
! ! D9D2509C173AB9AD0046F074 /* MyApp Test */,
! ! D9E6BA6A177CDB9C00C98B08 /* MyApp KIF */,
! );
};
Thursday, June 5, 14
04A4CCDA164D5E0400FB5950 /* Project object */ = {
! isa = PBXProject;
! attributes = {
! ! CLASSPREFIX = MRT;
! ! LastUpgradeCheck = 0450;
! ! ORGANIZATIONNAME = "Michele Titolo";
! };
! buildConfigurationList = 04A4CCDD164D5E0400FB5950;
! compatibilityVersion = "Xcode 3.2";
! developmentRegion = English;
! hasScannedForEncodings = 0;
! knownRegions = (
! ! en,
! );
! mainGroup = 04A4CCD8164D5E0400FB5950;
! productRefGroup = 04A4CCE4164D5E0400FB5950 /* Products */;
! projectDirPath = "";
! projectRoot = "";
! targets = (
! ! 04A4CCE2164D5E0400FB5950 /* MyApp */,
! ! D9D2509C173AB9AD0046F074 /* MyApp Test */,
! ! D9E6BA6A177CDB9C00C98B08 /* MyApp KIF */,
! );
};
isa
mainGroup
targets
buildConfigurationList
Thursday, June 5, 14
isa = PBXProject;
Thursday, June 5, 14
mainGroup = A487DC7415FE5DCD0037E8A3;
Thursday, June 5, 14
targets = (
! 1D6058900D05DD3D006BFB54 /* MyApp */,
! D94C698916E6E808002BDD31 /* MyApp Test */,
! D9E1D32A16E6FCC100C0524D /* MyApp Pro */,
);
Thursday, June 5, 14
projectReferences = (
! {
! ! ProductGroup = D94C698116E6E7DE002BDD31 /* Products */;
! ! ProjectRef = D94C698016E6E7DE002BDD31 /* KIF.xcodeproj */;
! },
);
Thursday, June 5, 14
buildConfigurationList = C01FCF4E08A954540054247B
Thursday, June 5, 14
Classes
Thursday, June 5, 14
PBXAggregateTarget
PBXBuildRule
PBXContainerItemProxy
PBXCopyFilesBuildPhase
PBXFileReference
PBXFrameworksBuildPhase
PBXGroup
PBXHeadersBuildPhase
PBXLegacyTarget
PBXNativeTarget
PBXProject
PBXReferenceProxy
PBXResourcesBuildPhase
PBXShellScriptBuildPhase
PBXSourcesBuildPhase
PBXTargetDependency
PBXVariantGroup
XCBuildConfiguration
XCConfigurationList
XCVersionGroup
Thursday, June 5, 14
Thursday, June 5, 14
Thursday, June 5, 14
XCBuildConfiguration
Thursday, June 5, 14
Thursday, June 5, 14
Debug and Release
Thursday, June 5, 14
Compiler flags
Thursday, June 5, 14
04A4CD07164D5E0400FB5950 /* Debug */ = {
! isa = XCBuildConfiguration;
! baseConfigurationReference = 4B98CBDFD81F4259923E97CE;
! buildSettings = {
! ! CODE_SIGN_IDENTITY = "iPhone Developer";
! ! "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
! ! GCC_PRECOMPILE_PREFIX_HEADER = YES;
! ! GCC_PREFIX_HEADER = "MyApp/MyApp-Prefix.pch";
! ! GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
! ! INFOPLIST_FILE = "MyApp/MyApp-Info.plist";
! ! PRODUCT_NAME = "$(TARGET_NAME)";
! ! PROVISIONING_PROFILE = "";
! ! "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
! ! WRAPPER_EXTENSION = app;
! };
! name = Debug;
};
PROVISIONING_PROFILE
PRODUCT_NAME
INFOPLIST_FILE
GCC_VERSION
CODE_SIGN_IDENTITY
name
Thursday, June 5, 14
Swift
Thursday, June 5, 14
SWIFT_OBJC_BRIDGING_HEADER = "MyApp-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
Thursday, June 5, 14
Project or Target
Thursday, June 5, 14
PBXNativeTarget
Thursday, June 5, 14
04A4CCE2164D5E0400FB5950 /* MyApp */ = {
! isa = PBXNativeTarget;
! buildConfigurationList = 04A4CD06164D5E0400FB5950 /* Build
configuration list for PBXNativeTarget "MyApp" */;
! buildPhases = (
! ! 29390B06A9D3479F9566AA27 /* Check Pods Manifest.lock */,
! ! 04A4CCDF164D5E0400FB5950 /* Sources */,
! ! 04A4CCE0164D5E0400FB5950 /* Frameworks */,
! ! 04A4CCE1164D5E0400FB5950 /* Resources */,
! ! F3BAB5EA93C24AE18A4EE832 /* Copy Pods Resources */,
! );
! buildRules = ();
! dependencies = ();
! name = MyApp;
! productName = MyApp;
! productReference = 04A4CCE3164D5E0400FB5950 /* MyApp.app */;
! productType = "com.apple.product-type.application";
};
buildPhases
name
buildConfigurationList
productName
Thursday, June 5, 14
Build phase types
Thursday, June 5, 14
PBXResourcesBuildPhase
==
Copy Bundle Resources
Thursday, June 5, 14
PBXSourcesBuildPhase
==
Compile Sources
Thursday, June 5, 14
PBXFrameworksBuildPhase
==
Link Binary With Libraries
Thursday, June 5, 14
PBXShellScriptBuildPhase
==
Run Script
Thursday, June 5, 14
F3BAB5EA93C24AE18A4EE832 /* Copy Pods Resources */ = {
! isa = PBXShellScriptBuildPhase;
! buildActionMask = 2147483647;
! files = ();
! inputPaths = ();
! name = "Copy Pods Resources";
! outputPaths = ();
! runOnlyForDeploymentPostprocessing = 0;
! shellPath = /bin/sh;
! shellScript = ""${SRCROOT}/Pods/Pods-resources.sh"n";
};
shellScript
Thursday, June 5, 14
xcuserdata
Thursday, June 5, 14
User-specific info
Thursday, June 5, 14
.xcuserdatad
Thursday, June 5, 14
Schemes & breakpoints
Thursday, June 5, 14
xcschememanagement.plist
Thursday, June 5, 14
MyApp.xcscheme
Thursday, June 5, 14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://
www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
! <key>SchemeUserState</key>
! <dict>
! ! <key>MyApp.xcscheme_^#shared#^_</key>
! ! <dict>
! ! ! <key>orderHint</key>
! ! ! <integer>1</integer>
! ! </dict>
! </dict>
! <key>SuppressBuildableAutocreation</key>
! <dict>
! ! <key>1D6058900D05DD3D006BFB54</key>
! ! <dict>
! ! ! <key>primary</key>
! ! ! <true/>
! ! </dict>
! </dict>
</dict>
</plist>
MyApp.xcscheme_^#shared#^_
Thursday, June 5, 14
Thursday, June 5, 14
.gitignore’d
Thursday, June 5, 14
xcshareddata
Thursday, June 5, 14
.xcschemes
Thursday, June 5, 14
xml
Thursday, June 5, 14
Don’t .gitignore
Thursday, June 5, 14
The Big Picture
Thursday, June 5, 14
Thursday, June 5, 14
.pbxproj: It’s just a plist
Thursday, June 5, 14
.xcworkspace: It’s XML
Thursday, June 5, 14
xcshareddata: Has plists
Thursday, June 5, 14
xcuserdata: Has plists
Thursday, June 5, 14
Thursday, June 5, 14
git
Thursday, June 5, 14
Merge Conflicts
Thursday, June 5, 14
project.pbxproj
Thursday, June 5, 14
1. Check the comments
Thursday, June 5, 14
2. Pick 1 UID
Thursday, June 5, 14
3. Rebase early and often
Thursday, June 5, 14

More Related Content

Similar to Mastering the Project File (AltConf)

Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
Mike Desjardins
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
Diego Freniche Brito
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without SwearingCreating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearingmartinwolak
 
Snp tables documentation
Snp tables documentationSnp tables documentation
Snp tables documentation
Mahesh Birajdar
 
Weapons for Boilerplate Destruction
Weapons for Boilerplate DestructionWeapons for Boilerplate Destruction
Weapons for Boilerplate Destruction
Everyware Technologies
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14
Diego Freniche Brito
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
Toshiaki Maki
 
Publishing a Perl6 Module
Publishing a Perl6 ModulePublishing a Perl6 Module
Publishing a Perl6 Module
ast_j
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
YoungHeon (Roy) Kim
 
Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2
Jeff Potts
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programmingjoaopmaia
 
Oracle API Gateway Installation
Oracle API Gateway InstallationOracle API Gateway Installation
Oracle API Gateway Installation
Rakesh Gujjarlapudi
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
Lar21
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Acquia
 
Get into the FLOW with Extbase
Get into the FLOW with ExtbaseGet into the FLOW with Extbase
Get into the FLOW with Extbase
Jochen Rau
 
"I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more."I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more.
Fabio Milano
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Sarp Erdag
 
Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Daniel Ibrahim
 

Similar to Mastering the Project File (AltConf) (20)

Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013Core data intermediate Workshop at NSSpain 2013
Core data intermediate Workshop at NSSpain 2013
 
Creating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without SwearingCreating WordPress Theme Faster, Smarter & Without Swearing
Creating WordPress Theme Faster, Smarter & Without Swearing
 
Snp tables documentation
Snp tables documentationSnp tables documentation
Snp tables documentation
 
Weapons for Boilerplate Destruction
Weapons for Boilerplate DestructionWeapons for Boilerplate Destruction
Weapons for Boilerplate Destruction
 
appledoc_style
appledoc_styleappledoc_style
appledoc_style
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
 
Publishing a Perl6 Module
Publishing a Perl6 ModulePublishing a Perl6 Module
Publishing a Perl6 Module
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
 
Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2Optaros Surf Code Camp Walkthrough 2
Optaros Surf Code Camp Walkthrough 2
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programming
 
Oracle API Gateway Installation
Oracle API Gateway InstallationOracle API Gateway Installation
Oracle API Gateway Installation
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
 
Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8Drupal 8 Every Day: An Intro to Developing With Drupal 8
Drupal 8 Every Day: An Intro to Developing With Drupal 8
 
Get into the FLOW with Extbase
Get into the FLOW with ExtbaseGet into the FLOW with Extbase
Get into the FLOW with Extbase
 
занятие8
занятие8занятие8
занятие8
 
"I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more."I have a framework idea" - Repeat less, share more.
"I have a framework idea" - Repeat less, share more.
 
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
Hızlı Cocoa Geliştirme (Develop your next cocoa app faster!)
 
Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5Indexed primefaces users_guide_3_5
Indexed primefaces users_guide_3_5
 

More from Michele Titolo

Writing Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide Audiences
Michele Titolo
 
Beam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big Data
Michele Titolo
 
APIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The Ugly
Michele Titolo
 
Tackling the Big, Impossible Project
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible Project
Michele Titolo
 
No Microservice is an Island
No Microservice is an IslandNo Microservice is an Island
No Microservice is an Island
Michele Titolo
 
From iOS to Distributed Systems
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed Systems
Michele Titolo
 
More than po: Debugging in LLDB
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDB
Michele Titolo
 
APIs for the Mobile World
APIs for the Mobile WorldAPIs for the Mobile World
APIs for the Mobile World
Michele Titolo
 
Swift Generics in Theory and Practice
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and Practice
Michele Titolo
 
Protocols promised-land-2
Protocols promised-land-2Protocols promised-land-2
Protocols promised-land-2
Michele Titolo
 
Multitasking
MultitaskingMultitasking
Multitasking
Michele Titolo
 
Making friendly-microservices
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservices
Michele Titolo
 
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
Michele Titolo
 
The Worst Code
The Worst CodeThe Worst Code
The Worst Code
Michele Titolo
 
More than `po`: Debugging in lldb
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
Michele Titolo
 
Can't Handle My Scale v2
Can't Handle My Scale v2Can't Handle My Scale v2
Can't Handle My Scale v2
Michele Titolo
 
Can't Handle My Scale
Can't Handle My ScaleCan't Handle My Scale
Can't Handle My Scale
Michele Titolo
 
Cocoa Design Patterns in Swift
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in Swift
Michele Titolo
 
That's Not My Code!
That's Not My Code!That's Not My Code!
That's Not My Code!
Michele Titolo
 

More from Michele Titolo (20)

Writing Design Docs for Wide Audiences
Writing Design Docs for Wide AudiencesWriting Design Docs for Wide Audiences
Writing Design Docs for Wide Audiences
 
Beam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big DataBeam Me Up: Voyaging into Big Data
Beam Me Up: Voyaging into Big Data
 
APIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The UglyAPIs: The Good, The Bad, The Ugly
APIs: The Good, The Bad, The Ugly
 
Tackling the Big, Impossible Project
Tackling the Big, Impossible ProjectTackling the Big, Impossible Project
Tackling the Big, Impossible Project
 
No Microservice is an Island
No Microservice is an IslandNo Microservice is an Island
No Microservice is an Island
 
From iOS to Distributed Systems
From iOS to Distributed SystemsFrom iOS to Distributed Systems
From iOS to Distributed Systems
 
More than po: Debugging in LLDB
More than po: Debugging in LLDBMore than po: Debugging in LLDB
More than po: Debugging in LLDB
 
APIs for the Mobile World
APIs for the Mobile WorldAPIs for the Mobile World
APIs for the Mobile World
 
Swift Generics in Theory and Practice
Swift Generics in Theory and PracticeSwift Generics in Theory and Practice
Swift Generics in Theory and Practice
 
Protocols promised-land-2
Protocols promised-land-2Protocols promised-land-2
Protocols promised-land-2
 
Multitasking
MultitaskingMultitasking
Multitasking
 
Making friendly-microservices
Making friendly-microservicesMaking friendly-microservices
Making friendly-microservices
 
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015More Than po: Debugging in LLDB @ CocoaConf SJ 2015
More Than po: Debugging in LLDB @ CocoaConf SJ 2015
 
The Worst Code
The Worst CodeThe Worst Code
The Worst Code
 
More than `po`: Debugging in lldb
More than `po`: Debugging in lldbMore than `po`: Debugging in lldb
More than `po`: Debugging in lldb
 
Can't Handle My Scale v2
Can't Handle My Scale v2Can't Handle My Scale v2
Can't Handle My Scale v2
 
Can't Handle My Scale
Can't Handle My ScaleCan't Handle My Scale
Can't Handle My Scale
 
Cocoa Design Patterns in Swift
Cocoa Design Patterns in SwiftCocoa Design Patterns in Swift
Cocoa Design Patterns in Swift
 
APIs: The Ugly
APIs: The UglyAPIs: The Ugly
APIs: The Ugly
 
That's Not My Code!
That's Not My Code!That's Not My Code!
That's Not My Code!
 

Recently uploaded

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

Mastering the Project File (AltConf)