iPad, You Pad, We Pad

January 28th, 2010

So at 10:00 am this morning all internet news services seemed to seize up on the weight of people trying to get a glimpse of the new Apple iPad. Pretty much all the live data feeds suffered outages from the pure volume of requests they were getting. And as Apple’s own slide proclaimed, “the last time a tablet was this anticipated it had commandments on it.” But I will say that after watching the intermittent updates coming out of the Yerba Buena centre I was a little disappointed. I’m not sure what they could have announced that would have come close o living up to they hype, but the super-sized iPhone they demoed certainly didn’t. But looking again at the demos and videos (especially this one on apple.com) makes me thing that maybe I misjudged it. It will certainly make a better e-reader than Stanza on the iPhone. I almost want one. If I’m honest I think I’m almost certainly going to get one. I just can’t help thinking that I’m getting a little ripped off.

More Google Voice Notes

January 28th, 2010

I’ve been using Google Voice for a while now and I’m pretty pleased with it. There are a few limitations that I’d like to see improved on but in general it’s a great service. And I’ve got a solution for people who want to port their number to Google Voice, which isn’t officially supported, at least yet.
First the limitations. I don’t think my use case is the typical one that the service was designed for. I want to manage the entire household’s calls, directing different callers to different household members, whereas I think the service was designed primarily for a single person with multiple phone numbers. So I end up with lots of groups of callers, some of which call one set of phones and some of which call others. The restrictions on redirecting to another Google voice number really starts to rankle here because it would simplify some of these rules quite dramatically.
One change that would make my life a lot easier would be to forward groups of numbers rather than individual numbers. For example, all unknown or 800 numbers to voicemail. Or to selectively enable do not disturb – allowing calls from certain groups or registered numbers to go through and blocking all others, for example.
I had one instance of apparent system failure, where all incoming calls rang all registered numbers indiscriminately rather than following the routing rules, but otherwise the system seems to work pretty well.
As for number porting, I have found a simple solution. I ported my phone number to callcentric, on their pay-per-call plan, and set up a forward to my Google voice number. I then set up another account (configured to display the caller id of my original number) for making outgoing calls. Since the original number never has calls made on it, it is essentially parked for free at Callcentric, and the new number I actually make calls on (also with Callcentric, but I’m always on the lookout for better deals) is masquerading as that number as well. It’s working very well so far, I’ll give further reports in the near future.

AppStore Rejection

December 21st, 2009

I had an iPhone app in review which was intended to promote the re-release of Tony Jacklin’s interview “Jacklin Speaks“. It’s very similar for the one I made for the Bill Shankly interview, “Shankly Speaks“. The Shankly version was initially rejected because it did not close down if there was no internet connection. To fix this I added an error message and a call to

[[UIApplication sharedApplication] terminate];

if there was an error reading from the internet. I resubmitted the app and it was accepted. The new app contains exactly the same code, but it was rejected for using an undocumented api, namely terminate.

I hadn’t realised the terminate was undocumented (it is documented for its desktop version, but not for the iphone). The alternative is apparently to use the standard C call exit(0), although that bypasses application shutdown code and may result in memory leaks and other bad behaviour. However, since that call is documented, I’ve made that change and resubmitted. What they say to that will be reported here.

UPDATE 12/23 – It’s been approved. It is (or shortly will be) available here.

Shankly Speaks

September 15th, 2009

It’s out – get it here.

Google Voice

August 10th, 2009

Many years ago I worked for a company called GrandCentral, which was the most dysfunctional organization I have ever encountered, and believe me that’s a pretty tough list to top. Anyhow, through a series of transformations, that company is now a part of Google and its services are called Google Voice. It’s currently in beta, and you have to apply for an account, kind of like you did for gmail in the early days. I recently got myself an account and I’ve been playing with it to see what it offers.
Which is actually quite a lot. You get a (free) telephone number of your choosing, in one of several area codes (I got a 415 number with no problem). Calls to that number can be forwarded to various other numbers of your choosing, and different callers can be forwarded to different phones or sent straight to voice mail. When you get a voice mail, you get an email notifying you of the fact along with a transcript of the message. I tested leaving myself a message and the transcription seems to work pretty well – when it did mess up it was obvious enough what the meaning was that it wasn’t a problem. Overall I’m very impressed. I’m wondering what it will be like when anybody can sign up – there can’t be an unlimited supply of phone numbers, and what’s to stop people signing up for multiple accounts with different phone numbers (in different areas, for example, to maintain a virtual presence in different area codes). It would presumably be simple to prevent people chaining GC accounts (redirecting calls from one account to another) but with an intermediary voip provider those restrictions would be simple to circumvent. I’m also wondering about phone number portability – say I want to move my phone number onto GV, or off of it when it’s become my established contact number. Lots of questions, but overall it’s a good service and I predict another success for google.

Using GarageBand to rip cassette tapes

August 3rd, 2009

I just had to do this, and it’s a little tricker than I thought it would be. It is certainly possible, though, and the results were very good.
Firstly, the tape deck. You want to get as good a one as possible. I tried first with an old walkman type thing we had lying around and it was a mess. I managed to borrow a Tascam 122 which is professional quality deck and the difference was incredible. The good news is that the retail price of such a desk is about $250, presumably because tapes are disappearing faster than campaign pledges. If I have to do this again I’m going to buy one.
Connect the line out from the deck into the line in on your mac. You will then need to go to the sound tab in system preferences and select Line In as the default input device. Don’t close this window, you’re going to need to adjust the input volume from it.
In garage band, create a new song with a bpm of 40 – this gives you the longest import time. Delete the default track it creates for you and create a new track of type “Real Instrument”. This should default to input source built-in. Set monitor to on so you can hear the tape as it plays. At this point you will see three volume controls in GarageBand – one on the track mixer, a master one and a recording level control. Set the mixer and master controls to 0 db. If you tab to bring the system preferences box over GarageBand you will notice that changing the input level of the line in device also moves the recording level slider in GarageBand. Since the preferences tab is easier to use we’re going to use that to set the input volume.
On the tape deck, set output volume to somewhere around 30% and start playing the tape. Adjust the input volume so that the level maxes out at around 80%. I found it much easier to use headphones when adjusting the levels. Then rewind and cue the tape, and press record in GarageBand to start importing the tape. When the tape is finished you have several options as far as creating an MP3. You can import an entire tape into one song, and export each track by using the cycle region control to mark the individual tracks, or you can import each song individually. I was quite happy to treat the entire tape as a gapless album, so I kept it as a single MP3 file. I’m very pleased with he results.
[ad]

Finding new iPhone apps

July 31st, 2009

To monitor new releases on the iPhone, use this URL:

http://www.macworld.com/appguide/browse.html?sort=new
[ad]

Comcast Are Idiots

July 31st, 2009

I’ve had comcast cable and broadband for a few months now. The broadband service is fast (when it works) although it seems that DNS services are slow and the overall effect is pretty sluggish. But nothing has been bad enough to make me put in the effort to change providers. Recently we moved house, and the guy who connected us up decided to give us a new cable box and modem, although he left the old ones with us for some reason. I called them last week to get somebody out to pick up the old ones, and to run a new cable while he was there.
I got home last night to find out that neither my cable or broadband service worked. I called comcast and was shuttled between about ten people before reaching a tech support person who told me that he could see that my services had been cancelled by someone in billing because my equipment had been returned. This was almost funny, but he said that since billing was closed he could not do anything about it, I’d have to call back in the morning. A simple database update and he’s be able to turn it back on in five minutes, he said. Thus I got an entire evening without broadband. But then this morning I call billing who tell me that I was the one who cancelled the service, that I have no equipment because their system shows it was returned, and that it will require a technician visit to the house with new boxes to restore service. I protest that I have boxes – please just mark the account as opened and transfer me to somebody with a brain in tech support. Nothing doing. I got nowhere with the guy for five minutes (Him: “Please give me the serial number of your box” me: “I’m at work and can’t give it to you” Him: “So you don’t have a box”). I finally called him an idiot and demanded to talk to a superior, at which point he cut me off. What does it take to get a company to employ reasonable intelligent, or even remotely helpful, people to answer its phones? Anyway, I’m going to calm down a little and try again. But I’m also going to order DSL from speakeasy about whom I hear nothing but good things, so I really will be canceling comcast in about two weeks.
[ad]

Finding cool free on sale iPhone Apps

July 23rd, 2009

Here’s a tip – if you’re as in to free iPhone apps as I am, use the following link to find apps that have recently been made free -

http://www.macworld.com/appguide/browse.html#prices=Free&sort=onSale&dir=desc

And here’s one to find recently-released free apps

http://www.macworld.com/appguide/browse.html#prices=Free&sort=new&dir=desc

The AppStore doesn’t make this kind of search very easy, so this is a good work-around.

[ad]

Installing Subversion on CentOS

July 20th, 2009

I just went through this and it was a little painful due to incomplete documentation, so I’m summarizing the steps I took here – mainly for my own reference but also in case anybody else needs to do the same thing. Note – this does not cover using Apache to serve the repository remotely, this is a local install only. I’ll deal with Apache when I get round to it.

1. Installation
yum install mod_dav_svn subversion

This grabs the basic subversion packages, and resolve any other dependencies you may have.
When complete try typing:
svn -help
to make sure that all is well and that svn runs.

2. Configuration
Now you can create the actual repository from which you will check in and out your files.

mkdir /var/svn
cd /var/svn
svnadmin create repos

3. Creating projects
The recommended repository directory layout is as follows:

|– project1
| |– branches
| |– tags
| `– trunk
`– project2
|– branches
|– tags
`– trunk

To start with, we’re going to create a simple project:

mkdir proj1
cd proj1
mkdir trunk tags branches
vi trunk/main.c

Edit main.c to contain your code. Now we can add this project to svn.

3.1. Importing
To add your code to the repository do this:

cd ..
svn import proj1 file:///var/svn/repos/proj1 -m “Initial checkin for proj1″

3.2 Checking Out
To create a working copy of the project, you need to check it out. To do this, do:

mkdir work
cd work
svn co file:///var/svn/repos/proj1

3.3 Edit and Update
Modify the copy of main.c you just checked out:

vi trunk/main.c — Add or delete something and save.

And then check in your saved file:

svn commit -m “Modified main.c”

Similarly, if you add a new file to the project, this command will add them to the repository. To delete a file use the delete command:

svn delete trunk/main.c

To recover a previous version of a file, co with the revision number:

svn co -r file:///var/svn/repos/proj1

If you’re not sure which revision number, check the logs:

svn log file:///var/svn/repos

or

svn log file:///var/svn/repos

4. And more

This should be enough to get you started, but there are lots more commands to explore, and of course this is just a local install – svn becomes really powerful when it is set up as a remote server. I’m going to wade through the docs to do that myself next and I’ll record the results here. The svn bible is :Version Control with Subversion.
[ad]