Our Command through simplicity blog
An error occurred while validating. HRESULT = '8001010E'
Just a quick tip. While upgrading one of my projects from VS.NET 2008 to VS.NET 2010 I ran into a problem I wasn’t able to find a correct solution for it anywhere. While building my setup projects I got: An error occurred while validating. HRESULT = ‘8001010E’ Various posts suggested to remove all dependencies but in my case it was caused by an invalid reference to the framework. This is what I did to have it compile again: Right-click .vdproj Select “View” | “Launch Conditions” Right-c...
Universal builds for Mac App Store with Xcode
While working on Wallpapery, I had to do a universal build for both 32- and 64-bit. I expected I should simply set “Architectures” to “Standard (32/64-bit Universal)” but after approval in Mac App Store and user complaints I found out, I had missed a couple of steps. To build your product for both 32- and 64-bit architectures (aka i386 and x86_64) you have to explicitly unmark “Build Active Architecture Only” and filter list of “Valid Architectures” to only list “i386 x86_64” I wasn’t awa...
How to get display name from NSScreen
While working on Wallpapery I needed to get a given screens display name. There is no “displayName” method on NSScreen so I added a category to provide this functionality. Seems like others are looking for this too so I’m posting my code below. NSScreen+DisplayName.h #import <Cocoa/Cocoa.h> @interface NSScreen (DisplayName) - (NSString *)displayName; @end NSScreen+DisplayName.m #import <IOKit/graphics/IOGraphicsLib.h> #import "NSScreen+DisplayName.h" @implementation NSScr...
How to send mass text messages from your own number
A couple of months ago we needed to make a service which would be able to send out sms text messages to a large number of people. The text message itself should come from a specific number so recipients would be able to reply back for more information. Another requirement was the ability to send a text message to a specific number and then trigger the mass sending to the configured recipients. The part sending out bulk sms is easy. A lot of companies have great, simple APIs to do this but t...
Send your weight from an iPhone through SMS
While working on lifestyleapps I have been asked a couple of times, if it would be possible to report your weight by sending an SMS from your phone. This is already possible and I have been using it from my iPhone 3G for a long time. The trick is to associate your Twitter account to your lifestyleapps account and set up your Twitter to accept SMS. In order to report your weight you need to follow @reporting which is the lifestyleapps Twitter account and by following this (and it will follow ...
UIModalPresentationFormSheet width and height for an iPad in landscape mode
In a recent application I was doing, I was designing an interface to be shown as a modal form sheet using setModalPresentationStyle:UIModalPresentationFormSheet. I searched the Apple documentation to find the exact dimensions of this sheet but it isn’t documented. It only states “The width and height of the presented view are smaller than those of the screen and the view is centered on the screen. If the device is in a landscape orientation and the keyboard is visible, the position of the vi...
How to backup Redmine on Google Storage
If you would like to backup your Redmine database and files, you might to consider Google Storage as your backup location. It comes with a 100 GB free monthly usage. First, you need to sign up for a Google Storage account if you don’t have an account already. Once done, download and install GSUtil which is a command line tool, allowing you to manage buckets. Paste the following script into a file called “backup_redmine.sh” # required settings DB_USERNAME='<redmine db username>' DB_...
Using vi for your simple, day-to-day editing needs
My favorite editor isn’t vi, but I’m still using it at least a couple of times each day. It’s a short two character command, it’s always available and it starts fast. I have used it for decades and still, I only know these commands. I really don’t need to learn any others, contrary what some of my friends tell me. Need to know j = move down k = move up l = move right h = move left i = go into “insert” mode = go into “command-line” mode ESC = go out of current mode x = delete chara...
Lesson learned: Put limits on anything you provide for free
With our ShoutSMS service, we provide three free sms credits just for signing up. We do this to allow new users to try our service, without having to buy initial credits, just after they sign up. After initial launch, we almost immediately got people from India hitting our servers. They signed up, confirmed their number and tried to send overtaxed sms to various numbers. Because I had chosen an initial credit limit and a max cost limit on each sms, it was avoided. I know from my previous wor...
Marketing tip: Include link to your app in newsletters
I have registered on a lot of sites and opt-in for their newsletter to be notified of updates. One thing bugging me is, when a site sends a great mail in their newsletter but doesn’t include a direct link to their web site. The mail is coming from their domain so it isn’t hard to guess but users are lazy! Since I’m registered on too many sites to visit regularly, I probably do want to visit a site, if it contains exiting updates but I have to admit, that without a direct link, I might not g...