TamsPalm - the Palm OS Blog

Palm OS news and opinion source

August 28th, 2008

POSE for Mac OS (X)

Very few people know that the emulator used for debugging OS4 applications (POSE) is an open source project. This allows for easy porting across multiple platforms - and allows the sharing of precompiled binaries.

The boys at Mobile Geographics have created a build for Mac OS (X) and have posted it onto their web site.

Should anyone of you feel like taking a stab, hit the link below:
http://www.mobilegeographics.com/dev/POSE35Mac.zip

August 21st, 2008

More from MyTreo

MyTreo’s Tadd Rosenfeld has become pretty talkative two weeks after we originally published our expose about the non-payment fiasco. He keeps sending me corrections over corrections, but refuses to answer my questions except with references to corrections sent before.

In order to keep the reporting balanced, here’s his correction on the “MobiHand takeover” - do with it as you please:

Mobihand has ** NOT ** taken over mytreo.net. That’s couldn’t be further
from the truth. In fact, we have NO direct contractual relationship with
that firm.

We signed a deal to have SmartphoneExperts — which was last year ranked the
fastest growing private company in America by Inc. Magazine — to provide
our e-commerce platform. We took this step because it will allow us to
focus on supporting the Treo community effectively.

Before doing so, we operated a store that served over 80 thousand customers,
and we gained tremendous experience in the Treo market. But
SmartphoneExperts someday soon serve their millionth customer (or some
amazingly high count). They are a truly great partner for us as we approach
our 500 thousandth member on the site.

SmartphoneExperts has contracted with Mobihand to provide software, which is
why their software e-commerce solution is advertised on our site.

In the end, however, the result for developers remains the same. MobiHand (a company that pays bills in time) now handles the MyTreo store…and this is the only thing that really counts. I am pretty sure that everyone(Tadd and developers included) will be more than happy with the way the store will work from now on…

August 15th, 2008

MyTreo.net taken over by MobiHand

MyTreo’s Tadd Rosenfeld has sent in an email stating “his side” of the story below. Cutting a long block of text short, he states that he did not contract MobiHand directly. Should you want more info, click this link for the full scoop!

MyTreo.net’s recently-covered payment issues have been largely resolved, as the software store has been taken over by MobiHand. Most affected developers seem to have received their cash or are scheduled to do so soon.

MobiHand has provided me excellent service with next to no downtime in the past; I consider the company to be the best ESD currently on the market.

Unfortunately, current developer accounts from the MyTreo.net store can not be taken over. Instead, developers must register at MobiHand’s developer back end Mobireach and add their products top the MobiHand catalogue if they haven’t done so before.

P.S. The rumors about Handmark entering the ESD business by taking over the MyTreo.net store are false…

David’s official announcement is below:

Just to clarify, MobiHand has just launched a new software store on
MyTreo.net. MobiHand is not the owner of the MyTreo.net site, and our
arrangement does not involve taking on prior payment obligations.

We look forward to working with all our current developers, and additionally
welcome prior MyTreo.net developers who are not yet working with us to sign
up at http://corporate.mobihand.com/sda_dev.asp, so that we can offer the
best and most complete collection of software on MyTreo.net and across the
MobiHand network of mobile-oriented stores.

July 11th, 2008

On trademarks

An unnamed TealPoint employee recently posted the following explanation about the US trademark law to the palm-entrepreneurs mailing list. As it is excellently written, I felt like reposting it here - enjoy:

1) Functionality
A term cannot usually be trademarked if it is purely descriptive of its functionality. For instance, you cannot trademark “mileage log” for an app that tracks mileage, but I don’t think “Trip” is considered generic by this definition because the name doesn’t describe exactly what it does (trip planner? assistant for clumsy people? Grateful Dead tribute?). Instead, it is considered a “suggestive” mark which can indeed be trademarked. Being a common word isn’t a problem as long as it isn’t “functional”, as “Apple”, “Flash” and many other words are trademarked in a specific application.

2) Incontestability
After five years, a registered term does not automatically become “incontestable”, but only if an “affidavit of incontestability” is filed with the PTO. Even then, the term can still technically be contested, but the term cannot be ruled invalid due to “prior art”, “functionality” or “lack of distinctiveness”.

3) Infringment
Even if it’s incontestable, just including the term as part of a competing product’s name is not automatically infringement, especially when only a limited number of words could apply to an app that tracks automobile mileage. Otherwise, people would just trademark all applicable words (”mileage”, “log”, and “trip”) and nobody would be able to name a competing product anything at all. The intent of trademark law is to prevent confusion, not limit competition.

When determining potential trademark infringment, the PTO assesses the “likelihood of confusion” on the part of customers, e.g. whether they might purchase one product believing it to be the other. If Steven’s product were called “Trip Deluxe”, or even “iTrip” then I think there would be a fair case for infringement. I think it unlikely, however that someone would think “TripLog” and “Trip” were actually the same product.

July 11th, 2008

Customer care hell: asking about specs

When one of you has a problem with a technical device, he tells the manufacturer the system specifications right away. Hell, some of my customers have even included a full list of all files in RAM into their bug/CS requests. However, asking customers for system specs can go very wrong…feast your eyes on the true story below (anonymized to protect the guilty):

I work as an IT guy for an upscale Austrian ***** company. So far, all has went well - until yesterday. Our CEO called the customer support hotline of a major software manufacturer, described her problem and suddenly started screaming at the support rep as if he/she had been gravely insulted.

After interrogating her to see what the problem was, I found out the following mind.boggling truth:

The CS guy asked her: “what computer do you have”?

Our CEO didn’t understand that this information was needed to actually find and fix the bug. Instead, she thought that the manufacturer was trying to blame her holy (Apple) device - and became pissed as sh*t.

For me, this story once again proves my basic assumption: what is clear to us, isn’t clear to others. Tell customers WHY you ask them for data - it might cost you a bit of extra voice, but will pay out in the long run…

Feel like telling us your worst-ever CS experience?

July 1st, 2008

Fix padding issues in structs

Yours truly recently had a VERY weird issue concerning system prefs. The structure given below worked well while in main memory, but saving/restoring it via the Preference API led to total fuxation of all values below the logging struct:

typedef struct{
UInt16 autoOff:1;
UInt16 timestamp: 2;
UInt16 flashscreen: 1;
UInt16 autoConnect: 1;
UInt16 pingpong: 3;
UInt16 bell: 1;
UInt16 wrap: 1;
UInt16 reserved: 6;

FontID font;
} OptionsType;

//LEAVE the __attribute__((packed)) in place - the prefs comnpile without it,
//but CHANGE WHEN BEEING SAVED AND THEREBY CREATE A LOGIC BOMB

typedef struct
{
char server[52]; // 50+1 Not sure on this one
char nick[20]; // 16+1
char realname[31];
}default_struct;

typedef struct
{
Boolean enabled;
Boolean logPvt;
Boolean filePerChannel;
char volname[40];
char parent[256];
}logging_struct;

typedef struct
{
Boolean alertnetdrop;
Boolean lowbatshutdown;
}bgm_struct;

typedef struct{
UInt16 appNetRefNum;
NetSocketRef socketRef;
NetIPAddr addr;
UInt16 port;

UInt32 bugged_last;

//These prefs are used by the network routines themselves
//and will one day replace the global variables
char server[51]; // 50+1 Not sure on this one
char channel[31]; // 30+1
char nick[17]; // 16+1
char pass[17]; // 16+1
OptionsType display;
bgm_struct background;
//These are UI ONLY variables and are NOT intended for any other use
//except as defaults for new ServMgmt entries => padding is 4by
default_struct defaults;
logging_struct logging;

Int32 sample;
} myIRCPreferenceType;

The reason for this issue has to do with weird padding issues - GCC adds extra bytes that do nothing, but are needed for some reason or another.

However, GCC supports a special command that disables the padding algorithm temporarily for a structure of choice. Adding these to offending structure definitions fixed the problem:


typedef struct
{
char server[52]; // 50+1 Not sure on this one
char nick[20]; // 16+1
char realname[31];
}default_struct __attribute__((packed));

I am at a loss at why this works - but the program now works flawlessly.

Does anyone of you have any ideas as to what’s happening here?

March 19th, 2008

OnBoardC with Bird integration

When OnBoardC was first conceived, it was designed to use a resource editor called RsrcEdit. However, the manufacturer of this program never did much in terms of maintenance, causing users to switch over to a program called BIRD(thereby loosing one-click ‘IDE’ integration).

Now, Lincoln Ramsay has created an unofficial version of OnBoardC that allows you to launch Bird directly from the file list:

Additionally, version 1.1.4 of BIRD adds a return-to-OBC button:

OnBoardC programmers, please update your compiler and resource editors immediately - the gained productivity is more than worth it…

March 4th, 2008

Get a creator ID for your Palm OS application

A recent discussion on the palm-dev-forum led to some members finding out that the Creator ID database apparently has been removed from the new Access Developer Network web site.

However, rest assured - as far as we found out so far, the creator ID database still is more or less intact. In case you need to register a new ID, please use this link:
https://www.developerpavilion.com/palmos/page.asp?page_id=331

Thanks to all palm-dev-forum posters for pointing this out!

November 21st, 2007

MobiHand now requests an ITIN

Just in case someone looks for a lawsuit: I am NOT a tax lawyer! The hints below describe what I did…there’s no warranty that this is the best, correct or whatever way. Follow the instructions below AT YOUR OWN risk!

TamsPalm covered the process needed for MobiHand’s tax system a few months ago here - unlike most other ESD’s; MobiHand originally didn’t demand a so-called ITIN number from its customers.

However, this has now changed - if you wish to kill the 30% tax deduction from your revenue, you now need an ITIN or EIN number. Logging into MobiReach allows you to look at your tax information in the Partners tab.

I am currently in the process of getting an ITIN…stay tuned for further information!

November 12th, 2007

The Brando USB Missile Launcher

This review has nothing to do with PalmOS but it makes just as much fun though it is not very useful: The Brando USB Misslie Launcher.
The device is shipped with a paper target, 3 missiles and the software for the PC. Once the launcher is plugged into an USB port, Windows recognizes it as a “Human Interface Device” and installs the needed drivers automatically. The software - which is Windows Vista ready - for controlling the launcher can also be installed onto an USB drive so that you can carry the device with you.

The size of the device can be seen in the image below:

How the device acts and how the controlling software works can be expressed the best way by a video:
USB Misslie Launcher video on youtube.com

After you have hit the “Fire!” button you will hear an audio warning for three times until the missile launches.
Instead of using the software + mouse to control your launcher you can use the keyboard for:
- moving (left-right-up-down): arrow keys
- fire: space
Even though the rockets are build out of foam plastic, please do not aim or shoot at humans or animals!

In my opinion this little toy is a great way to skip some time when it is getting boring - e.g. in your office :)

You can buy the launcher for 35 USD at the brando shop:
USB Misslile Launcher at the brando shop

This review is available in german, too.

October 17th, 2007

Centro software: supported features

This post from the palm-dev-forum could potentially be of great interest for all developers who wish to target a Centro but don’t have one available - especially people out of the USA who aren’t good friends with Orange:

Here’s a partial list of the features supported by the Centro (+ means
present, L means a library is present and loaded). The only difference
>from the 755p that I spot is an audio codec (creator ‘CdWr’) which now
supports encoding to AMR, not just decoding. (The reported video
support for SXGA is just the same bug that hasn’t been fixed since the
700p.)

I didn’t check whether ZLib and MathLib are in the ROM or happened to
be in RAM for the device tested.

Feature Reporter v. 0.7beta7 [Centro Sprint]
==== HARDWARE ====
manuf. ‘Palm’ HAL ‘P053′ model ‘D062′
processor: Xscale rev 0
==== FEATURES ====
Palm OS v 5.4.9
Graffiti 1 (or none)
display resolutions: 1x, 1.5x, 2x
supported bit depths: 16 8 4 2 1
supported color depths: 16 8 4 2 1
char. encoding: ISO-8859-1
+ International Feature Set
+ New Serial Manager
+ Notification Manager v 1
+ Expansion Manager v 2.0
+ VFS Manager v 2.0
SMS [PalmSource]
+ Bluetooth
+ Bluetooth Exg. Lib. v 4.0
+ Handspring Extensions v 2.0
5-way Nav. [PalmOne]
+ 5-way Nav. [HandSpring] v 2
+ 5-way Nav. [PalmSource] v 1.0
Camera Slider [Zire 71]
+ Sampled Sound v 1.0
==== PALMSOURCE LIBRARIES ====
+ Personal Data Interchange
L Network (TCP/IP)
L Secure Sockets Layer (SSL)
+ Crypto. Provider Mgr.
SMS [PalmSource]
Telephony [PalmSource]
L Bluetooth
==== PALMONE LIBRARIES ====
+ palmOne Photo v ?
+ palmOne Camera Mgr v 3.0.0
CameraLib (Treo 600)
+ palmOne LCD Overlay v 0.0.0
+ palmOne Codec Mgr v 3.0.0
L Background Service
+ Hi-res Timer
—- CAMERA LIB —-
— still sizes —
QQVGA 160×120
QCIF 176×144
QVGA 320×240
CIF 352×288
VGA 640×480
SXGA 1280×960
SXGA 1280×1024
— still formats —
RGB565
YCbCr422
— video sizes —
QQVGA 160×120
QCIF 176×144
QVGA 320×240
CIF 352×288
SXGA 1280×960
SXGA 1280×1024
— video formats —
YCbCr422Planar
— preview sizes —
QQVGA 160×120
QCIF 176×144
QVGA 320×240
— video preview settings —
allowed values: Off
(unknown video preview settings 0×00000026)
current value: Off
(unknown video preview settings 0×00000026)
— white balance settings —
Auto
—- LCD OVERLAY FORMATS —-
YCbCr444
YCbCr444Planar
YCbCr422Planar
YCbCr420Planar
—- CODECS —-
In Out Crea ID
IM0M MPG4 mp4g 0
MPG4 IM0M mp4f 0
IM0L MPG4 mp4e 0
IM0M MPG4 mp4e 0
MPG4 IM0M mp4d 0
MPG3 PCM1 mp3d 0
PCM1 APCM adpe 0
APCM PCM1 adpd 0
MPG2 PCM1 Mpg1 0
Mpg1 IM0@ Mpg1 0
TFFF IM0T ImCp 0
TFFF IM0R ImCp 0
TFFF IM0Q ImCp 0
TFFF IM0: ImCp 0
TFFF IM05 ImCp 0
TFFF IM09 ImCp 0
TFFF IM03 ImCp 0
IM0T WBMF ImCp 0
IM0R WBMF ImCp 0
IM0Q WBMF ImCp 0
IM05 WBMF ImCp 0
IM03 WBMF ImCp 0
WBMF IM0T ImCp 0
WBMF IM0R ImCp 0
WBMF IM0Q ImCp 0
WBMF IM0: ImCp 0
WBMF IM05 ImCp 0
WBMF IM09 ImCp 0
WBMF IM03 ImCp 0
GI9F IM0: ImCp 0
GI9F IM05 ImCp 0
GI9F IM0Z ImCp 0
GI7F IM0: ImCp 0
GI7F IM05 ImCp 0
GI7F IM0Z ImCp 0
IM0V JPEF ImCp 0
IM0G JPEF ImCp 0
IM03 JPEF ImCp 0
JPEF IM0V ImCp 0
JPEF IM0: ImCp 0
JPEF IM05 ImCp 0
JPEF IM09 ImCp 0
JPEF IM03 ImCp 0
IM0I MJPG ImCp 0
IM0H MJPG ImCp 0
IM0G MJPG ImCp 0
IM03 MJPG ImCp 0
MJPG IM0N ImCp 0
MJPG IM0M ImCp 0
MJPG IM05 ImCp 0
MJPG IM03 ImCp 0
PCM1 QCLP CdWr ‘d“á`’
QCLP PCM1 CdWr ‘d“áX’
PCM1 AMRS CdWr ‘d“áP’
AMRS PCM1 CdWr ‘d“áH’
AVCd IM0M AVCd 0
PCM1 PCM1 APCM 0
APCM PCM1 APCM 0
PCM1 APCM APCM 0
DAAC PCM1 AACf 0
IM0M H263 263e 0
H263 IM0M 263d 0
==== SONY EXTENSIONS ====
[not a Sony]
==== 3RD PARTY LIBRARIES ====
+ ZLib (compression)
+ MathLib
==== CONFIGURATION ====
total memory: 70472K
dynamic memory: 10304K
free memory: 66454K
HotSync ID:

A big thank you goes out to Douglas Reeder for posting this - if anyone has his web site, please post a link to it so that I can link to him!

October 16th, 2007

Palm Centro device ID available, Centro GSM confirmed

Users of the palm-dev-forum mailing list have just provided me with the following information that could potentially be useful for identifying a Centro:

#define kPalmOneDeviceIDGnome 'D061' // Gnome/GSM
#define kPalmOneDeviceIDGandalf 'D062'

The second ID is the device ID for the CDMA Centro - but the D061 is the one that really interests me. Looks like yet another, small indication that a GSM Centro is finally on the way!

P.s. For all those of you new to the term - the device ID is an ID that identifies a handheld’s hardware to software running on it…

October 11th, 2007

PalmGear enables HTTP Post; kills developer fulfillment

PalmGear/Motricity has finally pulled the plug on developer fulfillment(aka developer sends code to customer per email) and the accompanying, much-ridiculed algorithm tax. Instead, Motricity now supports HTTP Post - a real-time process where a script on a developer’s web server is used to generate the reg code and dispatches it to customers.

This allows developers to keep their algorithms secret, but reduces customer’s wait times (and customer support efforts) significantly. HTTP Post has worked very well for me in the past, and I look forward to using it with PalmGear’s in the future!

Last but not least, here is the original announcement:

Greetings from Motricity

I trust that you are well and that 2007 has been a profitable year thus far. Many of our partners in the past have requested support for HTTP Post Fulfillment as a useable fulfillment method at PalmGear. We are pleased to announce that this method is now an option effective immediately! HTTP Post allows you to host fulfillment methods on your end exclusively while still providing Motricity customers with real-time fulfillment at the time of purchase.

Satisfying customer orders immediately is important in today’s marketplace. Moving forward, PalmGear will only support fulfillment methods that are real-time in nature. These supported methods include:

File (Full Version)
Static Key
Code Pool (List of Keys)
Dynamic (jCode)
HTTP Post Fulfillment

If you presently have listings that utilize a method other than those listed above, you will need to update your existing listings to accommodate the supported fulfillment types. This should be addressed immediately to avoid any gaps in support for your listings.

We have established a documentation area to assist you with setting up your HTTP Post Fulfillment should you elect to utilize it as a method. You may access it through your developer account, or directly through:

http://palmgear.com/index.cfm?fuseaction=developers.httppostdocumentation
(…)

Tim Tyndall
Manager, Developer Relations

September 18th, 2007

Palm launches “device preview” program

This comes in from Palm’s PDN newsletter that goes out to all developers who once registered with them in order to gain access to Palm-specific SDK’s:

The Palm Virtual Developer Lab (VDL) program is an online service that provides access to real handsets on live worldwide networks remotely via the Internet. Palm makes VDL available for global mobile software developers creating prosumer, business and services software solutions targeting the Palm pre-release device portfolio.

24×7 early access to network activated pre-release devices for faster time to market and reduced testing costs
The benefits of a real device in your hands – without waiting for a real device

Full test and debug capabilities
Experiencing your solution as your customers will on a real device
Improved accuracy of your test process through record/playback test capabilities
Ability to reserve devices to fit your testing schedule
Reserve the device in advance

Mobile Complete offers the Palm VDL as a subscription-based service. Monthly packages are available.

This program now is only available through the Designed for Palm Products Program and Palm Select Developer Program. Access to the Palm VDL will require an NDA/updated NDA.

Essentially, this means that now even more developers will gain access to Palm’s devices before they get released. For us, this is great in two ways:

First of all, it shows that Palm finally starts to care about its developers again, wanting to make sure that the user experience of the new devices is great right out-of-the-box(aka no issues with 3rd party software). This encourages users to later on try out more software and could maybe deliver a nice boost to the struggling Palm economy…

But it also means that there are now more opportunities for us to get leaked information about Palm’s new devices :).

Jokes aside: great move, Palm! This is the way to go!