Archive for the ‘Chad’ Category

Chad Scates Partner

PhotoDialer Update

February 19th, 2010 by Chad Scates

It’s been almost six months since we put the first version of PhotoDialer in Palm’s App Catalog, and three months since we started charging $1.99 for it. In that time, we’ve submitted a handful of bug-fix and feature-enhancement releases, including the 1.3 release which just hit the App Catalog today. This latest release gives you a little more control over where your contacts’ names are overlaid on their pictures and addresses feedback from our users. We’ve also recently fixed a problem where some photos would be distorted. We hope you enjoy it!

We saw with some amusement that MyAppBox.com currently has us listed as the most likely paid app to win Palm’s top prize of $100,000. Of course we’d love that, but unfortunately I have to question their data. They have estimated that we’ve had over 10,000 paid downloads, and, sadly, the real number is substantially less. Having an app in the App Catalog is not yet a path to riches, at least not if you’re trying to make money simply by selling the app.

I also wanted to address a complaint that keeps coming up. Many people have reported difficulties downloading or updating PhotoDialer. Unfortunately, the download process is handled entirely by the WebOS system software, so it’s out of our control. This problem first surfaced when the application transitioned from the beta App Catalog to being a paid app and appears to be a result of the conversion process that Palm performed.

We have reported these problems to Palm, but we’re not able to address them ourselves. This is especially frustrating, because problems downloading or updating PhotoDialer is the leading reason for customers to rate us anything but four or five stars in the App Catalog. And getting good ratings seems to be the key to continue to get people to purchase the app, which is definitely the key that will keep us investing in it.

If you are experiencing problems upgrading PhotoDialer to a more recent release, the following procedure has been shown to work around the problem. First, delete the PhotoDialer app. (To delete, hold down the orange key, and then tap on the PhotoDialer icon, and then tap “Delete” in the confirmation dialog that appears.) Second, re-install PhotoDialer from the App Catalog. You should not be charged for this, even if you originally installed PhotoDialer during the Beta period when it was free.

Palm continues to communicate that they are working to address the problem properly on their side, so here’s hoping for a proper resolution soon.

Chad Scates has significant experience managing software development teams and developing GUI-intensive applications in cross-platform environments.

Chad Scates Partner

How CUDA can impact your world

October 1st, 2009 by Chad Scates

I am in San Jose at the GPU Technology Conference, where I spent yesterday listening to some excellent talks about CUDA.

We’ve blogged before about CUDA, which is one of a handful of emerging technologies that allow applications to run compute-intensive tasks on the graphics processing unit of the computer.

Of course, here at the show we are getting the sales pitch from Nvidia, which isn’t entirely a bad thing, since it’s also educational. Something that strikes me is that every card sold by Nvidia since 2006 is CUDA-capable, which means the likelihood of the average desktop computer having a CUDA-capable card in it is becoming pretty high.

I spent 11 years working for a company that produced desktop software for scientific analysis in the oil exploration industry. I was very excited by the idea that every desktop computer now has the ability to perform highly parallel computations in a very affordable package.

In his keynote, Nvidia CEO Jen-Hsun Huang showed some slides that did what he called CEO math. This math showed performance enhancements on code that was conducive to parallel development; the performance gain from moving to CUDA was on the order of 100-200x. Wow—that’s two orders of magnitude.

The drawback to CUDA is still the need for specialized code, but as we’ve gotten more familiar with this technology, we can attest that—for certain applications—there can be a pretty dramatic performance gain from a relatively modest engineering investment.

Pretty exciting stuff.

Chad Scates has significant experience managing software development teams and developing GUI-intensive applications in a cross-platform environment (Windows, Linux, Solaris, Irix).

Chad Scates Partner

Announcing PhotoDialer for the Palm Pre

September 3rd, 2009 by Chad Scates
PhotoDialer

Cardinal Peak is proud to announce that our PhotoDialer application is now available for free download in the Palm Pre App Catalog. Our history with Palm and passion for their products encouraged us to get involved early with their platform. Early usage of the Palm Pre left us wishing there were an easier way to make a phone call when we were on the go–in particular, we all wanted to be able to place calls without sliding open the phone’s keyboard.

PhotoDialer gave us an opportunity to create an application we desperately wanted while allowing us to introduce Cardinal Peak’s consulting services for webOS development. The PhotoDialer application itself just scratches the surface of our deep understanding of the platform and the webOS SDK, but we hope it will be useful to other Pre users.

To download PhotoDialer, please visit Palm’s app catalog from your Pre. To learn more about our webOS consulting services please go to our smartphone page or contact us directly.

Update 2/19/2010: Please see my follow-up post for more recent news about PhotoDialer.

Chad Scates Partner

webOS List Formatters

August 18th, 2009 by Chad Scates

Here at Cardinal Peak, we’ve been doing quite a bit of development on webOS, Palm’s new operating system for smartphones. WebOS is based on Linux, and it relies heavily on web standards like HTML, CSS, and JavaScript. It’s a great programming environment, but since it’s also rather new, there’s a lot of tribal knowledge still to be built up around how to optimally develop for it. So this is the first of an occasional series where we will look at issues that arise when developing webOS applications.

A list formatter is a very powerful feature of webOS. Basically a formatter is a function that is applied to a property name, and it formats each list element for display to the user. Although it’s a great feature, I did not find it to be documented very well. Here’s a quick tutorial on how to use list formatters.

Let’s start in the HTML. In your scene, add a Mojo element for a List. The following line creates a simple list named ExampleList:

<div x-mojo-element='List' id='ExampleList'></div>

Let’s also create a row template for our list and save the file to our views folder (views/ExampleList/rowTemplate.html):

<div>
#{-myData}
</div>

The #(-myData} object is what we are going to replace in the HTML. The HTML could have been much more complex and the object itself could have been embedded in the middle of the HTML. This object just represents the portion of the HTML code which will be replaced by the formatter code.

In the JavaScript you reference your formatter as part of the attributes to the setupWidget call.

listAttributes = {
itemTemplate: 'example-list/rowTemplate',
formatters:{myData: this.setMyData.bind(this)}
};
this.controller.setupWidget('ExampleList', listAttributes, this.model);

The only required element of the listAttributes is the itemTemplate. For our example we are adding the optional formatters and to the myData key we are instructing it to call the setMyData function. The key name that you use here must match the property name in the HTML.

The last piece to the puzzle is the formatter function itself:

setMyData: function(propertyValue, model) {
if(model.isHappy) {
model.myData = "Feeling Happy";
}
else {
model.myData = "Feeling Sad";
}
}

Now, when the myData field in the model is modified, the HTML will replace the #{-myData} property name with one of the strings “Feeling Happy” or “Feeling Sad.” In this case the HTML string was simple text to display. The string could have also been any properly validated HTML string.

model.myData = '<img src="images/happy.jpg" />';

This combination of list templates and list formatters should allow you to come up with both complex and dynamic lists in webOS.

Find code for this here.

 
 

Archives:

 

About Cardinal Peak

Contract engineering expertise to quickly, reliably bring embedded products to market.