Mon, 28 Mar 2005
Preferences

Preferences structure definition

typedef struct {
	int skeletonData;
} Prefs;

Prefs prefs;

Open preferences

void startApp() {
	Int16 prefSize = sizeof(Prefs);
	if ((PrefGetAppPreferences (AppCreator, 
			 		1000, // pref database id
			 		&prefs, 
			 		&prefSize, 
		 	 		true) // saved during Hotsync
		== noPreferenceFound) 
		|| (prefSize != sizeof(Prefs))) {
					// default initialization, since discovered 
					// Prefs was missing or old.
		prefs.skeletonData=1;
	}
}

Write preferences

void stopApp() {
	PrefSetAppPreferences (AppCreator, 
				1000,	// pref database id
				1, 	// version of pref database
				&prefs, 
				sizeof(Prefs), 
				true);	// saved during hotsync
}

(posted at 20:50 | filed under programming/palmbits | link)    (comments | add new)
Using libraries

Load and initializing the library

#include 
int MathLibRef = -1;
...
// is library already loaded?
err = SysLibFind("MathLib", &MathLibRef);
if (err != 0) {
	// negative, load
	err = SysLibLoad('libr', 'MthL', &MathLibRef);
	if (err == 0) {
		err = MathLibOpen (MathLibRef, 1);
	}
}

Closing library

if (MathLibRef != -1) {
	Err err;
	UInt16 usecount;
	err = MathLibClose (MathLibRef, &usecount);
	if (usecount == 0) {
		SysLibRemove (MathLibRef);
	}
}

(posted at 20:40 | filed under programming/palmbits | link)    (comments | add new)
Mon, 07 Mar 2005
Simple PHP security patch

I've created (after some strange experiences with users in my hosting) small php patch (for version 4.3.10), which disables remote includes.This patch doesn't work with Zend Optimizer enabled unfortunately :(

Download the patch there. After applying, see php.ini-dist and readme.security

example of bad code:

<?php $page = $_GET['page']; include ($page); ?>

example of better code:

<?php // filter all unneeded characters $page = eregi_replace("[^a-z0-9_]","", $_GET['page']).".inc.php"; // test if $page exists and is file if (strlen($page) && @file_exists($page) && @is_file($page)) { require_once ($page); } ?>

Links:


(posted at 09:41 | filed under programming/phpiing | link)    (comments | add new)
Sun, 06 Mar 2005
Got fired for extensive blogging?
Wanna be fired for your blog entries? Don't write anything about your employer. Read more.

(posted at 21:23 | filed under press | link)    (comments | add new)
Thu, 03 Mar 2005
Steve got new record
Steve Fossett landed (19:48:56 UTC) at Salina airport after successfull flight around the world. See more information at GlobalFlyer website.

(posted at 20:04 | filed under press | link)    (comments | add new)