Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
270
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
80
Practical UIKit: Creating Custom Views and Components
neror
0
180
Building Fun and Touchable Interfaces
neror
0
69
Using Core Animation
neror
0
250
Other Decks in Programming
See All in Programming
🔨 小さなビルドシステムを作る
momeemt
4
680
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
510
OSS開発者という働き方
andpad
5
1.7k
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
200
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
旅行プランAIエージェント開発の裏側
ippo012
2
910
個人軟體時代
ethanhuang13
0
320
概念モデル→論理モデルで気をつけていること
sunnyone
2
160
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
450
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
420
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
860
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
It's Worth the Effort
3n
187
28k
Building an army of robots
kneath
306
46k
Making Projects Easy
brettharned
117
6.4k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
A designer walks into a library…
pauljervisheath
207
24k
Navigating Team Friction
lara
189
15k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
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]