Fri, 14 October 2011

With the release of iOS 5, the iPhone now has the same fonts as the iPad. There are 58 font families with a total of 162 variations. Even better, all fonts are now accessible through CSS in Mobile Safari, so unlike what I had to do for my previous post, there’s no need to use images anymore for displaying all font variations on the iPhone. There’s a good overview on iosfonts.com.

Thu, 25 August 2011

With the release of Lion, Core Data now makes it very easy to store large chunks of data, e.g. large media files, in the filesystem instead of in the database. This is a quote from the “Core Data Release Notes for Mac OS X Lion”:

“Small data values like image thumbnails may be efficiently stored in a database, but large photos or other media are best handled directly by the file system. You can now specify that the value of a managed object attribute may be stored as an external record—see setAllowsExternalBinaryDataStorage:. When enabled, Core Data heuristically decides on a per-value basis if it should save the data directly in the database or store a URI to a separate file which it manages for you.”

When I read this, two questions came to mind: where are these external files stored and how large does the data have to be before Core Data decides to store it externally? This doesn’t seem to be documented anywhere and I’m sure it’s subject to change, but this is what I’ve figured out.

The files are stored in the same location as the main database file(s), but they’re in a hidden folder. For example, if the application is called MyLionApp and its persistent store is located in the ~/Library/MyLionApp folder, the external files would be stored in ~/Library/MyLionApp/.MyLionApp_SUPPORT/_EXTERNAL_DATA/.

To find out the data size that’s needed for Core Data to store objects externally, I made a small app that creates NSData objects in 100kB increments. At first it seemed that none of the objects were stored externally, even if they were 1GB large, until I figured out that the data store can’t be NSXMLStoreType for external storage to work. After setting the store type to NSSQLiteStoreType I found that the limit is 1MB. Objects that are smaller than 1MB are stored in the database. For objects that are larger, an external file is created and the database just stores a reference to it.

If you want to use this new feature in Lion, all you need to do is check the Allows External Storage in Xcode for each Binary Data attribute that you would like Core Data to store this way.

Xcode screenshot

Wed, 20 July 2011

AppControls 1.4 was released a few hours ago, just in time for Lion. This free update adds support for Lion’s Full Screen mode. It will also let you create much larger controls now. Go update it in the Mac App Store.

Wed, 11 May 2011

It’s a lot of work, but it’s becoming a yearly tradition: the pre-WWDC screen-printing of t-shirts. For the next three days, you can order a genuine, bona fide, electrified, six-car monorail Blue Crowbar t-shirt.

Thu, 10 March 2011

After installing iOS 4.3, I couldn’t find the new Personal Hotspot feature on my iPhone 4. Thanks to a tip from @Cgodefroy on Twitter, I figured out how to activate it. This will work for Proximus customers in Belgium.

Open the Settings app and navigate to General > Network > Cellular Data Network > Internet Tethering and enter internet.proximus.be in the APN field. You don’t need to provide a username or password. If you then quit and open the Settings app again, you should see the Personal Hotspot option. If you don’t, you can open the Network settings again and enable it there.

Thu, 6 January 2011

I’m very proud to announce that Blue Crowbar now has two apps in the brand new Mac App Store.
Go check them out! (they’re both in the Developer Tools category)

Tue, 14 December 2010

I’ve recently come across a few websites that give an overview of the fonts that are available on iOS devices. Daring Fireball linked to one of these sites yesterday: iosfonts.com. The problem with a lot of these overviews is that they aren’t complete. They’re based on the font variations that are available when you use Cocoa’s UIFont class. Since the release of iOS 3.2 on the iPad, iOS includes the low-level Core Text technology for handling text layout and fonts. Core Text doesn’t give you access to more fonts, but it provides support for a lot more font variations. To give an example: Helvetica Neue has 4 variations when you use UIFont whereas it has 11 variations when using Core Text.

This is an overview of all user fonts that are available on iPhone and iPad in iOS 4.2. To make them display exactly like you’ll see them on iOS (and to be able to see them in Mobile Safari), they’re created on an iPad and rendered as images. I already know I’m going to regret the extra bandwidth.

iPhoneiPad

Thu, 9 December 2010

Photographer Nathan Smith has made a great video tutorial on how to watermark photos in Aperture 3. The second part of the video shows how you can use the Impression for Aperture plug-in. Even if you already know how to create watermarks (with or without the help of Impression), you might find this useful as it explains how to create a watermark image that automatically scales with the size of your photos.

You can watch the video here.

Wed, 24 November 2010

In AppControls version 1.2, the minimum size for designs is reduced from 12 to 8 pixels. This means that it can now easily be used to create sliders or progress indicators.

At the same time, the maximum height is increased from 200 to 480 pixels. This will allow you to create backgrounds with custom gradients for iPhone apps.

Click here to download the update

Mon, 18 October 2010

“Would you like us to collect some statistics of your website traffic?” said Google Analytics.
“Sure,” I answered. “What kind of data can you give me?"
"We can generate tons of data. Would you like to see charts or do you prefer tables?"
"Can I have both?"
"Of course, no problem. We’ll throw so much data your way, you won’t know what to do with it."
"Wow, great. I’d like that.”

Ever since I’ve started Blue Crowbar in 2007, I’ve used Google Analytics to get an idea of how many times my website is visited, where visitors come from, what keywords they used to find me in their favorite search engine, etc. And until recently, I was very happy with what I had. I mean, I like statistics, and Google is offering me tons of it. And it’s free. What’s not to like?

A few days ago, I came across Mint, a self-hosted web site analytics tool with a clear focus on simplicity. I bought a license (it’s only $30) and installed it on my server to see what it could do for me. After just a few hours of collecting data, I realized that it was exactly what I needed. Even with the default installation (it has plugins too; more about that later), I started learning new things about my site. Among others, it answered my two main questions:

Are people who find my site on Google finding the information that they’re looking for?

I started thinking about this when, about three months ago now, I took two of my existing products, iPhoto2Twitter and Aperture2Twitter, and merged them into one product with a new name: TwitExport. On August 31, Twitter pulled the plug on basic authentication, so my old products stopped working and I started seeing an increased number of searches for the old product names. What Google Analytics didn’t show me is whether these people ended up on the new product page or on the new FAQ page if they were trying to find out why the old products stopped working. With a few clicks, you can drill down in GA’s data and figure out the landing page for certain keywords and you can add the resulting table to your “dashboard”, but that will show you one table per keyword, which is way too much information again, and can it will of course only show you the search terms that you’ve selected, which means that you’ll only learn about the things you already know.

Search

With Mint, it’s much simpler. You get a list of terms that people have searched for and underneath each term you can see what page was found. That’s all information I need in one simple table.

What are the exact addresses that my site is being linked from? (and what’s being said about my products there?)

With GA, you get a list of sites that link to your site or blog, but you only get the domain name, not the full URL. This is something that I’ve never been able to figure out. Either the information isn’t there or I’ve never been able to find it. If Macworld is linking to your site, it will probably be from the main page, which is easy to find. But if the click comes from a forum, it can be very difficult to find out exactly where it’s coming from. Mint shows me the complete URL and I can click them to see where my products are being mentioned.

Referrers

Mint also has a very useful plugin system. A plugin is called a “pepper” in Mint-terminology and is easy to install. Here are a few that I’ve installed:

iPhone pepper — I can now view my statistics on my iPhone and iPad. Google Analytics uses Flash for its charts, so I can’t see them on iOS. I know there are a few apps that you can use for GA on your iPhone, like Ego, but I like being able to just browse to my own Mint page in Safari. The iPhone pepper doesn’t collect any extra data, it simply creates a mobile view for the data that you already have.

Outbound pepper — If you have links to external websites on your site, you might be interested in knowing how often your visitors click those links. With GA, if you want this information, you need to add an extra bit of JavaScript code to each of those outbound links. With Mint, you don’t need to add anything to your web pages. All you need to do is add the Outbound pepper to your Mint directory and external clicks are automatically tracked.

Outbound

Downloads pepper — Same story for tracking downloads. Add the Downloads pepper. Done.

Downloads

Create-your-own-pepper — Since Mint is installed on your own server, if you have some knowledge of PHP, it’s not too difficult to create your own pepper to track any data that you have access to.

Custom

I took an existing pepper as my starting point and converted it to track my product sales. I want to add some more detailed information to it (e.g. make it show the sales per product instead of only the total number), but for now it’s a nice thing to have.

On its website, Mint promises “A Fresh Look at your Site” and that’s not a false promise. It shows me everything I expect from a website analysis tool on one well-designed page. It’s a pleasure to use and, in the couple of days that I’ve used it now, it has already taught me a few things that I didn’t know about how people find (or don’t find) information on my site. Go check it out.

→ Archive