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
280
Other Decks in Programming
See All in Programming
Basic Architectures
denyspoltorak
0
120
Grafana:建立系統全知視角的捷徑
blueswen
0
200
Java 25, Nuevas características
czelabueno
0
110
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
890
クラウドに依存しないS3を使った開発術
simesaba80
0
160
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
260
JETLS.jl ─ A New Language Server for Julia
abap34
2
450
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
290
AIコーディングエージェント(NotebookLM)
kondai24
0
230
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
210
AIコーディングエージェント(Gemini)
kondai24
0
270
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
170
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
Tell your own story through comics
letsgokoyo
0
760
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
Practical Orchestrator
shlominoach
190
11k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
49
From π to Pie charts
rasagy
0
91
Building Adaptive Systems
keathley
44
2.9k
Music & Morning Musume
bryan
46
7k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
27
Designing for Performance
lara
610
69k
Six Lessons from altMBA
skipperchong
29
4.1k
Docker and Python
trallard
47
3.7k
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]