Return to Home Page for more news headlines and customizable, personalizable news and other searchable, personalizable news headlines.
spacer
spacer

 inessential.com

NGMoviePlayer - AVFoundation-based video player

I put up on bitbucket NGMoviePlayer — it uses AVFoundation to play movies. It does some of what MPMoviePlayerControllerView does.

(I had to write a custom movie player because of a bug in iOS 4 where after you play a movie that’s embedded in a UIWebView, MPMoviePlayerController won’t work as expected: it plays just a few frames and then automatically pauses the movie. <radr://8326264>)

In writing this code I used a few things that were new to me: AVFoundation, blocks, and UIGestureRecognizer. (I got to do some learnin’, in other words.) (I still have to support older OSes with most of my code, and sometimes it takes a while before I get to use the cool...
Link  Email item  

My personal VisiCalc moment

Every successful computing platform has to have a “VisiCalc moment” — the moment it goes from fun toy and technology demo to “holy crap this thing is useful.”

For the Apple II Plus that moment came the first time people saw VisiCalc. Imagine never having seen a spreadsheet on a computer — imagine always having done that stuff by hand. Then, for the first time, you enter some numbers and formulas into a computer and watch it calculate. Then edit some numbers and watch it recalculate. Pure magic. PFM.

I don’t think there’s a single VisiCalc moment that everyone will have for the iPad — but, for me personally, it was OmniFocus. That’s when my iPad went...
Link  Email item  

Flexibility and power

Whenever I think about new (or old) features in software, I think about whether they’re flexibility or power features.

They’re different things. Flexibility is the ability to change how software works; power is the ability to do more with less effort.

There’s a complicated relationship between the two things. Sometimes flexibility may add to power — if I could just make these things green, my eye could pick them out more easily, and I’d get my work done more quickly.

But flexibility detracts from power just as often — or more often. Flexibility is an invitation. It says, “Hey, futz with this. And this. And this. You’re not getting anything done, but at least you kind of...
Link  Email item  

RSTwitterCallGetXAuthAccessToken

I put up some sample code for getting an OAuth access token when calling https://api.twitter.com/oauth/access_token (for xAuth clients).

I was having trouble getting this working, so I wrote a one-.m-file, easy-to-debug class so I could make it work. It’s not meant to be used as-is, but it might be helpful to other folks writing apps that talk to Twitter.


Link  Email item  

Static analyzer rules (for me)

I so adore Build and Analyze.

I’ve developed a small set of rules I follow:

  • Always run static analysis. There’s a project setting called Run Static Analyzer — if you set it to true, it will always run the analyzer when you build the project. So I set it to true.

  • If the static analyzer finds a problem, I immediately add a TODO comment with a quick note about what needs to be done. Even if I think I’m going to fix it right away. (Because the phone might ring, cat might need dinner, and I’ll forget.)

  • If the static analyzer finds a false positive, I immediately add a comment along the lines of //Static analyzer false...
    Link  Email item  

    Follow up to memory management thing

    In the previous post I have an initWithString method that looks like this:

    - (id)initWithString:(NSString *)aString { self = [super init]; if (self == nil) return nil; something = [aString retain]; return self; }

    I knew, as I was typing it, that I’d get some feedback along the lines that I should use copy instead of retain.

    And I did.

    And it’s excellent advice, totally, no question. The reason to use copy instead of retain is because it enforces the expected immutability of that incoming string, so the caller is...
    Link  Email item  

    How I Manage Memory

    I’ve noticed, in looking at other people’s Cocoa code over the years, that sometimes people still do weird things with retain, release, and autorelease — as if they’re not quite sure on the basics of memory management yet.

    So I thought I’d talk about how I do things. There are three important points, then a practical explanation of one of them.

  • Overall memory use is a design issue. It’s not usually a case of over-using autorelease or something like that. (For instance: are all your objects in memory at all times, or do you use something like Core Data so you don’t have to do that?)

  • Memory management — the nuts and bolts of making sure you...
    Link  Email item  

    Casual

    I’m not sure what relative this is, but I love the picture’s Alfred E. Neuman vibe.

    All’s good here, yep


    Link  Email item  

    Road to beach

    My great-grandmother (on left) and her sisters (I think) on the road to the beach in New Jersey. Click thumbnail for bigger version.

    Road to beach


    Link  Email item  

    Put weblogs on bitbucket

    I’ve moved the repositories for inessential.com and ranchero.com to bitbucket and made them public read-only.

    ranchero.com repository
    inessential.com repository

    It’s just the raw stuff that gets rendered into weblog posts — it’s not the rendering scripts. There’s no actual software. Just a bunch of words.

    Not sure why I did this. Maybe just because I could. But sometimes big bunches of text can be useful for somebody somewhere.

    The actual posts are in the posts directory. Older posts are HTML, newer posts are written in Markdown. The lines at the top of each post that start with a @ character are metadata. Stuff between [[ and ]] are macros. Stuff between [[=...
    Link  Email item  

    Reminder about upgrading NetNewsWire

    I don’t usually use my personal weblog for this kind of thing — but it’s important for NetNewsWire users, so I want to make sure all bases are covered.

    A couple months ago we released updated versions of NetNewsWire that work with an upcoming change in Google Reader. That change (in the authentication system) goes into effect tomorrow (Tuesday). So it’s important to make sure you have the latest version.

    In a nutshell: you should have Mac 3.2.7 or greater (you can look at the About window). For iPhone and iPad, you should just check the App Store to make sure there isn’t an update waiting for you.

    More details are in a post on the...
    Link  Email item  

    Practical WWDC tips

    No time to write something long or organized this year. Quick notes, then.

    Drink plenty of water. Make sure there’s plenty of water in your hotel room.

    Try to avoid walking the streets at night alone. I wouldn’t say the streets are dangerous. But still.

    Avoid the Tenderloin.

    You are your fellow developers keeper. Be inclusive. Help anyone who needs help. Be that good person your grandmother imagines you are.

    You’re here to learn and see cool things. Part of that is telling other people about the cool things you’ve seen. (Related: you’re not here to complain.)

    Go to the ADA ceremony. When you don’t win (odds are you won’t win), remember that feeling.
    Link  Email item  

    BSSAXTweetParserDemo

    I had reason to look at MGTwitterEngine today. It had been a while since I looked at it, and I was reminded that the libxml-based parser in there was originally based on my BSTweetParser from a couple years ago. (Folks did a real nice job of improving it, of course.)

    But I don’t do my XML parsing like that anymore. I still use libxml, but I use the SAX interface these days.

    Here’s a new demo project — somewhat like the old BSTweetParser, but using SAX: BSSAXTweetParserDemo. (It’s an Xcode project folder with source.)

    I have no special unnatural love for SAX, like some people, but it’s the best way to get both...
    Link  Email item  

    More on Apps that work together – on iPad

    Bill Gray: “However, there’s still no way an app could ‘discover’ what other apps are available and what services they provide under this scenario, and that’s really clutch for this sort of thing...”

    Excellent point. It can be done without, but so much better if we had that.


    Link  Email item  

    Universal Back Button app

    Daniel Stødle: “The idea is to provide a back button that takes you back to the task you were working on, before you opened a file, clicked a link, or similar.”

    Clever and interesting. I bet I never would have thought to use the Apple events debug option to make this work. Cool.


    Link  Email item  

    Re: Apps that work together — on iPad

    Rainer Brockerhoff: Re: Apps that work together — on iPad: “I was thinking about the same issue, coincidentally, and one idea which occurred to me is to use the equivalent of the http referrer URL.”


    Link  Email item  

    Universal back button?

    On ollicle.com appears an extension to my idea about URL schemes on iPad: a universal back button on Macs. Very interesting. I like it.


    Link  Email item  

    Shared code management

    We have five Cocoa apps at NewsGator: TapLynx, Social Sites, and three versions of NetNewsWire. They share code.

    (You may not have heard of Social Sites. Written by Nick Harris, it’s an iPhone client for our Social Sites enterprise social networking app.)

    We’ve just been doing the copy-files thing. Not good. So below I present an (ever-so-slightly edited: took out two words) internal email I just sent about managing the shared code. This is as a sanity check: I think, given our tools, this is the best way to manage this stuff, but I wouldn’t mind hearing that there are other, better ways.

    The email: “Shared Code Plan”

    Here’s the issue: we have a...
    Link  Email item  

    Apps that work together — on iPad

    On Macs we have a long-standing culture of apps working together. I can think of a few examples from my own Mac app: you can send a podcast to iTunes, send an article to Twitterrific to tweet it, or send an article to MarsEdit to post it to your weblog.

    Of course, on a Mac, the calling app doesn’t quit when you do these things. It stays open. You can get right back to it. (In some cases, the calling app stays in front the whole time, like when sending a podcast from NetNewsWire to iTunes.)

    On the iPad (and iPhone) we can sort-of do the same thing. We don’t have AppleScript or Apple events, but we do...
    Link  Email item  

    Adam Curry on creating the Big App Show

    curry.com: “If my intuition is right, I think we might even see app programmers become the heroes of a generation, where fans can’t wait for the release of the next magical app their idol has become famous for.”


    Link  Email item  

    Website


  • Fatal error: Using $this when not in object context in /home/nuzee/public_html/inc/static/headlines.inc on line 124