16 December 2011
iFonts 1.5 released with VoiceOver support
Hey, folks - iFonts 1.5 was just released with support for VoiceOver. This version also includes UI improvements on the about screen. If you don't already have an awesome app to display (and email!) all of the fonts included in iOS, get it on the App Store.
14 December 2011
Learn Thai Squiggles 1.1 released!
The best app for learning the Thai alphabet on your iPhone now has two vowels! Master the consonants and start learning the vowels with version 1.1 of Learn Thai Squiggles. Get it on the App Store.
13 October 2011
New fonts in iOS 5
iOS 5 introduces new fonts for iPhone, which now includes Papyrus, Gill Sans, additions to the Helvetica family, and more. Check them out with iFonts.
06 October 2011
Thanks, Steve
I love my job. I love writing apps for the best mobile operating system on the planet.
I have the privilege of doing what I love thanks to Steve Jobs. I write iOS apps for devices he invented. I do this on a MacBook Pro that he invented. I talk with clients on the iPhone he invented. And I really enjoy it.
Thanks, Steve, for making my job fun.
I have the privilege of doing what I love thanks to Steve Jobs. I write iOS apps for devices he invented. I do this on a MacBook Pro that he invented. I talk with clients on the iPhone he invented. And I really enjoy it.
Thanks, Steve, for making my job fun.
Mac App Store & Xcode
I'm really glad Apple put Xcode in the Mac App Store. I like getting delta updates for such a huge app.
I'd like it even more if Apple created a place in the Mac App Store for registered iOS developers where we could get delta updates for betas from the App Store as soon as they're released, rather than downloading another 2GB installer. The App Store has all the information it needs - you sign in with your Apple ID, which is what identifies you as a developer. Aside from being more convenient for developers, this would take some of the load off Apple's servers, too, right?
And while we're on the subject of being a developer - I'd like to be able to search iTunes any time for developer-only content, like the WWDC videos. Same applies here - I'm already signed in to iTunes with my Apple ID which is also my developer account, so they know I'm a developer. So why can't I just search for developer content?
Someday, maybe. Someday.
I'd like it even more if Apple created a place in the Mac App Store for registered iOS developers where we could get delta updates for betas from the App Store as soon as they're released, rather than downloading another 2GB installer. The App Store has all the information it needs - you sign in with your Apple ID, which is what identifies you as a developer. Aside from being more convenient for developers, this would take some of the load off Apple's servers, too, right?
And while we're on the subject of being a developer - I'd like to be able to search iTunes any time for developer-only content, like the WWDC videos. Same applies here - I'm already signed in to iTunes with my Apple ID which is also my developer account, so they know I'm a developer. So why can't I just search for developer content?
Someday, maybe. Someday.
11 August 2011
Core Data - Getting more from your errors
Great answer on Stack Overflow about getting more information from your Core Data errors.
04 July 2011
Your branch is ahead of 'origin/master' by 1 commit
Thanks to Wincent for describing how to get git to display this message. Basically it boils down to this:
Of course, if you're working on a different branch, just use your branch name instead of master in all three places above.
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
Of course, if you're working on a different branch, just use your branch name instead of master in all three places above.
25 June 2011
iFonts 1.4 has fonts in the email
The latest update to iFonts (your favorite iOS fonts app, I hope :)) now sends an email with the actual fonts instead of sending the entire list in Helvetica. The reason this wasn't included in previous versions was that it didn't look all that great in Gmail in the browser and I couldn't figure out how to make it look good. Now it still doesn't look great in Gmail in your browser, so if you want to see the actual fonts, open the email in Mail on your Mac or iOS device. It looks great in both of those. :) Oh, and it looks good in Sparrow, too.
22 June 2011
7 Mac Apps I Love
1Password
keeps all my passwords in one secure place, so I no longer have to (a) remember passwords or (b) reuse passwords (which is a terribly bad idea). Its browser plugins are excellent and make it fast & easy to login to websites.
Backblaze
securely backs up my Mac online. It runs in the background so I never notice it. It's reassuring to me to have everything backed up online in addition to my Time Capsule.
Sparrow
has an archive button! This means no more dragging Gmail messages around in Mail. The threaded conversations are great, too.
Alfred
launches every app I use on my Mac. It's by far my favorite app launcher - it has a great UI and it's much faster than Spotlight. I also use it to find files & folders when I can't remember where I put them...
Notational Velocity
is where I take notes on my Mac. It syncs with Simplenote, so I can also view and edit the notes on my iPad and iPhone.
Dropbox
syncs my 1Password passwords between my Mac, iPhone, iPad. I also use it for sharing files between team members - images, audio files, and a host of other things. It's great to be able to drop a file into a folder on my Mac and have it automatically show up on my teammate's computer.
ClipMenu
stores everything I've copied to my clipboard (well, the last 200 items or so). If you don't have a clipboard history app, you need one. I like that with ClipMenu I can type a few letters to quickly jump to a text clip to re-copy the item.
What Mac apps do you love?
keeps all my passwords in one secure place, so I no longer have to (a) remember passwords or (b) reuse passwords (which is a terribly bad idea). Its browser plugins are excellent and make it fast & easy to login to websites.
Backblaze
securely backs up my Mac online. It runs in the background so I never notice it. It's reassuring to me to have everything backed up online in addition to my Time Capsule.
Sparrow
has an archive button! This means no more dragging Gmail messages around in Mail. The threaded conversations are great, too.
Alfred
launches every app I use on my Mac. It's by far my favorite app launcher - it has a great UI and it's much faster than Spotlight. I also use it to find files & folders when I can't remember where I put them...
Notational Velocity
is where I take notes on my Mac. It syncs with Simplenote, so I can also view and edit the notes on my iPad and iPhone.
Dropbox
syncs my 1Password passwords between my Mac, iPhone, iPad. I also use it for sharing files between team members - images, audio files, and a host of other things. It's great to be able to drop a file into a folder on my Mac and have it automatically show up on my teammate's computer.
ClipMenu
stores everything I've copied to my clipboard (well, the last 200 items or so). If you don't have a clipboard history app, you need one. I like that with ClipMenu I can type a few letters to quickly jump to a text clip to re-copy the item.
What Mac apps do you love?
07 June 2011
Why Kiwi for iOS testing
I just decided on Kiwi for a project rather than OCMock + OCUnit. These are Kiwi's selling points for me:
- Stubbing class methods is simpler. With OCMock, I needed to create a special class (one per project - similar to this) to do method swizzling. No such problem with Kiwi - just [MyClass stub:@selector(doFoo) andReturn:myBar];
- Mock failures with Kiwi show up on the line that failed in Xcode (they showed up in strange places with OCMock).
- Kiwi's test failures produce descriptive, unambiguous error messages (as opposed to the not-so-helpful messages from OCMock & OCUnit).
- Syntax. should, equal, stub, mock, and more (rather than STAssertEqualObjects and other not-so-easy-to-read macros & methods). Check out the first code sample on the Setup page to decide for yourself.
- No need to [mock verify].
Update: The latest version of Kiwi does support debugging in blocks, so the Blocks Alternative is no longer necessary for debugging. I've removed the outdated information from this post.
16 May 2011
Two Keyboard Shortcuts for 1Password in Safari
Cmd-\ is Fill Login.
Cmd-Shift-\ is Go and Fill Login.
Not sure why it took me so long to discover these. They make logging into a website so much faster.
Are your passwords secure?
Update: Thanks to Simon for pointing out that these also work in Firefox.
Not sure why it took me so long to discover these. They make logging into a website so much faster.
Are your passwords secure?
Update: Thanks to Simon for pointing out that these also work in Firefox.
28 April 2011
Learn Thai Squiggles released!
Learn Thai Squiggles, an iPhone app we developed for learning the Thai alphabet, was just released! We're excited to see it in the App Store after months of hard work. Go get it and let us know what you think!
Thanks a ton to our testers for helping us to work out the bugs and make the app better!
Thanks a ton to our testers for helping us to work out the bugs and make the app better!
22 April 2011
Learn Thai iPhone app submitted
Hey, everyone - we're excited to announce that we just submitted the iPhone app we've been working on for the past few months! If you're interested in learning Thai, join the mailing list here so we can let you know when it's released!
12 April 2011
Learning Thai on your iPhone
Hey, all - we're currently working on an app for learning the Thai consonants. If you're interested in knowing when it makes it to the App Store so you can get it, you can sign up on this page.
07 April 2011
Xcode 4 - Running a nib file in the iOS Simulator
Xcode 4 has this great feature that allows you to see a nib file in the iOS Simulator. To use it, open a nib file in the editor, then in the menu bar click Editor > Simulate Document.
05 April 2011
Xcode 4 issue with git
I had an issue with Xcode 4 where it wasn't recognizing git even though git was installed. Xcode wasn't showing me what files I had modified nor was it allowing me to commit. Here's the article that solved my problem - basically, I just needed to create a symlink like this:
sudo ln -s /usr/local/git/bin/git /usr/bin/git
01 April 2011
Resident Dirty Memory in iOS
I asked about Resident Dirty Memory in iOS on Stack Overflow and haven't yet gotten an explanation. Do you know anything about it? I'd appreciate any explanations or help you can offer.
Update: thanks to Steve for answering and solving my problem!
Update: thanks to Steve for answering and solving my problem!
01 March 2011
Removing NSLogs on Release Builds
Great post - this is a really clean way to remove NSLogs from your release builds.
22 February 2011
How to Win Friends and Influence People
What a great book. I learned a ton about people and how I can influence them. Here are 10 things I learned that I'm applying to my life.
I'm learning to:
1. Praise sincerely and abundantly. People are more motivated to do something if someone notices and praises them for what they've done. I'm going to find the good things in people's actions, thoughts, and ideas and let them know.
2. Stop criticizing others. Ignoring undesired behavior is often enough to make it stop; actions that don't receive praise or attention tend to go away. I'm not going to criticize others' thoughts, ideas, or behavior unless absolutely necessary, but if it is necessary...
3. Criticize myself first. If I absolutely must criticize someone (see #2), I will criticize myself first. I'll talk about my own faults and missteps, then gently criticize what they've done wrong in a way that makes it seem easy to correct their behavior.
4. Give people my full attention. I will listen when someone's talking to me, give them eye contact, ask good questions, and show that I'm interested. They'll be a lot happier to do what I want if they know I like them enough to listen to their ideas, their thoughts, and their side of the story.
5. Give people a reason to want to do what I want. If I want somebody to do something, it's a lot easier to get them to want to do it than to command or force them to do it. I've found that this is especially true with my son - when I want him to wash his hands, he does a much better job and actually enjoys it when I tell him we can go play outside after we wash them. He wants to wash his hands if it means playing outside afterwards.
6. Get people to start saying yes. If they start saying yes, they're more likely to keep saying yes. Newton's first law applies to behavior as well as physics.
7. Stop arguing. Don't do it. Ever. No argument will ever change anyone's mind; therefore, arguing is not an effective way to get someone to do what I want. If I want to change someone's mind, it's better to listen to their side, agree with them (even if they're wrong), and allow them (help them) come to the conclusion I want. Arguing is harmful and unnecessary.
8. Be sympathetic. Listen to the other person's problems. If I get a nasty email about how terrible my app is, I will respond by agreeing with them. After all, they're right about something (the app probably doesn't do what they want). It's best to agree with them and then gently explain why it is the way it is. Sympathy makes us more human, and it's a good way to get on someone's good side.
9. Give people a good reputation to live up to. They will. Most people want to be honest, hard-working, smart, or good at what they do. If I want them to do something, I can explain to them how they're really good at it (much better than I am) and give them specific, honest praise about their skills in it.
10. Let people think ideas are their own, even if they're not. I'll present my ideas by asking questions and allowing the other person to come to the same conclusion I've come to so they can think the idea is their own. If someone thinks an idea is their own, they'll be much more likely to want to go through with it.
Have you read any good books lately?
I'm learning to:
1. Praise sincerely and abundantly. People are more motivated to do something if someone notices and praises them for what they've done. I'm going to find the good things in people's actions, thoughts, and ideas and let them know.
2. Stop criticizing others. Ignoring undesired behavior is often enough to make it stop; actions that don't receive praise or attention tend to go away. I'm not going to criticize others' thoughts, ideas, or behavior unless absolutely necessary, but if it is necessary...
3. Criticize myself first. If I absolutely must criticize someone (see #2), I will criticize myself first. I'll talk about my own faults and missteps, then gently criticize what they've done wrong in a way that makes it seem easy to correct their behavior.
4. Give people my full attention. I will listen when someone's talking to me, give them eye contact, ask good questions, and show that I'm interested. They'll be a lot happier to do what I want if they know I like them enough to listen to their ideas, their thoughts, and their side of the story.
5. Give people a reason to want to do what I want. If I want somebody to do something, it's a lot easier to get them to want to do it than to command or force them to do it. I've found that this is especially true with my son - when I want him to wash his hands, he does a much better job and actually enjoys it when I tell him we can go play outside after we wash them. He wants to wash his hands if it means playing outside afterwards.
6. Get people to start saying yes. If they start saying yes, they're more likely to keep saying yes. Newton's first law applies to behavior as well as physics.
7. Stop arguing. Don't do it. Ever. No argument will ever change anyone's mind; therefore, arguing is not an effective way to get someone to do what I want. If I want to change someone's mind, it's better to listen to their side, agree with them (even if they're wrong), and allow them (help them) come to the conclusion I want. Arguing is harmful and unnecessary.
8. Be sympathetic. Listen to the other person's problems. If I get a nasty email about how terrible my app is, I will respond by agreeing with them. After all, they're right about something (the app probably doesn't do what they want). It's best to agree with them and then gently explain why it is the way it is. Sympathy makes us more human, and it's a good way to get on someone's good side.
9. Give people a good reputation to live up to. They will. Most people want to be honest, hard-working, smart, or good at what they do. If I want them to do something, I can explain to them how they're really good at it (much better than I am) and give them specific, honest praise about their skills in it.
10. Let people think ideas are their own, even if they're not. I'll present my ideas by asking questions and allowing the other person to come to the same conclusion I've come to so they can think the idea is their own. If someone thinks an idea is their own, they'll be much more likely to want to go through with it.
Have you read any good books lately?
15 February 2011
Finding crash logs from your iPhone, iPad, or iPod touch
On your Mac:
~/Library/Logs/CrashReporter/MobileDevice/<your device's name>/
Note that new ones show up after you sync.
Thanks to Bjango for the tip.
~/Library/Logs/CrashReporter/MobileDevice/<your device's name>/
Note that new ones show up after you sync.
Thanks to Bjango for the tip.
05 February 2011
MacBook + Samsung P2370HD
I recently bought a Samsung P2370HD to use as a second monitor with my MacBook. It's a beautiful display. When I connected it to my MacBook via HDMI (using the excellent moshi adapter), the Samsung was blurry at 1080p, so I scoured some forums to figure out how to fix it.
The answer is simple: set the Samsung's HDMI Input name to PC.
On the Samsung, go to Menu > Input > Edit Name > HDMI > PC.
Further reading: http://forums.macrumors.com/showthread.php?t=959170
The answer is simple: set the Samsung's HDMI Input name to PC.
On the Samsung, go to Menu > Input > Edit Name > HDMI > PC.
Further reading: http://forums.macrumors.com/showthread.php?t=959170
Subscribe to:
Posts (Atom)