How I Got Well Played Revenge
Last fall I gave a four minute flash talk at our company meetup. Everyone is required to give one and it can be on any topic. I chose to tell a story about how I got revenge on my boss. [wpvideo k15SG13b]
Last fall I gave a four minute flash talk at our company meetup. Everyone is required to give one and it can be on any topic. I chose to tell a story about how I got revenge on my boss. [wpvideo k15SG13b]
Martin Fowler coined one of my favorite phrases while on a panel at the XP 2000 Conference regarding change and if your employer isn't willing to change: If you can't change your organization, change your organization!I don't think much of eXtreme Programming but I think the phrase itself applies itself to many things in life. Whenever someone asks me for advice about their jobs or careers I usually bring this phrase up at some point. The idea is, if you don't like what you're doing and your company isn't willing to invest in you or your ideas, then go somewhere else. I just like how elegantly short the quote is! ...
In the recent past I blogged about my trials and tribulations with my experiences with ADHD working at Automattic. I figured it was time to give a follow up on how things are going! Back in October last year I started on a medication called Vyvanse to help me cope with the problems that ADHD had been presenting. My ultimate goal with the medication trial was to keep it just that - a trial. I've lived with the spastic brain patterns all my life and I just wanted a few months of clarity so I knew what to work towards. Late February, I decided to take myself off the medication. ...
In the spirit of yesterday's post, I'm going to list out what I use every day in terms of software. This isn't exhaustive but it's pretty darn close. General Utilities1Password - Probably the best password manager out there combined with mobile appsCloudup - quick way to share images, videos, text (ask me for a referral code)Coffitivity - coffeehouse sounds to help boost productivityCyberduck - SFTP clientDaisyDisk - finding where all my space has goneDropboxEvernote - where I keep my larger notes, graphics, PDF filesParallels Desktop - for the occasional booting of old Mac OS & Windows VMsRadium - menu bar radio streamingRdio - monthly subscription-based song streamingRescueTime - track my app usage to determine if I'm distractedSimplenote - for my quick note taking needsSkype - sadly yesSlack - communication for our team - web socket-based system like HipChat but betterGraphicsAdobe Photoshop CC - go-to app for image editingAperture (more for personal use)Balsamiq Mockups - easy mockupsBartender - organize your menu bar extras areaCamtasia 2 - screen castsColor PickerJoin.me - easy screen sharing - I use it more for helping people fix computer problems remotelyPixelmatorSnagItDevelopment - GeneralBase - for digging around SQLite files; especially handy debugging Core DataCharles - proxying application for testing remote callsHockeyApp - binary distribution for testingKaleidoscope - arguably the most beautiful diff tool - ignore whitespace is still not a feature :(PHPStorm - for when I have to get into WordPress and WordPress.com API codingTextMate - Still my favorite text editorTextual - Mac IRC clientDevelopment - iOSAppCode - alternative IDE for Objective-C - I switch between Xcode and here for specific reasons (future post?)iExplorer - could not live without the ability to dig around device filesystemsPaintCode - easiest way to get Core Graphics code from images or hand-drawn UI elementsReflector - transmit your iOS device screen to your computer for recordingSpark Inspector - interactively debug your UIView layers & NSNotificationCenter callsXcodexScope - helpful UI tools for your MacDevelopment - AndroidAndroid StudioGenymotion - Android VM manager - lurv
I've moved my blog over to WordPress.com from my self-hosted server. I had to change the domain name to http://astralbodi.es because my old WordPress site had a funky permalink structure to match how my post links were with Octopress. So, for now, astralbodies.net will redirect to astralbodi.es and maintain any links over to the posts. Please let me know if you see any weird glitches, missing text, etc.
I always like seeing people's desk setups so I figured I would post mine. I didn't pretty everything up for the photo. UpDesk v1Retina MacBook Pro 15" + Thunderbolt DisplayiPad Air, iPod touch 5th gen, iPhone 4 + personal iPhone 5s taking the photoWired Apple keyboard (I like the number keypad)Magic MouseCreative GigaWorks T20 speakersVornado "Zippi" FanGriffin Elevator standSome crappy corner monitor stand from AmazonThe trippy light fixture is to help me with my attention span - it does help! - Homedics Mood Wave[Edit] A few additional items from conversations on Twitter and alike: ...
Giving a presentation with Xcode on screen? Don't forget about Presentation mode in Fonts & Colors! It doesn't help with the text size in the navigator but at least everyone will see your code nice and clear!
I've gone back and forth on the debate with whether or not we should be checking in the dependencies for a project supplied by CocoaPods. In the past I felt it was best to only check in the Podfile and maybe the lock file. I believe I've finally made a decision with recent experiences and my development practices with Git. I'm checking in the whole effing workspace. Why? Every branch, especially master, should be compilable and archivable up to a point. Caveat 1: Xcode is a piece of shit sometimes and will break things because it can between versions. Caveat 2: Provisioning Profiles. CocoaPods is a well-maintained tool, however, Specs are a crap-shoot. Specs can disappear. Specs can be unofficially maintained. Specs can be wrong. Checking in your Pods directory ensures the best possible snapshot of the pre-binary code. Forcing a pod install every time someone checks out code doesn't ensure the same state of code is maintained for testing bugs in previous versions. You may decide to drop Pods support and forget how to use it. Wouldn't it be nice to do diffs on your dependency classes? Xcode Bots doesn't work well enough yet with CocoaPods for me to want to install Pods every build I'm also not sold on Xcode Bots itself - it's quite unreliable and likes to smoke my server's CPU. CocoaPods needs to not be a hinderance - its pretty innocuous when the risky work (installing Pods) is done and checked in. That sums up my thoughts. I primarily work on WordPress for iOS which is a heavily forked and contributed to repository. I don't think the project could be a success with the amount of branching and pull requests performed if we didn't check in the Pods directory.
If you've done any work with background refresh (application:didReceiveRemoteNotification:fetchCompletionHandler:) on iOS 7 you know that it can be a pain to debug your code with. Some things I've discovered: Background refresh will start your app if it's not running.If you force-quit an application, it's not eligible to be started by a push notification. Restarting the app or rebooting is the only way to again receive background push wakes.You can't really debug wake by push other than with logging.Touching UI code in application:willFinishLaunchingWithOptions: is risky with background push since it fires but didFinishLaunchingWithOptions won't if it's immediately backgrounded. If you're using UIStateRestoration, make sure you're limiting UI code in willFinishLaunchingWithOptions to setting up the root view controller.Don't arbitrarily reset the badge count when your app is presented - you should really reset the badge count when the notification is viewed/considered no longer relevant.Update your push service to send "all clear" or zero count badges when things are read via other instances of your app (web, other iOS device, Android too). Your users will thank you that they're cleared everywhere.Take a look at Apple's documentation on app lifecycle - there is an excellent set of graphics to demonstrate where things hook in.
Nerds are notorious for being the most disinterested in staying fit - well at least our stereotype. I've definitely yo-yoed in weight over the years, being at my best weight about three years ago. Job and other life changes got me distracted and I ended up 40lb heavier in a relatively short amount of time. When I started working at home, I decided change was in order to make me a bit more aware of myself. I ended up getting a standing desk and a really great Herman Miller chair as part of my office setup when I started at Automattic. Standing throughout the day, and sitting at strategic points of fatigue and after exercise, has made a significant difference in my attention levels and I believe my overall health. ...