Looking for beta testers – iPad movie app

Have you tried to edit video in iMovie on the iPad and found your video doesn’t appear?

Do you want to take just your iPad on vacation, shoot videos with your compact digital camera and edit a video before you return home without a desktop computer?

If you answered yes to either question, then do I have an app for you.

If you have an iPad 2, iMovie for iOS, a compact digital camera such as the Sony DSC-WX9 and some time to test an app, let me know. I’ll need your devices UDID and I can sign you up!

The Art of Googling

Several years ago, I wrote about how librarians will become experts in web searching. While I still believe that this is true, there is no reason that everyone can’t become masters at getting good search results. Lately, I’ve noticed that the ability of people to effectively search using a search engine (my engine of choice is Google) is quite limited and if people learned how to search better, it would really help them.

Anyone can enter words into a search engine, it takes some skill to figure out which words are going to produce the best results in the shortest amount of time, hence “the art of Googling”. If you enter too few words or too many words, the results will either be non-existent or provide too many that the results are useless. Even if you enter the right number of words, you have to know which words will get good results.

I seem to have a knack for searching as I can get results quite quickly. Maybe there should be a high school or college class in searching. If more people could search by themselves, us tech savvy people would have to answer far fewer questions that we consider below our pay grade!

Effectiveness of stop signs

The question for today is “are stop signs effective?”. I’ve been running along the same route for 5.5 years and either I’ve been noticing people failing to stop at the stop sign more or people just care less. At this particular intersection that is a 4 way stop, a small number of people actually slow down and stop, some slow down and continue, and the remainder simply just blow through the stop sign.


View Larger Map

On my run today, I saw a teenager not bother to slow down and make a left turn at this intersection. He didn’t seem to care that there was a stop sign. This intersection is getting more and more dangerous for me as I have no idea if people will stop. I decided to stop for a minute on my way back and take a video of a car running the stop sign. I didn’t have to wait long for this to happen; maybe 15 seconds.

 

[quicktime width=”568″ height=”336″]https://blog.gruby.com/wp-content/uploads/2011/06/IMG_0563.mov[/quicktime]
How can this intersection be made safer? Does this happen to all 4 way stops where no one is around to notice? Maybe steal spikes that puncture tires can be made to come up if people fail to stop.

The end of free money?

When I started ReceiptWallet, I setup an Amazon Affiliates link to see if I could make some money on the scanners I recommended. Turns out, this was a smart move as I was making decent money for no work. After I sold ReceiptWallet, I get my links around on this blog and while I don’t make enough money to quit my day job, I make enough to goto dinner a few times a year. I’d rather have the money in my pocket than someone else’s, so I keep the links up.

Unfortunately, Amazon notified California based affiliates today that they’re cutting us off if the state passes a law regarding online commerce. The law is a bit of duplicate regulation as California residents are already required to pay a use tax for goods purchased out of the tax; it appears that the law is putting the burden of collection on a company that doesn’t even have offices in the state. The law argues that affiliates constitute a California presence for Amazon and thus it has to collect taxes.

So us little people get punished because the state can’t enforce the current law on the books. Lovely.

A blast from the past (PDAs)

My wife and I have started watching 24 on Netflix and have become quite addicted to it. Since we’re behind the times, we don’t have to wait a week between each episode, instead we can blow through 2 or 3 episodes a night.

The technology in the show is kind of humorous as they’ve been using Palm OS based devices, at least in the early episodes. So far I’ve seen the Samsung SPH-I300 as well a Handspring Visor. I even caught a glimpse of SplashPhoto on the Visor!

This brings back memories of all the technology I thought was so cool way back when. Comparing it to today, it seems so primitive. If you look at the first Palm OS based smartphones, the way they handled data was quite primitive. Basically they “dialed” a special number (00 in many cases) to trigger the packet data connection. This, of course, prevented voice calls during the time. Then using the stylus seems so crude. Let’s not forget the displays; today’s devices have full color, awesome looking displays. The displays way back when were grayscale screens that were not pleasant on the eyes. The devices were not very robust and resetting the devices was a common occurrence; I got rid of my Treo on Sprint when the battery died because the device crashed and I hadn’t noticed it.

I can’t wait to keep watching to see what other tech memories come back!

Unit testing framework and Asynchronous calls

In my quest for information on writing test cases within the confines of unit testing framework, it became evident quite quickly that the tests are synchronous and asynchronous calls will never complete thereby rendering the test case useless. Since all networking code should be asynchronous (in my expert opinion), I had to find a way to handle this.

After a few quick searches, I found that my issue wasn’t uncommon. The most straightforward answer to this question is some code called AssertEventually by a developer named Luke Redpath. Straightforward in that the calling method is not complex; however, there is a big chunk of code behind it that has me a little concerned.

The more I’ve read about this, the more it looks like I have to spin my own run loop during the test such as described on a mailing list like this:

while (!_isDone)
{
	[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1.0]];
}

While this should work, it isn’t the most efficient way to do things, but at this point, I’m not sure there are other options.

Utility of Unit Tests in software development

Over the years, I’ve read a little about unit testing and heard it talked about at WWDC once or twice, but never thought much of it and didn’t see much of a need for it. Recently I’ve started to look at it again and have done a little research on the concept. I found a reference that seems to sum up the flaws of unit tests.

A test is not a unit test if:

It talks to the database
It communicates across the network
It touches the file system
It can’t run at the same time as any of your other unit tests
You have to do special things to your environment (such as editing config files) to run it.

Of all the projects I’ve worked on over the years, most, if not all, of them have had external dependencies such as network connections, handheld devices, or files on disk and therefore most of the unit tests I’d write adhering to the above rules, would barely exercise the app. If I wrote unit tests to simulate networks, I’d have to hard code in test data which lets us test one path in our app if we assume the data on the network never changes which is quite unlikely.

So, effectively unit tests are useless. I’m sure that someone will argue with me about this point, but if we assume I’m correct in the limited utility of unit tests, can tests be written that are useful?

Of course, we can write tests using the unit test framework (like OCUnit in Xcode 4). The test aren’t unit tests, they’re more like functional or integration tests that have external dependencies. This will let us test error conditions and see how different parts of the code will act in a real world environment.

It appears that Wil Shipley of Delicious Library fame seems to have similar views to me on this topic. However, I’m not opposed to functional or integration tests.

I don’t discount the utility of writing “tests” and will be writing some to test chunks of my code, but for the projects I’ve been on and expect to be on, unit tests have very limited utility and are possibly a poor use of limited resources.

Giving Ooma another chance

The other day I had lunch with some friends and one mentioned that he was reducing his monthly bills by dropping cable, installing solar and switching his home phone to Ooma. He had Ooma for 6 months and was quite pleased with it. I had tried Ooma about 1.5 years ago and written about it; unfortunately my experience back then wasn’t as positive. I decided to give it another try as the potential to save money is huge. In the last few years, my phone bill has gradually risen while the features have gone down (I had lots of features with Qwest over a decade ago including a blacklist, then with MCI I had voicemail that forwarded to email. Now I don’t even have voicemail as there is an extra charge for it.)

This time I just plugged the Ooma into the back of my Time Capsule (it had an open port) and forwarded my home phone to the Ooma number for testing. So far through a few calls, there have been no complaints. I’ll give it a few weeks and I’m crossing my fingers. Even if I stick with Ooma Premier ($120/yr + $3.50/month for taxes), the cost recovery (including number porting and getting a Telo handset) is about 7 months and then I’ll save about $50/month. My regular phone bill will just keep going up, so this may be the only way to keep a home phone without paying through the nose.

I’m crossing my fingers that this pans out!

Google Voice fix for when it stops working

Today I got notification that I missed a call coming through my Google Voice account. I checked Google Voice and everything was setup correctly; I had also noticed that the Google Voice app on my iPhone didn’t notify me of an SMS that I received the other day which was strange.

Thinking that things may have broken after I ported my cell number to AT&T last month, I deleted my cell number from Google Voice and added it back. While I shouldn’t have been surprised, I was when that simply fix made the forwarding work again and notifications started working again in the Google Voice app.

So, if you have trouble with Google Voice, delete the forwarding number(s) and re-add them.

Positive Sprint Customer Service Experience

I’ve written in the past about the horrible experiences I’ve had with Sprint customer service, so I think it is only appropriate to write about a positive experience. Last month I decided to contact Sprint to find out what would happen to my account if I ported out the primary number and left the other lines alone. I’ve been forwarding my Sprint line to my AT&T iPhone for a year and decided to finally “reclaim” my number. I was holding out due to an ETF, but decided that the ETF got low enough that it was no longer a reason to keep forwarding the number (also SMS didn’t forward). The Sprint representative answered quickly and said that a new number would be assigned and nothing else would happen to the account.

I decided to try my luck and see if I could get the lines on the account rearranged to move included features to the lines that I was keeping. The rep said that since the plan was so old, the changes couldn’t be made which I completely understood. However, when I checked the account, the changes I requested were actually made! I was surprised, but pleased (I did verify this with a Sprint reseller).

After all that, my parents actually ported out their phones to Verizon so my Dad could get an iPhone. When I got my latest bill, it looked as if Sprint billed me a bit more than I expected. It should have been the regular monthly fee + the ETF for my line (Sprint bills one month in advance, so it was the normal fee without additional lines). When I contact Sprint on Friday, I got email back Saturday with an apology and a credit applied to my account; not just the credit I was supposed to get, but credits for other stuff that I won’t see about until the next bill shows up. That was great service to respond so quickly and fix the issue.

Thanks, Sprint!