Howdy, this is my personal online journal for whatever I feel like writing about.
How to make the Flip Mino HD import into iMovie 09
I just picked up a new Flip Mino HD and it’s pretty nice, but I was having problems getting it to import properly into iMovie 09. Likewise iMovie 09 was failing to import a number of other video files for no apparently good reason. Others have reported that import “just works”, but not for me.
I finally narrowed it down to bad QuickTime plugins. I had probably two dozen QuickTime plugins in /Library/QuickTime that I had accumulated over the years. Many of them I probably don’t need any longer thanks to Perian. I compared these to a stock Leopard install and removed everything else.
Once I removed these from the folder, everything worked fine. I can even import through the “import from camera” interface and not just via file import, as some have reported. The following files are in my /Library/QuickTime folder now, which include the stock Leopard plugins, as well as Flip4Mac and Perian:
- AC3MovieImport.component
- AppleIntermediateCodec.component
- AppleMPEG2Code.component
- Flip4Mac WMV Advanced.component
- Flip4Mac WMV Export.component
- Flip4Mac WMV Import.component
- Perian.component
I kept all of the other ones around, in case it turns out that I need them, but so far so good.
| Permalink | Comments[0] |
How to patch Xcode to work with Subversion 1.5
The latest version (3.1.2 as of this writing) of Xcode is linked to Subversion 1.4. Unfortunately, I tend to use the SVN integration as well as the command line, and would like to use subversion 1.5 – but the working directory formats are not compatible. After looking for solutions everywhere, I found a couple of possibilities, some that didn’t work, and some that almost worked.
One popular solution is to just copy offending shared libraries from svn 1.5 over those in /usr/lib. There are two problems with this. The first is that doing so you are messing with the default libraries and something may not be happy. In fact, apache isn’t happy. This solution appeared to work fine until I restarted apache and it complained about missing libraries. A better solution is as follows.
I originally found the basis of this solution on this thread, thanks to a follow up by Jean-Daniel Dupas and subsequent changes by Philippe Casgrain. The idea is to install svn 1.5 into /opt/local, leaving the stock svn and libraries untouched, and then patch the Xcode subversion plugin to use these new dynamic libraries. This is nice and clean, and leaves everything else in its original condition. It didn’t work entirely for me on the latest Xcode, so I updated the script accordingly. Here are the steps I followed:
Step 1: Install Subversion 1.5 binaries
Download subversion binaries and install them into /opt/local. Modify your search path to run subversion from this directory, or create appropriate aliases. This won’t effect Xcode directly yet, but gives you both subversion 1.4 and subversion 1.5 installed.
Step 2: Run the patch script
Quit Xcode. Download this SVN Xcode Patch o your computer, chmod 755 to make it executable, and run as super user. The first argument is the full path to the Xcode subversion plugin and the second is the root directory where svn libraries are installed. For example:
sudo UpdateXCodePluginToSVN1-5.sh /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin /opt/local/
The script makes a backup of the plugin first, feel free to make your own if you don’t trust it. It then uses install_name_tool to patch the executable to change its dynamic library paths from /usr/lib to /opt/lib. You’re done!
| Permalink | Comments[0] |
iTunes 8 on Windows XP x64
Finally found someone describing a way to install iTunes on XP64
“I went back to the iTunes download page in IE x64 (spoofing Vista’s UA) and started monitoring with Wireshark. I started the download, and Wireshark was able to see the URL that was being requested. I finally had the direct URL!http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iTunes8/061-5526.20080911.gtre4/iTunes864Setup.exe
Once the file was downloaded, I was able to proceed with the iTunes 7.6 guide. I extracted the MSI files out of iTunes864Setup.exe using 7-Zip. I installed the AppleMobileDeviceSupport64.msi file. I already had the QuickTime files from QT Lite. I opened up iTunes64.msi in Orca and changed the version from 600 to 501, then installed it. I installed the GEAR burning drivers. I skipped the last part about manually choosing the iPhone drivers, as I don’t have an iPhone and just want iTunes 8 for the HD features.
After rebooting to complete the GEAR driver installation and copying GEARAspiWDM.sys as the guide suggests, I no longer get the warning about CD burning upon starting iTunes. I was able to open up iTunes and watch the free HD episodes they’re currently offering.”
Via iTunes 8 on Windows XP x64 | PCTech.invisibill.net:
| Permalink | Comments[0] |
iPhone SDK Code Signing Insights
Sadly, the code signing continues to be the most frustrating and often time-consuming element of iPhone Development. The 2.1 SDK changed a few things, and force me to clarify a few other. Here’s what I’ve learned this time around.
Code Signing Identify
The way XCode matches your Code Signing Identify is by assuming a wildcard at the end of whatever you type, and matching against Common Name of your certificates. That means you can just leave it as “iPhone Developer:” if you only have a single development certificate. Of course if you have multiple certificates with the same name (or prefix) its ambiguous.
For example I have several companies, and several development certificates, but you can’t really use more than one on the same box unless you make up new names for yourself each time. So, the best solution seems to be just to have one development certificate per box – since it doesn’t really matter which certificate you use for development, just distribution.
Entitlements
The latest instructions say that you must add an Entitlements resource to the project, unchecking the get-task-allow box. You then specify the name of the Entitlements plist file (I use Entitlements.plist) in the build target.
Ok, so I don’t understand what the entitlements do, but I have figured out what is required. Entitlements didn’t seem to be required for 2.0, but starting with 2.1 it appears that they are required for Distribution profiles, but will cause problems if you set them up on development targets. If you specify an Entitlements plist in a development profile it won’t install on the phone. This seems to be new to 2.1
Target Identifier
Also new to 2.1, you need to set your build target’s “Identifier” property (via the Info screen of a target) to match that of your application ID. Assuming you use wildcards, you leave off the randomly generated prefix, and set it to something like: com.example.${PRODUCT_NAME:identifier}. This is a “must have” to create a distribution build that actually works.
| Permalink | Comments[1] |
Making iPhone Distribution Profiles Show Up
I’ve been having lots of trouble getting new or updated iPhone profiles to show up in XCode, and I think I may have finally stumbled on the answer. It appears that XCode does not re-scan the provisioning profiles from your library if you have the simulator as your default target.
After installing and reinstalling, starting and stopping XCode, iTunes, rebooting, etc for hours. I was testing the theory that maybe it doesn’t show the list of profiles if there’s only one by building for the device, and then examining the package. I did this and it did have a profile.
Then when I went back into XCode, my profiles list appeared! I’ll keep testing this theory but I think it’s the key. It feels like it fits with the pattern I’d seen before as things mysteriously appeared.
| Permalink | Comments[3] |
Objective-C static libraries and categories
If you are building iPhone or other Mac apps with the iPhone using static libraries, reading
Technical Q&A QA1490 will help you. I was getting a problem running with FMDB because it uses categories to extend the functionality of one of its classes and failing at runtime with a selector problem.
To resolve this issue, the static library should pass the -ObjC option to the linker. This flag causes the linker to load every object file in the library that defines an Objective-C class or category. While this option will typically result in a larger executable (due to additional object code loaded into the application), it will allow the successful creation of effective Objective-C static libraries that contain categories on existing classes.
In my case I had to put these flags on the primary application target (the one using the library) rather than the library itself, which strikes me as odd.
Update: You also have to add -all_load in some cases
| Permalink | Comments[6] |
A fix for Textile on Wordpress
Sometime a few months back DreamHost and BlueHost upgraded something that broke the Textile plugin for Wordpress. I finally found a fix with a beta Textile upgrade. Set it to “classic mode” and it all works great.
| Permalink | Comments[0] |
Flash loader for Linksys WRT54G v5
Found a way to upgrade the newer routers. It’s a hack that allows you to flash over linux. Be warned, I couldn’t get the TFTP push to work on my Mac, but it worked fine from Windows. Actually, it was from Windows running on my Mac via Parallels.
|
Read More... |
Permalink | Comments[0] |
How to make your blog more conversational
Excellent article from Editor and Publisher, aimed at more traditional websites, but equally applicable to blogs. Gives some good pointers on how to encourage readers to participate, ask questions, comment and so forth.
Any time you can get people engaged in a conversation you are going to drive more traffic, create a community, and benefit from the network effect.
|
Read More... |
Permalink | Comments[0] |
The Benefits of Posting on a Regular Schedule
I was talking to a successful blogging friend of mine at Gnomedex today about his thoughts on whether or not posting frequency and timing was important. Basically, I’ve been wondering if I’m only going to post 7 stories in a week, is it better to post them all at one, metered out 1 per day, or does it matter?
His thinking is that posting on a regular schedule “trains” Google’s crawlers to expect your posts and look for them more frequently. If you go a week or more between posts for example, the Google crawlers won’t bother checking back with you daily.
Of course this is all conjecture, but the theory is sound. Google’s got a lot of crawling to do, and they can’t crawl everything every day, so it make sense that they are going to have some sort of heuristic based on update frequency.
My friend’s blog shows up within 24 hours, and he’s been posting at the same time of day for the last couple of years, so this would seem to support his theory.
| Permalink | Comments[1] |