Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
It's All in the Tools
Search
Nathan Eror
April 25, 2014
Programming
0
280
It's All in the Tools
These slides are from the 2014 edition my talk "It's All in the Tools" for CocoaConf.
Nathan Eror
April 25, 2014
Tweet
Share
More Decks by Nathan Eror
See All by Nathan Eror
Concurrent and Asynchronous Programming with Grand Central Dispatch
neror
1
89
Practical UIKit: Creating Custom Views and Components
neror
0
190
Building Fun and Touchable Interfaces
neror
0
73
Using Core Animation
neror
0
270
Other Decks in Programming
See All in Programming
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
230
dotfiles 式年遷宮 令和最新版
masawada
1
680
俺流レスポンシブコーディング 2025
tak_dcxi
13
7.9k
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
19k
[SF Ruby Conf 2025] Rails X
palkan
0
450
無秩序からの脱却 / Emergence from chaos
nrslib
2
12k
20 years of Symfony, what's next?
fabpot
2
310
AWS CDKの推しポイントN選
akihisaikeda
1
240
Integrating WordPress and Symfony
alexandresalome
0
120
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
17
6.7k
AIコーディングエージェント(Manus)
kondai24
0
130
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
18k
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
380
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Facilitating Awesome Meetings
lara
57
6.7k
Writing Fast Ruby
sferik
630
62k
Become a Pro
speakerdeck
PRO
30
5.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Fireside Chat
paigeccino
41
3.7k
A Tale of Four Properties
chriscoyier
162
23k
Transcript
IT’S ALL IN THE TOOLS Nathan Eror @neror /
[email protected]
WHY?
WHAT?
USE THE KEYBOARD Stacking Modifiers ⌘⌥⌃ Jump Bar ⌃[1-6] a.k.a.
Optional Navigation
⌥ Is for Assistant Editor
None
None
None
BEHAVIORS RS BEHAVIO U
None
DEBUGGER
None
None
None
Advanced Breakpoints
Debugger Quick Look UIViewController+NEQuickLookDebug.m #import "UIViewController+NEQuickLookDebug.h" ! @implementation UIViewController (NEQuickLookDebug)
! #if DEBUG ! - (id)debugQuickLookObject { UIView *view = [self view]; UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.f); [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO]; UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return snapshotImage; } ! #endif ! @end
LLDB CUSTOMIZATION
.lldbinit custom summaries python scripting .lldbinit-Xcode
TERMINAL
Makefile SQLITE_DB_FILE=AppData.sqlite SIMULATOR_HOME=$(HOME)/Library/Application\ Support/iPhone\ Simulator ! dbshell: find $(SIMULATOR_HOME) -name
"$(SQLITE_DB_FILE)" -exec sqlite3 {} ';' ! killdb: find $(SIMULATOR_HOME) -name "$(SQLITE_DB_FILE)" -exec rm {} ';' ! dbschema: find $(SIMULATOR_HOME) -name "$(SQLITE_DB_FILE)" -exec sqlite3 {} .schema ';' ! dbdump: find $(SIMULATOR_HOME) -name "$(SQLITE_DB_FILE)" -exec sqlite3 {} .dump ';'
Shell - Redirection & Piping $ cat Makefile | pbcopy
...or... $ pbcopy < Makefile
Shell - Expansions $ ls screen.png $ cp screen{,_copy}.png $
ls screen.png screen_copy.png ... $ ls screen.png $ touch file{1,2,3} $ ls file1 file2 file3 screen.png
ALFRED BONUS!
None
None
DIY Python Ruby bash
Python #!/usr/bin/python ! from Quartz.CoreGraphics import * from Quartz.ImageIO import
* ! inurl = CFURLCreateWithFileSystemPath(None, "File.jpg", kCFURLPOSIXPathStyle, False) outurl = CFURLCreateWithFileSystemPath(None, "File_thumb.jpg", kCFURLPOSIXPathStyle, False) thumb_options = { kCGImageSourceCreateThumbnailWithTransform : True, kCGImageSourceCreateThumbnailFromImageAlways : True, kCGImageSourceThumbnailMaxPixelSize : 300 }; imgsrc = CGImageSourceCreateWithURL(inurl, thumb_options) thumb_image = CGImageSourceCreateThumbnailAtIndex(imgsrc, 0, thumb_options) ! outsrc = CGImageSourceCreateWithURL(outurl, thumb_options) ! dest = CGImageDestinationCreateWithURL(outurl, CGImageSourceGetType(outsrc), 1, None) CGImageDestinationAddImage(dest, thumb_image, None) CGImageDestinationFinalize(dest)
None
YOUR BODY IS A TOOL, TOO Eat Well Exercise Don’t
sit down all day!
THANK YOU Nathan Eror @neror
[email protected]
[email protected]